Hello

Here is the latest OCaml Weekly News, for the week of July 16 to 23,
2019.

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

MirageOS retreat September 23rd - 29th
Some MirageOS unikernels: DNS servers, CalDAV
OCaml 4.08.1+rc1
soupault: a static website generator based on HTML rewriting
Genprint - general value printing
Printing arbitrary data in OCaml?
Other OCaml News
Old CWN


MirageOS retreat September 23rd - 29th
══════════════════════════════════════

 Archive:
 <https://discuss.ocaml.org/t/mirageos-retreat-september-23rd-29th/4114/1>


Hannes Mehnert announced
────────────────────────

Hey, the next MirageOS retreat will take place again in Marrakesh at the end of September. Reports from earlier retreats and more details
 are available at <http://retreat.mirage.io> – everybody welcome!
 please sign up rather sooner than later :)


Some MirageOS unikernels: DNS servers, CalDAV
═════════════════════════════════════════════

 Archive:
 
<https://discuss.ocaml.org/t/ann-some-mirageos-unikernels-dns-servers-caldav/4115/1>


Hannes Mehnert announced
────────────────────────

Hi, apart from libraries and development tools, we've been working
 quite a bit on more realistic MirageOS applications which may be
useful for you. Namely DNS authoritative servers (primary that has their zones in a git remote, secondaries, let's encrypt provisioning (all done via DNS)) and a CalDAV server. In addition, we are doing
 some monitoring (Grafana + influx) of the running unikernels
 (themselves and the host system), and are positive that we are
spending less CPU ticks (~x4) and less memory (easily an order of magnitude) by replacing our Unix-based CalDAV server (same OCaml code base) with a MirageOS virtual machine / unikernel. Thanks to all who
 made this possible.

If you're interested in this line of work (including installation instructions which use an opam overlay for unreleased packages - let us know if it works or does not work for you), please have a look at
 <https://hannes.nqsb.io/Posts/Summer2019>


OCaml 4.08.1+rc1
════════════════

 Archive:
 <https://sympa.inria.fr/sympa/arc/caml-list/2019-07/msg00027.html>


Florian Angeletti announced
───────────────────────────

The release of OCaml version 4.08.1 is imminent. This new bugfix release fixes some compilation failures in presence of "-pack", and some native-code alignment issues on ARM64, PPC64 and amd64. We have
 created a release candidate that you can test.

 The source code is available at these addresses:

 <https://github.com/ocaml/ocaml/archive/4.08.1+rc1.tar.gz>
 <https://caml.inria.fr/pub/distrib/ocaml-4.08/ocaml-4.08.1+rc1.tar.gz>

The compiler can also be installed as an OPAM switch with one of the
 following commands:

 ┌────
│ opam switch create ocaml-variants.4.08.1+rc1 --repositories=default,ocaml-beta=git+https://github.com/ocaml/ocaml-beta-repository.git
 └────

 or

 ┌────
│ opam switch create ocaml-variants.4.08.1+rc1+<VARIANT> --repositories=default,ocaml-beta=git+https://github.com/ocaml/ocaml-beta-repository.git
 └────

 where you replace <VARIANT> with one of these:
 • afl
 • default-unsafe-string
 • force-safe-string
 • flambda
 • fp
 • fp+flambda

 We want to know about all bugs. Please report them here:
 <https://github.com/ocaml/ocaml/issues>

 Happy hacking, — Florian Angeletti, for the OCaml team.


OCaml 4.08.1 changes:
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

◊ Bug fixes:

 • #7887: ensure frame table is 8-aligned on ARM64 and PPC64
(Xavier Leroy, report by Mark Hayden, review by Mark Shinwell and
 Gabriel Scherer)

• #8751: fix bug that could result in misaligned data section when
    compiling to
native-code on amd64. (observed with the mingw64 compiler) (Nicolás
 Ojeda Bär, review by David Allsopp)

 • #8769, #8770: Fix assertion failure with -pack
 (Leo White, review by Gabriel Scherer, report by Fabian @copy)


Anil Madhavapeddy then said
───────────────────────────

The Docker containers in the opam repository CI [1,2] have all now been rebuilt to reflect the latest contents of the 4.08 branch as per
 Florian's message.  This means that your 4.08 CI tests will now
reflect the bug fixes below, and so (for example) nocrypto should be
 installable now.

 [1] <https://hub.docker.com/r/ocaml/opam2/>
 [2] <https://github.com/ocaml/infrastructure/wiki/Containers>


soupault: a static website generator based on HTML rewriting
════════════════════════════════════════════════════════════

 Archive:
 
<https://discuss.ocaml.org/t/ann-soupault-a-static-website-generator-based-on-html-rewriting/4126/1>


Daniil Baturin announced
────────────────────────

 <https://baturin.org/projects/soupault/>

 Soupault is the first (to my knowledge) website generator that
 exploits the fact that well-formed HTML is machine readable and
transformable (and thanks to @aantron's lambdasoup it's quite easy to
 do).

It can do things like "use the first `<h1>' for the page title" or "insert output of `date -R' into the `<time>' element no matter where
 it's in the page".

 Features:
 • No templates, no themes, no front matter. You tell it where to
   insert stuff or what to extract using CSS selectors.
 • Built-in ToC, footnotes, and breadcrumbs.
 • Directories are site sections and can be nested.
 • Extracted metadata can be exported to JSON and fed to external
   scripts for creating section indices or custom taxonomies.
• Configurable preprocessors for pages in formats other than HTML.

Soupault can be a drop-in automation tool for existing websites: the directory structure is fully configurable, clean URLs are optional,
 and it can preserve paths down to file extensions.


Genprint - general value printing
═════════════════════════════════

 Archive:
 <https://discuss.ocaml.org/t/ann-genprint-general-value-printing/3912/13>


progman announced
─────────────────

 Genprint is now available as a library. It uses a PPX extension.
 Working with OCaml versions from 4.02.

<http://github.com/progman1/genprintlib> (general value printing in
 compiled code)

 Available through the official opam repository.


