[Caml-list] Attn: Development Editor, Latest OCaml Weekly News

Alan Schmitt
2024-09-17T14:02:54Z

[-- Attachment #1: Type: text/plain, Size: 17656 bytes --]

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:
<https://discuss.ocaml.org/t/ann-ptime-1-2-0-mtime-2-1-0-qrc-0-2-0/15268/1>

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] <https://erratique.ch/software/ptime>

[release notes]
<https://github.com/dbuenzli/ptime/blob/master/CHANGES.md#v120-2024-09-10-zagreb>

[docs] <https://erratique.ch/software/ptime/doc>

[Mtime] <https://erratique.ch/software/mtime>

[release notes]
<https://github.com/dbuenzli/mtime/blob/master/CHANGES.md#v210-2024-09-10-zagreb>

[docs] <https://erratique.ch/software/mtime/doc>

[Qrc] <https://erratique.ch/software/qrc>

[release notes]
<https://github.com/dbuenzli/qrc/blob/master/CHANGES.md#v020-2024-09-10-zagreb>

[docs] <https://erratique.ch/software/qrc/doc>

[export]
<https://discuss.ocaml.org/t/proposal-a-new-exports-field-in-findlib-meta-files>

[donors] <https://github.com/sponsors/dbuenzli>

Unicode 16.0.0 update for Uucd, Uucp, Uunf and Uuseg
════════════════════════════════════════════════════

Archive:
<https://discuss.ocaml.org/t/ann-unicode-16-0-0-update-for-uucd-uucp-uunf-and-uuseg/15270/1>

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]
<https://www.unicode.org/charts/PDF/Unicode-16.0/U160-1CC00.pdf>

[announcement page]
<https://blog.unicode.org/2024/09/announcing-unicode-standard-version-160.html>

[HTML document]
<https://www.unicode.org/versions/Unicode16.0.0/core-spec/>

[normative definition]
<https://www.unicode.org/versions/Unicode16.0.0/core-spec/chapter-3/#G25539>

[`Uchar.t'] <https://ocaml.org/manual/5.2/api/Uchar.html#TYPEt>

[here] <https://github.com/ocaml/opam-repository/pull/26534>

[Uucd] <http://erratique.ch/software/uucd>

[docs] <http://erratique.ch/software/uucd/doc>

[Uucp] <http://erratique.ch/software/uucp>

[docs] <http://erratique.ch/software/uucp/doc>

[Uunf] <http://erratique.ch/software/uunf>

[docs] <http://erratique.ch/software/uunf/doc>

[Uuseg] <http://erratique.ch/software/uuseg>

[docs] <http://erratique.ch/software/uuseg/doc>

[here] <https://erratique.ch/software/uucp/doc/unicode.html>

[OCaml Software Foundation] <http://ocaml-sf.org/>

[donors] <https://github.com/sponsors/dbuenzli>

Outreachy Demo Presentation
═══════════════════════════

Archive:
<https://discuss.ocaml.org/t/outreachy-demo-presentation/15189/4>

Patrick Ferris announced
────────────────────────

The demo presentation video is now online:
<https://watch.ocaml.org/w/peT3MdWjS1BYYMbowEJ1gv> – 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] <https://tarides.com>

[Jane Street] <https://www.janestreet.com>

[Outreachy December 2024 Round]
<https://discuss.ocaml.org/t/outreachy-december-2024-round/15223>

Live Stream to follow OCaml Workshop, ML Workshop, and other talks at ICFP
══════════════════════════════════════════════════════════════════════════

Archive:
<https://discuss.ocaml.org/t/live-stream-to-follow-ocaml-workshop-ml-workshop-and-other-talks-at-icfp/15232/4>

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
<https://www.youtube.com/live/OuQqblCxJ2Y?t=2254s>.

DkML 2.1.2 and opam 2.2.0
═════════════════════════

Archive:
<https://discuss.ocaml.org/t/ann-dkml-2-1-2-and-opam-2-2-0/15187/5>

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. <https://gitlab.com/dkml/distributions/dkml/-/issues/24>
• Allow prereleases of Visual Studio; requested at
<https://gitlab.com/dkml/distributions/dkml/-/issues/23>.

Upgrading is:

┌────
│ winget remove dkml # Ignore "exit code: 4294967295"
│ winget install dkml
└────

The full release notes are at
<https://gitlab.com/dkml/distributions/dkml/-/releases/2.1.3>.

store v0.1.0
════════════

Archive: <https://discuss.ocaml.org/t/ann-store-v0-1-0/15274/1>

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] <https://ocaml.org/p/store/latest/doc/Store/index.html>

[Snapshottable stores] <https://doi.org/10.1145/3674637>

Tsdl 1.1.0
══════════

Archive: <https://discuss.ocaml.org/t/ann-tsdl-1-1-0/15275/1>

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] <https://erratique.ch/software/tsdl>

[SDL library] <https://www.libsdl.org/>

[release notes]
<https://github.com/dbuenzli/tsdl/blob/master/CHANGES.md#v110-2024-09-12-zagreb>

[online] <https://erratique.ch/software/tsdl/doc/>

[donors] <https://github.com/sponsors/dbuenzli>

OCaml-css 0.2.0
═══════════════

Archive: <https://discuss.ocaml.org/t/ann-ocaml-css-0-2-0/15276/1>

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] <https://zoggy.frama.io/ocaml-css/>

[docs] <https://zoggy.frama.io/ocaml-css/refdoc/css/index.html>

[spaces]
<https://zoggy.frama.io/ocaml-css/refdoc/css/Css/P/index.html#val-mk_prop_space>

[Css]
<https://zoggy.frama.io/ocaml-css/refdoc/css/Css/P/index.html#module-Css>

[stk] <https://zoggy.frama.io/ocaml-stk/>

[expanded]
<https://zoggy.frama.io/ocaml-css/refdoc/css/Css/S/index.html#val-expand_nested>

OCaml-stk 0.2.0 and Chamo 4.1.0
═══════════════════════════════

Archive:
<https://discuss.ocaml.org/t/ann-ocaml-stk-0-2-0-and-chamo-4-1-0/15288/1>

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] <https://zoggy.frama.io/ocaml-stk/>

[libSDL 2] <https://www.libsdl.org/>

[Tsdl] <https://erratique.ch/software/tsdl>

[many changes]
<https://zoggy.frama.io/ocaml-stk/posts/release-0.2.0.html#changes>

[the repository] <https://framagit.org/zoggy/ocaml-stk>

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] <https://zoggy.frama.io/chamo/>

DkCoder 2.1.3
═════════════

Archive: <https://discuss.ocaml.org/t/ann-dkcoder-2-1-3/15295/1>

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:
<https://discuss.ocaml.org/t/ann-mlfront-a-java-like-package-system-for-ocaml/15072>.
• 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
<https://diskuv.com/dksdk/coder/2024-intro-scripting/>. 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):
• <https://gitlab.com/diskuv/samples/dkcoder/DkHelloScript.git>
• <https://gitlab.com/diskuv/samples/devops/DkSubscribeWebhook.git>
• <https://gitlab.com/diskuv/samples/dkcoder/SanetteBogue.git>

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]
<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] <https://ocaml.org/blog/>

[Upcoming OCaml Events (Sep 15, 2024 and onwards)]
<https://ocaml.org/events>

[Feature Parity Series: Compaction is Back!]
<https://tarides.com/blog/2024-09-11-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] <mailto:alan.schmitt@polytechnique.org>

[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/>

[-- Attachment #2: Type: text/html, Size: 30268 bytes --]