caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Alan Schmitt <>
To: "lwn" <>, "cwn"  <>,,
Subject: [Caml-list] Attn: Development Editor, Latest OCaml Weekly News
Date: Tue, 18 Feb 2020 09:18:12 +0100	[thread overview]
Message-ID: <> (raw)

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


Here is the latest OCaml Weekly News, for the week of February 11 to 18,

Table of Contents

Logical 0.3.0
OCaml 4.10.0, first release candidate
New release of Menhir, including bug fixes
First release of data-encoding, JSON and binary serialisation
Opam package popularity?
What's the OCaml equivalent for HLint?
New release of naboris 0.1.1
Category theory for Programmers book - OCaml flavor
Call for Speakers: Build Meetup New York April 2020

Logical 0.3.0

  Archive: <>

Tóth Róbert announced

  I proud to announce that I published Logical 0.3.0 and it's available
  in opam. I'm also not to proud to announce that I did a bunch of
  breaking changes in this release. :D

  During development of this release, I realized that I made the biggest
  mistake I could do as a library maintainer, which is that I didn't use
  my own library, so I made a bunch of stupid design mistakes, which I
  hopefully fixed in this release.

  • Added both_multi goal
  • Removed set from the type system
  • Moved type system to separate module
  • Re-factored state to be a map instead of an association list
  • Added bunch of examples to the bin folder

  One of my main goal with Logical was to solve the puzzles that I found
  in this entertaining article:
  and it became a reality so hurray.  Another important thing to mention
  is that I can proudly say that Logical is capable of solving a mystery
  murder, so it's at least a mystery murder complete
  language/framework. :D

  Future plans(0.4.0 release):
  • I want to introduce conditions or validations (I need to find a good
    name for it) on the variables, which would basically be a function,
    which is run when the variable gets it's value, so it's possible to
    assess if the value is a good one or not. I think this feature is
    extremely general, flexible and powerful, so I have to be careful
    how I implement it(if I will). :D It also means that implementing
    negation in Logical will become a breeze, so that's it for being
    negation free.
  • I'm thinking of creating a Variable module, which will by more like
    a syntactic sugar for creating variables. I'm not sure about this,
    because this would make Goal.equal "obsolete".
  • I will hide Base's datatypes behind ours, so the user don't have to
    depend on base to use the library.

  Let me know if you have any suggestion or comment about Logical.

  Github: <>
  Docs: <>

OCaml 4.10.0, first release candidate


octachron announced

  We have released a second release candidate to integrate a bug fix for
  32-bit users of the new best-fit allocator:


  The fix should be transparent for other users, the release is mostly
  here to try to minimize the difference between the candidate and final

New release of Menhir, including bug fixes


François Pottier announced

  Dear users of OCaml & Menhir,

  It is my pleasure to announce a new release of Menhir.

  │ opam update
  │ opam upgrade menhir

  This release fixes two bugs in our implementation of Pager's
  algorithm.  Menhir relies on this algorithm to build an LR automaton
  and to decide which states can safely be merged, where "safely" means
  "without creating unexplainable conflicts". One bug (which had been
  known for a long time, but not fixed) would cause Menhir to sometimes
  make an unsafe merge decision, thereby creating an unexplainable
  conflict. The other bug (which had never been discovered until now)
  would cause Menhir to sometimes miss a safe merge decision, thereby
  creating an automaton with needlessly many states.

  In summary, after upgrading to this version, you may find (in some
  cases) that the parser produced by Menhir for your grammar has
  changed. It may have slightly more or slightly fewer states than the
  parser produced by previous versions of Menhir. Even in cases where
  the parser hasn't changed, the numbering of the states can be

  Feedback is welcome.

  Happy parsing,

  François Pottier


  • Re-implement Menhir's default algorithm for constructing LR(1)
    automata, namely Pager's algorithm. This closes issue #21 (reported
    by Andrej Bauer), a bug that would sometimes cause unexplainable
    conflicts to appear, because states were merged too
    aggressively. This also removes an unreported bug that would cause
    the automaton to have too many states, because states were *not*
    merged aggressively enough. In summary, the old and new construction
    algorithms differ: in many cases, the resulting automaton is
    unchanged, but in some cases, the automaton produced by the new
    algorithm may have slightly more or slightly fewer states.

  • Re-implement Menhir's algorithm for constructing automata in
    `--no-pager' mode. In this (undocumented) mode, Menhir does not
    merge any states, but allows itself to redirect a transition from a
    state `s' to a *larger* state `s''. This method yields an automaton
    whose states form a subset of the states of the canonical LR(1)
    automaton. It usually has significantly fewer states than the
    canonical automaton, and significantly more states than the
    automaton produced by Pager's algorithm. The new construction method
    removes an unreported bug that would cause the automaton to have too
    many states. The automaton produced by the new algorithm will
    usually have significantly fewer states than the automaton produced
    by the previous algorithm.

  • Re-implement Menhir's algorithms for constructing automata in
    `--lalr' and `--canonical' modes. The previous algorithms were
    correct, as far as we know, so the output of the new algorithms is
    the same, up to a possible renumbering of the states. The new
    algorithms are slightly faster.

  • Increase the maximum length of a production, which used to be 127,
    up to 1023. Display a polite error message if this length is
    exceeded. (Problem reported by Andreas Abel.)

  • The new switch `--timings-to <filename>' causes internal timing
    information to be written to the file `<filename>'.

  • A version of the library `fix' is now vendored (included) inside
    Menhir. This should have no impact for end users, but implies that
    `dune' 2.2.0 or later is required.

