update(add) packaging directory and spec file from OBSTF:Private, OBS
[external/ragel.git] / ChangeLog
index 08a424c..c9c455b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,143 @@
-Ragel 6.0 - TBR
-===============
- -Remove the 'noend' write option from examples/atoi.rl. This example is
+Ragel 6.6 - Dec 2, 2009
+=======================
+ -Applied a number of patches from Diego Elio 'Flameeyes' Pettenò. Should not
+  be modifying the program's arguments. Problem raised by const correctness in
+  gcc 4.4. Other const-correctness and include fixes provided.
+ -Fixed improper allocation of checks in makeIncludePathChecks.
+ -Fixed segfault when there are no machine instantiations.
+ -Fixed wrong line directives. Line directives need to use the fileName stored
+  in the InputLoc stuctures from the parse trees, not the root source file,
+  otherwise actions in included files will have the wrong source file names
+  associated with the text.
+ -Made a number of build system improvements. We locate the DIST file using
+  $srcdir and source it. It contains settings for build_parsers and
+  build_manual. This allows the user of a dist to enable only one.
+ -Added missing files to doc/Makefile.am and examples/Makefile.am.
+ -Added checks for pdflatex and fig2dev is build_manual is on.
+ -Use automake --foreign so we don't need to have INSTALL and NEWS present.
+ -Ragel VIM syntax files should be specialized by host language. Updated the
+  VIM syntax files.
+ -Just discovered that $srcdir is available in the configure script for
+  checking for the existence of a file created by dist-hook. This lets us write
+  a test that knows the difference between a distribution tarball and something
+  from the repos. The building of the parsers and the manual can now be
+  automatically turned off in a make dist tarball.
+ -Added examples to the dist. Added unicode2ragel.rb to EXTRA_DIST in contrib.
+ -Moved unicode2ragel.rb to the contrib directory.
+
+Ragel 6.5 - May 18, 2009
+========================
+ -Fixed a bug in graphviz generation. Ragel crashed when using -V and -M and
+  the specified machine referenced another machine that wasn't included in the
+  build.
+ -The name "CS" is in use on OpenSolaris, changed to vCS to ease compiling
+  Ragel there.
+ -Converted to automake.
+ -REALLY fixed a bug that was intended to be fixed in 6.4:
+     Fixed a problem reading hex numbers that have the high bit set when the
+     alphabet is signed and we are on 64 bit. This was reported by _why. The
+     fix was provided by Wialliam Morgan. The literal 0xffffffff was used for
+     a fully set long when -1L should be used instead.
+  A null patch (whitespace changes) must have gotten checked after I was
+  testing with and without the critical one-line patch and I forgot to enable
+  make sure it was enabled in the final checkin version.
+
+Ragel 6.4 - Mar 22, 2009
+========================
+ -Moved back to a single executable. The old intermediate format can still be
+  generated using the -x option. Ragel was split into frontend and backend
+  programs in version 5.0. This was done to encourage interoperability with
+  other tools. Since then, ragel has been made to work with qfsm, with ragel
+  producing the intermediate format and qfsm consuming it. However, there has
+  been no use of Ragel as a consumer of state machine data, with Ragel used as
+  a code generator for DFAs. This is not surprising given that much of the
+  complexity of Ragel is in the frontend, where the regular language to DFA
+  compilation happens. Since the full benefits of the split have not
+  materialized, and the split increases the complexity for users, Ragel has
+  been made once again into a single executable. 
+ -Applied a fix to the documentation Makefile from John D. Mitchell.
+ -Use CXXFLAGS instead of CFLAGS for C++ compiling. Patch from Diego
+  'Flameeyes' Pettenò.
+ -Added support for DESTDIR variable. Patch from Diego 'Flameeyes' Pettenò.
+ -Added a script called unicode2ragel.rb for generating unicode machines to
+  the examples directory. From Rakan El-Khalil.
+ -Fixed a copy-paste error in the documentation that was reported by Jose
+  Quinteiro.
+ -Added three new write commands:
+     write start;
+     write first_final;
+     write error;
+  These generate a reference to the start, first final and error state. When
+  there are many different machine specifications in one file it is easy to
+  get the prefix for these wrong (especially when you do a lot of copy-pasting
+  of boilerplate). The problem can be avoided by using write commands.
+ -Fixed a problem reading hex numbers that have the high bit set when the
+  alphabet is signed and we are on 64 bit. This was reported by _why. The fix
+  was provided by Wialliam Morgan. The literal 0xffffffff was used for a fully
+  set long when -1L should be used instead.
+
+Ragel 6.3 - Aug 29, 2008
+========================
+ -Fixed an assertion that is too strong. In the condition code we need to copy
+  transitions that have non-empty lmActionTable arrays so we don't assert
+  emptiness in the constructor. Lift out the assertion and copy the array in
+  the constructor.
+ -Fixed and improved multiple include prevention. We now track the entire
+  include history of a parser state to prevent duplicates.
+ -Fixed crash on failed lookup of goto/call/etc target.
+
+Ragel 6.2 - May 9, 2008
+=======================
+ -Bug fix: The lm_switch actions needs to set p from tokend when there is no
+  user action.
+ -Bug fix: when not using indicies we can't use a transitions's id to identify
+  the eof transition to take. Instead add the transition to the end of the
+  transition list and store its position in a new var called pos. The pos var
+  is then used as the index.
+ -Bug fix: an fnext followed by an fbreak in -G2 was not working. The fbreak
+  was not aware that the fnext causes the cs variable to be forced active. In
+  this case fbreak does not need to save cs because it is already current.
+ -Bug fix: need to compute the low and high character-space keys from the
+  condition-trans overlap when computing an expansion. Can't use the range
+  supplied from the condition overlap since they may not match. An incorrect
+  machine that accepted 1(!cond1, !cond2) was generated for the following
+  grammar. This bug was reported by Tim Chklovski.
+      c = 2 @matched_c;
+      sc1 = 1..2 when cond1;
+      sc2 = 1..2 when cond2;
+      main := sc1 | c | sc2;
+ -Bug fix: error messages in start label analysis of join operations were
+  causing assertion failures because location info was not set. Fixed by
+  adding locations.
+ -Include and import file searching now searches for the file name given based
+  on the location of the current file, not ragel's current path.
+  Additional search locations can be given using the -I option.
+ -Rubinius code generation was updated to the latest Rubinius. Patch from Evan
+  Phoenix.
+ -Switched from strcasecmp to strcmp for testing long arguments.
+ -Applied a patch from Andrei Polushin for setting the error message format.
+     --error-format=gnu (default)
+     --error-fromat=msvc
+ -Now using the _WIN32 define instead of _WIN32. Other MSVC compilation
+  improvments from Andrei Polushin.
+ -Added the hyperref package to the manual. 
+
+Ragel 6.1 - Mar 26, 2008
+========================
+ -Scanners now ensure that any leaving actions at the end of a pattern are
+  executed. They are always executed before the pattern action.
+ -Added an option -d for turning off the removal of duplicate actions from
+  actions lists.
+ -Need to unset the final state status of the start state in kleene star if it
+  is set. It is possible to crash ragel when the warning is ignored.
+ -In the dot file generation we need to print any actions that are in
+  State::eofTrans. These come from scanners only.
+ -Use @docdir@ for the docdir Makefile variable.
+ -Check for ar and ranlib in the configure script.
+
+Ragel 6.0 - Jan 12, 2008
+========================
+ -Removed the 'noend' write option from examples/atoi.rl. This example is
   referenced a lot as a first example and as such it shouldn't contain a
   special purpose write option like 'noend'.
  -Introcuded the "eof" variable for indicating the end of file. The p variable
