1228072SbaptThis is the file NEWS for the flex package. It records user -visible
2228072Sbaptchanges between releases of flex.
3228072Sbapt
4228072SbaptSee the file COPYING for copying conditions.
5228072Sbapt
6250125Sjkim* version 2.5.37 released 2012-08-03
7250125Sjkim
8250125Sjkim** Import flex into git. See
9250125Sjkim   git://flex.git.sourceforge.net/gitroot/flex/flex.
10250125Sjkim
11250125Sjkim** Fix make install target to not fail when the flex++ program is
12250125Sjkim   already installed
13250125Sjkim
14250125Sjkim** New translations from the translation project: de, fi, pl, vi
15250125Sjkim
16250125Sjkim* version 2.5.36 released 2012-07-20
17250125Sjkim
18250125Sjkim** various portability fixes that quiet compiler warnings on 64-bit
19250125Sjkim   hosts
20250125Sjkim
21250125Sjkim** various manual fixes, including correcting the name of a %option and
22250125Sjkim   updating some simple examples to use ANSI C syntax
23250125Sjkim
24250125Sjkim** various bug fixes that prevent certain error conditions from
25250125Sjkim   persisting when they should not persist
26250125Sjkim
27250125Sjkim** improvements to the test suite so it behaves better when linking
28250125Sjkim   compiled files
29250125Sjkim
30250125Sjkim** new translations from the translation project: ca, da, es, fi, fr,
31250125Sjkim   ga, ko, pt_br, ro, ru, sv, tr, zh_cn
32250125Sjkim
33250125Sjkim** the flex distribution is now built with automake 1.10.1 and automake
34250125Sjkim   2.61
35250125Sjkim
36228072Sbapt* version 2.5.35 released 2008-02-26
37228072Sbapt
38228072Sbapt** fixed bug that prevented flex from accepting certain comments in the
39228072Sbapt  scanner file (resolves bugs #1849809 and #1849805)
40228072Sbapt
41228072Sbapt** fix bug that prevented headers for all functions from being generated
42228072Sbapt  (resolves bug #1628314)
43228072Sbapt
44228072Sbapt** change yy_size_t to be size_t (resolves bug #1849812)
45228072Sbapt
46228072Sbapt** new de, nl, pl, pt_br, vi translations from the translation project
47228072Sbapt
48228072Sbapt* version 2.5.34 released 2007-12-12
49228072Sbapt
50228072Sbapt** introduce yylex_init_extra; see the manual for details
51228072Sbapt
52228072Sbapt** introduce %option extra-type="your_type *" (resolves bug #1744505)
53228072Sbapt
54228072Sbapt** The flex program now parses multiple short concatenated options (resolves bug
55228072Sbapt  #1619820). Thanks to Petr Machata of Red Hat on this issue.
56228072Sbapt
57228072Sbapt** better checking after yyalloc/yyrealloc (resolves bug #1595967)
58228072Sbapt
59228072Sbapt** flex now provides for a libfl_pic.a compiled with position
60228072Sbapt   independent code. Particularly useful when including a flex scanner
61228072Sbapt   in a shared library and with more recent versions of gcc. Thanks to the Debian project for the idea.
62228072Sbapt
63228072Sbapt** SourceForge feature request #1658379: Expose YY_BUF_SIZE in the
64228072Sbapt	header file.
65228072Sbapt
66228072Sbapt** flex better escapes filenames with special characters in them
67228072Sbapt   (resolves bug #1623600)
68228072Sbapt
69228072Sbapt** a memory leak was plugged(resolves bug #1601111)
70228072Sbapt
71228072Sbapt** pattern language expanded; see the manual for details on the below
72228072Sbapt   highlights
73228072Sbapt
74228072Sbapt*** pattern options added to specify patterns as case-insensitive or
75228072Sbapt    case-sensitive
76228072Sbapt
77228072Sbapt*** pattern options to specify whether the "." character should match
78228072Sbapt    the newline character
79228072Sbapt
80228072Sbapt*** pattern options added to allow ignoring of whitespace in patterns
81228072Sbapt
82228072Sbapt*** POSIX character classes may be negated in patterns
83228072Sbapt
84228072Sbapt*** patterns may now use set difference, union operators
85228072Sbapt
86228072Sbapt** the manual now contains an appendix listing various common patterns
87228072Sbapt   which may be useful when writing scanners
88228072Sbapt
89228072Sbapt** some memory leaks were removed from the C++ scanner (but the C++
90228072Sbapt  scanner is still experimental and may change radically without
91228072Sbapt  notice)
92228072Sbapt
93228072Sbapt** c++ scanners can now use yywrap
94228072Sbapt
95228072Sbapt** added new unit test for c++ and yywrap
96228072Sbapt
97228072Sbapt** portability fixes to some unit tests
98228072Sbapt
99228072Sbapt** flex man page and flex manual in pdf now distributed in the flex
100228072Sbaptdistribution
101228072Sbapt
102228072Sbapt** new ca, vi, ga, nl translations from the translation project
103228072Sbapt
104228072Sbapt** flex no longer comes with an rpm spec file
105228072Sbapt
106228072Sbapt** flex development now happens with automake 1.9.6
107228072Sbapt
108228072Sbapt* version 2.5.33 released 2006-2-20
109228072Sbapt
110228072Sbapt** all flex resources are now to be found from the website at
111228072Sbapt   http://flex.sourceforge.net/
112228072Sbapt
113228072Sbapt** there was no release 2.5.32 published
114228072Sbapt
115228072Sbapt** numerous bug and security fixes
116228072Sbapt
117228072Sbapt** new nl, vi, sv, ro, po, ga, ca, fr, tr translations from the translation project
118228072Sbapt
119228072Sbapt** upgrade to use gettext 0.12 (this now makes the "pdf" and "ps"
120228072Sbapt   targets in the build system able to be run successfully)
121228072Sbapt
122228072Sbapt* version 2.5.31 released 2003-4-1
123228072Sbapt
124228072Sbapt** remove --enable-maintainer-mode configure option; none of the
125228072Sbapt   Makefiles were using it and it can be unduely confusing
126228072Sbapt
127228072Sbapt* version 2.5.30 released 2003-4-1
128228072Sbapt
129228072Sbapt** yylineno is per-buffer in reentrant scanners
130228072Sbapt
131228072Sbapt** added %top directive for placing code at the top of the generated
132228072Sbapt   scanner; see manual for details
133228072Sbapt
134228072Sbapt** flex now uses m4 to generate scanners; while this means that
135228072Sbapt   scanners are more readable, it means that flex requires m4 to be
136228072Sbapt   installed; see manual for details
137228072Sbapt
138228072Sbapt* version 2.5.29 released 2003-3-5
139228072Sbapt
140228072Sbapt** Automatic stack management for multiple input buffers in C and C++ scanners
141228072Sbapt
142228072Sbapt** moved the flex documentation to a new doc/ subdirectory
143228072Sbapt
144228072Sbapt** cleanups to the yy namespace
145228072Sbapt
146228072Sbapt* version 2.5.28 released 2003-2-12
147228072Sbapt
148228072Sbapt** flex is now hosted at sourceforge
149228072Sbapt
150228072Sbapt** Fixed trailing slash bug in YY_INPUT macro def
151228072Sbapt
152228072Sbapt** Flex now warns if always-interactive is specified with fast or full
153228072Sbapt
154228072Sbapt* version 2.5.27 released 2003-1-21
155228072Sbapt
156228072Sbapt** flex now works with recent bison versions
157228072Sbapt
158228072Sbapt** new pt_br translation from the translation project
159228072Sbapt
160228072Sbapt* version 2.5.26 released 2003-1-14
161228072Sbapt
162228072Sbapt** Fixed table deserialization bug on big-endian archs. Patch sent from Bryce Nichols <bryce@bnichols.org>
163228072Sbapt
164228072Sbapt** yyleng has proper declarations now; this caused flex to generate
165228072Sbapt   unusable scanners for some programs
166228072Sbapt
167228072Sbapt** the flex distribution now includes a spec file suitable for use
168228072Sbapt   with rpm
169228072Sbapt
170228072Sbapt** some more c++ fixes
171228072Sbapt
172228072Sbapt** new es translation from the translation project
173228072Sbapt
174228072Sbapt** slight tweeks to the flex_int*_t types
175228072Sbapt
176228072Sbapt** flex now warns about pattern ranges that might be ambiguous when
177228072Sbapt   generating a case-insensitive scanner
178228072Sbapt
179228072Sbapt
180228072Sbapt* version 2.5.25 released 2002-12-2
181228072Sbapt
182228072Sbapt** flex now uses flex_int*_t types. For C99 systems, they are just the
183228072Sbapt   int*_t types; for non-C99 systems, we just make some typedefs
184228072Sbapt
185228072Sbapt** new pt_br translation from the translation project
186228072Sbapt
187228072Sbapt* version 2.5.24 released 2002-11-25
188228072Sbapt
189228072Sbapt* more portability fixes
190228072Sbapt
191228072Sbapt** the manual continues to be updated and edited, but it's still got a
192228072Sbapt   ways to go
193228072Sbapt
194228072Sbapt** it is possible to have multiple c++ scanners in the same program again
195228072Sbapt
196228072Sbapt** new turkish translation from the translation project
197228072Sbapt
198228072Sbapt* version 2.5.23 released 2002-10-21
199228072Sbapt
200228072Sbapt** more portability fixes
201228072Sbapt
202228072Sbapt** the manual includes a title page and a table-of-contents when printed
203228072Sbapt
204228072Sbapt** the test suite can be run with "make check" from the top-level
205228072Sbapt   directory
206228072Sbapt
207228072Sbapt** configure now accepts the --enable-maintainer-mode option
208228072Sbapt
209228072Sbapt** gettext functionality is now only available externally
210228072Sbapt
211228072Sbapt** the constant FLEX_BETA is defined if flex is a beta release
212228072Sbapt
213228072Sbapt** the script create-test was not included in the distribution and it
214228072Sbapt   should have been
215228072Sbapt
216228072Sbapt* version 2.5.22 released 2002-10-10
217228072Sbapt
218228072Sbapt** more portability fixes around how we get ahold of the integral
219228072Sbapt   types; there is a constant FLEX_NEED_INTEGRAL_TYPE_DEFINITIONS
220228072Sbapt   which you should define if you don't have the <inttypes.h> header
221228072Sbapt   file (after you complain to your C vendor for not providing a
222228072Sbapt   reasonable C environment)
223228072Sbapt
224228072Sbapt** more test suite cleanups; in particular, the test suite should run
225228072Sbapt   correctly when build from a different directory
226228072Sbapt
227228072Sbapt** upgraded automake to 1.7 and consequently autoconf to 2.54; this
228228072Sbapt   means, among other things, that there is some support for
229228072Sbaptformatting the manual in postscript and pdf in the distributed
230228072Sbapt   Makefile.in (and therefore in the Makefile built by configure)
231228072Sbapt
232228072Sbapt** the flex.1 manpage is generated by help2man; (this has been true
233228072Sbapt   for quite a while but was not listed here)
234228072Sbapt
235228072Sbapt** flex now includes three defined constants to indicate which version
236228072Sbapt  of flex generated a scanner (YY_FLEX_{MAJOR,MINOR,SUBMINOR}_VERSION)
237228072Sbapt
238228072Sbapt** flex tries its best to output only the relevant portions of the
239228072Sbapt   skeleton when generating a scanner, thus avoiding as much
240228072Sbapt   conditional compilation as possible
241228072Sbapt
242228072Sbapt* version 2.5.21 released 2002-9-17
243228072Sbapt
244228072Sbapt** one of the tests in the test suite broke the dist target
245228072Sbapt
246228072Sbapt* version 2.5.20 released 2002-9-16
247228072Sbapt
248228072Sbapt** A flex scanner has the ability to save the DFA tables to a file,
249228072Sbapt   and load them at runtime when needed; see the manual for details
250228072Sbapt
251228072Sbapt** Added %option bison-bridge (--bison-bridge)
252228072Sbapt
253228072Sbapt** Removed %option reentrant-bison/--reentrant-bison/-Rb
254228072Sbapt
255228072Sbapt** yylineno is present in all scanners; Modified nasty performance
256228072Sbapt   penalty warning with yylineno in documentation
257228072Sbapt
258228072Sbapt** test-table-opts is now run last in the test suite because it's so fat
259228072Sbapt
260228072Sbapt** flex can, to some extent, diagnose where internal problems occur
261228072Sbapt
262228072Sbapt** new translations from the translation project: fr, ca, de, ru, sv
263228072Sbapt
264228072Sbapt**Flex generates C99 defs now; see YY_TRADITIONAL_FUNC_DEFS in the
265228072Sbapt  manual if that's not a good thing for you
266228072Sbapt
267228072Sbapt* version 2.5.19 released 2002-9-5
268228072Sbapt
269228072Sbapt** prevent segfault on input lines which are longer than the allocated
270228072Sbapt   space (problem report from Manoj Srivastava
271228072Sbapt   <srivasta@golden-gryphon.com>)
272228072Sbapt
273228072Sbapt** Changed option 'header' to 'header-file'
274228072Sbapt
275228072Sbapt* version 2.5.18 released 2002-9-4
276228072Sbapt
277228072Sbapt** portability fixes for integer constants and in the way the test
278228072Sbapt   suite reports its results
279228072Sbapt
280228072Sbapt** the test for bison was reporting bison missing when it was, in
281228072Sbapt   fact, found
282228072Sbapt
283228072Sbapt** if we don't find GNU indent, we're more careful when we're not
284228072Sbapt   finding it
285228072Sbapt
286228072Sbapt* version 2.5.17 released 2002-8-29
287228072Sbapt
288228072Sbapt** more portability fixes
289228072Sbapt
290228072Sbapt** updated config.sub and config.guess
291228072Sbapt
292228072Sbapt** flex is indented by GNU indent (this was done earlier but not
293228072Sbapt   explicitly documented)
294228072Sbapt
295228072Sbapt* version 2.5.16 released 2002-8-28
296228072Sbapt
297228072Sbapt** c++ scanners compile again
298228072Sbapt
299228072Sbapt** there is now an indent target in the top-level Makefile; configure
300228072Sbapt   checks for GNU indent which is required for proper operation of the
301228072Sbapt   indent target
302228072Sbapt
303228072Sbapt** some more portability fixes were made
304228072Sbapt
305228072Sbapt** %options and invocation sections of manual merged
306228072Sbapt
307228072Sbapt** a c++ test was added to the test suite
308228072Sbapt
309228072Sbapt** we're trying to clean up more files in the test suite's make clean
310228072Sbapt   targets
311228072Sbapt
312228072Sbapt* version 2.5.15 released 2002-8-21
313228072Sbapt
314228072Sbapt** reject-state buffer is now dynamically allocated and REJECT buffer
315228072Sbapt   variables are reentrant-safe
316228072Sbapt
317228072Sbapt** manual now discusses memory usage
318228072Sbapt
319228072Sbapt** skeleton now processed by m4 before mkskel.sh; (this only matters
320228072Sbapt   if you want to change the skeleton or if you're doing flex development)
321228072Sbapt
322228072Sbapt** zh_cn translation added from translation project
323228072Sbapt
324228072Sbapt** a bug that caused a segfault has now been fixed
325228072Sbapt
326228072Sbapt** the test suite now respects the usual CFLAGS, etc. variables
327228072Sbapt
328228072Sbapt** removed some warnings which some tests trigggered with the -s option
329228072Sbapt
330228072Sbapt** the flex-generated header file now tries to be smarter about
331228072Sbapt   conditionally including start conditions
332228072Sbapt
333228072Sbapt** tables code omitted from generated scanner when not used
334228072Sbapt
335228072Sbapt* version 2.5.14 released 2002-8-15
336228072Sbapt
337228072Sbapt** the tests using the reentrant c scanner as c++ were reworked
338228072Sbapt   slightly to be sure that the c++ was enforced
339228072Sbapt
340228072Sbapt** de translation now included in the distribution
341228072Sbapt
342228072Sbapt** various portability fixes regarding nls support, c++ include
343228072Sbapt   headers, etc.
344228072Sbapt
345228072Sbapt* version 2.5.13 released 2002-8-15
346228072Sbapt
347228072Sbapt** the header file output with %option header is now much smaller
348228072Sbapt
349228072Sbapt** Fixed type mismatch in printf in scanner skeleton
350228072Sbapt
351228072Sbapt** yylex_init now reports errors
352228072Sbapt
353228072Sbapt* version 2.5.12 released 2002-8-8
354228072Sbapt
355228072Sbapt** updated gettext support to 0.11.5
356228072Sbapt
357228072Sbapt** new fr translation from the translation project
358228072Sbapt
359228072Sbapt** bison is no longer needed to build flex; If you are building flex
360228072Sbapt   from a release (i.e., not from a cvs snapshot), then you don't need
361228072Sbapt   to have a pre-built lex around either (unless you modify scan.l, of
362228072Sbapt   course); (This has been true for some time, but was not mentioned
363228072Sbapt   here.)
364228072Sbapt
365228072Sbapt* version 2.5.11 released 2002-7-31
366228072Sbapt
367228072Sbapt** Fixed bug where yyless did not consider yylineno
368228072Sbapt
369228072Sbapt** the yylineno performance hit is now gone
370228072Sbapt
371228072Sbapt** fixed some typos in the manual and we now include texinfo.tex in
372228072Sbapt   the distribution
373228072Sbapt
374228072Sbapt** traditional prototypes output for C scanners, controlled by a
375228072Sbapt   preprocessor symbol; see documentation for details
376228072Sbapt
377228072Sbapt* version 2.5.10 released 2002-7-24
378228072Sbapt
379228072Sbapt** yy_globals renamed to yyscanner and yy_globals_t renamed to
380228072Sbapt   yy_guts_t
381228072Sbapt
382228072Sbapt** added dist-bzip2 option to Makefile.am so we now produce a bzip2'd
383228072Sbapt   archive in addition to the standard gzip archive
384228072Sbapt
385228072Sbapt*  version 2.5.9
386228072Sbapt
387228072Sbapt** new tests in test suite: test-mem-{nr,r}, test-posix,
388228072Sbapt   test-posixly-correct, test-debug-{nr,r}
389228072Sbapt
390228072Sbapt** made changes to work with gcc-3.2 development code
391228072Sbapt
392228072Sbapt** ability to choose which memory functions are used in flex
393228072Sbapt
394228072Sbapt** new yylex_destroy() function for the non-reentrant scanner
395228072Sbapt
396228072Sbapt** new handling of POSIXLY_CORRECT environment variable
397228072Sbapt
398228072Sbapt** the test suite now has its copyrights explicitly described
399228072Sbapt
400228072Sbapt** new ca, de, fr, ru, sv, tr translations
401228072Sbapt
402228072Sbapt* version 2.5.8
403228072Sbapt
404228072Sbapt** a new --posix option generates scanners with posix-style abc{1,3}
405228072Sbapt   compatible parsing, see manual for the screwy details
406228072Sbapt
407228072Sbapt* version 2.5.7
408228072Sbapt
409228072Sbapt** configure.in now includes a call to AC_PREREQ to enforce the
410228072Sbapt   requirement for autoconf at least 2.50 (This only effects you if
411228072Sbapt   you're doing flex development.)
412228072Sbapt
413228072Sbapt** configure now uses autoconf's versioning information and configure
414228072Sbapt   --help reports the bug-reporting address for flex
415228072Sbapt
416228072Sbapt** test suite now only reports success versus failure; reporting
417228072Sbapt   skipped is problematic under the current setup
418228072Sbapt
419228072Sbapt** compilation with --disable-nls now works
420228072Sbapt
421228072Sbapt** flex can now be built in a separate directory
422228072Sbapt
423228072Sbapt* version 2.5.6
424228072Sbapt
425228072Sbapt** gettext support added (from gettext 0.11)
426228072Sbapt
427228072Sbapt*** translations for ca, da, de, es, fr, ko, ru, sv, tr included
428228072Sbapt
429228072Sbapt** distribution now built under automake 1.6 and autoconf 2.53
430228072Sbapt
431228072Sbapt** command-line option parsing happens differently now:
432228072Sbapt
433228072Sbapt*** Added long option parsing
434228072Sbapt
435228072Sbapt*** Options -n and -c, previously deprecated, now simply do nothing
436228072Sbapt
437228072Sbapt*** Options are now parsed left to right
438228072Sbapt
439228072Sbapt** added a number of new options
440228072Sbapt
441228072Sbapt*** All positive %options are now accessible from the command line
442228072Sbapt
443228072Sbapt*** Added option -D, to define a preprocessor symbol
444228072Sbapt
445228072Sbapt*** Added option --header=FILE to specify a C .h file to generate
446228072Sbapt
447228072Sbapt*** added option --yywrap to call yywrap on EOF
448228072Sbapt
449228072Sbapt*** added option --yylineno to track line count in yylineno
450228072Sbapt
451228072Sbapt*** --yyclass=NAME name of C++ class when generating c++ scanners
452228072Sbapt
453228072Sbapt*** for long option names which are associated with existing short
454228072Sbaptoptions, see accompanying documentation
455228072Sbapt
456228072Sbapt*** new %option nounistd or command-line --nounistd added to prevent
457228072Sbapt    flex from generating #include <unistd.h> on systems that don't
458228072Sbapt    have that include file
459228072Sbapt
460228072Sbapt** Support for reentrant C scanners has been added
461228072Sbapt
462228072Sbapt*** Updated the manual with the new reentrant API
463228072Sbapt
464228072Sbapt*** Two new options %option reentrant (-R) and 
465228072Sbapt%option reentrant-bison (-Rb)
466228072Sbapt
467228072Sbapt*** All globals optionally placed into struct yyglobals_t
468228072Sbapt
469228072Sbapt*** All access to globals replaced by macro invocations
470228072Sbapt
471228072Sbapt*** All functions optionally take one additional
472228072Sbaptargument, yy_globals
473228072Sbapt
474228072Sbapt*** New style for invoking reentrant scanner:
475228072Sbaptyylex_init(void** scanner );
476228072Sbaptyylex( scanner );
477228072Sbaptyylex_destroy( scanner );
478228072Sbapt
479228072Sbapt*** Added get/set functions for members of struct yy_globals_t
480228072Sbapte.g.,  yyget_text, yyget_leng, etc
481228072Sbapt
482228072Sbapt*** Prefix substitution added for new functions
483228072Sbapt
484228072Sbapt*** Macro shortcuts to the lengthy get/set functions
485228072Sbaptprovided for use in actions, e.g.,  yytext, yyleng, etc
486228072Sbapt
487228072Sbapt*** Arbitrary, user-defined data, "yyextra", may be added to scanner
488228072Sbapt
489228072Sbapt** %option nomain no longer implies %option yywrap
490228072SbaptBut the inverse is still true
491228072Sbapt
492228072Sbapt** Developer test suite added
493228072Sbapt
494228072Sbapt*** TESTS/ directory has been added. Users can 
495228072Sbapt'make test' in the TESTS directory to execute the test suite
496228072Sbapt
497228072Sbapt** Support for bison variables yylval and yylloc added
498228072Sbapt
499228072Sbapt** automake support for the build process
500228072Sbapt
501228072Sbapt** manual is now in texinfo/info format
502228072Sbapt
503228072Sbapt*** flex.1 removed from distribution
504228072Sbapt
505228072Sbapt** flex no longer generates C-language scanners with C++-style
506228072Sbapt   comments
507228072Sbapt
508228072Sbapt** flex now generates scanners in c++ which are compatible with
509228072Sbapt   recent c++ compilers
510228072Sbapt
511228072Sbapt** flex input scanner now recognizes '\r' as an EOL character
512228072Sbapt
513228072SbaptSee the file ONEWS for changes in earlier releases.
514228072Sbapt
515228072SbaptLocal Variables:
516228072Sbaptmode: text
517228072Sbaptmode: outline-minor
518228072Sbaptend:
519