xref: /freebsd/contrib/flex/NEWS (revision 2e3f49888ec8851bafb22011533217487764fdb0)
1flex NEWS
2
3* Noteworthy changes in release 2.6.4 (2017-05-06) [stable]
4
5** build
6
7*** The indent target now knows about flex's new (as of 2.6.0)
8    layout. The indent rules it would apply are not correct and do
9    need to be fixed.
10
11*** The files included in the flex distribution are now built by the
12    version of flex that is included in the distribution.
13
14*** The configure script has a better idea of which headers are
15    required to build flex. It will also error when missing functions
16    are detected.
17
18*** We have lowered the versions of automake and gettext that
19    configure.ac lists as required for building flex. In autogen.sh,
20    we now check for how to call libtoolize and use what we find in
21    the rest of the script.
22
23*** Since files in lib/ are picked up as needed by src/, we no longer
24    generate a Makefile for that directory.
25
26*** Flex can be cross compiled.
27
28** documentation
29
30*** Some typos were removed from the manual.
31
32** scanner
33
34*** Some minor performance enhancements.
35
36*** We honor user defined yy_* macros again. We are also more careful
37    to not leak macro definitions into header files.
38
39*** A number of portability fixes were introduced so building flex is
40    more reliable on more platforms. Additionally, outdated function
41    calls were removed.
42
43*** When building the flex executable itself, %# comments from
44    flex.skl are removed when generating the C source code array. This
45    reduces the size of flex.
46
47** test suite
48
49*** All scripts in the test suite are now run by $(SHELL) and the
50    needed portability fixes have been included.
51
52*** Test suite dependencies are handled much better. This only matters
53    if you are actively developing flex or its test suite.
54
55*** Tests that depend on platform dependent features now properly skip
56    when those platforms are not present.
57
58*** When running "make check", you can now pas V=0 to silence more of
59    the build. This is useful when you're less connncerned about the
60    details of building and linking the test programs themselves.
61
62* Noteworthy changes in release 2.6.3 (2016-12-30) [stable]
63
64** scanner
65
66*** several bug fixes resolved problems introduced in recent flex
67    versions regarding processing of comments, literals and various
68    quoting scenarios.
69
70*** If the path to m4 was sufficiently long, a buffer overflow could
71    occur. This has been resolved. The fix also removes dependence on
72    the constant PATH_MAX.
73
74** build
75
76*** A new configure option --disable-bootstrap changes the behavior of
77    the build system when building flex. The default
78    "--enable-bootstrap" behavior is to build flex, then to use that
79    flex to build flex again. With --disable-bootstrap, the scanner is
80    simply built by sedding the scanner source. This is friendlier to
81    cross compilation.
82
83*** The compatibility functions in lib/ are no longer built as a
84    library. Instead, they are built as $(LIBOBJ) objects. This is
85    simpler and friendlier to cross compilation.
86
87*** It is now possible to build flex without building the accompanying
88    libfl. This is friendlier to cross compilation. See the
89    --disable-libfl option to configure. Resolves #99.
90
91*** the PIC version of libfl was not correctly built. It is no longer
92    included in the build/installation targets of flex since it was
93    unused.
94
95*** the distributed man page is only rebuilt when the relevant source
96    files change or when the binary doesn't exist. In particular, this
97    is friendlier to cross compilation. Resolves #108
98
99** test
100
101*** the shell scripts in the test suite are more portable across different shell implementations.
102
103* version 2.6.2 released 2016-10-24
104
105** flex internals
106
107*** a segfalt involving yyrestart(NULL) has been fixed
108
109*** flex should now handle quoting when mixed with m4 processing correctly
110
111*** flex handles `[[' and `]]' correctly
112
113*** flex no longer generates non-ANSI code
114
115*** more compilation warnings were squashed in generated scanners
116
117*** prevented a buffer overflow that could occur when input buffers were the exact wrong size
118
119** test suite
120
121*** input filenames on MSWindows are now calculated correctly
122
123*** general code cleanups in a number of tests now make the test suite compile much more cleanly
124
125** build system
126
127*** the xz archive has been replaced with an lzip archive
128
129*** a new option to configure --enable-warnings to encapsulate passing
130    of warning-related flags which is useful in testing flex
131
132*** make indent now works for out of source builds
133
134*** 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.
135
136** bugs
137
138*** resolved gh#67
139
140** new sv translation from the translation project
141
142* version 2.6.1 released 2016-03-01
143
144** flex resources
145
146*** 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.
147
148*** New releases of flex are to be found at https://github.com/westes/flex/releases.
149
150** flex internals
151
152*** Flex now uses more modern and more standard names for variable types. There's more work to be done on that front yet, though.
153
154*** A number of compiler warnings have been remedied.
155
156*** Line directives should now  work as expected and be absent when that is expected.
157
158** test suite
159
160*** 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.
161
162*** Some portability fixes in the test suite such as opening files for reading in binary mode
163
164** Building flex
165
166*** 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.
167
168*** 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.
169
170*** lots of general build system cleanup
171
172*** the build system tries a bit harder to find libtoolize and texi2dvi.
173
174*** When help2man and texi2dvi are missing, the error messages are now much more helpful.
175
176** bug fixes
177
178*** resolved github issues #53, #54, #55, #61.
179
180*** Resolved sf bugs #128, #129, #155, #160, #184, #187, #195.
181
182* version 2.6.0 released 2015-11-17
183
184** User Visible Changes
185
186*** C++ scanners now use references instead of pointers. See the manual for details.
187
188*** A number of compiler warnings were addressed, so flex generated scanners should be quieter under compiler warning scenarios.
189
190*** Allow error reporting routines to accept varying number of arguments
191
192*** Removed deprecated 'register' storage class specifier
193
194*** Changeed output formats from octal to hexadecimal
195
196*** check limits before using array index cclp; resolves sf-166
197
198*** Suppress clang warning about empty @param paragraph; resolves sf#158
199
200*** Fixed malloc/realloc replacement, resolves sf bug#151.
201
202*** Adjusted buffer sizes on ia64.
203
204*** various documentation and code clean up fixes: resolves sf bugs #167, #168, among other patches.
205
206** Flex Internals
207
208*** 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.
209
210*** The test suite has been reorganized and is now run with the parallel test suite harness from automake.
211
212*** 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.
213
214*** 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.
215
216*** New da translation from the translation project
217
218* flex version  2.5.39 released 2014-03-26
219
220** no user visible changes in this release
221
222* version 2.5.38 released 2014-02-14
223
224** internationalization
225
226*** add sr translation from the translation project
227
228*** update da, es, ko, nl, pt_BR, ro, ru, sv, tr, vi, zh_CN translations from the translation project
229
230*** rename zh_tw to its proper zh_TW name
231
232* version 2.5.37 released 2012-08-03
233
234** Import flex into git. See
235   git://flex.git.sourceforge.net/gitroot/flex/flex.
236
237** Fix make install target to not fail when the flex++ program is
238   already installed
239
240** New translations from the translation project: de, fi, pl, vi
241
242* version 2.5.36 released 2012-07-20
243
244** various portability fixes that quiet compiler warnings on 64-bit
245   hosts
246
247** various manual fixes, including correcting the name of a %option and
248   updating some simple examples to use ANSI C syntax
249
250** various bug fixes that prevent certain error conditions from
251   persisting when they should not persist
252
253** improvements to the test suite so it behaves better when linking
254   compiled files
255
256** new translations from the translation project: ca, da, es, fi, fr,
257   ga, ko, pt_br, ro, ru, sv, tr, zh_cn
258
259** the flex distribution is now built with automake 1.10.1 and automake
260   2.61
261
262* version 2.5.35 released 2008-02-26
263
264** fixed bug that prevented flex from accepting certain comments in the
265  scanner file (resolves bugs #1849809 and #1849805)
266
267** fix bug that prevented headers for all functions from being generated
268  (resolves bug #1628314)
269
270** change yy_size_t to be size_t (resolves bug #1849812)
271
272** new de, nl, pl, pt_br, vi translations from the translation project
273
274* version 2.5.34 released 2007-12-12
275
276** introduce yylex_init_extra; see the manual for details
277
278** introduce %option extra-type="your_type *" (resolves bug #1744505)
279
280** The flex program now parses multiple short concatenated options (resolves bug
281  #1619820). Thanks to Petr Machata of Red Hat on this issue.
282
283** better checking after yyalloc/yyrealloc (resolves bug #1595967)
284
285** flex now provides for a libfl_pic.a compiled with position
286   independent code. Particularly useful when including a flex scanner
287   in a shared library and with more recent versions of gcc. Thanks to the Debian project for the idea.
288
289** SourceForge feature request #1658379: Expose YY_BUF_SIZE in the
290	header file.
291
292** flex better escapes filenames with special characters in them
293   (resolves bug #1623600)
294
295** a memory leak was plugged(resolves bug #1601111)
296
297** pattern language expanded; see the manual for details on the below
298   highlights
299
300*** pattern options added to specify patterns as case-insensitive or
301    case-sensitive
302
303*** pattern options to specify whether the "." character should match
304    the newline character
305
306*** pattern options added to allow ignoring of whitespace in patterns
307
308*** POSIX character classes may be negated in patterns
309
310*** patterns may now use set difference, union operators
311
312** the manual now contains an appendix listing various common patterns
313   which may be useful when writing scanners
314
315** some memory leaks were removed from the C++ scanner (but the C++
316  scanner is still experimental and may change radically without
317  notice)
318
319** c++ scanners can now use yywrap
320
321** added new unit test for c++ and yywrap
322
323** portability fixes to some unit tests
324
325** flex man page and flex manual in pdf now distributed in the flex
326distribution
327
328** new ca, vi, ga, nl translations from the translation project
329
330** flex no longer comes with an rpm spec file
331
332** flex development now happens with automake 1.9.6
333
334* version 2.5.33 released 2006-2-20
335
336** all flex resources are now to be found from the website at
337   http://flex.sourceforge.net/
338
339** there was no release 2.5.32 published
340
341** numerous bug and security fixes
342
343** new nl, vi, sv, ro, po, ga, ca, fr, tr translations from the translation project
344
345** upgrade to use gettext 0.12 (this now makes the "pdf" and "ps"
346   targets in the build system able to be run successfully)
347
348* version 2.5.31 released 2003-4-1
349
350** remove --enable-maintainer-mode configure option; none of the
351   Makefiles were using it and it can be unduely confusing
352
353* version 2.5.30 released 2003-4-1
354
355** yylineno is per-buffer in reentrant scanners
356
357** added %top directive for placing code at the top of the generated
358   scanner; see manual for details
359
360** flex now uses m4 to generate scanners; while this means that
361   scanners are more readable, it means that flex requires m4 to be
362   installed; see manual for details
363
364* version 2.5.29 released 2003-3-5
365
366** Automatic stack management for multiple input buffers in C and C++ scanners
367
368** moved the flex documentation to a new doc/ subdirectory
369
370** cleanups to the yy namespace
371
372* version 2.5.28 released 2003-2-12
373
374** flex is now hosted at sourceforge
375
376** Fixed trailing slash bug in YY_INPUT macro def
377
378** Flex now warns if always-interactive is specified with fast or full
379
380* version 2.5.27 released 2003-1-21
381
382** flex now works with recent bison versions
383
384** new pt_br translation from the translation project
385
386* version 2.5.26 released 2003-1-14
387
388** Fixed table deserialization bug on big-endian archs. Patch sent from Bryce Nichols <bryce@bnichols.org>
389
390** yyleng has proper declarations now; this caused flex to generate
391   unusable scanners for some programs
392
393** the flex distribution now includes a spec file suitable for use
394   with rpm
395
396** some more c++ fixes
397
398** new es translation from the translation project
399
400** slight tweeks to the flex_int*_t types
401
402** flex now warns about pattern ranges that might be ambiguous when
403   generating a case-insensitive scanner
404
405
406* version 2.5.25 released 2002-12-2
407
408** flex now uses flex_int*_t types. For C99 systems, they are just the
409   int*_t types; for non-C99 systems, we just make some typedefs
410
411** new pt_br translation from the translation project
412
413* version 2.5.24 released 2002-11-25
414
415* more portability fixes
416
417** the manual continues to be updated and edited, but it's still got a
418   ways to go
419
420** it is possible to have multiple c++ scanners in the same program again
421
422** new turkish translation from the translation project
423
424* version 2.5.23 released 2002-10-21
425
426** more portability fixes
427
428** the manual includes a title page and a table-of-contents when printed
429
430** the test suite can be run with "make check" from the top-level
431   directory
432
433** configure now accepts the --enable-maintainer-mode option
434
435** gettext functionality is now only available externally
436
437** the constant FLEX_BETA is defined if flex is a beta release
438
439** the script create-test was not included in the distribution and it
440   should have been
441
442* version 2.5.22 released 2002-10-10
443
444** more portability fixes around how we get ahold of the integral
445   types; there is a constant FLEX_NEED_INTEGRAL_TYPE_DEFINITIONS
446   which you should define if you don't have the <inttypes.h> header
447   file (after you complain to your C vendor for not providing a
448   reasonable C environment)
449
450** more test suite cleanups; in particular, the test suite should run
451   correctly when build from a different directory
452
453** upgraded automake to 1.7 and consequently autoconf to 2.54; this
454   means, among other things, that there is some support for
455formatting the manual in postscript and pdf in the distributed
456   Makefile.in (and therefore in the Makefile built by configure)
457
458** the flex.1 manpage is generated by help2man; (this has been true
459   for quite a while but was not listed here)
460
461** flex now includes three defined constants to indicate which version
462  of flex generated a scanner (YY_FLEX_{MAJOR,MINOR,SUBMINOR}_VERSION)
463
464** flex tries its best to output only the relevant portions of the
465   skeleton when generating a scanner, thus avoiding as much
466   conditional compilation as possible
467
468* version 2.5.21 released 2002-9-17
469
470** one of the tests in the test suite broke the dist target
471
472* version 2.5.20 released 2002-9-16
473
474** A flex scanner has the ability to save the DFA tables to a file,
475   and load them at runtime when needed; see the manual for details
476
477** Added %option bison-bridge (--bison-bridge)
478
479** Removed %option reentrant-bison/--reentrant-bison/-Rb
480
481** yylineno is present in all scanners; Modified nasty performance
482   penalty warning with yylineno in documentation
483
484** test-table-opts is now run last in the test suite because it's so fat
485
486** flex can, to some extent, diagnose where internal problems occur
487
488** new translations from the translation project: fr, ca, de, ru, sv
489
490**Flex generates C99 defs now; see YY_TRADITIONAL_FUNC_DEFS in the
491  manual if that's not a good thing for you
492
493* version 2.5.19 released 2002-9-5
494
495** prevent segfault on input lines which are longer than the allocated
496   space (problem report from Manoj Srivastava
497   <srivasta@golden-gryphon.com>)
498
499** Changed option 'header' to 'header-file'
500
501* version 2.5.18 released 2002-9-4
502
503** portability fixes for integer constants and in the way the test
504   suite reports its results
505
506** the test for bison was reporting bison missing when it was, in
507   fact, found
508
509** if we don't find GNU indent, we're more careful when we're not
510   finding it
511
512* version 2.5.17 released 2002-8-29
513
514** more portability fixes
515
516** updated config.sub and config.guess
517
518** flex is indented by GNU indent (this was done earlier but not
519   explicitly documented)
520
521* version 2.5.16 released 2002-8-28
522
523** c++ scanners compile again
524
525** there is now an indent target in the top-level Makefile; configure
526   checks for GNU indent which is required for proper operation of the
527   indent target
528
529** some more portability fixes were made
530
531** %options and invocation sections of manual merged
532
533** a c++ test was added to the test suite
534
535** we're trying to clean up more files in the test suite's make clean
536   targets
537
538* version 2.5.15 released 2002-8-21
539
540** reject-state buffer is now dynamically allocated and REJECT buffer
541   variables are reentrant-safe
542
543** manual now discusses memory usage
544
545** skeleton now processed by m4 before mkskel.sh; (this only matters
546   if you want to change the skeleton or if you're doing flex development)
547
548** zh_cn translation added from translation project
549
550** a bug that caused a segfault has now been fixed
551
552** the test suite now respects the usual CFLAGS, etc. variables
553
554** removed some warnings which some tests trigggered with the -s option
555
556** the flex-generated header file now tries to be smarter about
557   conditionally including start conditions
558
559** tables code omitted from generated scanner when not used
560
561* version 2.5.14 released 2002-8-15
562
563** the tests using the reentrant c scanner as c++ were reworked
564   slightly to be sure that the c++ was enforced
565
566** de translation now included in the distribution
567
568** various portability fixes regarding nls support, c++ include
569   headers, etc.
570
571* version 2.5.13 released 2002-8-15
572
573** the header file output with %option header is now much smaller
574
575** Fixed type mismatch in printf in scanner skeleton
576
577** yylex_init now reports errors
578
579* version 2.5.12 released 2002-8-8
580
581** updated gettext support to 0.11.5
582
583** new fr translation from the translation project
584
585** bison is no longer needed to build flex; If you are building flex
586   from a release (i.e., not from a cvs snapshot), then you don't need
587   to have a pre-built lex around either (unless you modify scan.l, of
588   course); (This has been true for some time, but was not mentioned
589   here.)
590
591* version 2.5.11 released 2002-7-31
592
593** Fixed bug where yyless did not consider yylineno
594
595** the yylineno performance hit is now gone
596
597** fixed some typos in the manual and we now include texinfo.tex in
598   the distribution
599
600** traditional prototypes output for C scanners, controlled by a
601   preprocessor symbol; see documentation for details
602
603* version 2.5.10 released 2002-7-24
604
605** yy_globals renamed to yyscanner and yy_globals_t renamed to
606   yy_guts_t
607
608** added dist-bzip2 option to Makefile.am so we now produce a bzip2'd
609   archive in addition to the standard gzip archive
610
611*  version 2.5.9
612
613** new tests in test suite: test-mem-{nr,r}, test-posix,
614   test-posixly-correct, test-debug-{nr,r}
615
616** made changes to work with gcc-3.2 development code
617
618** ability to choose which memory functions are used in flex
619
620** new yylex_destroy() function for the non-reentrant scanner
621
622** new handling of POSIXLY_CORRECT environment variable
623
624** the test suite now has its copyrights explicitly described
625
626** new ca, de, fr, ru, sv, tr translations
627
628* version 2.5.8
629
630** a new --posix option generates scanners with posix-style abc{1,3}
631   compatible parsing, see manual for the screwy details
632
633* version 2.5.7
634
635** configure.in now includes a call to AC_PREREQ to enforce the
636   requirement for autoconf at least 2.50 (This only effects you if
637   you're doing flex development.)
638
639** configure now uses autoconf's versioning information and configure
640   --help reports the bug-reporting address for flex
641
642** test suite now only reports success versus failure; reporting
643   skipped is problematic under the current setup
644
645** compilation with --disable-nls now works
646
647** flex can now be built in a separate directory
648
649* version 2.5.6
650
651** gettext support added (from gettext 0.11)
652
653*** translations for ca, da, de, es, fr, ko, ru, sv, tr included
654
655** distribution now built under automake 1.6 and autoconf 2.53
656
657** command-line option parsing happens differently now:
658
659*** Added long option parsing
660
661*** Options -n and -c, previously deprecated, now simply do nothing
662
663*** Options are now parsed left to right
664
665** added a number of new options
666
667*** All positive %options are now accessible from the command line
668
669*** Added option -D, to define a preprocessor symbol
670
671*** Added option --header=FILE to specify a C .h file to generate
672
673*** added option --yywrap to call yywrap on EOF
674
675*** added option --yylineno to track line count in yylineno
676
677*** --yyclass=NAME name of C++ class when generating c++ scanners
678
679*** for long option names which are associated with existing short
680options, see accompanying documentation
681
682*** new %option nounistd or command-line --nounistd added to prevent
683    flex from generating #include <unistd.h> on systems that don't
684    have that include file
685
686** Support for reentrant C scanners has been added
687
688*** Updated the manual with the new reentrant API
689
690*** Two new options %option reentrant (-R) and
691%option reentrant-bison (-Rb)
692
693*** All globals optionally placed into struct yyglobals_t
694
695*** All access to globals replaced by macro invocations
696
697*** All functions optionally take one additional
698argument, yy_globals
699
700*** New style for invoking reentrant scanner:
701yylex_init(void** scanner );
702yylex( scanner );
703yylex_destroy( scanner );
704
705*** Added get/set functions for members of struct yy_globals_t
706e.g.,  yyget_text, yyget_leng, etc
707
708*** Prefix substitution added for new functions
709
710*** Macro shortcuts to the lengthy get/set functions
711provided for use in actions, e.g.,  yytext, yyleng, etc
712
713*** Arbitrary, user-defined data, "yyextra", may be added to scanner
714
715** %option nomain no longer implies %option yywrap
716But the inverse is still true
717
718** Developer test suite added
719
720*** TESTS/ directory has been added. Users can
721'make test' in the TESTS directory to execute the test suite
722
723** Support for bison variables yylval and yylloc added
724
725** automake support for the build process
726
727** manual is now in texinfo/info format
728
729*** flex.1 removed from distribution
730
731** flex no longer generates C-language scanners with C++-style
732   comments
733
734** flex now generates scanners in c++ which are compatible with
735   recent c++ compilers
736
737** flex input scanner now recognizes '\r' as an EOL character
738
739See the file ONEWS for changes in earlier releases.
740
741See the file COPYING for copying conditions.
742
743Local Variables:
744mode: text
745mode: outline-minor
746end:
747