caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Alan Schmitt <alan.schmitt@polytechnique.org>
To: "lwn" <lwn@lwn.net>, "cwn"  <cwn@lists.idyll.org>,
	caml-list@inria.fr, comp@lists.orbitalfox.eu
Subject: [Caml-list] Attn: Development Editor, Latest OCaml Weekly News
Date: Tue, 17 Mar 2020 12:04:47 +0100	[thread overview]
Message-ID: <87imj3tf74.fsf@polytechnique.org> (raw)

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

Hello

Here is the latest OCaml Weekly News, for the week of March 10 to 17,
2020.

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

Unicode 13.0.0 update for Uucd, Uucp, Uunf and Uuseg
Introducing dune describe
Introducing Model_quickcheck. Quickcheck for stateful, imperative code
Odig 0.0.5
Suggestions for ocaml documentation
Introducing Gopcaml mode - structural OCaml editing
Try OCaml 2.0 (beta)
jose 0.2.0
Old CWN


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

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


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

  Unicode 13.0.0 was released on the 10th of march.

  It adds 5390 characters to the standard including graphic symbols for
  legacy computing. If you were looking for characters representing
  seven-segment decimal digits, now you [have them]. For the curious,
  the [encoding proposal] has the motivation and source of these new
  symbols. For more information about all the other additions, see [this
  page].

  Accordingly the libraries mentioned at the end of this message had to
  be updated, consult the individual release notes for details. Both
  Uucd and Uucp are incompatible releases sinces new script and block
  enumerants had to be added.

  Uucp has a new Emoji module with the new emoji properties introduced
  in 13.0.0 which are now used by Uuseg to improve emoji
  segmentation. The overall compiled size of Uucp shrinked a bit; here
  uucp.cmxs went from 7.8Mo to 4.6Mo. Further reduction can likely be
  achieved with more work. Thanks to David Kaloper Meršinjak for helping
  on this.

  A periodic reminder, if Unicode still puzzles you, read an absolute
  minimal Unicode introduction and OCaml Unicode tips on [this page]
  (also available via `odig doc uucp').

  Happy retro computing,

  Daniel

  P.S. The OCaml compiler [detected] an obsolete rule in the 13.0.0
  update of the Unicode line breaking algorithm.

  —

  Uucd 13.0.0 Unicode character database decoder for OCaml.

  <http://erratique.ch/software/uucd>

  Uucp 13.0.0 Unicode character properties for OCaml.

  <http://erratique.ch/software/uucp>

  Uunf 13.0.0 Unicode text normalization for OCaml.

  <http://erratique.ch/software/uunf>

  Uuseg 13.0.0 Unicode text segmentation for OCaml.

  <http://erratique.ch/software/uuseg>


[have them] <https://www.unicode.org/charts/PDF/U1FB00.pdf>

[encoding proposal]
<https://www.unicode.org/L2/L2019/19025-terminals-prop.pdf>

[this page]
<http://blog.unicode.org/2020/03/announcing-unicode-standard-version-130.html>

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

[detected]
<https://www.unicode.org/mail-arch/unicode-ml/y2020-m03/0000.html>


Introducing dune describe
═════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/introducing-dune-describe/5300/1>


Jérémie Dimino announced
────────────────────────

  Just a quick post to introduce the new `dune describe' command in Dune
  2.4.0. If you'd like to write a tool that needs to understand the
  structure of a dune project, figure out where the cmt files are
  located, etc…, this is the command to look at.

  The command is not production ready yet, but the infrastructure is in
  place. If you are interested in releasing tools that rely on it,
  please let us know so that we can discuss what information you need
  out of dune and also so that we can stabilise it.

  <https://dune.build/blog/dune-describe/>


Introducing Model_quickcheck. Quickcheck for stateful, imperative code
══════════════════════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/introducing-model-quickcheck-quickcheck-for-stateful-imperative-code/5301/1>


suttonshire announced
─────────────────────

  I'm sharing a small project I've been working on that I hope will be
  interesting or useful to the community. [Model_quickcheck] is a
  model-based testing system that allows you to validate the
  "properties" of stateful, imperative OCaml programs. It's built on
  Jane Street's Base_quickcheck.

  I just started learning OCaml and one of the first projects I've been
  working on is a user-space reliable transport protocol. Writing tests
  for this system became unwieldy because I was trying to validate
  certain properties of the protocol by thinking up very specific
  sequences of actions that would invoke behaviors that relied on that
  property. I got tired of it and got curious if there was a way to
  generate these interesting sequences. My research turned up frameworks
  like [QCSTM] and [PropEr] for state machine property-based
  testing. This seemed to be exactly what I needed so I started building
  something similar.

  To use Model_quickcheck you specify a set of actions to apply to your
  program, a model that describes the state of you program and a set of
  predicates that define the properties of you system. The model is
  hopefully a simpler representation of your system e.g. a map instead
  of a key-value database, or a queue instead of a reliable network
  protocol. Model_quickcheck then generates a random sequences of
  actions applies them to your system and verifies the properties.

  This has been an exciting and useful project. I've learned a bunch
  about the Base library, Quickcheck, first class modules, and inline
  tests. I'm just getting started, but I just wanted to share the
  project with the community since I've learned a lot by lurking here.


[Model_quickcheck] <https://github.com/suttonshire/model_quickcheck>

[QCSTM] <https://github.com/jmid/qcstm>

[PropEr] <https://propertesting.com/book_state_machine_properties.html>


Odig 0.0.5
══════════

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


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

  `odig' has a new release. See the [release notes] for details.

  Installation: `opam install ocaml-manual odig'

  Tutorial: <https://erratique.ch/software/odig/doc/manual.html>

  odig is a command line tool to lookup documentation of installed OCaml
  packages. It shows package metadata, readmes, change logs, licenses,
  cross-referenced `odoc' API documentation and manuals.


[release notes]
<https://github.com/b0-system/odig/blob/v0.0.5/CHANGES.md#v005-2019-03-11-la-forclaz-vs>


Suggestions for ocaml documentation
═══════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/suggestions-for-ocaml-documentation/4504/50>


sanette announced
─────────────────

  The "OCaml API", which is the documentation for the standard library,
  is now complete for all versions 4.00–4.10, with a quick search field,
  on the demo site:

  <https://sanette.github.io/ocaml-api/>


Introducing Gopcaml mode - structural OCaml editing
═══════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/introducing-gopcaml-mode-structural-ocaml-editing/5310/1>


Kiran Gopinathan announced
──────────────────────────

  Hi all, I am pleased to announce the first release of Gopcaml-mode, a
  new emacs library that aims to extend the existing OCaml editing
  experience with structural editing capabilities.

  A picture is worth a thousand words, so I'll cut to the chase, and
  start with a few demonstrations:


Examples
╌╌╌╌╌╌╌╌

  • AST-based code navigation - `C-M-n, C-M-p, C-M-u, C-M-d, C-M-f,
    C-M-b'

  <https://gitlab.com/gopiandcode/gopcaml-mode/-/raw/master/images/gopcaml_move_expression_example.gif>

  • AST-based code transformation -`C-M-N, C-M-P, C-M-F, C-M-B'

  <https://gitlab.com/gopiandcode/gopcaml-mode/-/raw/master/images/gopcaml_move_function_example.gif>

  • Mark exp - `C-M-SPC'

  <https://gitlab.com/gopiandcode/gopcaml-mode/-/raw/master/images/gopcaml_mark_sexp.gif>

  • Extract expression into letdef - `C-c C-e'

  <https://gitlab.com/gopiandcode/gopcaml-mode/-/raw/master/images/gopcaml_extraction_expressions.gif>

  This is just a small sample of the features - a full listing is
  provided at the project readme, which can be found at the [project
  page].


[project page] <https://gitlab.com/gopiandcode/gopcaml-mode>


Notes
╌╌╌╌╌

  This plugin is quite faithful to the OCaml specification and doesn't
  reimplement a separate OCaml parser as some other plugins do - instead
  I use the Ecaml package (which allows interfacing with Emacs from
  OCaml code) to allow delegating to the OCaml parser (from
  Ocaml-compiler-libs) directly.

  It's in the process of being published to opam, and should be
  available to download soon.


Try OCaml 2.0 (beta)
════════════════════

  Archive: <https://discuss.ocaml.org/t/ann-try-ocaml-2-0-beta/5325/1>


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

  OCamlPro is happy to announce the release of a new version of the
  venerable [Try OCaml tool].

  This tool allows you to quickly test OCaml snippets from anywhere,
  directly from your browser. It's still in beta, so any issues or
  comments are welcome below.

  The new version is a complete refactor and redesign, based on the
  backend of Learn-OCaml.

  Original announcement:
  <http://www.ocamlpro.com/2020/03/16/new-version-of-try-ocaml-in-beta/>


[Try OCaml tool] <https://try.ocamlpro.com>


jose 0.2.0
══════════

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


Ulrik Strid announced
─────────────────────

  I recently released a JavaScript Object Signing and Encryption library
  to opam.

  The main usecase for JOSE is JWT and JWK and is a comprehensive
  library for both unlike some other libraries that currently exist in
  the ecosystem. It uses mirage-crypto and supports RSA and OCT keys
  currently and will support EC when mirage-crypto does.

  I have not really implemented the encryption part yet but if anyone
  needs JWE I'll gladly do the work or accept PRs.

  The project was initially developed in Reason but I changed over to
  OCaml at some point because of limitations in Reason at the time but
  the repo still has the old name.

  The docs can be found here:
  <https://ulrikstrid.github.io/reason-jose/>

  The repo can be found here:
  <https://github.com/ulrikstrid/reason-jose/>


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.schmitt@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 #2: Type: text/html, Size: 25657 bytes --]

             reply	other threads:[~2020-03-17 11:04 UTC|newest]

Thread overview: 112+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-17 11:04 Alan Schmitt [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-07-26 17:54 Alan Schmitt
2022-07-19  8:58 Alan Schmitt
2022-07-12  7:59 Alan Schmitt
2022-07-05  7:42 Alan Schmitt
2022-06-28  7:37 Alan Schmitt
2022-06-21  8:06 Alan Schmitt
2022-06-14  9:29 Alan Schmitt
2022-06-07 10:15 Alan Schmitt
2022-05-31 12:29 Alan Schmitt
2022-05-24  8:04 Alan Schmitt
2022-05-17  7:12 Alan Schmitt
2022-05-10 12:30 Alan Schmitt
2022-05-03  9:11 Alan Schmitt
2022-04-26  6:44 Alan Schmitt
2022-04-19  5:34 Alan Schmitt
2022-04-12  8:10 Alan Schmitt
2022-04-05 11:50 Alan Schmitt
2022-03-29  7:42 Alan Schmitt
2022-03-22 13:01 Alan Schmitt
2022-03-15  9:59 Alan Schmitt
2022-03-01 13:54 Alan Schmitt
2022-02-22 12:43 Alan Schmitt
2022-02-08 13:16 Alan Schmitt
2022-02-01 13:00 Alan Schmitt
2022-01-25 12:44 Alan Schmitt
2022-01-11  8:20 Alan Schmitt
2022-01-04  7:56 Alan Schmitt
2021-12-28  8:59 Alan Schmitt
2021-12-21  9:11 Alan Schmitt
2021-12-14 11:02 Alan Schmitt
2021-11-30 10:51 Alan Schmitt
2021-11-16  8:41 Alan Schmitt
2021-11-09 10:08 Alan Schmitt
2021-11-02  8:50 Alan Schmitt
2021-10-19  8:23 Alan Schmitt
2021-09-28  6:37 Alan Schmitt
2021-09-21  9:09 Alan Schmitt
2021-09-07 13:23 Alan Schmitt
2021-08-24 13:44 Alan Schmitt
2021-08-17  6:24 Alan Schmitt
2021-08-10 16:47 Alan Schmitt
2021-07-27  8:54 Alan Schmitt
2021-07-20 12:58 Alan Schmitt
2021-07-06 12:33 Alan Schmitt
2021-06-29 12:24 Alan Schmitt
2021-06-22  9:04 Alan Schmitt
2021-06-01  9:23 Alan Schmitt
2021-05-25  7:30 Alan Schmitt
2021-05-11 14:47 Alan Schmitt
2021-05-04  8:57 Alan Schmitt
2021-04-27 14:26 Alan Schmitt
2021-04-20  9:07 Alan Schmitt
2021-04-06  9:42 Alan Schmitt
2021-03-30 14:55 Alan Schmitt
2021-03-23  9:05 Alan Schmitt
2021-03-16 10:31 Alan Schmitt
2021-03-09 10:58 Alan Schmitt
2021-02-23  9:51 Alan Schmitt
2021-02-16 13:53 Alan Schmitt
2021-02-02 13:56 Alan Schmitt
2021-01-26 13:25 Alan Schmitt
2021-01-19 14:28 Alan Schmitt
2021-01-12  9:47 Alan Schmitt
2021-01-05 11:22 Alan Schmitt
2020-12-29  9:59 Alan Schmitt
2020-12-22  8:48 Alan Schmitt
2020-12-15  9:51 Alan Schmitt
2020-12-01  8:54 Alan Schmitt
2020-11-03 15:15 Alan Schmitt
2020-10-27  8:43 Alan Schmitt
2020-10-20  8:15 Alan Schmitt
2020-10-06  7:22 Alan Schmitt
2020-09-29  7:02 Alan Schmitt
2020-09-22  7:27 Alan Schmitt
2020-09-08 13:11 Alan Schmitt
2020-09-01  7:55 Alan Schmitt
2020-08-18  7:25 Alan Schmitt
2020-07-28 16:57 Alan Schmitt
2020-07-21 14:42 Alan Schmitt
2020-07-14  9:54 Alan Schmitt
2020-07-07 10:04 Alan Schmitt
2020-06-30  7:00 Alan Schmitt
2020-06-16  8:36 Alan Schmitt
2020-06-09  8:28 Alan Schmitt
2020-05-19  9:52 Alan Schmitt
2020-05-12  7:45 Alan Schmitt
2020-05-05  7:45 Alan Schmitt
2020-04-28 12:44 Alan Schmitt
2020-04-21  8:58 Alan Schmitt
2020-04-14  7:28 Alan Schmitt
2020-04-07  7:51 Alan Schmitt
2020-03-31  9:54 Alan Schmitt
2020-03-24  9:31 Alan Schmitt
2020-03-10 14:28 Alan Schmitt
2020-03-03  8:00 Alan Schmitt
2020-02-25  8:51 Alan Schmitt
2020-02-18  8:18 Alan Schmitt
2020-02-04  8:47 Alan Schmitt
2020-01-28 10:53 Alan Schmitt
2020-01-21 14:08 Alan Schmitt
2020-01-14 14:16 Alan Schmitt
2020-01-07 13:43 Alan Schmitt
2019-12-31  9:18 Alan Schmitt
2019-12-17  8:52 Alan Schmitt
2019-12-10  8:21 Alan Schmitt
2019-12-03 15:42 Alan Schmitt
2019-11-26  8:33 Alan Schmitt
2019-11-12 13:21 Alan Schmitt
2019-11-05  6:55 Alan Schmitt
2019-10-15  7:28 Alan Schmitt
2019-09-03  7:35 Alan Schmitt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87imj3tf74.fsf@polytechnique.org \
    --to=alan.schmitt@polytechnique.org \
    --cc=caml-list@inria.fr \
    --cc=comp@lists.orbitalfox.eu \
    --cc=cwn@lists.idyll.org \
    --cc=lwn@lwn.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).