[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