xref: /freebsd/contrib/flex/NEWS (revision eb69d1f144a6fcc765d1b9d44a5ae8082353e70b)
1This is the file NEWS for the flex package. It records user -visible
2changes between releases of flex.
3
4See the file COPYING for copying conditions.
5
6* version 2.5.37 released 2012-08-03
7
8** Import flex into git. See
9   git://flex.git.sourceforge.net/gitroot/flex/flex.
10
11** Fix make install target to not fail when the flex++ program is
12   already installed
13
14** New translations from the translation project: de, fi, pl, vi
15
16* version 2.5.36 released 2012-07-20
17
18** various portability fixes that quiet compiler warnings on 64-bit
19   hosts
20
21** various manual fixes, including correcting the name of a %option and
22   updating some simple examples to use ANSI C syntax
23
24** various bug fixes that prevent certain error conditions from
25   persisting when they should not persist
26
27** improvements to the test suite so it behaves better when linking
28   compiled files
29
30** new translations from the translation project: ca, da, es, fi, fr,
31   ga, ko, pt_br, ro, ru, sv, tr, zh_cn
32
33** the flex distribution is now built with automake 1.10.1 and automake
34   2.61
35
36* version 2.5.35 released 2008-02-26
37
38** fixed bug that prevented flex from accepting certain comments in the
39  scanner file (resolves bugs #1849809 and #1849805)
40
41** fix bug that prevented headers for all functions from being generated
42  (resolves bug #1628314)
43
44** change yy_size_t to be size_t (resolves bug #1849812)
45
46** new de, nl, pl, pt_br, vi translations from the translation project
47
48* version 2.5.34 released 2007-12-12
49
50** introduce yylex_init_extra; see the manual for details
51
52** introduce %option extra-type="your_type *" (resolves bug #1744505)
53
54** The flex program now parses multiple short concatenated options (resolves bug
55  #1619820). Thanks to Petr Machata of Red Hat on this issue.
56
57** better checking after yyalloc/yyrealloc (resolves bug #1595967)
58
59** flex now provides for a libfl_pic.a compiled with position
60   independent code. Particularly useful when including a flex scanner
61   in a shared library and with more recent versions of gcc. Thanks to the Debian project for the idea.
62
63** SourceForge feature request #1658379: Expose YY_BUF_SIZE in the
64	header file.
65
66** flex better escapes filenames with special characters in them
67   (resolves bug #1623600)
68
69** a memory leak was plugged(resolves bug #1601111)
70
71** pattern language expanded; see the manual for details on the below
72   highlights
73
74*** pattern options added to specify patterns as case-insensitive or
75    case-sensitive
76
77*** pattern options to specify whether the "." character should match
78    the newline character
79
80*** pattern options added to allow ignoring of whitespace in patterns
81
82*** POSIX character classes may be negated in patterns
83
84*** patterns may now use set difference, union operators
85
86** the manual now contains an appendix listing various common patterns
87   which may be useful when writing scanners
88
89** some memory leaks were removed from the C++ scanner (but the C++
90  scanner is still experimental and may change radically without
91  notice)
92
93** c++ scanners can now use yywrap
94
95** added new unit test for c++ and yywrap
96
97** portability fixes to some unit tests
98
99** flex man page and flex manual in pdf now distributed in the flex
100distribution
101
102** new ca, vi, ga, nl translations from the translation project
103
104** flex no longer comes with an rpm spec file
105
106** flex development now happens with automake 1.9.6
107
108* version 2.5.33 released 2006-2-20
109
110** all flex resources are now to be found from the website at
111   http://flex.sourceforge.net/
112
113** there was no release 2.5.32 published
114
115** numerous bug and security fixes
116
117** new nl, vi, sv, ro, po, ga, ca, fr, tr translations from the translation project
118
119** upgrade to use gettext 0.12 (this now makes the "pdf" and "ps"
120   targets in the build system able to be run successfully)
121
122* version 2.5.31 released 2003-4-1
123
124** remove --enable-maintainer-mode configure option; none of the
125   Makefiles were using it and it can be unduely confusing
126
127* version 2.5.30 released 2003-4-1
128
129** yylineno is per-buffer in reentrant scanners
130
131** added %top directive for placing code at the top of the generated
132   scanner; see manual for details
133
134** flex now uses m4 to generate scanners; while this means that
135   scanners are more readable, it means that flex requires m4 to be
136   installed; see manual for details
137
138* version 2.5.29 released 2003-3-5
139
140** Automatic stack management for multiple input buffers in C and C++ scanners
141
142** moved the flex documentation to a new doc/ subdirectory
143
144** cleanups to the yy namespace
145
146* version 2.5.28 released 2003-2-12
147
148** flex is now hosted at sourceforge
149
150** Fixed trailing slash bug in YY_INPUT macro def
151
152** Flex now warns if always-interactive is specified with fast or full
153
154* version 2.5.27 released 2003-1-21
155
156** flex now works with recent bison versions
157
158** new pt_br translation from the translation project
159
160* version 2.5.26 released 2003-1-14
161
162** Fixed table deserialization bug on big-endian archs. Patch sent from Bryce Nichols <bryce@bnichols.org>
163
164** yyleng has proper declarations now; this caused flex to generate
165   unusable scanners for some programs
166
167** the flex distribution now includes a spec file suitable for use
168   with rpm
169
170** some more c++ fixes
171
172** new es translation from the translation project
173
174** slight tweeks to the flex_int*_t types
175
176** flex now warns about pattern ranges that might be ambiguous when
177   generating a case-insensitive scanner
178
179
180* version 2.5.25 released 2002-12-2
181
182** flex now uses flex_int*_t types. For C99 systems, they are just the
183   int*_t types; for non-C99 systems, we just make some typedefs
184
185** new pt_br translation from the translation project
186
187* version 2.5.24 released 2002-11-25
188
189* more portability fixes
190
191** the manual continues to be updated and edited, but it's still got a
192   ways to go
193
194** it is possible to have multiple c++ scanners in the same program again
195
196** new turkish translation from the translation project
197
198* version 2.5.23 released 2002-10-21
199
200** more portability fixes
201
202** the manual includes a title page and a table-of-contents when printed
203
204** the test suite can be run with "make check" from the top-level
205   directory
206
207** configure now accepts the --enable-maintainer-mode option
208
209** gettext functionality is now only available externally
210
211** the constant FLEX_BETA is defined if flex is a beta release
212
213** the script create-test was not included in the distribution and it
214   should have been
215
216* version 2.5.22 released 2002-10-10
217
218** more portability fixes around how we get ahold of the integral
219   types; there is a constant FLEX_NEED_INTEGRAL_TYPE_DEFINITIONS
220   which you should define if you don't have the <inttypes.h> header
221   file (after you complain to your C vendor for not providing a
222   reasonable C environment)
223
224** more test suite cleanups; in particular, the test suite should run
225   correctly when build from a different directory
226
227** upgraded automake to 1.7 and consequently autoconf to 2.54; this
228   means, among other things, that there is some support for
229formatting the manual in postscript and pdf in the distributed
230   Makefile.in (and therefore in the Makefile built by configure)
231
232** the flex.1 manpage is generated by help2man; (this has been true
233   for quite a while but was not listed here)
234
235** flex now includes three defined constants to indicate which version
236  of flex generated a scanner (YY_FLEX_{MAJOR,MINOR,SUBMINOR}_VERSION)
237
238** flex tries its best to output only the relevant portions of the
239   skeleton when generating a scanner, thus avoiding as much
240   conditional compilation as possible
241
242* version 2.5.21 released 2002-9-17
243
244** one of the tests in the test suite broke the dist target
245
246* version 2.5.20 released 2002-9-16
247
248** A flex scanner has the ability to save the DFA tables to a file,
249   and load them at runtime when needed; see the manual for details
250
251** Added %option bison-bridge (--bison-bridge)
252
253** Removed %option reentrant-bison/--reentrant-bison/-Rb
254
255** yylineno is present in all scanners; Modified nasty performance
256   penalty warning with yylineno in documentation
257
258** test-table-opts is now run last in the test suite because it's so fat
259
260** flex can, to some extent, diagnose where internal problems occur
261
262** new translations from the translation project: fr, ca, de, ru, sv
263
264**Flex generates C99 defs now; see YY_TRADITIONAL_FUNC_DEFS in the
265  manual if that's not a good thing for you
266
267* version 2.5.19 released 2002-9-5
268
269** prevent segfault on input lines which are longer than the allocated
270   space (problem report from Manoj Srivastava
271   <srivasta@golden-gryphon.com>)
272
273** Changed option 'header' to 'header-file'
274
275* version 2.5.18 released 2002-9-4
276
277** portability fixes for integer constants and in the way the test
278   suite reports its results
279
280** the test for bison was reporting bison missing when it was, in
281   fact, found
282
283** if we don't find GNU indent, we're more careful when we're not
284   finding it
285
286* version 2.5.17 released 2002-8-29
287
288** more portability fixes
289
290** updated config.sub and config.guess
291
292** flex is indented by GNU indent (this was done earlier but not
293   explicitly documented)
294
295* version 2.5.16 released 2002-8-28
296
297** c++ scanners compile again
298
299** there is now an indent target in the top-level Makefile; configure
300   checks for GNU indent which is required for proper operation of the
301   indent target
302
303** some more portability fixes were made
304
305** %options and invocation sections of manual merged
306
307** a c++ test was added to the test suite
308
309** we're trying to clean up more files in the test suite's make clean
310   targets
311
312* version 2.5.15 released 2002-8-21
313
314** reject-state buffer is now dynamically allocated and REJECT buffer
315   variables are reentrant-safe
316
317** manual now discusses memory usage
318
319** skeleton now processed by m4 before mkskel.sh; (this only matters
320   if you want to change the skeleton or if you're doing flex development)
321
322** zh_cn translation added from translation project
323
324** a bug that caused a segfault has now been fixed
325
326** the test suite now respects the usual CFLAGS, etc. variables
327
328** removed some warnings which some tests trigggered with the -s option
329
330** the flex-generated header file now tries to be smarter about
331   conditionally including start conditions
332
333** tables code omitted from generated scanner when not used
334
335* version 2.5.14 released 2002-8-15
336
337** the tests using the reentrant c scanner as c++ were reworked
338   slightly to be sure that the c++ was enforced
339
340** de translation now included in the distribution
341
342** various portability fixes regarding nls support, c++ include
343   headers, etc.
344
345* version 2.5.13 released 2002-8-15
346
347** the header file output with %option header is now much smaller
348
349** Fixed type mismatch in printf in scanner skeleton
350
351** yylex_init now reports errors
352
353* version 2.5.12 released 2002-8-8
354
355** updated gettext support to 0.11.5
356
357** new fr translation from the translation project
358
359** bison is no longer needed to build flex; If you are building flex
360   from a release (i.e., not from a cvs snapshot), then you don't need
361   to have a pre-built lex around either (unless you modify scan.l, of
362   course); (This has been true for some time, but was not mentioned
363   here.)
364
365* version 2.5.11 released 2002-7-31
366
367** Fixed bug where yyless did not consider yylineno
368
369** the yylineno performance hit is now gone
370
371** fixed some typos in the manual and we now include texinfo.tex in
372   the distribution
373
374** traditional prototypes output for C scanners, controlled by a
375   preprocessor symbol; see documentation for details
376
377* version 2.5.10 released 2002-7-24
378
379** yy_globals renamed to yyscanner and yy_globals_t renamed to
380   yy_guts_t
381
382** added dist-bzip2 option to Makefile.am so we now produce a bzip2'd
383   archive in addition to the standard gzip archive
384
385*  version 2.5.9
386
387** new tests in test suite: test-mem-{nr,r}, test-posix,
388   test-posixly-correct, test-debug-{nr,r}
389
390** made changes to work with gcc-3.2 development code
391
392** ability to choose which memory functions are used in flex
393
394** new yylex_destroy() function for the non-reentrant scanner
395
396** new handling of POSIXLY_CORRECT environment variable
397
398** the test suite now has its copyrights explicitly described
399
400** new ca, de, fr, ru, sv, tr translations
401
402* version 2.5.8
403
404** a new --posix option generates scanners with posix-style abc{1,3}
405   compatible parsing, see manual for the screwy details
406
407* version 2.5.7
408
409** configure.in now includes a call to AC_PREREQ to enforce the
410   requirement for autoconf at least 2.50 (This only effects you if
411   you're doing flex development.)
412
413** configure now uses autoconf's versioning information and configure
414   --help reports the bug-reporting address for flex
415
416** test suite now only reports success versus failure; reporting
417   skipped is problematic under the current setup
418
419** compilation with --disable-nls now works
420
421** flex can now be built in a separate directory
422
423* version 2.5.6
424
425** gettext support added (from gettext 0.11)
426
427*** translations for ca, da, de, es, fr, ko, ru, sv, tr included
428
429** distribution now built under automake 1.6 and autoconf 2.53
430
431** command-line option parsing happens differently now:
432
433*** Added long option parsing
434
435*** Options -n and -c, previously deprecated, now simply do nothing
436
437*** Options are now parsed left to right
438
439** added a number of new options
440
441*** All positive %options are now accessible from the command line
442
443*** Added option -D, to define a preprocessor symbol
444
445*** Added option --header=FILE to specify a C .h file to generate
446
447*** added option --yywrap to call yywrap on EOF
448
449*** added option --yylineno to track line count in yylineno
450
451*** --yyclass=NAME name of C++ class when generating c++ scanners
452
453*** for long option names which are associated with existing short
454options, see accompanying documentation
455
456*** new %option nounistd or command-line --nounistd added to prevent
457    flex from generating #include <unistd.h> on systems that don't
458    have that include file
459
460** Support for reentrant C scanners has been added
461
462*** Updated the manual with the new reentrant API
463
464*** Two new options %option reentrant (-R) and
465%option reentrant-bison (-Rb)
466
467*** All globals optionally placed into struct yyglobals_t
468
469*** All access to globals replaced by macro invocations
470
471*** All functions optionally take one additional
472argument, yy_globals
473
474*** New style for invoking reentrant scanner:
475yylex_init(void** scanner );
476yylex( scanner );
477yylex_destroy( scanner );
478
479*** Added get/set functions for members of struct yy_globals_t
480e.g.,  yyget_text, yyget_leng, etc
481
482*** Prefix substitution added for new functions
483
484*** Macro shortcuts to the lengthy get/set functions
485provided for use in actions, e.g.,  yytext, yyleng, etc
486
487*** Arbitrary, user-defined data, "yyextra", may be added to scanner
488
489** %option nomain no longer implies %option yywrap
490But the inverse is still true
491
492** Developer test suite added
493
494*** TESTS/ directory has been added. Users can
495'make test' in the TESTS directory to execute the test suite
496
497** Support for bison variables yylval and yylloc added
498
499** automake support for the build process
500
501** manual is now in texinfo/info format
502
503*** flex.1 removed from distribution
504
505** flex no longer generates C-language scanners with C++-style
506   comments
507
508** flex now generates scanners in c++ which are compatible with
509   recent c++ compilers
510
511** flex input scanner now recognizes '\r' as an EOL character
512
513See the file ONEWS for changes in earlier releases.
514
515Local Variables:
516mode: text
517mode: outline-minor
518end:
519