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