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