Attn: Development Editor, Latest OCaml Weekly News

Alan Schmitt <[email protected]>
Newsgroups gmane.comp.lang.caml.inria
Message-ID <[email protected]>
Hello

Here is the latest OCaml Weekly News, for the week of June 25 to July
02, 2024.

Table of Contents
─────────────────

OCaml Tech Talk | Editor Features
New release of Ocsipersist
Preview of Godotcaml for the Godot 4.2 Game Engine
euler 0.3
dune 3.15
dune 3.16
Other OCaml News
Old CWN


OCaml Tech Talk | Editor Features
═════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-ocaml-tech-talk-editor-features/14746/5>


Continuing this thread, PizieDust announced
───────────────────────────────────────────

  The video is now uploaded on YouTube at: [Ocaml | Editor Features]


[Ocaml | Editor Features] <https://youtu.be/I-e3qzPzzuI>


New release of Ocsipersist
══════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-new-release-of-ocsipersist/14874/1>


Vincent Balat announced
───────────────────────

  [Ocsipersist] has been recently updated.

  Ocsipersist is an OCaml interface for key-value stores, with three
  implementations based on SQLite, DBM and PostgreSQL.

  It proposes several interfaces: basic string to string tables, typed
  tables with custom (de)serialisation functions, persistent variables …

  This new version 2.0.0, adds the following features:
  ‣ some dependencies removed
  ‣ Basic interface for persistent references, in the style of Eliom's
    [scoped references] (but without scope)

  Example of use of persistent references from the toplevel, with the
  sqlite backend:
  ┌────
  │ # #require "lwt_ppx";;
  │ (* #thread;; if you are using OCaml < 5.0.0 *)
  │ # #require "ocsipersist-sqlite";;
  │ # Ocsipersist.init ();;
  │ # let r = Ocsipersist.Ref.ref ~persistent:"r" 444;;
  │ val r : int Ocsipersist.Ref.t = <abstr>
  │ # Lwt_main.run (let%lwt v = Ocsipersist.Ref.get r in print_int v; Lwt.return_unit);;
  │ 444- : unit = ()
  └────

  Backends: Choose the backend you prefer by using packages
  `ocsipersist-sqlite', `ocsipersist-dbm' or `ocsipersist-postgresql'.

  Configuration:
  ‣ Use module `Ocsipersist_settings', provided by each backend to
    configure the database
  ‣ Opam packages `ocsipersist-sqlite-config', `ocsipersist-dbm-config'
    or `ocsipersist-postgresql-config' make it possible to configure the
    backend from Ocsigen Server's config file (breaking change: this was
    provided by `ocsipersist-sqlite', `ocsipersist-dbm' or
    `ocsipersist-postgresql' before. You'll need to update your
    configuration files).


[Ocsipersist] <https://ocsigen.org/ocsipersist/>

[scoped references]
<https://ocsigen.org/eliom/latest/api/server/Eliom_reference>


Preview of Godotcaml for the Godot 4.2 Game Engine
══════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-preview-of-godotcaml-for-the-godot-4-2-game-engine/14875/1>


Matt Walker announced
─────────────────────

  I've released a small preview of a project I've been working on.  It's
  bindings to the Godot 4.2 game engine from OCaml.

  To keep this announcement short, I've posted a longer explanation on
  my blog:

  <https://fizzixnerd.com/blog/2024-06-24-announcing-godotcaml/>

  Here is the git repo:

  <https://github.com/Fizzixnerd/godotcaml>

  Here is another short blog post explaining how to get up and started
  with it:

  <https://fizzixnerd.com/blog/2024-06-28-godotcaml-basic-setup/>

  Do not expect much, I've basically just reached the point where Godot
  and OCaml can call each other.  I just thought people might think it's
  cool!  Open issues or discuss in this thread if you'd like; another
  blog post will be forthcoming covering the current structure of the
  code if there seems to be interest.


euler 0.3
═════════

  Archive: <https://discuss.ocaml.org/t/ann-euler-0-3/14877/1>


glen announced
──────────────

  It is my pleasure to announce the release of Euler version
  0.3. :slight_smile:

  Euler is an arithmetic library for OCaml integers. For more details,
  please read *[the repo]*​’s README or browse *[the docs]*.

  In version 0.3:
  • some amount of optimization (:magic_wand: magic tricks to compute
    logarithms, see source code of [`log2sup'] and [`logsup']);
  • new functions (for instance: root extraction, multiplicative order);
  • `Arith.gcdext' now returns minimal coefficients and avoids overflows
    (which was [not trivial]);
  • factorization now performs some steps of Fermat’s factor searching,
    which I think closes the gap with [Owl] (mentioning this because
    @struktured [had asked me] how Euler compared with Owl, and Fermat’s
    algorithm was the only integer arithmetic operation that I found in
    Owl not provided by Euler).

  The full list of changes is found in the changelog, in the repo.

  Happy factorizing!

  (This is a new topic because I cannot edit [the initial one].)


[the repo] <https://github.com/gmevel/euler-lib>

[the docs]
<https://gmevel.github.io/euler-lib/index.html/euler/Euler/index.html>

[`log2sup']
<https://github.com/gmevel/euler-lib/blob/0.3/src/Arith.ml#L621-L695>

