Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
POTTIER Francois
menhir
Commits
d819412c
Commit
d819412c
authored
Apr 06, 2017
by
POTTIER Francois
Browse files
CHANGES.md now passes the markdown lint (mdl).
parent
bf6965f6
Changes
1
Hide whitespace changes
Inline
Side-by-side
CHANGES.md
View file @
d819412c
# Changes
## 2017/03/24
*
Changed Menhir's license from QPL to GPLv2. MenhirLib remains under LGPLv2.
...
...
@@ -15,8 +17,6 @@
default setting, and is itself overridden by the
`--stdlib`
command line
switch. (Requested by Jonathan Protzenko.)
## 2017/01/01
*
`Makefile`
fix: filter out
`'\r'`
in the output of
`menhir --suggest-ocamlfind`
,
so that the
`Makefile`
works when Menhir is compiled as a Windows executable.
(Suggested by Jonathan Protzenko.)
...
...
@@ -44,10 +44,10 @@
## 2016/08/26
*
Fixes in the output of
`--only-preprocess`
:
*
The order of productions is now preserved.
(It was not. This matters if there are reduce/reduce conflicts.)
*
`%parameter`
directives are now printed. (They were not).
*
`%on_error_reduce`
directives are now printed. (They were not.)
*
The order of productions is now preserved.
(It was not. This matters if there are reduce/reduce conflicts.)
*
`%parameter`
directives are now printed. (They were not).
*
`%on_error_reduce`
directives are now printed. (They were not.)
## 2016/08/25
...
...
@@ -113,9 +113,7 @@
could cause a generated parser to crash. Thanks to ygrek for reporting the
bug.
## 2015/11/11
The code produced by version
`XXXXXXXX`
of
`menhir --table`
can now be linked only
*
The code produced by version
`XXXXXXXX`
of
`menhir --table`
can now be linked only
against a matching version of MenhirLib. If an incorrect version of MenhirLib
is installed, the OCaml compiler should complain that
`MenhirLib.StaticVersion.require_XXXXXXXX`
is undefined.
...
...
@@ -132,14 +130,10 @@
until now. It now does. Of course, this means that the positions computed by
the new Menhir are not the same as those computed by older versions of Menhir.
## 2015/11/04
*
Fixed a bug in the treatment of
`%inline`
that would lead to an incorrect
position being computed when the caller and callee had a variable by the
same name.
## 2015/11/04
*
Modified Menhir so as to compute the start and end positions in the exact same
way as
`ocamlyacc`
. (There used to be a difference in the treatment of epsilon
productions.) Of course, this means that the positions computed by the new
...
...
@@ -149,8 +143,6 @@
that is too far off to the left;
`$symbolstartpos`
produces a more accurate
position.
## 2015/11/04
*
Incompatible change of the incremental API: instead of a unit argument, the
entry points (which are named after the start symbols) now require an initial
position, which typically should be
`lexbuf.lex_curr_p`
.
...
...
@@ -185,26 +177,18 @@
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.)
...
...
@@ -223,15 +207,13 @@
## 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
*
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.
*
Incompatible change of the incremental API: renamed the type
`'a result`
to
`'a checkpoint`
. This is a better name anyway, and should help avoid
...
...
@@ -246,8 +228,6 @@
*
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.
...
...
@@ -312,11 +292,11 @@
## 2014/12/29
*
Incompatible change of the incremental API.
*
The API now exposes reduction events.
*
The type
`'a result`
is now private.
*
The type
`env`
is no longer parameterized.
*
`handle`
is renamed to
`resume`
.
*
`offer`
and
`resume`
now expect a result, not an environment.
*
The API now exposes reduction events.
*
The type
`'a result`
is now private.
*
The type
`env`
is no longer parameterized.
*
`handle`
is renamed to
`resume`
.
*
`offer`
and
`resume`
now expect a result, not an environment.
## 2014/12/22
...
...
@@ -423,16 +403,12 @@
*
The
`Makefile`
now tests whether Unix or Windows is used (the test is performed
by evaluating
`Sys.os_type`
under
`ocaml`
) and changes a couple settings accordingly:
*
the executable file name is either
`menhir`
or
`menhir.exe`
*
the object file suffix is either
`.o`
or
`.obj`
## 2011/10/19
*
the executable file name is either
`menhir`
or
`menhir.exe`
*
the object file suffix is either
`.o`
or
`.obj`
*
Added
`--strict`
, which causes many warnings about the grammar and about the
automaton to be considered errors.
## 2011/10/19
*
The
`#`
annotations that are inserted in the generated
`.ml`
file now retain their
full path. (That is, we no longer use
`Filename.basename`
.) This implies that
the
`#`
annotations depend on how Menhir is invoked
...
...
@@ -499,8 +475,6 @@
*
Fixed a problem that would cause the code inliner to abort when a semantic
value and a non-terminal symbol happened to have the same name.
## 2008/08/06
*
Removed code sharing.
## 2008/06/20
...
...
@@ -602,7 +576,8 @@
## 2006/03/27
*
Changed count of reduce/reduce conflicts to allow a comparison with
`ocamlyacc`
's diagnostics.
*
Changed count of reduce/reduce conflicts to allow a comparison
with
`ocamlyacc`
's diagnostics.
*
When refusing to resolve a conflict, report all diagnostics before dying.
## 2006/03/18
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment