home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 5 / FreshFish_July-August1994.bin / bbs / gnu / flex-2.4.6-src.lha / src / amiga / flex-2.4.6 / NEWS < prev    next >
Text File  |  1994-02-22  |  27KB  |  688 lines

  1. Changes between release 2.4.6 (04Jan94) and release 2.4.5:
  2.  
  3.     - Linking with -lfl no longer required if your program includes
  4.       its own yywrap() and main() functions.  (This change will cause
  5.       problems if you have a non-ANSI compiler on a system for which
  6.       sizeof(int) != sizeof(void*) or sizeof(int) != sizeof(size_t).)
  7.  
  8.     - The use of 'extern "C++"' in FlexLexer.h has been modified to
  9.       get around an incompatibility with g++'s header files.
  10.  
  11.  
  12. Changes between release 2.4.5 (11Dec93) and release 2.4.4:
  13.  
  14.     - Fixed bug breaking C++ scanners that use REJECT or variable
  15.       trailing context.
  16.  
  17.     - Fixed serious input problem for interactive scanners on
  18.       systems for which char is unsigned.
  19.  
  20.     - Fixed bug in incorrectly treating '$' operator as variable
  21.       trailing context.
  22.  
  23.     - Fixed bug in -CF table representation that could lead to
  24.       corrupt tables.
  25.  
  26.     - Fixed fairly benign memory leak.
  27.  
  28.     - Added `extern "C++"' wrapper to FlexLexer.h header.  This
  29.       should overcome the g++ 2.5.X problems mentioned in the
  30.       NEWS for release 2.4.3.
  31.  
  32.     - Changed #include of FlexLexer.h to use <> instead of "".
  33.  
  34.     - Added feature to control whether the scanner attempts to
  35.       refill the input buffer once it's exhausted.  This feature
  36.       will be documented in the 2.5 release.
  37.  
  38.  
  39. Changes between release 2.4.4 (07Dec93) and release 2.4.3:
  40.  
  41.     - Fixed two serious bugs in scanning 8-bit characters.
  42.  
  43.     - Fixed bug in YY_USER_ACTION that caused it to be executed
  44.       inappropriately (on the scanner's own internal actions, and
  45.       with incorrect yytext/yyleng values).
  46.  
  47.     - Fixed bug in pointing yyin at a new file and resuming scanning.
  48.  
  49.     - Portability fix regarding min/max/abs macros conflicting with
  50.       function definitions in standard header files.
  51.  
  52.     - Added a virtual LexerError() method to the C++ yyFlexLexer class
  53.       for reporting error messages instead of always using cerr.
  54.  
  55.     - Added warning in flexdoc that the C++ scanning class is presently
  56.       experimental and subject to considerable change between major
  57.       releases.
  58.  
  59.  
  60. Changes between release 2.4.3 (03Dec93) and release 2.4.2:
  61.  
  62.     - Fixed bug causing fatal scanner messages to fail to print.
  63.  
  64.     - Fixed things so FlexLexer.h can be included in other C++
  65.       sources.  One side-effect of this change is that -+ and -CF
  66.       are now incompatible.
  67.  
  68.     - libfl.a now supplies private versions of the the <string.h>/
  69.       <strings.h> string routines needed by flex and the scanners
  70.       it generates, to enhance portability to some BSD systems.
  71.  
  72.     - More robust solution to 2.4.2's flexfatal() bug fix.
  73.  
  74.     - Added ranlib of installed libfl.a.
  75.  
  76.     - Some lint tweaks.
  77.  
  78.     - NOTE: problems have been encountered attempting to build flex
  79.       C++ scanners using g++ version 2.5.X.  The problem is due to an
  80.       unfortunate heuristic in g++ 2.5.X that attempts to discern between
  81.       C and C++ headers.  Because FlexLexer.h is installed (by default)
  82.       in /gnu/include and not /gnu/lib/g++-include, g++ 2.5.X
  83.       decides that it's a C header :-(.  So if you have problems, install
  84.       the header in /gnu/lib/g++-include instead.
  85.  
  86.  
  87. Changes between release 2.4.2 (01Dec93) and release 2.4.1:
  88.  
  89.     - Fixed bug in libfl.a referring to non-existent "flexfatal" function.
  90.  
  91.     - Modified to produce both compress'd and gzip'd tar files for
  92.       distributions (you probably don't care about this change!).
  93.  
  94.  
  95. Changes between release 2.4.1 (30Nov93) and release 2.3.8:
  96.  
  97.     - The new '-+' flag instructs flex to generate a C++ scanner class
  98.       (thanks to Kent Williams).  flex writes an implementation of the
  99.       class defined in FlexLexer.h to lex.yy.cc.  You may include
  100.       multiple scanner classes in your program using the -P flag.  Note
  101.       that the scanner class also provides a mechanism for creating
  102.       reentrant scanners.  The scanner class uses C++ streams for I/O
  103.       instead of FILE*'s (thanks to Tom Epperly).  If the flex executable's
  104.       name ends in '+' then the '-+' flag is automatically on, so creating
  105.       a symlink or copy of "flex" to "flex++" results in a version of
  106.       flex that can be used exclusively for C++ scanners.
  107.  
  108.       Note that without the '-+' flag, flex-generated scanners can still
  109.       be compiled using C++ compilers, though they use FILE*'s for I/O
  110.       instead of streams.
  111.  
  112.       See the "GENERATING C++ SCANNERS" section of flexdoc for details.
  113.  
  114.     - The new '-l' flag turns on maximum AT&T lex compatibility.  In
  115.       particular, -l includes support for "yylineno" and makes yytext
  116.       be an array instead of a pointer.  It does not, however, do away
  117.       with all incompatibilities.  See the "INCOMPATIBILITIES WITH LEX
  118.       AND POSIX" section of flexdoc for details.
  119.  
  120.     - The new '-P' option specifies a prefix to use other than "yy"
  121.       for the scanner's globally-visible variables, and for the
  122.       "lex.yy.c" filename.  Using -P you can link together multiple
  123.       flex scanners in the same executable.
  124.  
  125.     - The distribution includes a "texinfo" version of flexdoc.1,
  126.       contributed by Roland Pesch (thanks also to Marq Kole, who
  127.       contributed another version).  It has not been brought up to
  128.       date, but reflects version 2.3.  See MISC/flex.texinfo.
  129.  
  130.       The flex distribution will soon include G.T. Nicol's flex
  131.       manual; he is presently bringing it up-to-date for version 2.4.
  132.  
  133.     - yywrap() is now a function, and you now *must* link flex scanners
  134.       with libfl.a.
  135.  
  136.     - Site-configuration is now done via an autoconf-generated
  137.       "configure" script contributed by Francois Pinard.
  138.  
  139.     - Scanners now use fread() (or getc(), if interactive) and not
  140.       read() for input.  A new "table compression" option, -Cr,
  141.       overrides this change and causes the scanner to use read()
  142.       (because read() is a bit faster than fread()).  -f and -F
  143.       are now equivalent to -Cfr and -CFr; i.e., they imply the
  144.       -Cr option.
  145.  
  146.     - In the blessed name of POSIX compliance, flex supports "%array"
  147.       and "%pointer" directives in the definitions (first) section of
  148.       the scanner specification.  The former specifies that yytext
  149.       should be an array (of size YYLMAX), the latter, that it should
  150.       be a pointer.  The array version of yytext is universally slower
  151.       than the pointer version, but has the advantage that its contents
  152.       remain unmodified across calls to input() and unput() (the pointer
  153.       version of yytext is, still, trashed by such calls).
  154.  
  155.       "%array" cannot be used with the '-+' C++ scanner class option.
  156.  
  157.     - The new '-Ca' option directs flex to trade off memory for
  158.       natural alignment when generating a scanner's tables.  In
  159.       particular, table entries that would otherwise be "short"
  160.       become "long".
  161.  
  162.     - The new '-h' option produces a summary of the flex flags.
  163.  
  164.     - The new '-V' option reports the flex version number and exits.
  165.  
  166.     - The new scanner macro YY_START returns an integer value
  167.       corresponding to the current start condition.  You can return
  168.       to that start condition by passing the value to a subsequent
  169.       "BEGIN" action.  You also can implement "start condition stacks"
  170.       by storing the values in an integer stack.
  171.  
  172.     - You can now redefine macros such as YY_INPUT by just #define'ing
  173.       them to some other value in the first section of the flex input;
  174.       no need to first #undef them.
  175.  
  176.     - flex now generates warnings for rules that can't be matched.
  177.       These warnings can be turned off using the new '-w' flag.  If
  178.       your scanner uses REJECT then you will not get these warnings.
  179.  
  180.     - If you specify the '-s' flag but the default rule can be matched,
  181.       flex now generates a warning.
  182.  
  183.     - "yyleng" is now a global, and may be modified by the user (though
  184.       doing so and then using yymore() will yield weird results).
  185.  
  186.     - Name definitions in the first section of a scanner specification
  187.       can now include a leading '^' or trailing '$' operator.  In this
  188.       case, the definition is *not* pushed back inside of parentheses.
  189.  
  190.     - Scanners with compressed tables are now "interactive" (-I option)
  191.       by default.  You can suppress this attribute (which makes them
  192.       run slightly slower) using the new '-B' flag.
  193.  
  194.     - Flex now generates 8-bit scanners by default, unless you use the
  195.       -Cf or -CF compression options (-Cfe  and -CFe result in 8-bit
  196.       scanners).  You can force it to generate a 7-bit scanner using
  197.       the new '-7' flag.  You can build flex to