[`logsup']
<https://github.com/gmevel/euler-lib/blob/0.3/src/Arith.ml#L697-L750>

[not trivial]
<https://github.com/gmevel/euler-lib/blob/0.3/src/Arith.ml#L1390-L1514>

[Owl] <https://github.com/owlbarn/owl>

[had asked me]
<https://discuss.ocaml.org/t/ann-euler-an-arithmetic-library-for-native-integers/12482/9>

[the initial one]
<https://discuss.ocaml.org/t/ann-euler-an-arithmetic-library-for-native-integers/12482>


dune 3.15
═════════

  Archive: <https://discuss.ocaml.org/t/ann-dune-3-15/14438/4>


Etienne Millon announced
────────────────────────

  We've released 3.15.3 (some time ago already) with the following
  changes:

  *3.15.3 (2024-05-24)*


Fixed
╌╌╌╌╌

  • Fix interpretation of `exists_if' predicate in `META' files of
    installed libraries containing more than one element. (#10564, fixes
    #10563, @dbuenzli, @nojb)

  • Fix TSAN warning in wait4 stubs (#10554, fixes #10553, @emillon)


dune 3.16
═════════

  Archive: <https://discuss.ocaml.org/t/ann-dune-3-16/14889/1>


Etienne Millon announced
────────────────────────

  We're happy to announce the release of Dune 3.16.0.

  Among the list of chances, this release contains improvements to
  melange support and a way to look for references in a whole project
  using merlin and ocaml-lsp.

  *3.16.0 (2024-06-17)*


Added
╌╌╌╌╌

  • allow libraries with the same `(name ..)' in projects as long as
    they don't conflict during resolution (via `enabled_if'). (#10307,
    @anmonteiro, @jchavarri)

  • `dune describe pp' now finds the exact module and the stanza it
    belongs to, instead of guessing the name of the preprocessed
    file. (#10321, @anmonteiro)

  • Print the result of `dune describe pp' with the respective dialect
    printer. (#10322, @anmonteiro)

  • Add new flag `--context' to `dune ocaml-merlin', which allows to
    select a Dune context when requesting Merlin config. Add `dune
    describe contexts' subcommand. Introduce a field
    `generate_merlin_rules' for contexts declared in the workspace, that
    allows to optionally produce Merlin rules for other contexts besides
    the one selected for Merlin (#10324, @jchavarri)

  • melange: add include paths for private library `.cmj' files during
    JS emission. (#10416, @anmonteiro)

  • `dune ocaml-merlin': communicate additional directives
    `SOURCE_ROOT', `UNIT_NAME' (the actual name with wrapping) and
    `INDEX' with the paths to the index(es). (#10422, @voodoos)

  • Add a new alias `@ocaml-index' that uses the `ocaml-index' binary to
    generate indexes that can be read by tools such as Merlin to provide
    project-wide references search. (#10422, @voodoos)

  • merlin: add optional `(merlin_reader CMD)' construct to `(dialect)'
    stanza to configure a merlin reader (#8567, @andreypopp)


Changed
╌╌╌╌╌╌╌

  • melange: treat private libraries with `(package ..)' as public
    libraries, fixing an issue where `import' paths were wrongly
    emitted. (#10415, @anmonteiro)

  • install `.glob' files for Coq theories too (#10602, @ejgallego)


Fixed
╌╌╌╌╌

  • Don't try to document non-existent libraries in doc-new target
    (#10319, fixes #10056, @jonludlam)

  • Make `dune-site''s `load_all' function look for `META' files so that
    it doesn't fail on empty directories in the plugin directory
    (#10458, fixes #10457, @shym)

  • Fix incorrect warning for libraries defined inside non-existant
    directories using `(subdir ..)' and used by executables using
    `dune-build-info' (#10525, @rgrinberg)

  • Don't try to take build lock when running `coq top --no-build'
    (#10547, fixes #7671, @lzy0505)

  • Make sure to truncate dune's lock file after locking and unlocking
    so that users cannot observe incorrect pid's (#10575, @rgrinberg)

  • mdx: link mdx binary with `byte_complete'. This fixes `(libraries)'
    with foreign archives on Linux. (#10586, fixes #10582, @anmonteiro)

  • virtual libraries: fix an issue where linking an executable
    involving several virtual libries would cause an error. (#10581,
    fixes #10460, @rgrinberg)


Other OCaml News
════════════════

From the ocaml.org blog
───────────────────────

  Here are links from many OCaml blogs aggregated at [the ocaml.org
  blog].

  • [Creating the SyntaxDocumentation Command - Part 2: OCaml LSP]
  • [Testing MirageVPN against OpenVPN™]
  • [Enhancing the OCaml.org Community Page: Boosting UX and UI Based on
    User Research]
  • [qubes-miragevpn, a MirageVPN client for QubesOS]


[the ocaml.org blog] <https://ocaml.org/blog/>

[Creating the SyntaxDocumentation Command - Part 2: OCaml LSP]
<https://tarides.com/blog/2024-07-12-creating-the-syntaxdocumentation-command-part-2-ocaml-lsp>

[Testing MirageVPN against OpenVPN™]
<https://blog.robur.coop/articles/miragevpn-testing.html>

[Enhancing the OCaml.org Community Page: Boosting UX and UI Based on
User Research]
<https://tarides.com/blog/2024-06-26-enhancing-the-ocaml-org-community-page-boosting-ux-and-ui-based-on-user-research>

[qubes-miragevpn, a MirageVPN client for QubesOS]
<https://blog.robur.coop/articles/qubes-miragevpn.html>


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
  to the [caml-list].

  [Alan Schmitt]


[send me a message] <mailto:[email protected]>

[the archive] <https://alan.petitepomme.net/cwn/>

[RSS feed of the archives] <https://alan.petitepomme.net/cwn/cwn.rss>

[caml-list] <https://sympa.inria.fr/sympa/info/caml-list>

[Alan Schmitt] <https://alan.petitepomme.net/>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.