]> git.saurik.com Git - bison.git/blob - NEWS
Version 1.32.
[bison.git] / NEWS
1 Bison News
2 ----------
3
4 Changes in version 1.32, 2002-01-23:
5
6 * Fix Yacc output file names
7
8 * Portability fixes
9
10 * Italian, Dutch translations
11 \f
12 Changes in version 1.31, 2002-01-14:
13
14 * Many Bug Fixes
15
16 * GNU Gettext and %expect
17 GNU Gettext asserts 10 s/r conflicts, but there are 7. Now that
18 Bison dies on incorrect %expectations, we fear there will be
19 too many bug reports for Gettext, so _for the time being_, %expect
20 does not trigger an error when the input file is named `plural.y'.
21
22 * Use of alloca in parsers
23 If YYSTACK_USE_ALLOCA is defined to 0, then the parsers will use
24 malloc exclusively. Since 1.29, but was not NEWS'ed.
25
26 alloca is used only when compiled with GCC, to avoid portability
27 problems as on AIX.
28
29 * When the generated parser lacks debugging code, YYDEBUG is now 0
30 (as POSIX requires) instead of being undefined.
31
32 * User Actions
33 Bison has always permitted actions such as { $$ = $1 }: it adds the
34 ending semicolon. Now if in Yacc compatibility mode, the semicolon
35 is no longer output: one has to write { $$ = $1; }.
36
37 * Better C++ compliance
38 The output parsers try to respect C++ namespaces.
39
40 * Reduced Grammars
41 Fixed bugs when reporting useless nonterminals.
42
43 * 64 bit hosts
44 The parsers work properly on 64 bit hosts.
45
46 * Error messages
47 Some calls to strerror resulted in scrambled or missing error messages.
48
49 * %expect
50 When the number of shift/reduce conflicts is correct, don't issue
51 any warning.
52
53 * The verbose report includes the rule line numbers.
54
55 * Rule line numbers are fixed in traces.
56
57 * Swedish translation
58
59 * Parse errors
60 Verbose parse error messages from the parsers are better looking.
61 Before: parse error: unexpected `'/'', expecting `"number"' or `'-'' or `'(''
62 Now: parse error: unexpected '/', expecting "number" or '-' or '('
63
64 * Fixed parser memory leaks.
65 When the generated parser was using malloc to extend its stacks, the
66 previous allocations were not freed.
67
68 * Fixed verbose output file.
69 Some newlines were missing.
70 Some conflicts in state descriptions were missing.
71
72 * Fixed conflict report.
73 Option -v was needed to get the result.
74
75 * %expect
76 Was not used.
77 Mismatches are errors, not warnings.
78
79 * Fixed incorrect processing of some invalid input.
80
81 * Fixed CPP guards: 9foo.h uses BISON_9FOO_H instead of 9FOO_H.
82
83 * Fixed some typos in the documentation.
84
85 * %token MY_EOF 0 is supported.
86 Before, MY_EOF was silently renumbered as 257.
87
88 * doc/refcard.tex is updated.
89
90 * %output, %file-prefix, %name-prefix.
91 New.
92
93 * --output
94 New, aliasing `--output-file'.
95 \f
96 Changes in version 1.30, 2001-10-26:
97
98 * `--defines' and `--graph' have now an optionnal argument which is the
99 output file name. `-d' and `-g' do not change, they do not take any
100 argument.
101
102 * `%source_extension' and `%header_extension' are removed, failed
103 experiment.
104
105 * Portability fixes.
106 \f
107 Changes in version 1.29, 2001-09-07:
108
109 * The output file does not define const, as this caused problems when used
110 with common autoconfiguration schemes. If you still use ancient compilers
111 that lack const, compile with the equivalent of the C compiler option
112 `-Dconst='. autoconf's AC_C_CONST macro provides one way to do this.
113
114 * Added `-g' and `--graph'.
115
116 * The Bison manual is now distributed under the terms of the GNU FDL.
117
118 * The input and the output files has automatically a similar extension.
119
120 * Russian translation added.
121
122 * NLS support updated; should hopefully be less troublesome.
123
124 * Added the old Bison reference card.
125
126 * Added `--locations' and `%locations'.
127
128 * Added `-S' and `--skeleton'.
129
130 * `%raw', `-r', `--raw' is disabled.
131
132 * Special characters are escaped when output. This solves the problems
133 of the #line lines with path names including backslashes.
134
135 * New directives.
136 `%yacc', `%fixed_output_files', `%defines', `%no_parser', `%verbose',
137 `%debug', `%source_extension' and `%header_extension'.
138
139 * @$
140 Automatic location tracking.
141 \f
142 Changes in version 1.28, 1999-07-06:
143
144 * Should compile better now with K&R compilers.
145
146 * Added NLS.
147
148 * Fixed a problem with escaping the double quote character.
149
150 * There is now a FAQ.
151 \f
152 Changes in version 1.27:
153
154 * The make rule which prevented bison.simple from being created on
155 some systems has been fixed.
156 \f
157 Changes in version 1.26:
158
159 * Bison now uses automake.
160
161 * New mailing lists: <bug-bison@gnu.org> and <help-bison@gnu.org>.
162
163 * Token numbers now start at 257 as previously documented, not 258.
164
165 * Bison honors the TMPDIR environment variable.
166
167 * A couple of buffer overruns have been fixed.
168
169 * Problems when closing files should now be reported.
170
171 * Generated parsers should now work even on operating systems which do
172 not provide alloca().
173 \f
174 Changes in version 1.25, 1995-10-16:
175
176 * Errors in the input grammar are not fatal; Bison keeps reading
177 the grammar file, and reports all the errors found in it.
178
179 * Tokens can now be specified as multiple-character strings: for
180 example, you could use "<=" for a token which looks like <=, instead
181 of chosing a name like LESSEQ.
182
183 * The %token_table declaration says to write a table of tokens (names
184 and numbers) into the parser file. The yylex function can use this
185 table to recognize multiple-character string tokens, or for other
186 purposes.
187
188 * The %no_lines declaration says not to generate any #line preprocessor
189 directives in the parser file.
190
191 * The %raw declaration says to use internal Bison token numbers, not
192 Yacc-compatible token numbers, when token names are defined as macros.
193
194 * The --no-parser option produces the parser tables without including
195 the parser engine; a project can now use its own parser engine.
196 The actions go into a separate file called NAME.act, in the form of
197 a switch statement body.
198 \f
199 Changes in version 1.23:
200
201 The user can define YYPARSE_PARAM as the name of an argument to be
202 passed into yyparse. The argument should have type void *. It should
203 actually point to an object. Grammar actions can access the variable
204 by casting it to the proper pointer type.
205
206 Line numbers in output file corrected.
207 \f
208 Changes in version 1.22:
209
210 --help option added.
211 \f
212 Changes in version 1.20:
213
214 Output file does not redefine const for C++.
215
216 Local Variables:
217 mode: outline
218 End: