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