[ragel-users] BUG while processing import directive
ragel-user at jgoettgens.de
ragel-user at jgoettgens.de
Tue Jul 19 17:15:51 UTC 2011
Denis,
some patches apply to the Windows OS in general, which is handled by _WIN32.
Even if you compile Ragel using mingw, _WIN32 might be defined. _MSC_VER
applies only to the Microsoft C/C++ compiler and its specific runtime
library. The runtime libraries of the other C/C++ compilers might or might
not show subtle differences. In order to really clean up the code and one
should first get all the other compilers (Microsoft, Intel, Digital Mars,
GNU in mingw and cygwin flavor, Borland, ...), study their runtime libs and
then make a decision about the preprocessor symbols. Also, runtime libs
might be different for different compiler versions. Is it worth the effort?
The current MSC runtime libs more or less treat '/' and '\' equivalently, as
do the GNU compilers, but assuming that '/' is generally supported is a bit
naive. If the goal is to compile Ragel specs on a Windows machine, one can
rely on the behavior of a specific runtime lib to reduce the amount of
written code. If the goal is to make Ragel 100% cross platform, one should
consider treating any path issues inside Ragel. Also, how do you want to
handle code that comes from a Windows machine that gets ported to a POSIX
environment? You probably have to allow '\' on Linux systems, too. That's a
No-go. None of these considerations affect the generated code of the FSMs.
So, is it worth the effort?
Once the basic source code is cross platform the next step is to make the
build system cross platform, possibly using cmake. I would be willing to
invest some time, but not because Ragel needs it, but because it is on my
list of things to study. Again, the output of Ragel is not affected by this.
My suggestion for treating paths is to not allow native path seps if they
differ from '/'. In rare cases names would need some patching in order to
get a valid path for a specific platform. Currently, my patches for Windows
could then be removed.
jg
_______________________________________________
ragel-users mailing list
ragel-users at complang.org
http://www.complang.org/mailman/listinfo/ragel-users
More information about the ragel-users
mailing list