caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Francois Pottier <Francois.Pottier@inria.fr>
To: caml-list@inria.fr
Subject: [Caml-list] New release of Menhir (20151030)
Date: Fri, 30 Oct 2015 20:58:50 +0100	[thread overview]
Message-ID: <20151030195850.GA10085@yquem.inria.fr> (raw)


Dear OCaml users,

A new release of Menhir (20151030) is available via opam (just run "opam
update" and "opam install menhir") and from
http://gallium.inria.fr/~fpottier/menhir/ .

The relevant chunk of the CHANGES file is appended at the end of this message.
Here is a summary of the most important changes:

  - A brand new set of tools to work on syntax errors. These tools have been
    used to equip the CompCert compiler with new syntax error messages.

  - Additions to the incremental API, including several ready-made main loops.

  - Incompatible change of the incremental API: renamed the type ['a result]
    to ['a checkpoint] (sorry about that).

  - Makefile fixes in an attempt to allow installation under opam/Windows.

  - MenhirLib is now installed in both binary and source forms.
    This can be used to include a snapshot of MenhirLib in your project.

Best regards,

--
François Pottier
Francois.Pottier@inria.fr
http://gallium.inria.fr/~fpottier/

2015/10/29:
MenhirLib is now installed in both binary and source forms.
"menhir --suggest-menhirLib" reports where MenhirLib is installed.
This can be used to retrieve a snapshot of MenhirLib in source form
and include it in your project (if you wish to use --table mode, yet
do not wish to have a dependency on MenhirLib).

2015/10/27:
Fix the Makefile in an attempt to allow installation under opam/Windows.
Thanks to Daniel Weil for his patient explanations.

2015/10/26:
Allow --list-errors to work on 32-bit machines (with low hard limits).
This should fix a problem whereby the 2015/10/23 release could not
bootstrap on a 32-bit machine.

2015/10/23:
New declaration "%on_error_reduce foo", where foo is a nonterminal symbol.
This modifies the automaton as follows. In every state where a production of
the form "foo -> ..." is ready to be reduced, every error action is replaced
with a reduction of this production. (If there is a conflict between several
productions that could be reduced in this manner, nothing is done.) This does
not affect the language that is accepted by the automaton, but delays the
detection of an error: more reductions take place before the error is
detected.

2015/10/23:
Fixed a bug whereby Menhir would warn about a useless %prec declaration,
even though it was useful. This would happen when the declaration was
duplicated (by inlining or by macro-expansion) and some but not all of
the copies were useful.

2015/10/23:
Added [has_default_reduction] to the incremental API.

2015/10/23:
Modified the meaning of --canonical to allow default reductions to take
place. This implies no loss of precision in terms of lookahead sets,
and should allow gaining more contextual information when a syntax
error is encountered. (It should also lead to a smaller automaton.)

2015/10/23:
A brand new set of tools to work on syntax errors.
New command --list-errors, which produces a list of input sentences which
are representative of all possible syntax errors. (Costly.)
New command --interpret-error, which confirms that one particular input
sentence ends in a syntax error, and prints the number of the state in
which this error occurs.
New command --compile-errors, which compiles a list of erroneous sentences
(together with error messages) to OCaml code.
New command --compare-errors, which compares two lists of erroneous sentences
to check if they cover the same error states.
New command --update-errors, which updates the auto-generated comments in
a list of erroneous sentences.
New command --echo-errors, which removes all comments and messages from
a list of erroneous sentences, and echoes just the sentences.

2015/10/16:
Additions to the incremental API.
A [supplier] is a function that produces tokens on demand.
[lexer_lexbuf_to_supplier] turns a lexer and a lexbuf into a supplier.
[loop] is a ready-made made main parsing loop.
[loop_handle] is a variant that lets the user do her own error handling.
[loop_handle_undo] is a variant that additionally allows undoing the last
  few "spurious" reductions.
[number] maps a state of the LR(1) automaton to its number.

2015/10/16:
Incompatible change of the incremental API: renamed the type ['a result]
to ['a checkpoint]. This is a better name anyway, and should help avoid
confusion with the type ['a result] introduced in OCaml 4.03.

2015/10/12:
Avoid using $(shell pwd) in Makefile, for better Windows compatibility.

2015/10/05:
Fixed a bug where inconsistent OCaml code was generated when --table
and --external-tokens were used together. (Reported by Darin Morrison.)

2015/10/05:
In --infer mode, leave the .ml file around (instead of removing it) if
ocamlc fails, so we have a chance to understand what's wrong.

                 reply	other threads:[~2015-10-30 19:58 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=20151030195850.GA10085@yquem.inria.fr \
    --to=francois.pottier@inria.fr \
    --cc=caml-list@inria.fr \
    /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).