[ragel-users] BUG while processing import directive

ragel-user at jgoettgens.de ragel-user at jgoettgens.de
Mon Jul 18 20:08:39 UTC 2011

Hi Adrian,

even if you'd assimilate all of my _MSC_VER related patches, the project 
would still not compile under Visual Studio, as some files would be missing. 
Besides manipulating argv for the -I cmd line option, there's still the 
problem of the '\' char, that is generally interpreted as an escape for 
sources, but inside path specs on a Windows box it is not at all an escape 
char. Either you allow for a mechanism to not interpret the '\' char, e.g. 
as is done by Perl using single quote chars, or use a "subgrammar" when a 
path name is expected, thereby omitting any quoting rules. The choice is 

Iff^0 you want to unify the sources for the Linux and Windows build, you'd 
probably need to take the following steps:

(1) replace the automake/configure crap with cmake to have a real cross 
platform build system

(2)  make a design decision on how to handle any path separation character 
as described above

For the time being (the next 1000 years^1), the current patches and 
additions are bad but not that that bad. First, the additional Visual Studio 
related files are static with the restriction that only a single Visual 
Studio version is supported (more or less). Secondly, there are only minimal 
code changes (even less if I forget to patch some source files).

Once a decision has been made, (2) should be straightforward. Unfortunately, 
(1) is really involved. I have done some beginner's projects with cmake, but 
lately I am running only third party cmake based projects. Currently I am 
using some cmake based open source software from Oracle which nicely builds 
on headless Linux servers as well as on my Windows 7 machine and even IDEs 
for easy debugging and exploring are supported. If there is sufficient 
common interest I'd would be willing to invest some time into it. As far as 
running Ragel for a specific platform is concerned, I have doubts that the 
effort ist justified. If basic cross platform support is a higher goal, then 
it could make sense.


^0: See http://en.wikipedia.org/wiki/If_and_only_if
^1: This refers to "once and for all". Homework: elaborate on the historic 
background of both remarks and explain the irony :(

ragel-users mailing list
ragel-users at complang.org

More information about the ragel-users mailing list