OCaml Weekly News
Hello
Here is the latest OCaml Weekly News, for the week of July 02 to 09, 2019.
Table of Contents
ppx_show: a show deriver based of ppxlib (works on 4.08.0)
Archive: https://discuss.ocaml.org/t/ann-ppx-show-a-show-deriver-based-of-ppxlib-works-on-4-08-0/4026/1
Thierry Martinez announced
I am pleased to announce that ppx_show
is now available in opam. ppx_show
reimplements the show
plugin provided by ppx_deriving
as a ppxlib
plugin. In particular, ppx_show
is available with OCaml 4.08.0 (and is available on all OCaml versions compatible with ppxlib
, starting from 4.04.1).
https://gitlab.inria.fr/tmartine/ppx_show/
See @arbipher's related question.
Library for GUI?
Deep in this thread, sanette announced
In the last few years I have been developing a GUI for (and in) ocaml, as a hobby project. Finally, I have made the current state of this thing (called "bogue") available on github, see
https://github.com/sanette/bogue
Just in case some of you are interested in having a look. Comments welcome, of course.
sanette later added
I just made a video to show some of bogue's features:
XMPP room (muc) for OCaml
Orbifx announced
I'm not aware of any other XMPP rooms for OCaml, so I've made one:
<xmpp:ocaml@conference.orbitalfox.eu?join>
Come join if you want to hang out with OCamlers.
Ideas & thoughts are welcome!
obus 1.2.0
Freyr666 announced
I'm pleased to announce a new obus
release.
What is obus
A pure OCaml implementation of the D-Bus IPC protocol, heavily used in Freedesktop/linux world [1].
Notable changes
obus
is being transitioned toocaml-community
- switched to
dune
camlp4
parts were replaced withmenhir
camlp4
syntax extension was replaced with theppx
-based ones
This release shouldn't break anything (safe for the syntax extension).
Special thanks to @steinuil and @pukkamustard for doing most of the "dunification" work.
Thoughts about the future
So after pondering on obus refactoring I came to the following ideas, which I would like to discuss:
IDL
, an intermediate language used for the D-Bus interfaces' description doesn't worth the effort and is better to be dropped.D-Bus uses XML for such a purpose and there is no merit in having an additional language doing the same (with minor improvements like not being XML-abomination and the ability to define numeric types as OCaml variants). It makes sense to generate OCaml files from the XML directly and don't use any obus-specific additional language.
ppx
syntax extensions could also be dropped since they don't do much stuff. Also I haven't seen anybody using them, but I could be wrong.So it's better to either improve it (maybe turn IDL language into simple
ppx
annotations) or drop it completely. Personally, I like the idea of not usingppx
because they are slowing things down making the project lag behind ocaml releases, and making things fragile in general.- obus should be split into proper subpackages, like
obus
,obus-network-manager
,obus-notifications
etc
So since it's a community project from now on, it would be great to hear what obus users and contributors are thinking about all forementioned. cast @diml @talex5 @perry @johnelse
PSA: ocaml/opam2 docker images updated to 4.08.0 release
Anil Madhavapeddy announced
Another update: the base distributions of the ocaml/opam2 images have also been updated to support Fedora 30, Alpine 3.10, OpenSUSE Leap 42.1 and also the impending Debian 10 (Buster) release. We have also deprecated Fedora 27/28, Ubuntu 14.04 and Alpine 3.8 in favour of the newer releases. The 4.09 switches also reflect the recently released 4.09+beta1 snapshot.
There have been a few requests for 'slimmer' images that use up less disk-space. The reason the existing ones are so big is that each container has multiple precompiled compilers (either multiple major releases, or feature variants such as flambda or afl). This is really useful for continuous integration, but is less ideal if you just want a quick OCaml compiler container to build some software on your QubesOS laptop.
In order to accommodate both usecases, I'm going to resurrect the ocaml/opam
containers for the "slim" usecase. The containers in ocaml/opam
are currently deprecated while we did the opam2 release, but now that is out of the way we can remove the opam1 containers. Over the next few months, we'll have ocaml/opam
containers with minimally sized toolchains for production compilation use, and the ocaml/opam2
containers will continue to be maintained unchanged for CI use.
As always, more feedback or usecases welcome to help guide the evolution of this infrastructure.
Other OCaml News
From the ocamlcore planet blog
Here are links from many OCaml blogs aggregated at OCaml Planet.
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.