+Ragel 5.18 - Feb 5, 2007
+========================
+ -Backened class structure reorganized to make it easier to add new code
+ generators without having to also modify the existing code generators.
+ -The java code generation was then split out into it's own exectuable to
+ allow it to freely diverge from the C/D-based code generation.
+ -The "large machines in Java" patch from Colin Fleming was comitted. This
+ encodes data arrays as strings and decodes them at runtime to get around
+ limits on the size of static data. Currently only byte and short alphabet
+ types are supported. Since the default alphabet type for Java is "char," it
+ is now necessary to add "alphtype byte;" to Java programs.
+ -The Ruby code generation patch from Victor Hugo Borja was added. This is
+ highly experimental code.
+
Ragel 5.17 - Jan 28, 2007
=========================
-The scanners and parsers in both the frontend and backend programs were
made. Also, improvements to the sync patterns were made.
-Added pullscan.rl to the examples directory. It is an example of doing
pull-based scanning. Also, xmlscan.rl in rlcodegen is a pull scanner.
- -The introduction chapter of the manual was improved. The manually drawn
- figures for the examples were replaced with graphviz drawn figures.
+ -The introduction chapter of the manual was improved. The manually-drawn
+ figures for the examples were replaced with graphviz-drawn figures.
Ragel 5.16 - Nov 20, 2006
=========================
.PHONY: $(CLEAN_SUBDIRS)
$(CLEAN_SUBDIRS):
- cd $(@:%-clean=%) && $(MAKE) clean
+ @cd $(@:%-clean=%) && $(MAKE) clean
clean: $(CLEAN_SUBDIRS)
rm -f tags
.PHONY: $(DISTCLEAN_SUBDIRS)
$(DISTCLEAN_SUBDIRS):
- cd $(@:%-distclean=%) && $(MAKE) clean
+ @cd $(@:%-distclean=%) && $(MAKE) clean
distclean: $(DISTCLEAN_SUBDIRS)
rm -f Makefile config.cache config.status config.log
.PHONY: $(INSTALL_SUBDIRS)
$(INSTALL_SUBDIRS):
- cd $(@:%-install=%) && $(MAKE) install
+ @cd $(@:%-install=%) && $(MAKE) install
install: $(INSTALL_SUBDIRS)
-An expression of the form:
- expr1 <: expr2 . expr3
-Is parsed as:
- ( expr1 <: expr2 ) . expr3
-If expr2 contains the empty string then it's possible for the machine to escape
-to expr3. This can be confusing. Perhaps <: should behave like
- expr1 <: ( expr2 . expr3 )
-By using the implementation:
- expr1 $1 %0 . expr2 . expr3
+Expressions of the form: expr1 <: expr2 . expr3
+sometimes don't behave as expected. If expr2 contains the empty string then
+it's possible for the machine to escape to expr3. This is somewhat unexpected.
+The empty string does count as moving through the right machine so there should
+not be an exception for this case.
+Using the stronger implementation: ( expr1 $1 %0 . expr2 ) will solve the problem.
+
+Also, there is potential for nondeterminism to persist via the empty string
+with the :> and :>> operators. Should also guard against this using leaving
+priorities.
The |> guarded operator and the <| guarded operator need to be added.
prompted for debug commands that allowed the user to step through the machine
and get details about where they are in their RL.
+A quick and easy alternative would be a trace code generation option. This
+would open a trace file and list all the active machines at each step of the
+input.
+
Frontend should allow the redefinition of fsm section delimiters.
Do more to obscure ragel's private variables. Just a leading underscore is not
Summary: Ragel State Machine Compiler
Name: ragel
-Version: 5.17
+Version: 5.18
Release: 1
URL: http://www.cs.queensu.ca/~thurston/ragel/
-VERSION = 5.17
-PUBDATE = January 2007
+VERSION = 5.18
+PUBDATE = February 2007