[cwn] Attn: Development Editor, Latest OCaml Weekly News
Alan Schmitt
alan.schmitt at polytechnique.org
Tue Jul 4 02:18:50 PDT 2023
Hello
Here is the latest OCaml Weekly News, for the week of June 27 to July
04, 2023.
Table of Contents
─────────────────
New release of CAISAR, a platform for characterizing AI safety and robustness
stdlib-random release 1.1.0
dune 3.8.0
plotly release 1.0.0, a wrapper for Plotly open source graphing library
Help us Make the New Learn Area on OCaml.org Awesome
Sedlex 3.2
dune 3.9.0
Other OCaml News
Old CWN
New release of CAISAR, a platform for characterizing AI safety and robustness
═════════════════════════════════════════════════════════════════════════════
Archive:
<https://discuss.ocaml.org/t/ann-new-release-of-caisar-a-platform-for-characterizing-ai-safety-and-robustness/12491/1>
Julien Girard announced
───────────────────────
We are happy to announce the release of CAISAR 0.2, to celebrate (with
one week delay) the 234th birthday of the Serment du jeu de Paume. On
this day, courageous people took a vow to abolish autocracy and fight
for their rights.
This release is the result of more than one year of work. Here are
some of the most prominent changes that we are happy to share. The
release is available under our [gitlab], on opam and on Dockerhub. You
may check our [website] for additional infos.
[gitlab] <https://git.frama-c.com/pub/caisar/>
[website] <https://caisar-platform.github.io/website/>
New prover support
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌
We added the support of several provers:
• the alpha-beta-CROWNprover; winner of the 2021 and 2022 edition of
the VNN-COMP
• the nnenumhttps://github.com/stanleybak/nnenum) prover
• the AIMOS metamorphic testing prover, for now internally developped
at CEA
We also added support to the VNNLib standard. In the future, adding a
VNNLib compliant prover to CAISAR would only require to edit two small
files, which is a huge step towards integrating more provers. This
also results in supporting all solvers that support the SMTLIB2
language (which VNNLib is a subset of). We implemented a custom
transformation in CAISAR that automatically translates the neural
network control flow into a SMT formula. This custom transformation
had been tested for the CVC5 solver.
Manual
╌╌╌╌╌╌
The first version of the CAISAR manual is available under the
documentation section of our website. It includes detailed
installation instructions, a synopsis of common commands and two
tutorials on classical benchmarks. The current version of those
tutorials make use of experimental features that we plan to document
in a future release. We hope this manual will provide a good entry
point to CAISAR, and formal verification of machine learning programs
at large.
Usability
╌╌╌╌╌╌╌╌╌
We added various utilities to make CAISAR slicker to use, such as
several logging options, verification through a JSON file, and
reworked help messages.
We are also looking for fixed-term positions, intern and PhD students
to work on CAISAR, check our website or the ocaml job board for more
infos.
stdlib-random release 1.1.0
═══════════════════════════
Archive:
<https://discuss.ocaml.org/t/ann-stdlib-random-release-1-1-0/12495/1>
octachron announced
───────────────────
The library `stdlib-random' is a small compatibility library that
provides compiler-independent implementations of the PRNGs used in the
history of the standard library `Random':
• stdlib-random.v3: implement the PRNG used in OCaml 3.07 to 3.11
• stdlib-random.v4: implement the PRNG used in OCaml 3.12 to 4.14
• stdlib-random.v5: implement the PRNG currently used in OCaml 5
• stdlib-random.v5o: implement the PRNG currently used in OCaml 5 in
pure OCaml
This library is targeted toward programs that need a deterministic and
stable behavior of the `Random' module across OCaml versions.
The newly released version 1.1.0 updates all implementations to
provide the new PRNG state serialization functions
(`Random.State.to_binary_string' and `Random.State.of_binary_string')
that will be available in OCaml 5.1.0 .
dune 3.8.0
══════════
Archive: <https://discuss.ocaml.org/t/ann-dune-3-8-0/12291/3>
Etienne Millon announced
────────────────────────
And here’s the changelog for dune 3.8.3, just released, which fixes
two important bugs on Linux and Windows:
3.8.3 (2023-06-27)
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌
• Fix deadlock on Windows (#8044, @nojb)
• When using `sendfile' to copy files on Linux, fall back to the
portable version if it fails at runtime for some reason (NFS, etc).
(#8049, fixes #8041, @emillon)
plotly release 1.0.0, a wrapper for Plotly open source graphing library
═══════════════════════════════════════════════════════════════════════
Archive:
<https://discuss.ocaml.org/t/ann-plotly-release-1-0-0-a-wrapper-for-plotly-open-source-graphing-library/12506/1>
Jun Furuse announced
────────────────────
I released an OPAM package plotly, a wrapper for [Plotly Open Source
Graphing Library].
It provides interfaces for 2 backends:
• “Python” version, using the Python library of Plotly via Pyml, for
standalone programs
• “JSOO” version, using the JS library of Plotly via JSOO, for
browsers
It supports only a few charts (scatter, scatter3d, bar, pie) and
options currently, but it should be easy to add more. Enjoy!
[Plotly Open Source Graphing Library]
<https://plotly.com/graphing-libraries/>
n4323 added
───────────
[missing source link]
[missing source link] <https://github.com/camlspotter/plotly-ocaml>
Help us Make the New Learn Area on OCaml.org Awesome
════════════════════════════════════════════════════
Archive:
<https://discuss.ocaml.org/t/help-us-make-the-new-learn-area-on-ocaml-org-awesome/12508/1>
Sabine Schmaltz announced
─────────────────────────
I’m here to draw on your collective wisdom again!
Here’s a work-in-progress draft of the new Learn Area landing page:
<https://global.discourse-cdn.com/business7/uploads/ocaml/optimized/2X/a/a7191d72fd483e694ddd5e9e661d02cd78f6542d_2_308x1000.png>
[Design on Figma]
As you can see, there’s still work to be done. For example, we’re
going to make the “Download” and the “Standard Library” boxes a bit
smaller. And, clearly, this design is using placeholder content.
All the design has been done with one thing in mind: Flexibility to
arrange content in such a way that we can show different groups of
users what they need to see. We can rearrange and experiment with the
blocks you see on the page.
From the feedback we got in
<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/2>,
we identified a common pattern that all good programming language
documentation pages have:
There is a progression from beginner content to advanced content,
focused clearly on the things that people need to learn to be
productive with the language.
Now… here’s what I ask you to do: Imagine *which documentation do we
have to give people* here on the main page of the Learn Area *to make
them happy and productive* with OCaml:
1. Which topics would have to be covered by the “tutorial blocks”?
2. Which books do we feature?
The point of the main page of the Learn area is to quickly guide
people into the direction they may be interested in.
*Your feedback directly helps us prioritize the creation of missing
documentation and helps us rearrange & improve the existing
documentation.* Please do be specific and give us titles for the pages
you want to see, as well as a short description about what the user
would find there.
[Design on Figma]
<https://www.figma.com/proto/Aqk5y03fsaCuhTSywmmY06/OCaml.org-Public-Designs?type=design&node-id=130-767&t=7ICA3gfxHteFI0le-0&scaling=min-zoom&page-id=130%3A754>
Sedlex 3.2
══════════
Archive: <https://discuss.ocaml.org/t/ann-sedlex-3-2/12513/1>
Romain Beauxis announced
────────────────────────
Sedlex 3.2 is out! 🎉
Sedlex is a unicode-friendly lexer generator for OCaml originally
written by Alain Frisch at LexiFi and now maintained under the
[ocaml-community] umbrella.
You read the notes for this release here:
<https://github.com/ocaml-community/sedlex/releases/tag/v3.2> and an
updated `opam' package should [be available soon].
This release brings improvements on a couple of fronts:
• Better performance when parsing in-memory strings (up to `20x' on
large ones!)
• Cleaned up logic with better `MalFormed' error reporting
• A new position API returning positions in bytes rather than code
points.
The last point might be of interest to most users of the library. It
is in fact quite likely that a lot of users were already expecting the
existing position API to return positions in bytes. If so, feel free
to upgrade to this version!
[ocaml-community] <https://github.com/ocaml-community>
[be available soon]
<https://github.com/ocaml/opam-repository/pull/24027>
dune 3.9.0
══════════
Archive: <https://discuss.ocaml.org/t/ann-dune-3-9-0/12530/1>
Etienne Millon announced
────────────────────────
The Dune team is pleased to announce the release of Dune 3.9.0. It
comes with many new features, including:
• a new `dune show' command to display various pieces of information.
• some fixes in the dialect support that will make it easier to work
with Dream’s eml files
• a new `(build_if)' toggle in the `(test)' stanza which will help
packaging nonportable tests and benchmarks.
Added
╌╌╌╌╌
• Include the time it takes to read/write state files when
`--trace-file' is enabled (#7960, @rgrinberg)
• Include source tree scans in the traces produced by `--trace-file'
(#7937, @rgrinberg)
• Add `--all' option to `dune rpc status' to show all Dune RPC servers
running. (#8011, fix #7902, @Alizter)
• Add additional metadata to the traces provided by `--trace-file'
whenever `--trace-extended' is passed (#7778, @rleshchinskiy)
• `$ dune describe' is now a command group, so arguments to
subcommands must be passed after subcommand itself. (#7919,
@Alizter)
• Add `dune show' command group which is an alias of `dune describe'.
(#7946, @Alizter)
• Add `dune show env' command and make `dune printenv' an alias of it.
(#7985, @Alizter)
• Add commands `dune show targets' and `dune show aliases' that
display all the available targets and aliases in a given directory
respectively. (#7770, grants #265, @Alizter)
• Extensions used in `(dialect)' can contain periods (e.g.,
`cppo.ml'). (#7782, fixes #7777, @nojb)
• The `interface' and `implementation' fields of a `(dialect)' are now
optional (#7757, @gpetiot)
• Add `(build_if)' to the `(test)' stanza. When it evaluates to false,
the executable is not built. (#7899, fixes #6938, @emillon)
• Allow `(include_subdirs qualified)' to be used when libraries define
a `(modules ...)' field (#7797, fixes #7597, @anmonteiro)
• Allow multiple globs in library’s `(stdlib (internal_modules ..))'
(@anmonteiro, #7878)
Changed
╌╌╌╌╌╌╌
• Do not re-run OCaml syntax files on every iteration of the watch
mode. This is too memory consuming. (#7894, fix #6900, @rgrinberg)
• Attach melange rules to the default alias (#7926, @haochenx)
• Compute digests and manage sandboxes in background threads (#7947,
@rgrinberg)
Fixed
╌╌╌╌╌
• Validate file extension for `$ dune ocaml top-module'. (#8005, fixes
#8004, @3Rafal)
• Cinaps: The promotion rules for cinaps would only offer one file at
a time no matter how many promotions were available. Now we offer
all the promotions at once (#7901, @rgrinberg)
• Add necessary parentheses in generated opam constraints (#7682,
fixes #3431, @Lucccyo)
Removed
╌╌╌╌╌╌╌
• Remove some compatibility code for old version of dune that
generated `.merlin' files. Now dune will never remove `.merlin'
files automatically (#7562)
• In opam constraints, reject `(and)' and `(or)' with no arguments at
parse time (#7730, @emillon)
Other OCaml News
════════════════
From the ocaml.org blog
───────────────────────
Here are links from many OCaml blogs aggregated at [the ocaml.org
blog].
• [EmelleTV: Talking with Louis Roché about OCaml and Ahrefs]
[the ocaml.org blog] <https://ocaml.org/blog/>
[EmelleTV: Talking with Louis Roché about OCaml and Ahrefs]
<https://tech.ahrefs.com/emelletv-talking-with-louis-roche%CC%81-about-ocaml-and-ahrefs-7767afbfbdb9>
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/20230704/da7f96fb/attachment-0001.html>
More information about the caml-news-weekly
mailing list