forked from haskell/happy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES
276 lines (191 loc) · 9.02 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
-----------------------------------------------------------------------------
1.21.0
* Add two new backends:
* Continuation-based LALR(1) (recursive ascent)
* Continuation-based RAD(1) (recursive ascent-descent)
* RAD generally produces smaller compiled code using less states
* Continuation-based form introduces a speed advantage over
table-based form
-----------------------------------------------------------------------------
1.20.0
* Fix #121: the -i flag produces an .info file even if
the %expect pragma is violated
* Fix #131: qualify uses of Prelude functions in generated code
* Fix #161: drop fewer parse items when generating an .info file
* Introduce the %shift directive to resolve shift/reduce
conflicts explicitly, useful in conjunction with %expect 0
* Remove the deprecated build configuration flag 'small_base'
-----------------------------------------------------------------------------
1.19.12
* Fix for building with GHC 8.8.x
* Move custom Setup preprocessing steps into a separate
executable, like Alex
-----------------------------------------------------------------------------
1.19.11
* Fix for building with GHC 8.6.x
-----------------------------------------------------------------------------
1.19.10
* Fix polymorphic (rank-n) non-terminals
* Fix for GHC 8.8.1
-----------------------------------------------------------------------------
1.19.9
* Fix cabal warnings
* Bump upper bounds
* Fix build with GHC 8.4.1-alpha
-----------------------------------------------------------------------------
1.19.8
* Fix issue #94 (some grammars don't compile due to new type
signatures introduced to allow overloading to be used)
-----------------------------------------------------------------------------
1.19.7
* Fix missing test suite files in the sdist
-----------------------------------------------------------------------------
1.19.6
* Manually generate Parser.hs using Makefile before sdist,
to fix bootstrapping problems with cabal sandboxes & new-build
* Documentation fixes
* Fixed GLR support
* new option -p/--pretty prints the grammar rules (only) to a file
* Added generation of additional type signatures to enable use
of typeclasses in monadic parsers.
-----------------------------------------------------------------------------
1.19.5
* fixes for GHC 7.10
* Code cleanups (thanks Index Int <[email protected]>)
-----------------------------------------------------------------------------
1.19.4
* fix for GHC 7.10 (Applicative/Monad, #19, #21)
-----------------------------------------------------------------------------
1.19.3
* fix for GHC 7.2 (#16)
-----------------------------------------------------------------------------
1.19.2
* fixes for clang (XCode 5)
-----------------------------------------------------------------------------
1.19.1
* repackaged to build with GHC 7.7+
-----------------------------------------------------------------------------
1.19
* necessary changes to work with GHC 7.8
-----------------------------------------------------------------------------
1.18.10
* Fix build with GHC 7.6
-----------------------------------------------------------------------------
1.18.8
* Fix a packaging bug (cabal-install-0.10.2 didn't put the
Happy-generated files in the sdist)
-----------------------------------------------------------------------------
1.18.7
* Fix a bug in error handling when using %monad without %lexer
-----------------------------------------------------------------------------
Changes from version 1.17 to 1.18
* New feature: EBNF-style paramterized macros, thanks to
Iavor Diatchki.
* Works with Cabal 1.2, 1.4 and 1.6
* A few minor bugfixes
-----------------------------------------------------------------------------
Changes from version 1.16 to 1.17
* Cabal 1.2 is required
* Works with upcoming GHC 6.8.1
* Fix the 'parE' bug (poor error message for errors in the grammar)
* Some performance improvements to Happy itself
-----------------------------------------------------------------------------
Changes from version 1.15 to 1.16
* Switch to a Cabal build system: you need a recent version of Cabal
(1.1.6 or later). If you have GHC 6.4.2, then you need to upgrade
Cabal before building Happy. GHC 6.6 is fine.
* New %error directive
* New production forms: {%% .. } and {%^ .. }
* Added Attribute Grammar support, by Robert Dockins
-----------------------------------------------------------------------------
Changes from version 1.14 to 1.15
* New %expect directive
* the list of tokens passed to happyError now includes the current
token (not %lexer).
* added support for ambiguous grammars via Generalized LR parsing
* added %partial to indicate a parser that can return a result
before EOF is reached.
-----------------------------------------------------------------------------
Changes from version 1.13 to 1.14
* New meta-variable $> represents the rightmost token.
* Happy's OPTIONS pragma is merged with an existing one in
the grammar file, if any.
-----------------------------------------------------------------------------
Changes from version 1.11 to 1.13
* Support for newer versions of GHC (>= 5.04).
* Addition of an experimental flag: --strict.
-----------------------------------------------------------------------------
Changes from version 1.10 to 1.11
* tokens no longer have a default precedence - if you
want a token to have a precedence, you have to declare it.
* bugfix to templates for GHC on 64-bit platforms.
-----------------------------------------------------------------------------
Changes from version 1.9 to 1.10
* bugfixes, and minor performance improvements,
* most of the examples work again.
-----------------------------------------------------------------------------
Changes from version 1.8 to 1.9
* A grammar may now contain several entry points, allowing
several parsers to share parts of the grammar.
* Some bugfixes.
-----------------------------------------------------------------------------
Changes from version 1.6 to 1.8
* Parser table compression, and more efficient
table encoding when used with GHC. Large grammars
can now be compiled in much less time/space than
before using GHC.
* Yacc-style operator precedence, thanks to patches
from Hermann Oliveira Rodrigues <[email protected]>
and Josef Svenningsson <[email protected]>.
* A debug option which causes the generated parser to
print tracing information at each step during parsing.
-----------------------------------------------------------------------------
Changes from version 1.5 to 1.6
* Now written in, and generates, Haskell 98.
* Several bug fixes.
* A new option, -c, generates parsers that use GHC's unsafeCoerce#
primitive to speed up parsing and cut down the binary size.
The -c option can only be used with the -g (GHC extensions) option.
* Parsers generated with the -g option will compile to smaller binaries
now - some sources of parser-bloat were identified and squished.
* Happy has a new Open Source license, based on the BSD license.
* A sample Haskell parser using Happy is included.
-----------------------------------------------------------------------------
Changes from version 1.2 to version 1.5
* Many bug fixes to the error recovery support, found by experimenting
with the Haskell grammar and layout.
* Happy is about 5 times faster on large examples, due to some
changes in the LALR(1) algorithms.
-----------------------------------------------------------------------------
Changes from version 0.9a to version 1.2
* Supports Haskell 1.4
* Lots of bugs fixed
* Performance: the parser generator is at least 20% faster, and
generated parsers should be faster due to the replacement of a
data type with a newtype.
* Simple error recovery: designed to be enough to implement the
Haskell layout rule.
* Revamped monad support: the monad can now be threaded through
the lexer, enabling passing of state between the parser and the
lexer (handy for the Haskell layout rule), and consistent error
handling.
* The %newline feature is removed, the same effect can be achieved
using the new monad support.
-----------------------------------------------------------------------------
Changes from version 0.8 to 0.9:
* Happy should be much faster than before.
* Generated parsers will be 5-10% smaller.
* Happy now compiles with ghc-0.26.
* Support for monadic parsers via %monad (see the documentation).
* New syntax: previously
f :: { <type> }
f : ...
| ...
etc.
can now be written
f :: { <type> }
: ...
| ...
etc.
(i.e. omit the extra 'f'. It was always ignored anyway :-)
* Miscellaneous bug fixes.