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 December 12 to 19,
2023.

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

Welcoming a new `ppxlib' maintainer
Learn-OCaml 1.0 approaching – call for testers
cmarkit 0.3.0 – CommonMark parser and renderer for OCaml
dream-html 2.0.0
CAISAR release 1.0, a platform for characterizing AI safety and robustness
Web Analytics on OCaml.org
Tutorial on Mutability, Loops, and Imperative Programming
RFSM version 2.0
riot 0.0.5
tty 0.0.1
hooke 0.0.1 – spring-based animations library
“OCaml on Github” bot posting on the fediverse
Mint Tea (minttea 0.0.1) – a little TUI framework for OCaml
Welcoming our new Outrechy interns
zbg v0.2.0: A new version of Zero Bullshit Git
Ppxlib dev meetings
Other OCaml News
Old CWN


Welcoming a new `ppxlib' maintainer
═══════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/welcoming-a-new-ppxlib-maintainer/13620/1>


Sonja Heinze announced
──────────────────────

  Hello everyone :wave: Some very good news for `ppxlib': @NathanReb
  will join us back as a maintainer! His maintenance work will partly be
  funded by the [OCaml Software Foundation].

  We, the current maintainers, haven’t had much time for `ppxlib' lately
  as we’re pretty tied up with our other projects as well. However,
  `ppxlib' is an important project: It’s a (transitive) dependency of
  about half of the `opam' ecosystem, so it should receive a good amount
  of maintenance attention. So it’s very reassuring to have a new
  maintainer with us and it’s super super nice that it’s @NathanReb,
  since we know that we enjoy working together and that he’ll be a very
  active, thoughtful, and pragmatic maintainer.

  We’ve already discussed what would currently be the most appreciated
  to work on, and, together with typical general maintenance, it will be
  to upstream `Astlib' to the compiler. Thanks to past work already
  done, upstreaming `Astlib' is a technically straightforward plan.
  Among others, it would make `ppxlib' continuously coinstallable with
  OCaml `trunk', and it would considerably simplify `ppxlib'
  maintenance. We know that it’s often confused with a different and a
  lot more complex plan from the past that we’ve abandoned. We’ll
  communicate well about this.

  @NathanReb will also help during the next compiler release phase when
  we bump the `ppxlib'-exposed `parsetree' to match the new compiler
  version. When we do so, as always, we’ll break a few PPXs, and we’ll
  make sure to patch those.

  All that being said, we, the current maintainers, will keep on
  maintaining `ppxlib' as well. We’ve done that as part of our job at
  [Tarides] for a while now and we know it’s important for the community
  and enjoy doing so. It will be nice to maintain `ppxlib' in
  collaboration with people from within Tarides and from outside
  Tarides, similarly as it is the case for other OCaml Platform tools.

  Welcome back, Nathan, and thanks a lot! :slight_smile: @panglesd and
  @pitag


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

[Tarides] <https://tarides.com/>


Learn-OCaml 1.0 approaching – call for testers
══════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/learn-ocaml-1-0-approaching-call-for-testers/13621/1>


Louis Gesbert announced
───────────────────────

  Hello all,

  It has been long maturing, but Learn-OCaml 1.0 is about to be
  released.

        *Learn-OCaml* is a web platform for exercises in OCaml
        programming, with automated grading, originally developped
        for the OCaml MOOC. The interface features a code editor
        and client-side evaluation and grading ; it can be served
        statically, but if running the bundled server there are
        also server-side saves, facilities for teachers to follow
        the progress of students, give assignments, get grades,
        etc.


