[cwn] Attn: Development Editor, Latest OCaml Weekly News
Alan Schmitt
alan.schmitt at polytechnique.org
Tue Apr 18 01:50:06 PDT 2023
Hello
Here is the latest OCaml Weekly News, for the week of April 11 to 18,
2023.
Table of Contents
─────────────────
You started to learn OCaml less than 12 months ago? Please help us with our user survey on the OCaml.org Learning Area
First alpha release of OCaml 5.1.0
Interesting OCaml Articles
Porting a OCaml3-based game to the latest version of OCaml
Old CWN
You started to learn OCaml less than 12 months ago? Please help us with our user survey on the OCaml.org Learning Area
══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
Archive:
<https://discuss.ocaml.org/t/you-started-to-learn-ocaml-less-than-12-months-ago-please-help-us-with-our-user-survey-on-the-ocaml-org-learning-area/11945/1>
Sabine Schmaltz asked
─────────────────────
We’re asking specifically for you, if your experience of learning
OCaml is still ongoing or so recent that you still remember
1. what you struggled with (or still feel like you’re struggling),
2. how the current materials failed you,
3. what other materials helped you understand.
if you have previous experience in other languages, we also find it
highly interesting to learn about resources that you found
particularly effective/engaging/educational and why you think they are
particularly great.
Our goal is to improve the “Learn” area of OCaml.org - and this is a
pretty broad topic in the sense that we want to provide a framework on
OCaml.org where content is organised properly in such a way that
information is easy to find and effective to use for various people
with different backgrounds and learning styles.
The survey is here: <https://forms.gle/L1oQgEs3N9D6qx5v9>
If you indicate you’re available for interview, our UX designer Claire
may contact you to schedule a video call with you.
There will be a summary of the points brought up no later than May 5
in this thread.
First alpha release of OCaml 5.1.0
══════════════════════════════════
Archive:
<https://discuss.ocaml.org/t/first-alpha-release-of-ocaml-5-1-0/11949/1>
octachron announced
───────────────────
Four months after the release of OCaml 5.0.0, the set of new features
for the future version 5.1.0 of OCaml has been frozen. I am thus happy
to announce the first alpha release for OCaml 5.1.0 .
This alpha version is here to help fellow hackers join us early in our
bug hunting and opam ecosystem fixing fun (see below for the
installation instructions). You can see the progress on this front at
<https://github.com/ocaml/opam-repository/issues/23669>
If you find any bugs, please report them here:
<https://github.com/ocaml/ocaml/issues>
Note that this early alpha version is missing two important fixes for
the garbage collector and Windows support. Those fixes will be
available before the beta. The full release is expected to happen in
July.
If you are interested by the ongoing list of new features and bug
fixes, the updated change log for OCaml 5.1.0 is available at:
<https://github.com/ocaml/ocaml/blob/5.1/Changes>
Installation Instructions
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌
The base compiler can be installed as an opam switch with the
following commands on opam 2.1:
┌────
│ opam update
│ opam switch create 5.1.0~alpha1
└────
For previous version of opam, the switch creation command line is
slightly more verbose:
┌────
│ opam update
│ opam switch create 5.1.0~alpha1
│ --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git
└────
If you want to tweak the configuration of the compiler, you can switch
to the option variant with:
┌────
│ opam update
│ opam switch create <switch_name> ocaml-variants.5.1.0~alpha1+options <option_list>
└────
where `option_list' is a comma separated list of ocaml-option-*
packages. For instance, for a flambda and no-flat-float-array switch:
┌────
│ opam switch create 5.1.0~alpha1+flambda+nffa ocaml-variants.5.1.0~alpha1+options
│ ocaml-option-flambda ocaml-option-no-flat-float-array
└────
The command line above is slightly more complicated for opam version
anterior to 2.1:
┌────
│ opam update
│ opam switch create <switch_name>
│ --packages=ocaml-variants.5.1.0~alpha1+options,<option_list>
│ --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git
└────
In both cases, all available options can be listed with “opam search
ocaml-option”.
The source code for the alpha is also available at these addresses:
• <https://github.com/ocaml/ocaml/archive/5.1.0-alpha1.tar.gz>
• <https://caml.inria.fr/pub/distrib/ocaml-5.1/ocaml-5.1.0~alpha1.tar.gz>
Interesting OCaml Articles
══════════════════════════
Archive:
<https://discuss.ocaml.org/t/interesting-ocaml-articles/1867/101>
james woodyatt announced
────────────────────────
Our @yallop is one of the authors of this paper about parsing.
[flap: A Deterministic Parser with Fused Lexing]
Lexers and parsers are typically defined separately and
connected by a token stream. This separate definition is
important for modularity and reduces the potential for
parsing ambiguity. However, materializing tokens as data
structures and case-switching on tokens comes with a cost.
We show how to fuse separately-defined lexers and parsers,
drastically improving performance without compromising
modularity or increasing ambiguity. We propose a
deterministic variant of Greibach Normal Form that ensures
deterministic parsing with a single token of lookahead and
makes fusion strikingly simple, and prove that normalizing
context free expressions into the deterministic normal
form is semantics-preserving. Our staged parser combinator
library, flap, provides a standard interface, but
generates specialized token-free code that runs two to six
times faster than ocamlyacc on a range of benchmarks.
[flap: A Deterministic Parser with Fused Lexing]
<https://arxiv.org/abs/2304.05276>
Porting a OCaml3-based game to the latest version of OCaml
══════════════════════════════════════════════════════════
Archive:
<https://discuss.ocaml.org/t/porting-a-ocaml3-based-game-to-the-latest-version-of-ocaml/11968/1>
nova4216 asked
──────────────
Guys, there is not a trivial task.
There is a game engine on OCaml + a game written on this game engine.
This was all written about 10 years ago, on version Ocaml 3. Camplp4
was used as a preprocessor. And the compiler was patched to correctly
generate ARM code for iOS.
The task is to port the engine and the game to the latest version of
Ocaml which supports arm64 on all platforms by default.
We can make the engine Open Source - maybe it will help the Ocaml
community to release more games in their favorite language for mobile
platforms.
If anyone is interested in the task - feel free to contact me, and we
will be glad to discuss the details! Of course, there will be a reward
for successful completion of the task.
nova4216 at gmail.com
nova4216 later added
────────────────────
The game itself is called The Big Farm Theory. The engine in this
thread is Lightning:
• <https://github.com/serp256/lightning>
• <https://github.com/serp256/lighttools>
Old CWN
═══════
If you happen to miss a CWN, you can [send me a message] and I’ll mail
it to you, or go take a look at [the archive] or the [RSS feed of the
archives].
If you also wish to receive it every week by mail, you may subscribe
[online].
[Alan Schmitt]
[send me a message] <mailto:alan.schmitt at polytechnique.org>
[the archive] <https://alan.petitepomme.net/cwn/>
[RSS feed of the archives] <https://alan.petitepomme.net/cwn/cwn.rss>
[online] <http://lists.idyll.org/listinfo/caml-news-weekly/>
[Alan Schmitt] <https://alan.petitepomme.net/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.idyll.org/pipermail/caml-news-weekly/attachments/20230418/47e3e845/attachment-0001.html>
More information about the caml-news-weekly
mailing list