From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id E392F7EEFA for ; Fri, 30 Oct 2015 20:58:55 +0100 (CET) X-IronPort-AV: E=Sophos;i="5.20,220,1444687200"; d="scan'208";a="185268972" Received: from yquem.inria.fr ([128.93.8.37]) by mail2-relais-roc.national.inria.fr with ESMTP; 30 Oct 2015 20:58:50 +0100 Received: by yquem.inria.fr (Postfix, from userid 18965) id 07AFFE19AF; Fri, 30 Oct 2015 20:58:50 +0100 (CET) Date: Fri, 30 Oct 2015 20:58:50 +0100 From: Francois Pottier To: caml-list@inria.fr Message-ID: <20151030195850.GA10085@yquem.inria.fr> Reply-To: Francois.Pottier@inria.fr MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.5.21 (2010-09-15) Subject: [Caml-list] New release of Menhir (20151030) 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.