First release of data-encoding, JSON and binary serialisation


Raphaël Proust announced

  The newly released version (0.2) addresses this. All the binary
  reading/writing primitives use `result' by default and have `_opt' and
  `_exn' variants.

  The JSON primitives are not yet changed because they rely on an
  external library that has more idiosyncratic error management. (This
  will eventually be fixed in a future version.)

Opam package popularity?

  Archive: <>

Chet Murthy asked

  Is there someplace a database of opam packages and their popularity?
  Obviously it'd be inaccurate, but it'd still be interesting to see
  which packages are most-often downloaded via opam …..

Levi Roth replied

  The listing at <>
  has the download counts (I think for the latest month, not sure if
  that means past 30 days or since the start of the current calendar
  month) as title attributes on the table rows.

What's the OCaml equivalent for HLint?


Fangyi Zhou asked

  I've been using OCaml for quite a while and one thing I've been
  looking for is a good linter, ideally something like the Haskell

  I found [this] which seems quite old - latest release in 2012.

  Sorry if this has been raised previously.

[HLint] <>

[this] <>

"Aaron L. Zeng

  Something similar, but not as featureful, is [ppx_js_style].  It's
  somewhat opinionated, but the checks aren't Jane Street-specific.

[ppx_js_style] <>

New release of naboris 0.1.1


Shawn McGinty announced


  • *(much)* Better performance
  • API improvements

Category theory for Programmers book - OCaml flavor


Anton Kochkov announced

  Thanks to @Arul the book was finished, and now is available for
  download here -

  Please, enjoy and report a feedback.

Call for Speakers: Build Meetup New York April 2020


Jérémie Dimino announced

  On April 7th and 8th, [Jane Street], [Bloomberg] and [Google] will be
  hosting a Build Meetup at the [Jane Street offices] in New York City.

  As we begin shaping our schedule, we are reaching out to a number of
  communities to find people who would like to participate in the
  event. Speaker sign-ups are now live [here].

  We are excited to announce that the keynote will be presented by the
  authors of the research paper “[From Laptop to Lambda: Outsourcing
  Everyday Jobs to Thousands of Transient Functional Containers]” which
  examines the exciting possibilities for build through the use of cloud

  The entire event will be themed around all things build and test:
  Bazel, Buck, BuildStream, CMake, Dune, Goma, Pants, Recc and Remote
  Execution. In addition to this, we are interested in the growing
  surrounding ecosystems, such as editor integration and developer build
  experience as a whole.

  The meetup will run as follows: on day one, a series of talks will be
  presented along with breakfast, lunch and refreshments. This will be
  followed by an evening social at a nearby venue to continue the
  discussions from throughout the day.

  On the second day there will be an opportunity for broader community
  collaboration and discussion during our all day code sprint.

  We are looking for insightful and engaging talks and presentations on
  topics focused around build systems. Have you worked tirelessly for
  the past 6 months on a new feature for project foo you would like to
  showcase? Have you and your team spent the last year integrating the
  tool bar at your workplace? Do you have some comparisons to make
  between qux and quux that the community could benefit from?

  If so, we would love to [hear from you]!

  We welcome proposals for talks across the entire ecosystem. Each talk
  should ideally last 30 minutes, followed by time for questions.

  Keep your eyes out for meetup registration information, which will be
  sent separately over the next few weeks!

[Jane Street] <>

[Bloomberg] <>

[Google] <>

[Jane Street offices] <>


[From Laptop to Lambda: Outsourcing Everyday Jobs to Thousands of
Transient Functional Containers]

[hear from you]


  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

  If you also wish to receive it every week by mail, you may subscribe

  [Alan Schmitt]

[send me a message] <>

[the archive] <>

[RSS feed of the archives] <>

[online] <>

[Alan Schmitt] <>

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

             reply	other threads:[~2020-02-18  8:18 UTC|newest]

Thread overview: 112+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-18  8:18 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-17 11:04 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-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:

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

  git send-email \ \ \ \ \ \ \

* 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).