caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] New release of Menhir (20151030)
@ 2015-10-30 19:58 Francois Pottier
  0 siblings, 0 replies; only message in thread
From: Francois Pottier @ 2015-10-30 19:58 UTC (permalink / raw)
  To: caml-list


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.

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2015-10-30 19:58 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-30 19:58 [Caml-list] New release of Menhir (20151030) Francois Pottier

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