@@ -14,15 +151,15 @@ Ragel 6.0 - TBR
   now used to emulate gotos.
  -Ruby code generation was also restructured. Gotos are elmulated using a
   series of if tests. 
- -Gone back to 3.X semantics for >, % and error actions. The > operator also
+ -Went back to 3.X semantics for >, % and error actions. The > operator also
   embeds a leaving action/priority into the start state if it is final. If EOF
-  happens in a state with a leaving operator then leaving action it is
+  happens in a state with a leaving operator then the leaving action is
   executed. If EOF happens in a non-final state that has an error action, the
   error action is executed.
- -The Ragel program now executes frontend and backend processes separately,
+ -The "ragel" program now executes frontend and backend processes separately,
   connecting them with a temporary file in the current directory. Without the
-  -f option the "ragel" program marshals arguments and calls the frontend and
-  backend. With the -f option the "ragel" program acts as the frontend only.
+  -x option the "ragel" program marshals arguments and calls the frontend and
+  backend. With the -x option the "ragel" program acts as the frontend only.
  -Added name finding for executables. If any forward slash is found in argv0
   then it is assumed that the path is explicit and the path to the backend
   executable should be derived from that. Whe check that location and also go
@@ -36,18 +173,16 @@ Ragel 6.0 - TBR
   same name in case we are executing from the source tree.
  -Changed the -l option in rlgen-cd to -L because it is covered in the
   frontend. Added a passthrough in the frontend for the backend options.
- -Dot file generation can now be invoked using the -V option to the parent. We
+ -Dot file generation can now be invoked using the -V option to ragel. We
   now require an input file. If standard in is used then we don't have a file
   name on which to base the output.
- -Rather than have the frontend process call the backend, the ragel program
-  now calls the frontend (itself with the -f option) and the backend.
  -Able to build native windows executables using Cygwin+MinGW. 
  -Patch from David Waite: Large arrays are now created by copying in the data
   from smaller arrays using System.arraycopy(). This eliminates the debug data
   associated with explicit initialization statements. It is also much easier
   on the java compiler which can run out of memory compiling very large
   machines. The downside is that it takes slightly longer to initialize static
-  data.
+  data at run time.
  -The fbreak statement now advances p.
  -In the :> :>> and <: operators it was possible for the priority assignment
   to be bypassed via the zero length string. In :> this was fixed
@@ -55,7 +190,7 @@ Ragel 6.0 - TBR
   If the start state is final it now embeds a leaving action into it,
   preventing persistance through the zero length string. In :>> and <: this
   was fixed explicitly. With <: the entering priority operator was used and
-  with :> a sepecial exception was added. Since it uses the finishing
+  with :> a special exception was added. Since it uses the finishing
   transition operator it also adds a leaving priority to the start state if it
   is final.
  -Ranlib is now run on the archives. Patch from Kenny MacDermid.