What’s new
╌╌╌╌╌╌╌╌╌╌

  This first major release, along with a lot of quality-of-life
  improvements, features a significant rewrite of the evaluation engine.
  The main visible consequences are:

  • a nice speedup to the grading of exercises in the browser
  • a huge (x100) speedup to the pre-processing of the exercises (when
    running `learn-ocaml build')
  • exercise solutions can no longer leak (the server only provides the
    already compiled jsoo version to the client), making the platform
    more suitable for evaluations
  • error messages when compiling exercises are much, much better

  A few other most-wanted features have also been added, like a reworked
  exercise choice page, and the ability to update a running instance
  with minimal downtime (`learn-ocaml build serve --replace')


Future versions
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  Another most-wanted feature is a proper login system (with choice
  between email/password or a Moodle server) ; we expect it to land
  shortly in 1.1, once we work on the remaining rough edges of our
  already working prototype.

  Porting to more recent versions of OCaml is also planned.


Testers required!
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  As this version features large internal changes, we would be very
  grateful to teachers who agreeing to try it out and report any
  regressions before publication (expected by the end of the year).

  There are two recommended ways to test the upcoming version:

  • From [source]: follow the online instructions, or use the following
    for creating a temporary installation in a local opam switch that
    you can easily remove afterwards:
    ┌────
    │       opam update
    │       opam source learn-ocaml --dev --dir=learn-ocaml-beta && \
    │         cd learn-ocaml-beta && \
    │         opam switch create . --locked && \
    │         export OPAMSWITCH=$PWD && \
    │         eval $(opam env)
    │       learn-ocaml build serve --repo=REPOSITORY
    └────
  • Using a pre-built Docker image (with REPOSITORY an absolute path, to
    e.g. a local clone of [the corpus] — see below)
    ┌────
    │       docker run --rm \
    │         -v REPOSITORY:/repository:ro \
    │         -v learn-ocaml-beta-sync:/sync \
    │         -p 80:8080 \
    │         --name learn-ocaml-beta \
    │         ocamlsf/learn-ocaml:master
    └────

  Please report [in Github], or contact us directly for feedback.

  Development static builds are also available at
  <https://ocaml-sf.org/learn-ocaml/artifacts/> ; tests on the
  standalone client and server would be helpful (the main binary
  requires a host OCaml installation with the appropriate learn-ocaml
  libraries in order to compile the exercises, so the stand-alone
  version is unlikely to be of use)


[source] <https://github.com/ocaml-sf/learn-ocaml>

[the corpus] <https://github.com/ocaml-sf/learn-ocaml-corpus>

[in Github] <https://github.com/ocaml-sf/learn-ocaml/issues>


The Learn-ocaml Corpus
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  I’d also like to take the opportunity to point out the new
  contributions to the public [exercise corpus] by Simão Melo de Sousa
  and Hugo Férée, which complete the existing exercises from the OCaml
  MOOC and the more advanced ones from François Pottier, as well as the
  curation work by Mohamed Hernouf and Dario Pinto.

  You can test the corpus with

  ┌────
  │     git clone https://github.com/ocaml-sf/learn-ocaml-corpus
  │     learn-ocaml build serve --repo=./learn-ocaml-corpus
  └────

  A [live version] is also available.

  — Louis Gesbert (OCamlPro), on behalf of the Learn-OCaml team

  With thanks to the OCaml Foundation for funding the major part of this
  work.


[exercise corpus] <https://github.com/ocaml-sf/learn-ocaml-corpus>

[live version] <https://ocaml-sf.org/learn-ocaml-public>


cmarkit 0.3.0 – CommonMark parser and renderer for OCaml
════════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-cmarkit-0-3-0-commonmark-parser-and-renderer-for-ocaml/13622/1>


Daniel Bünzli announced
───────────────────────

  Hello,

  There’s a new release of `cmarkit', an ISC-licensed CommonMark parser
  and renderer for OCaml.

  This is a bug fix release but it also adds a `-f' option to `cmarkit
  html' to render full-featured documents with all extensions enabled
  including math rendering and section anchors without hassle with
  `cmarkit html -f mydoc.md > mydoc.html' – before that an insane amount
  of options had to be specified, see `cmarkit html --help' for details.

  All the details are in the [release notes]. Thanks to @jchavarri and
  @3Rafal for reporting issues.

  • Homepage: <https://erratique.ch/software/cmarkit>
  • Docs: <https://erratique.ch/software/cmarkit/doc> (or `odig doc
    cmarkit')
  • Install: `opam install cmarkit'

  A big thanks to my [donators]. I welcome and thank the new donator
  @zbaylin.


[release notes]
<https://github.com/dbuenzli/cmarkit/blob/main/CHANGES.md#v030-2023-12-12-la-forclaz-vs>

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


dream-html 2.0.0
════════════════

  Archive: <https://discuss.ocaml.org/t/ann-dream-html-2-0-0/13626/1>


Yawar Amin announced
────────────────────

  Hi, dream-html 2.0.0 has been released to opam:
  <https://ocaml.org/p/dream-html/latest>

  Repo: <https://github.com/yawaramin/dream-html> API docs:
  <https://yawaramin.github.io/dream-html/dream-html/Dream_html/index.html>

  Dream-html is a library for generating HTML, closely integrated with
  Dream. It can be used as an alternative to Dream’s built-in Embedded
  ML templating language. Here’s the Dream home page example using
  dream-html:

  ┌────
  │ let hello who =
  │   let open Dream_html in
  │   let open HTML in
  │   html [] [
  │     body [] [
  │       h1 [] [txt "Hello, %s!" who]]]
  │ 
  │ let () =
  │   Dream.run
  │   @@ Dream.logger
  │   @@ Dream.router [Dream.get "/" (fun _ -> Dream_html.respond (hello "world"))]
  └────

  In this release, I made a breaking change (hence major version bump)
  to restrict the `capture' attribute to only the values ``user' or
  ``environment'. Previously it was accepting any format string.

  Plus a small addition, the `autocomplete' attribute now also accepts
  the ``webauthn' value.


CAISAR release 1.0, a platform for characterizing AI safety and robustness
══════════════════════════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-caisar-release-1-0-a-platform-for-characterizing-ai-safety-and-robustness/13634/1>


Julien Girard announced
───────────────────────

  Dear all,

  on the occasion of the 68th birthday of the Flag or Europe, we are
  delighted to release the version 1.0 of CAISAR. The release source is
  available under our [gitlab]. You can install it via opam with `opam
  install caisar'. We also have a docker image hosted on Dockerhub
  packaging CAISAR and some dedicated provers. You can pull it with
  `docker pull laiser/caisar:pub'.


[gitlab] <https://git.frama-c.com/pub/caisar/>

Extensions of specification language and interpretation capabilities
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  We extended the WhyML specification language to take into account
  common machine learning constructs. It is now possible to model
  machine learning computations using vectors and datasets. Parts of
  this specification can be interpreted directly by CAISAR. CAISAR can
  then instanciate the specification with concrete values provided by
  the user. CAISAR can also compute the results of operations on vectors
  such as getting an index on a concrete vector, or normalizing a
  dataset. Finally, this language allows to perform transformations on
  the proof goals that makes them more amenable for provers.

  The end result is a cleaner modelling language that behaves “as
  expected” for the user, bridging the gap between the specification and
  the actual system to verify. We believe that this will surely be
  helpful for the community.

  Check the updated [documentation examples] to get a grasp on the new
  language.


[documentation examples]
<https://www.caisar-platform.com/documentation/acas_xu>


Usability
╌╌╌╌╌╌╌╌╌

  It is now possible to specify which theories and/or goals to check
  within a specification. CAISAR is now available as a Nix flake. We
  plan to make it available on nixpkgs in a future release. We added a
  contribution guide in the manual, under the “Contributing” section.

  Merry end-of-year celebrations!


Web Analytics on OCaml.org
══════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/web-analytics-on-ocaml-org/13188/9>


Thibaut Mattio announced
────────────────────────

  I’m pleased to announce that we’ve rolled out the Plausible instance
  on the OCaml.org infrastructure.

  The public dashboard is currently accessible at
  <https://plausible.ci.dev/ocaml.org>, and we plan to update the
  OCaml.org DNS to provide a plausible.ocaml.org URL.

  This is already showing very interesting results (the new [Getting
  Started documentation] are the most visited pages of the site!), and
  we can’t wait to see how the improvements we’re making to OCaml.org
  are reflected in the usage of the site.

  As a reminder, Plausible is a privacy-focused Web analytics service,
  which we self-host on the OCaml.org infrastructure. No personal data
  is collected and we remain fully compliant with GDPR, CCPA and PECR.
  The information you have on the public dashboard is the information we
  have, and as you can see, this is all aggregated information which is
  never traced to individuals. Don’t hesitate to read more about what
  Plausible does to respect your privacy at
  <https://plausible.io/privacy-focused-web-analytics>.

  Thank you all!


[Getting Started documentation]
<https://discuss.ocaml.org/t/ann-new-get-started-documentation-on-ocaml-org/13269>


Tutorial on Mutability, Loops, and Imperative Programming
═════════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/tutorial-on-mutability-loops-and-imperative-programming/13644/1>


Cuihtlauac Alvarado announced
─────────────────────────────

  Dear OCamlers,

  The OCaml.org is happy to announce the release of the [Mutability,
  Loops, and Imperative Programming] tutorial which was [discussed] here
  a couple of weeks ago. We’ve included feedback from that thread.

  The *target audience* is developers learning OCaml. No functional
  programming knowledge is assumed. However, it comes after the updated
  “Get Started” series:

  1. [Installing OCaml]
  2. [A Tour of OCaml]
  3. [Your First OCaml Program]

  And it comes at the end of the “Introduction” series (currently being
  updated too):

  1. [Values and Functions]
  2. [Basic Datatypes and Pattern Matching]
  3. If Statements and Recursions
  4. Lists
  5. Labelled & Optional Arguments
  6. [Mutability, Loops, and Imperative Programming]

  The initial PR is now closed, but this is open source. We’re happy to
  receive feedback here or in GitHub, as issues or PR. You can also use
  the “Contribute” link at the bottom of the staging page.

  Thanks to @zbaylin, @silene and @K_N for their feedback on the draft.

  Hope it helps


[Mutability, Loops, and Imperative Programming]
<https://ocaml.org/docs/mutability-loops-and-imperative>

[discussed]
<https://discuss.ocaml.org/t/draft-tutorial-on-mutability-loops-and-imperative-programming>

[Installing OCaml] <https://ocaml.org/docs/installing-ocaml>

[A Tour of OCaml] <https://ocaml.org/docs/tour-of-ocaml>

[Your First OCaml Program] <https://ocaml.org/docs/your-first-program>

[Values and Functions] <https://ocaml.org/docs/values-and-functions>

[Basic Datatypes and Pattern Matching]
<https://ocaml.org/docs/basic-data-types>

[Mutability, Loops, and Imperative Programming]
<https://staging.ocaml.org/docs/mutability-loops-and-imperative>


RFSM version 2.0
════════════════

  Archive: <https://discuss.ocaml.org/t/ann-rfsm-version-2-0/13645/1>


jserot announced
────────────────

  It’s my pleasure to announce the availability of version `2.0' of the
  `RFSM' language and compiler.

  `RFSM' is a domain specific language for describing, simulating and
  generating code from /reactive finite state machines/.

  From a description of a system composed of a set of reactive FSMs, the
  `RFSM' compiler can generate
  • graphical description of the system in the `.dot' format
  • execution traces in the `.vcd' file format
  • code in `C', `SystemC' and `VHDL' for simulation or implementation
    on a target platform

  The most significant changes since version 1.7 are
  • an entirely recrafted, modular implementation
  • a full formal semantics for the “core” version of the language
  • a documentation now splitted in a User Manual and a Reference Manual

  `RFSM' is available from this [GH page] or as an [OPAM package].

  Comments, feedbacks and bug reports welcome !


[GH page] <https://github.com/jserot/rfsm>

[OPAM package] <https://opam.ocaml.org/packages/rfsm/>


riot 0.0.5
══════════

  Archive: <https://discuss.ocaml.org/t/ann-riot-0-0-5/13646/1>


ostera announced
────────────────

  Hi folks :wave: just released [Riot v0.0.5] on opam with some quality
  of life improvements, and a bunch of bug fixes:

  • You can now do communication _by name_ by registering a pid. Names
    are currently strings – this helps in situations where you need a
    globally known process but you can’t thread the actual process id
    everywhere.
  • Timers should be working correctly now :upside_down_face:
  • I/O should behave more reasonably when reading/writing to closed fds
    – no more pesky SIGPIPEs killing your app without reason.

  You can read the [changelog here].

  If you’re interested in contributing, there’s a few issues tagged with
  `help wanted`, but don’t hesitate to reach out to me on Discord/X:
  @leostera

  Happy hacking! :tada:


[Riot v0.0.5] <https://ocaml.org/p/riot/0.0.5>

[changelog here]
<https://github.com/leostera/riot/blob/main/CHANGES.md#005>


Richard Huxton then added
─────────────────────────

        Riot is an [actor-model] multi-core scheduler for OCaml 5.
        It brings [Erlang]-style concurrency to the language,
        where lightweight processes communicate via
        message-passing.

  Just to give some context.


[actor-model] <https://en.wikipedia.org/wiki/Actor_model>

[Erlang] <https://erlang.org>


tty 0.0.1
═════════

  Archive: <https://discuss.ocaml.org/t/ann-tty-0-0-1/13647/1>


ostera announced
────────────────

  Hi folks :wave: just released [tty v0.0.1] on opam.

  `tty' is a pure OCaml library for directly interacting with the
  terminal, that I’m using to build [Mint Tea]:

  <https://github.com/leostera/minttea/raw/main/examples/views/demo.gif>

  This first release includes:

  • High-level `Terminal' module for controlling a terminal (with
    functions like `cursor_up n')
  • Non-blocking reading of UTF-8 input from stdin in the `Stdin' module
  • Terminal ~Profile~s for determining what color palettes are
    available
  • A `Color' module for parsing and working with RGB/ANSI/ANSI256
    colors
  • A collection of 60 escape sequence functions in `Escape_seq'
  • a lot of room for improvement!

  If you’re interested in contributing, there’s a few issues tagged with
  `help wanted', but don’t hesitate to reach out to me on Discord/X:
  @leostera

  Happy hacking! :tada:


[tty v0.0.1] <https://ocaml.org/p/tty/0.0.1>

[Mint Tea] <https://github.com/leostera/minttea>


hooke 0.0.1 – spring-based animations library
═════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-hooke-0-0-1-spring-based-animations-library/13648/1>


ostera announced
────────────────

  Hi folks :wave: just released [hooke v0.0.1] on opam.

  `hooke' is a simple, efficient spring animation library for smooth,
  natural motion. It can be used for many things, including TUI
  applications or games:

  <https://github.com/leostera/hooke/raw/main/examples/tui/demo.gif>

  If you’re interested in contributing don’t hesitate to reach out on
  Discord/X: @leostera

  Happy hacking! :tada:


[hooke v0.0.1] <https://ocaml.org/p/hooke/0.0.1>


“OCaml on Github” bot posting on the fediverse
══════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ocaml-on-github-bot-posting-on-the-fediverse/13649/1>


Zoggy announced
───────────────

  Hello,

  I’m glad to announce a new bot which might be of interest for people
  on the Fediverse: the [OCaml on Github bot].

  This bot checks for events on the [`ocaml/ocaml`] Github project and
  publishes some of them on the Fediverse. By now only some issue events
  are published (comment creation,deletion,update and opening/closing of
  issues).

  The bot is implemented using an ActivtyPub library not released yet.
  It acts as a client for a self-hosted federated server developed using
  the same library. Both should be released soon (maybe february).

  Do not hesitate to follow the bot :slight_smile: The server is not a
  Mastodon server, so you won’t be able to follow it from the html page.
  You can follow it from [this post] for example. (Mastodon is not an
  Activitypub client, but a server capturing users)


[OCaml on Github bot] <https://taps.good-eris.net/actors/ocamlgithub>

[`ocaml/ocaml`] <https://github.com/ocaml/ocaml>

[this post] <https://mastodon.social/@zoggy_ocaml/111584586035393838>


Mint Tea (minttea 0.0.1) – a little TUI framework for OCaml
═══════════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-mint-tea-minttea-0-0-1-a-little-tui-framework-for-ocaml/13650/1>


ostera announced
────────────────

  Hi folks :wave: just released [minttea v0.0.1] on opam.

  Mint Tea is a fun, functional, and stateful way to build terminal apps
  in OCaml heavily inspired by [BubbleTea]. Mint Tea is built on [Riot]
  and uses The Elm Architecture.

  It includes plenty of [examples] of what you can build with it:


[minttea v0.0.1] <https://github.com/leostera/minttea>

[BubbleTea] <https://github.com/charmbracelet/bubbletea>

[Riot] <https://github.com/leostera/riot>

[examples] <https://github.com/leostera/minttea/tree/main/examples>

Toggling AltScreen
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  <https://github.com/leostera/minttea/raw/main/examples/altscreen-toggle/demo.gif>


Stopwatch
╌╌╌╌╌╌╌╌╌

  <https://github.com/leostera/minttea/raw/main/examples/stopwatch/demo.gif>


Multiple Views/Pages
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  <https://github.com/leostera/minttea/raw/main/examples/views/demo.gif>


Bouncing Ball / Spring-based physics
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  <https://github.com/leostera/hooke/raw/main/examples/tui/demo.gif>

  Alongside this release there’s also its sibling packages:
  • [spices v0.0.1] – a styling library for TUI applications
  • and [leaves v0.0.1] – a reusable component library

  You can read the full [changelog here].

  If you’re interested in contributing to any of these, there’s a few
  [good first issues] open already, and don’t hesitate to reach out on
  Discord/X: @leostera :slight_smile:

  Happy hacking! :tada:


[spices v0.0.1] <https://ocaml.org/p/spices/0.0.1>

[leaves v0.0.1] <https://ocaml.org/p/leaves/0.0.1>

[changelog here]
<https://github.com/leostera/minttea/blob/main/CHANGES.md>

[good first issues]
<https://github.com/leostera/minttea/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22>


Welcoming our new Outrechy interns
══════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/welcoming-our-new-outrechy-interns/13652/1>


Guillaume Petiot announced
──────────────────────────

  Hello everyone :) We’ve just started an amazing new round of
  [Outreachy] internships. Outreachy is a non-profit organization
  providing a structure for people underrepresented in open-source to do
  3 months long internships in an open-source community. In the OCaml
  community, this Outreachy round, we’ve come up with four internship
  projects from different contexts. For three of them, we are fortunate
  to now have the following highly dedicated and enthusiastic interns
  working and being actively engaged in them:

  • @Seun is working on implementing a dark mode on ocaml.org. The
    project idea is to implement a dark theme for the website, and to
    choose a dark or light theme on the website based on the system
    preferences of the user. Mentors: @SaySayo and @punchagan
  • @fay is working on [ocaml-joy], a creative coding library to draw
    geometric objects in OCaml. This is inspired by the python library
    of the [same name]. Joy offers the ability to draw simple shapes,
    perform transformations on them, and compose those transformations.
    This will be a great tool for teaching programming as well as
    creating art in a functional way. Mentors: @nikochiko and @sudha
  • @idara_nabuk is working on improving the GUI experience in OCaml.
    This has been inspired by [Rust’s Are We GUI Yet?], and aims at
    doing a survey of the GUI libraries, writing documentation,
    tutorials and examples to benefit the community and make OCaml more
    GUI-friendly. Mentors: @gpetiot and @moazzammoriani
  • Unfortunately no intern was selected for the [OCaml R*-tree project]
    this round, but lots of great features, examples and tests were
    added during the contribution period.

  It’s very gratifying to work as mentors and organizers on those
  projects and to see both the interns and the projects grow every day.
  As to who we are: We’re a mixed group of OCaml enthusiasts, some of
  whom work at [Tarides] and others don’t. Tarides has been letting
  employees be engaged in Outreachy internships and do other diversity
  and/or mentoring work as part of our job for a while now! And since
  last Outreachy round, the Tarides-external mentors are funded for
  their mentor efforts from Jane Street and Tarides. We appreciate both
  a lot!

  Please, welcome @Seun, @fay and @idara_nabuk to the community! We’re
  looking forward to how the internships are going to evolve,
  @moazzammoriani, @gpetiot, @punchagan, @SaySayo, @nikochiko, @sudha,
  @pitag


