3 * Noteworthy changes in release ?.? (????-??-??) [?]
7 *** Flex now includes its own <config.h> header before including
8 system headers so that any system specific features detected by
9 configure are taken into account during compilation of flex
12 *** The flex build system now includes Makefile targets at the top
13 level to allow just building and installing libfl.
15 *** The flex distribution now includes a file, src/libfl.pc, to allow
16 using pkgconfig to find out what flags to use when building
17 against libfl from flex.
19 *** Various edge cases, mostly involving out-of-tree builds have been
20 accounted for in the autotools build system.
22 *** A crash during building on NetBSD has been fixed.
24 *** Flex is now automatically built by travis-ci. That should increase
25 the visibility of bugs and help prevent regressions.
29 *** a new Ukrainian translation has been submitted from the Translation Project.
33 *** Some memory leaks have been fixed.
35 *** A long standing bug that effected expressions of the form c{i,j}
36 where 'c' is a character and {i,j} describes the number of times
37 to match against 'c' when case sensitivity was turned on has been
40 *** New option: --backup-file allows setting the name of the file
41 written containing backing up information. Useful if you need
42 backing up information from multiple scanners in the same
45 *** flex emits correct line number directives when line numbers refer
46 to the file containing the line number directives.
48 *** The options {no,}yy{get,set}_column are now supported.
52 *** Generating the various tableoptions make rules is now more portable.
54 *** Tests of the options -C*f and -C*F will now run correctly on
55 filesystems that are not case sensitive.
57 * Noteworthy changes in release 2.6.4 (2017-05-06) [stable]
61 *** The indent target now knows about flex's new (as of 2.6.0)
62 layout. The indent rules it would apply are not correct and do
65 *** The files included in the flex distribution are now built by the
66 version of flex that is included in the distribution.
68 *** The configure script has a better idea of which headers are
69 required to build flex. It will also error when missing functions
72 *** We have lowered the versions of automake and gettext that
73 configure.ac lists as required for building flex. In autogen.sh,
74 we now check for how to call libtoolize and use what we find in
75 the rest of the script.
77 *** Since files in lib/ are picked up as needed by src/, we no longer
78 generate a Makefile for that directory.
80 *** Flex can be cross compiled.
84 *** Some typos were removed from the manual.
88 *** Some minor performance enhancements.
90 *** We honor user defined yy_* macros again. We are also more careful
91 to not leak macro definitions into header files.
93 *** A number of portability fixes were introduced so building flex is
94 more reliable on more platforms. Additionally, outdated function
97 *** When building the flex executable itself, %# comments from
98 flex.skl are removed when generating the C source code array. This
99 reduces the size of flex.
103 *** All scripts in the test suite are now run by $(SHELL) and the
104 needed portability fixes have been included.
106 *** Test suite dependencies are handled much better. This only matters
107 if you are actively developing flex or its test suite.
109 *** Tests that depend on platform dependent features now properly skip
110 when those platforms are not present.
112 *** When running "make check", you can now pas V=0 to silence more of
113 the build. This is useful when you're less connncerned about the
114 details of building and linking the test programs themselves.
116 * Noteworthy changes in release 2.6.3 (2016-12-30) [stable]
120 *** several bug fixes resolved problems introduced in recent flex
121 versions regarding processing of comments, literals and various
124 *** If the path to m4 was sufficiently long, a buffer overflow could
125 occur. This has been resolved. The fix also removes dependence on
126 the constant PATH_MAX.
130 *** A new configure option --disable-bootstrap changes the behavior of
131 the build system when building flex. The default
132 "--enable-bootstrap" behavior is to build flex, then to use that
133 flex to build flex again. With --disable-bootstrap, the scanner is
134 simply built by sedding the scanner source. This is friendlier to
137 *** The compatibility functions in lib/ are no longer built as a
138 library. Instead, they are built as $(LIBOBJ) objects. This is
139 simpler and friendlier to cross compilation.
141 *** It is now possible to build flex without building the accompanying
142 libfl. This is friendlier to cross compilation. See the
143 --disable-libfl option to configure. Resolves #99.
145 *** the PIC version of libfl was not correctly built. It is no longer
146 included in the build/installation targets of flex since it was
149 *** the distributed man page is only rebuilt when the relevant source
150 files change or when the binary doesn't exist. In particular, this
151 is friendlier to cross compilation. Resolves #108
155 *** the shell scripts in the test suite are more portable across different shell implementations.
157 * version 2.6.2 released 2016-10-24
161 *** a segfalt involving yyrestart(NULL) has been fixed
163 *** flex should now handle quoting when mixed with m4 processing correctly
165 *** flex handles `[[' and `]]' correctly
167 *** flex no longer generates non-ANSI code
169 *** more compilation warnings were squashed in generated scanners
171 *** prevented a buffer overflow that could occur when input buffers were the exact wrong size
175 *** input filenames on MSWindows are now calculated correctly
177 *** general code cleanups in a number of tests now make the test suite compile much more cleanly
181 *** the xz archive has been replaced with an lzip archive
183 *** a new option to configure --enable-warnings to encapsulate passing
184 of warning-related flags which is useful in testing flex
186 *** make indent now works for out of source builds
188 *** Portability warnings when generating Makefile.in files are now suppressed; they were just noise and the use of GNU extensions in Makefile.{am,in,} was intentional and well known.
194 ** new sv translation from the translation project
196 * version 2.6.1 released 2016-03-01
200 *** The flex project is now hosted at github. Consider this a "period of transition". In particular, you should start at https://github.com/westes/flex for the flex codebase, issue tracking and pull requests.
202 *** New releases of flex are to be found at https://github.com/westes/flex/releases.
206 *** Flex now uses more modern and more standard names for variable types. There's more work to be done on that front yet, though.
208 *** A number of compiler warnings have been remedied.
210 *** Line directives should now work as expected and be absent when that is expected.
214 *** When running the test suite, c++ files are compiled with the c++ header inside the flex distribution, rather than relying on the build system's flex header , which might not be installed yet or which might be out of date with respect to what flex tests expect.
216 *** Some portability fixes in the test suite such as opening files for reading in binary mode
220 *** The file src/scan.c asdistributed with flex source is now built with the current version of flex. Occasionally this had to be done manually to pick up new flex features. It's now just a part of flex's build system.
222 *** The pdf version of the manual is no longer distributed with flex, although if you have the texinfo package installed, you can still build it.
224 *** lots of general build system cleanup
226 *** the build system tries a bit harder to find libtoolize and texi2dvi.
228 *** When help2man and texi2dvi are missing, the error messages are now much more helpful.
232 *** resolved github issues #53, #54, #55, #61.
234 *** Resolved sf bugs #128, #129, #155, #160, #184, #187, #195.
236 * version 2.6.0 released 2015-11-17
238 ** User Visible Changes
240 *** C++ scanners now use references instead of pointers. See the manual for details.
242 *** A number of compiler warnings were addressed, so flex generated scanners should be quieter under compiler warning scenarios.
244 *** Allow error reporting routines to accept varying number of arguments
246 *** Removed deprecated 'register' storage class specifier
248 *** Changeed output formats from octal to hexadecimal
250 *** check limits before using array index cclp; resolves sf-166
252 *** Suppress clang warning about empty @param paragraph; resolves sf#158
254 *** Fixed malloc/realloc replacement, resolves sf bug#151.
256 *** Adjusted buffer sizes on ia64.
258 *** various documentation and code clean up fixes: resolves sf bugs #167, #168, among other patches.
262 *** 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.
264 *** The test suite has been reorganized and is now run with the parallel test suite harness from automake.
266 *** 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.
268 *** 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.
270 *** New da translation from the translation project
272 * flex version 2.5.39 released 2014-03-26
274 ** no user visible changes in this release
276 * version 2.5.38 released 2014-02-14
278 ** internationalization
280 *** add sr translation from the translation project
282 *** update da, es, ko, nl, pt_BR, ro, ru, sv, tr, vi, zh_CN translations from the translation project
284 *** rename zh_tw to its proper zh_TW name
286 * version 2.5.37 released 2012-08-03
288 ** Import flex into git. See
289 git://flex.git.sourceforge.net/gitroot/flex/flex.
291 ** Fix make install target to not fail when the flex++ program is
294 ** New translations from the translation project: de, fi, pl, vi
296 * version 2.5.36 released 2012-07-20
298 ** various portability fixes that quiet compiler warnings on 64-bit
301 ** various manual fixes, including correcting the name of a %option and
302 updating some simple examples to use ANSI C syntax
304 ** various bug fixes that prevent certain error conditions from
305 persisting when they should not persist
307 ** improvements to the test suite so it behaves better when linking
310 ** new translations from the translation project: ca, da, es, fi, fr,
311 ga, ko, pt_br, ro, ru, sv, tr, zh_cn
313 ** the flex distribution is now built with automake 1.10.1 and automake
316 * version 2.5.35 released 2008-02-26
318 ** fixed bug that prevented flex from accepting certain comments in the
319 scanner file (resolves bugs #1849809 and #1849805)
321 ** fix bug that prevented headers for all functions from being generated
322 (resolves bug #1628314)
324 ** change yy_size_t to be size_t (resolves bug #1849812)
326 ** new de, nl, pl, pt_br, vi translations from the translation project
328 * version 2.5.34 released 2007-12-12
330 ** introduce yylex_init_extra; see the manual for details
332 ** introduce %option extra-type="your_type *" (resolves bug #1744505)
334 ** The flex program now parses multiple short concatenated options (resolves bug
335 #1619820). Thanks to Petr Machata of Red Hat on this issue.
337 ** better checking after yyalloc/yyrealloc (resolves bug #1595967)
339 ** flex now provides for a libfl_pic.a compiled with position
340 independent code. Particularly useful when including a flex scanner
341 in a shared library and with more recent versions of gcc. Thanks to the Debian project for the idea.
343 ** SourceForge feature request #1658379: Expose YY_BUF_SIZE in the
346 ** flex better escapes filenames with special characters in them
347 (resolves bug #1623600)
349 ** a memory leak was plugged(resolves bug #1601111)
351 ** pattern language expanded; see the manual for details on the below
354 *** pattern options added to specify patterns as case-insensitive or
357 *** pattern options to specify whether the "." character should match
358 the newline character
360 *** pattern options added to allow ignoring of whitespace in patterns
362 *** POSIX character classes may be negated in patterns
364 *** patterns may now use set difference, union operators
366 ** the manual now contains an appendix listing various common patterns
367 which may be useful when writing scanners
369 ** some memory leaks were removed from the C++ scanner (but the C++
370 scanner is still experimental and may change radically without
373 ** c++ scanners can now use yywrap
375 ** added new unit test for c++ and yywrap
377 ** portability fixes to some unit tests
379 ** flex man page and flex manual in pdf now distributed in the flex
382 ** new ca, vi, ga, nl translations from the translation project
384 ** flex no longer comes with an rpm spec file
386 ** flex development now happens with automake 1.9.6
388 * version 2.5.33 released 2006-2-20
390 ** all flex resources are now to be found from the website at
391 http://flex.sourceforge.net/
393 ** there was no release 2.5.32 published
395 ** numerous bug and security fixes
397 ** new nl, vi, sv, ro, po, ga, ca, fr, tr translations from the translation project
399 ** upgrade to use gettext 0.12 (this now makes the "pdf" and "ps"
400 targets in the build system able to be run successfully)
402 * version 2.5.31 released 2003-4-1
404 ** remove --enable-maintainer-mode configure option; none of the
405 Makefiles were using it and it can be unduely confusing
407 * version 2.5.30 released 2003-4-1
409 ** yylineno is per-buffer in reentrant scanners
411 ** added %top directive for placing code at the top of the generated
412 scanner; see manual for details
414 ** flex now uses m4 to generate scanners; while this means that
415 scanners are more readable, it means that flex requires m4 to be
416 installed; see manual for details
418 * version 2.5.29 released 2003-3-5
420 ** Automatic stack management for multiple input buffers in C and C++ scanners
422 ** moved the flex documentation to a new doc/ subdirectory
424 ** cleanups to the yy namespace
426 * version 2.5.28 released 2003-2-12
428 ** flex is now hosted at sourceforge
430 ** Fixed trailing slash bug in YY_INPUT macro def
432 ** Flex now warns if always-interactive is specified with fast or full
434 * version 2.5.27 released 2003-1-21
436 ** flex now works with recent bison versions
438 ** new pt_br translation from the translation project
440 * version 2.5.26 released 2003-1-14
442 ** Fixed table deserialization bug on big-endian archs. Patch sent from Bryce Nichols <bryce@bnichols.org>
444 ** yyleng has proper declarations now; this caused flex to generate
445 unusable scanners for some programs
447 ** the flex distribution now includes a spec file suitable for use
450 ** some more c++ fixes
452 ** new es translation from the translation project
454 ** slight tweeks to the flex_int*_t types
456 ** flex now warns about pattern ranges that might be ambiguous when
457 generating a case-insensitive scanner
460 * version 2.5.25 released 2002-12-2
462 ** flex now uses flex_int*_t types. For C99 systems, they are just the
463 int*_t types; for non-C99 systems, we just make some typedefs
465 ** new pt_br translation from the translation project
467 * version 2.5.24 released 2002-11-25
469 * more portability fixes
471 ** the manual continues to be updated and edited, but it's still got a
474 ** it is possible to have multiple c++ scanners in the same program again
476 ** new turkish translation from the translation project
478 * version 2.5.23 released 2002-10-21
480 ** more portability fixes
482 ** the manual includes a title page and a table-of-contents when printed
484 ** the test suite can be run with "make check" from the top-level
487 ** configure now accepts the --enable-maintainer-mode option
489 ** gettext functionality is now only available externally
491 ** the constant FLEX_BETA is defined if flex is a beta release
493 ** the script create-test was not included in the distribution and it
496 * version 2.5.22 released 2002-10-10
498 ** more portability fixes around how we get ahold of the integral
499 types; there is a constant FLEX_NEED_INTEGRAL_TYPE_DEFINITIONS
500 which you should define if you don't have the <inttypes.h> header
501 file (after you complain to your C vendor for not providing a
502 reasonable C environment)
504 ** more test suite cleanups; in particular, the test suite should run
505 correctly when build from a different directory
507 ** upgraded automake to 1.7 and consequently autoconf to 2.54; this
508 means, among other things, that there is some support for
509 formatting the manual in postscript and pdf in the distributed
510 Makefile.in (and therefore in the Makefile built by configure)
512 ** the flex.1 manpage is generated by help2man; (this has been true
513 for quite a while but was not listed here)
515 ** flex now includes three defined constants to indicate which version
516 of flex generated a scanner (YY_FLEX_{MAJOR,MINOR,SUBMINOR}_VERSION)
518 ** flex tries its best to output only the relevant portions of the
519 skeleton when generating a scanner, thus avoiding as much
520 conditional compilation as possible
522 * version 2.5.21 released 2002-9-17
524 ** one of the tests in the test suite broke the dist target
526 * version 2.5.20 released 2002-9-16
528 ** A flex scanner has the ability to save the DFA tables to a file,
529 and load them at runtime when needed; see the manual for details
531 ** Added %option bison-bridge (--bison-bridge)
533 ** Removed %option reentrant-bison/--reentrant-bison/-Rb
535 ** yylineno is present in all scanners; Modified nasty performance
536 penalty warning with yylineno in documentation
538 ** test-table-opts is now run last in the test suite because it's so fat
540 ** flex can, to some extent, diagnose where internal problems occur
542 ** new translations from the translation project: fr, ca, de, ru, sv
544 **Flex generates C99 defs now; see YY_TRADITIONAL_FUNC_DEFS in the
545 manual if that's not a good thing for you
547 * version 2.5.19 released 2002-9-5
549 ** prevent segfault on input lines which are longer than the allocated
550 space (problem report from Manoj Srivastava
551 <srivasta@golden-gryphon.com>)
553 ** Changed option 'header' to 'header-file'
555 * version 2.5.18 released 2002-9-4
557 ** portability fixes for integer constants and in the way the test
558 suite reports its results
560 ** the test for bison was reporting bison missing when it was, in
563 ** if we don't find GNU indent, we're more careful when we're not
566 * version 2.5.17 released 2002-8-29
568 ** more portability fixes
570 ** updated config.sub and config.guess
572 ** flex is indented by GNU indent (this was done earlier but not
573 explicitly documented)
575 * version 2.5.16 released 2002-8-28
577 ** c++ scanners compile again
579 ** there is now an indent target in the top-level Makefile; configure
580 checks for GNU indent which is required for proper operation of the
583 ** some more portability fixes were made
585 ** %options and invocation sections of manual merged
587 ** a c++ test was added to the test suite
589 ** we're trying to clean up more files in the test suite's make clean
592 * version 2.5.15 released 2002-8-21
594 ** reject-state buffer is now dynamically allocated and REJECT buffer
595 variables are reentrant-safe
597 ** manual now discusses memory usage
599 ** skeleton now processed by m4 before mkskel.sh; (this only matters
600 if you want to change the skeleton or if you're doing flex development)
602 ** zh_cn translation added from translation project
604 ** a bug that caused a segfault has now been fixed
606 ** the test suite now respects the usual CFLAGS, etc. variables
608 ** removed some warnings which some tests trigggered with the -s option
610 ** the flex-generated header file now tries to be smarter about
611 conditionally including start conditions
613 ** tables code omitted from generated scanner when not used
615 * version 2.5.14 released 2002-8-15
617 ** the tests using the reentrant c scanner as c++ were reworked
618 slightly to be sure that the c++ was enforced
620 ** de translation now included in the distribution
622 ** various portability fixes regarding nls support, c++ include
625 * version 2.5.13 released 2002-8-15
627 ** the header file output with %option header is now much smaller
629 ** Fixed type mismatch in printf in scanner skeleton
631 ** yylex_init now reports errors
633 * version 2.5.12 released 2002-8-8
635 ** updated gettext support to 0.11.5
637 ** new fr translation from the translation project
639 ** bison is no longer needed to build flex; If you are building flex
640 from a release (i.e., not from a cvs snapshot), then you don't need
641 to have a pre-built lex around either (unless you modify scan.l, of
642 course); (This has been true for some time, but was not mentioned
645 * version 2.5.11 released 2002-7-31
647 ** Fixed bug where yyless did not consider yylineno
649 ** the yylineno performance hit is now gone
651 ** fixed some typos in the manual and we now include texinfo.tex in
654 ** traditional prototypes output for C scanners, controlled by a
655 preprocessor symbol; see documentation for details
657 * version 2.5.10 released 2002-7-24
659 ** yy_globals renamed to yyscanner and yy_globals_t renamed to
662 ** added dist-bzip2 option to Makefile.am so we now produce a bzip2'd
663 archive in addition to the standard gzip archive
667 ** new tests in test suite: test-mem-{nr,r}, test-posix,
668 test-posixly-correct, test-debug-{nr,r}
670 ** made changes to work with gcc-3.2 development code
672 ** ability to choose which memory functions are used in flex
674 ** new yylex_destroy() function for the non-reentrant scanner
676 ** new handling of POSIXLY_CORRECT environment variable
678 ** the test suite now has its copyrights explicitly described
680 ** new ca, de, fr, ru, sv, tr translations
684 ** a new --posix option generates scanners with posix-style abc{1,3}
685 compatible parsing, see manual for the screwy details
689 ** configure.in now includes a call to AC_PREREQ to enforce the
690 requirement for autoconf at least 2.50 (This only effects you if
691 you're doing flex development.)
693 ** configure now uses autoconf's versioning information and configure
694 --help reports the bug-reporting address for flex
696 ** test suite now only reports success versus failure; reporting
697 skipped is problematic under the current setup
699 ** compilation with --disable-nls now works
701 ** flex can now be built in a separate directory
705 ** gettext support added (from gettext 0.11)
707 *** translations for ca, da, de, es, fr, ko, ru, sv, tr included
709 ** distribution now built under automake 1.6 and autoconf 2.53
711 ** command-line option parsing happens differently now:
713 *** Added long option parsing
715 *** Options -n and -c, previously deprecated, now simply do nothing
717 *** Options are now parsed left to right
719 ** added a number of new options
721 *** All positive %options are now accessible from the command line
723 *** Added option -D, to define a preprocessor symbol
725 *** Added option --header=FILE to specify a C .h file to generate
727 *** added option --yywrap to call yywrap on EOF
729 *** added option --yylineno to track line count in yylineno
731 *** --yyclass=NAME name of C++ class when generating c++ scanners
733 *** for long option names which are associated with existing short
734 options, see accompanying documentation
736 *** new %option nounistd or command-line --nounistd added to prevent
737 flex from generating #include <unistd.h> on systems that don't
738 have that include file
740 ** Support for reentrant C scanners has been added
742 *** Updated the manual with the new reentrant API
744 *** Two new options %option reentrant (-R) and
745 %option reentrant-bison (-Rb)
747 *** All globals optionally placed into struct yyglobals_t
749 *** All access to globals replaced by macro invocations
751 *** All functions optionally take one additional
754 *** New style for invoking reentrant scanner:
755 yylex_init(void** scanner );
757 yylex_destroy( scanner );
759 *** Added get/set functions for members of struct yy_globals_t
760 e.g., yyget_text, yyget_leng, etc
762 *** Prefix substitution added for new functions
764 *** Macro shortcuts to the lengthy get/set functions
765 provided for use in actions, e.g., yytext, yyleng, etc
767 *** Arbitrary, user-defined data, "yyextra", may be added to scanner
769 ** %option nomain no longer implies %option yywrap
770 But the inverse is still true
772 ** Developer test suite added
774 *** TESTS/ directory has been added. Users can
775 'make test' in the TESTS directory to execute the test suite
777 ** Support for bison variables yylval and yylloc added
779 ** automake support for the build process
781 ** manual is now in texinfo/info format
783 *** flex.1 removed from distribution
785 ** flex no longer generates C-language scanners with C++-style
788 ** flex now generates scanners in c++ which are compatible with
791 ** flex input scanner now recognizes '\r' as an EOL character
793 See the file ONEWS for changes in earlier releases.
795 See the file COPYING for copying conditions.