Updating to Ragel 6.4 on Mac OS X Leopard 10.5.6Edit
These notes were made while upgrading to Ragel 6.4 on Mac OS X 10.5.2 Leopard.
Building
Note that in order to verify the signature on the downloaded archive you’ll need to have done some setup as described in "Verifying Ragel signatures".
wget http://www.complang.org/ragel/ragel-6.4.tar.gz \
http://www.complang.org/ragel/ragel-6.4.tar.gz.asc \
http://www.complang.org/ragel/ragel-guide-6.4.pdf
gpg --verify ragel-6.4.tar.gz.asc ragel-6.4.tar.gz
tar xzvf ragel-6.4.tar.gz
cd ragel-6.4
./configure
make
Testing
cd tests
./runtests
cd tests
./runtests
Just as in the previous upgrades (such as "Upgrading from Ragel 5.24 to 6.0 on Mac OS X 10.5.1 Leopard"), there is a minor glitch that prevents the test suite from running on Leopard (although it worked fine on Tiger). The solution is to make a change to the cppscan1.h
file in the tests
directory:
-#include <malloc.h>
+#include <malloc/malloc.h>
And then run the test suite again (with ./runtests
) and it should pass fine.
Installing
Now we can proceed with the install:
cd ..
sudo make install
Testing with a real application
I wanted to try out 6.4 on an existing project to see if the generated code was any different. I chose to do this on my wikitext translator.
cd path/to/wikitext/src
rake clobber # blows away Ragel-generated files
rake # builds everything and runs the spec suite
So all the specs passed, and the generated code looks extremely similar. There is really only one hunk with a substantive, non-comment change in the generated file:
@@ -213,7 +216,6 @@ tr23:
{p++; cs = 94; goto _out;}
}
break;
- default: break;
}
}
goto st94;
I can’t see anything in the changelog that would explain this. I guess I’ll just have to trust that spec suite is good enough to catch any behaviour changes in the scanner.