Hello Here is the latest OCaml Weekly News, for the week of September 10 to 17, 2024. Table of Contents ───────────────── Ptime 1.2.0 – Mtime 2.1.0 – Qrc 0.2.0 Unicode 16.0.0 update for Uucd, Uucp, Uunf and Uuseg Outreachy Demo Presentation Live Stream to follow OCaml Workshop, ML Workshop, and other talks at ICFP DkML 2.1.2 and opam 2.2.0 store v0.1.0 Tsdl 1.1.0 OCaml-css 0.2.0 OCaml-stk 0.2.0 and Chamo 4.1.0 DkCoder 2.1.3 Other OCaml News Old CWN Ptime 1.2.0 – Mtime 2.1.0 – Qrc 0.2.0 ═════════════════════════════════════ Archive: Daniel Bünzli announced ─────────────────────── There are new releases of these packages: • [Ptime] POSIX time for OCaml, [release notes], [docs] • [Mtime] Monotonic time for OCaml, [release notes], [docs] • [Qrc] QR code encoder for OCaml, [release notes], [docs] See the individual release notes for details about the changes. The library structure of Ptime and Mtime was changed to align it on the mythical library convention and make it for less surprising names (it used to make sense, it no longer does): • The `{M,P}time_clock' modules are now in the `{p,m}time.clock' libraries as they should be. These libraries were also made to [export] the base `{p,m}time' library so that you can trim you `requires' when you use the clocks. • The libraries `{p,m}time.clock.os' are deprecated. They now simply export `{p,m}time.clock' and warn on usage. Best and a big thanks to my [donors] [Ptime] [release notes] [docs] [Mtime] [release notes] [docs] [Qrc] [release notes] [docs] [export] [donors] Unicode 16.0.0 update for Uucd, Uucp, Uunf and Uuseg ════════════════════════════════════════════════════ Archive: Daniel Bünzli announced ─────────────────────── Unicode 16.0.0 was released on September 10th. It adds 5185 new characters for a total of 154'998 characters. If you are into retrocomputing or terminal graphics this may be your ultimate chance to find an odd character to make an effect among the 686 new [symbols for legacy computing] that are added – I'm hearing this may me be the last batch, the resource is finite! See the [announcement page] for links to all the other equally interesting additions. If you are obsessed about deep linking into standard definitions, note that the normative core specification becomes a proper [HTML document]; rather than a bunch of PDF files or that 1400 pages hard-copy I once purchased for 5.0.0 circa 2007 :–). The neat result is that we can now precisely hyperlink to the [normative definition] of an OCaml [`Uchar.t'] value. Accordingly these libraries had to be updated (aggregated, boring, release notes [here]) • [Uucd] 16.0.0 Unicode character database decoder for OCaml, [docs] • [Uucp] 16.0.0 Unicode character properties for OCaml, [docs] • [Uunf] 16.0.0 Unicode text normalization for OCaml, [docs] • [Uuseg] 16.0.0 Unicode text segmentation for OCaml, [docs] Both `Uucd' and `Uucp' are incompatible releases sinces new block and script enumerants were added. Other than that the minimal Unicode introduction and Unicode OCaml tips is still [here] and remember that despite the uninformed myths OCaml :heart: Unicode. A big thanks for funding from the [OCaml Software Foundation] and from my faithful [donors]. [symbols for legacy computing] [announcement page] [HTML document] [normative definition] [`Uchar.t'] [here] [Uucd] [docs] [Uucp] [docs] [Uunf] [docs] [Uuseg] [docs] [here] [OCaml Software Foundation] [donors] Outreachy Demo Presentation ═══════════════════════════ Archive: Patrick Ferris announced ──────────────────────── The demo presentation video is now online: – thank you to everyone who joined and particularly the mentors, co-mentors and interns! A big thank you also to [Tarides] and [Jane Street] for providing resources and funding to make this round possible. A reminder that _today_ is the last day to sign up to the next round – [Outreachy December 2024 Round]! [Tarides] [Jane Street] [Outreachy December 2024 Round] Live Stream to follow OCaml Workshop, ML Workshop, and other talks at ICFP ══════════════════════════════════════════════════════════════════════════ Archive: jbeckford announced ─────────────────── FYI: For people like me who were on vacation or otherwise unavailable, the several hour Live Stream is still available. The intro to the workshop and the first OCaml talk start at . DkML 2.1.2 and opam 2.2.0 ═════════════════════════ Archive: jbeckford announced ─────────────────── DkML 2.1.3 was released. The major changes are: • Upgraded from opam 2.2.0 to opam 2.2.1. • The ocaml/opam-repository tag was advanced to Sep 10, 2024. • bugfix: `dk Ml.Switch init' was broken on Linux and macOS. DkML 2.1.2 had incorrectly pinned the `dkml-host-abi' and `dkml-target-abi' of the master DkML build machine. • Allow prereleases of Visual Studio; requested at . Upgrading is: ┌──── │ winget remove dkml # Ignore "exit code: 4294967295" │ winget install dkml └──── The full release notes are at . store v0.1.0 ════════════ Archive: Basile Clément announced ──────────────────────── I would like to announce the first release of `store' ([docs]), a library providing a snapshottable bag of mutable references, an efficient data-structure for back-tracking workloads. To install it, type `opam update && opam install store'. Store provides a simple API for capturing and restoring state as well as easy-to-use high-level wrappers to automatically rollback changes on failure (`tentatively') or unconditionally (`temporarily'). It boasts almost-zero overhead when back-tracking is not used and best-in-class performance for back-tracking use cases. The design and implementation of Store is described in the paper [Snapshottable stores], which was given a Distinguished Paper award at this year's ICFP in Milan. As recognized by this award, the paper is well-written and easy to understand; please give it a read if you are interested in either back-tracking workloads or subtle data structure invariants! I also want to give a shout-out to François Pottier's Monolith, which proved invaluable during the development of Store to find and diagnose subtle bugs. Store was developed through collaboration between myself (Basile Clément) at OCamlPro and Gabriel Scherer at Inria, and the persistent interface was formally verified by Clément Allain and Alexandre Moine at Inria. [docs] [Snapshottable stores] Tsdl 1.1.0 ══════════ Archive: Daniel Bünzli announced ─────────────────────── There's a new release of [Tsdl], thin bindings to the C [SDL library]. See the [release notes] for details. • Docs: [online] or `odig doc tsdl' • Install: `opam install tsdl' Daniel A big thanks to my [donors]. [Tsdl] [SDL library] [release notes] [online] [donors] OCaml-css 0.2.0 ═══════════════ Archive: Zoggy announced ─────────────── [OCaml-css] 0.2.0 is released and already available in opam (package `css'). OCaml-css is a library to parse and print CSS. ([docs]) Main changes are the introduction of property spaces and partial handling of nested rules. Properties are now defined in [spaces]. A [Css] space is predefined, with some CSS properties, but you can define a new space with specific properties to use the CSS syntax for these properties in your application. (this is what is done in the to be not yet released 0.2.0 version of [stk]). Nested style rules are now parsed and can be [expanded]. Nested @-rules are not handled yet. [OCaml-css] [docs] [spaces] [Css] [stk] [expanded] OCaml-stk 0.2.0 and Chamo 4.1.0 ═══════════════════════════════ Archive: Zoggy announced ─────────────── Stk ╌╌╌ A new release of [OCaml-stk], 0.2.0, is now available in opam (package `stk'). OCaml-stk is a Graphical User Interface library based on on [libSDL 2], through the [Tsdl] bindings. As the library is under heavy development, this release includes [many changes]: new widgets, better memory management, css-like theming, … By cloning [the repository] and running `make', you can then run `./_build/default/examples/examples.exe'. This example application contains demonstrations of each widget with the corresponding code in the same window. [OCaml-stk] [libSDL 2] [Tsdl] [many changes] [the repository] Chamo ╌╌╌╌╌ A new release of [Chamo], 4.1.0, is also available in opam (package `chamo'). Chamo is a source code editor, even if it can be used to edit any text file. It is based on OCaml-stk. This release contains small bug fixes and follows changes in OCaml-stk. [Chamo] DkCoder 2.1.3 ═════════════ Archive: jbeckford announced ─────────────────── I am happy to announce another release of DkCoder - a no-install OCaml-based scripting framework. Major changes: • Split out the Java-like packaging and security tools into the MlFront project: . • The DkCoder and MlFront version numbers are now in sync with DkML version numbers. However, DkCoder is **still alpha** and there is at least one breaking change coming. • Several third-party "Us" scripts are embedded and supported. (They are listed at bottom of this post). Docs: The main doc page is . But I don't yet have good reference docs. The samples below have been updated and are good ways to see what DkCoder can do (use the `V2_1' branches): • There are many bug fixes and new features. The full list is at [https://github.com/diskuv/dkcoder/blob/1.0/CHANGES.md#2132] - all the sections from `0.4.0.1' to `2.1.3.2' (inclusive) are new. [https://github.com/diskuv/dkcoder/blob/1.0/CHANGES.md#2132] New "Us" scripts ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ /These scripts can be run inside any of the sample projects above, or used as ordinary modules in your own DkCoder project source code. Some scripts, but not all, have a `--help' option./ ┌──── │ ./dk DkFs_C99.Dir - Directory manipulation operations. │ ./dk DkFs_C99.File - (no help) File manipulation operations. │ ./dk DkFs_C99.Path - Path manipulation operations. │ ./dk DkNet_Std.Browser - Browser operations. │ ./dk DkNet_Std.Http - Download content. │ ./dk DkDev_Std.Legal.Record - Asks for and records your acceptance of legal terms and agreements. │ ./dk DkDev_Std.Exec - Execute a command in the DkCoder 2.1 runtime environment. │ ./dk DkDev_Std.Export - Create an `exports` field inside dkproject.jsonc summarizing all the You libraries. │ ./dk DkDev_Std.Jsontree - (no help) For in-place edits of JSON files. │ ./dk DkStdRestApis_Gen.* - (no help) (unstable, not ready). OpenAPI 3 service and client generator. └──── Other OCaml News ════════════════ >From the ocaml.org blog ─────────────────────── Here are links from many OCaml blogs aggregated at [the ocaml.org blog]. • [Upcoming OCaml Events (Sep 15, 2024 and onwards)] • [Feature Parity Series: Compaction is Back!] [the ocaml.org blog] [Upcoming OCaml Events (Sep 15, 2024 and onwards)] [Feature Parity Series: Compaction is Back!] 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] [the archive] [RSS feed of the archives] [caml-list] [Alan Schmitt]