[Outreachy] <https://www.outreachy.org/>

[ocaml-joy] <https://github.com/Sudha247/ocaml-joy>

[same name] <https://github.com/fossunited/joy>

[Rust’s Are We GUI Yet?] <https://areweguiyet.com/>

[OCaml R*-tree project] <https://github.com/geocaml/ocaml-rtree/>

[Tarides] <https://tarides.com/>


zbg v0.2.0: A new version of Zero Bullshit Git
══════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-zbg-v0-2-0-a-new-version-of-zero-bullshit-git/13664/1>


Dmitrii Kovanikov announced
───────────────────────────

  Hi everyone :wave:

  8 months ago I announced my first ever open-source OCaml project

  • <https://discuss.ocaml.org/t/ann-zbg-zero-bullshit-git/11929>

  After quite a while, I’m happy to announce the second release!

  Version *0.2.0* brings the new command `zbg done' and fixes several
  pitfalls in the initial implementation. The full changelog can be
  found on GitHub:

  • [GitHub: chshersh/zbg/CHANGELOG.md: v0.2.0]

  Remarkably, all the improvements and bug fixes in this version were
  made by external contributors! :exploding_head:

  It warms my heart to be a part of such a vibrant and supportive
  community :orange_heart: I’m using `zbg' as a project to learn OCaml
  and scratch my personal itch. Imagine my surprise when I learned that
  other people not only use `zbg' as well but also contribute important
  improvements!

  Anyway, happy coding everyone and let me know any feedback you have
  :hugs:


[GitHub: chshersh/zbg/CHANGELOG.md: v0.2.0]
<https://github.com/chshersh/zbg/blob/main/CHANGELOG.md#020--2023-12-17->


Ppxlib dev meetings
═══════════════════

  Archive: <https://discuss.ocaml.org/t/ppxlib-dev-meetings/12441/12>


Sonja Heinze announced
──────────────────────

  @panglesd and I are going to have a probably quite quick December dev
  meeting tomorrow, concretely [date=2023-12-19 time=18:00:00
  timezone=“Europe/Madrid”]. Here’s our agenda:
  • 0.32.0 release
    • Reason for the release: `Attribute' API addition.
    • Preparation for the release: What else to merge before the
      release?
    • Caution for the release: `Caml' -> `Stdlib' change.
  • Compiler [change of AST context format].
    • Are there still use cases where the ppx driver is compiled on a
      different OCaml version than the project is compiled with? In
      those cases, that compiler change would affect us.
  • Change of philosophy for `trunk-support' branch.

  As always, we’re happy to add anything to the agenda! And also, as
  always, we’re happy if anyone wants to join:
  <https://meet.google.com/yxw-ejnu-cju> . That’s true in general and
  particularly if you have insight about the use case question in point
  2 from the agenda (also happy to hear about it here on discuss).


[change of AST context format]
<https://github.com/ocaml/ocaml/pull/12246>


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

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

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

  • [Outreachy Blog #1: Introduce Yourself]


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

[Outreachy Blog #1: Introduce Yourself]
<https://oyenugaoluwaseun.hashnode.dev/outreachy-introduce-yourself>


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.