Printing arbitrary data in OCaml?
═════════════════════════════════

 Archive:
 <https://discuss.ocaml.org/t/printing-arbitrary-data-in-ocaml/4127/1>


Zeroexcuses asked
─────────────────

For OCaml, is there a way to print _arbitrary_ data, or do I need to
 write a custom printer for every object?

 In Rust, I can do something like
 ┌────
 │ #[derive(Deubg)]
 │ struct ...
 └────
 and then it will auto derive a way to print the data for me.

 In Clojure, most objects can be printed as is.

In OCaml, is there a way to print objects without writing a custom
 printer function?


Thierry Martinez replied
────────────────────────

There exist some deriving mechanisms in OCaml quite similar to those you know in Rust (or Haskell): they are implemented by PPX syntax
 extensions, namely [`ppxlib'] or [`ppx_deriving']. With such
 extensions, you may write for instance:

 ┌────
 │ type example = A | B [@@deriving show]
 └────

and two functions `pp_example : Formatter.formatter -> example -> unit' and `show_example : example -> string' will be automatically generated next to the type declaration. (`show' comes as a standard plugin with `ppx_deriving'; if you prefer to use `ppxlib', you will need an additional plugin for `show': you may use my [`ppx_show']
 plugin.)


[`ppxlib'] <https://github.com/ocaml-ppx/ppxlib>

[`ppx_deriving'] <https://github.com/ocaml-ppx/ppx_deriving>

[`ppx_show'] <https://gitlab.inria.fr/tmartine/ppx_show/>


Chet Murthy also replied
────────────────────────

You may have seen "genprint" announced just today; it's also a way to
 print arbitrary values, via a different pathway.


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

From the ocamlcore planet blog
──────────────────────────────

Here are links from many OCaml blogs aggregated at [OCaml Planet].

 • [Ocsigen Start and Ocsigen Server updated]


[OCaml Planet] <http://ocaml.org/community/planet/>

[Ocsigen Start and Ocsigen Server updated]
<https://ocsigen.github.io/blog/2019/07/18/releases/>


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].

 [Alan Schmitt]


[send me a message] <mailto:alan.schm...@polytechnique.org>

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

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

[online] <http://lists.idyll.org/listinfo/caml-news-weekly/>

[Alan Schmitt] <http://alan.petitepomme.net/>

Attachment: signature.asc
Description: PGP signature

_______________________________________________
caml-news-weekly mailing list
caml-news-weekly@lists.idyll.org
http://lists.idyll.org/listinfo/caml-news-weekly

Reply via email to