www.digitalmars.com         C & C++   DMDScript  

D.gnu - gdmd does not work on Windows

reply Nicolay Korslund <korslund gmail.com> writes:
The current implementation of gdmd does not currently run on Windows (with
Mingw). The reason is simply that gdmd is a Perl script, and Windows doesn't
know how to run it. It works in Cygwin but not in a vanilla command line.

This currently breaks DSSS, which relies on gdmd. A simple fix would be to
replace gdmd with a native program, eg. written in D. If anyone is interested
in this idea, I can write the D program, but I would need some help to fit it
into the build process. There might be other viable solutions, like compiling
the Perl script to exe specifically for the mingw build.

Nico
Jul 05 2008
parent reply torhu <no spam.invalid> writes:
Nicolay Korslund wrote:
 The current implementation of gdmd does not currently run on Windows (with
Mingw). The reason is simply that gdmd is a Perl script, and Windows doesn't
know how to run it. It works in Cygwin but not in a vanilla command line.
 
 This currently breaks DSSS, which relies on gdmd. A simple fix would be to
replace gdmd with a native program, eg. written in D. If anyone is interested
in this idea, I can write the D program, but I would need some help to fit it
into the build process. There might be other viable solutions, like compiling
the Perl script to exe specifically for the mingw build.
 
 Nico

On Windows, there's gdmd.bat instead. It runs itself as a perl script. At least that's how it's done for GDC 0.24.
Jul 05 2008
parent reply Nicolay Korslund <korslund gmail.com> writes:
torhu Wrote:

 On Windows, there's gdmd.bat instead.  It runs itself as a perl script. 
   At least that's how it's done for GDC 0.24.

Hmm, I can't seem to find that file in neither the cygwin nor the mingw download, or even in the sourceforge svn. Could you send it to me, if you have it? Nico
Jul 05 2008
parent reply torhu <no spam.invalid> writes:
Nicolay Korslund wrote:
 torhu Wrote:
 
 On Windows, there's gdmd.bat instead.  It runs itself as a perl script. 
   At least that's how it's done for GDC 0.24.

Hmm, I can't seem to find that file in neither the cygwin nor the mingw download, or even in the sourceforge svn. Could you send it to me, if you have it?

It's included in the installer here: http://sourceforge.net/projects/gdcwin It's a fast and simple install (Inno setup).
Jul 05 2008
parent reply Nicolay Korslund <korslund gmail.com> writes:
torhu Wrote:

 It's included in the installer here:
 http://sourceforge.net/projects/gdcwin

Thanks, I wasn't aware of gdcwin. It's a bit impractical that it isn't part of the normal gdc install though, and in any case I think Perl might be a bit of a heavy dependency just for building D programs, especially on Windows where Perl isn't something everyone has. Furthermore I still couldn't get it to work with DSSS, but I'll look more into it. Nico
Jul 10 2008
parent reply =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
Nicolay Korslund wrote:

 It's included in the installer here:
 http://sourceforge.net/projects/gdcwin

Thanks, I wasn't aware of gdcwin. It's a bit impractical that it isn't part of the normal gdc install though, and in any case I think Perl might be a bit of a heavy dependency just for building D programs, especially on Windows where Perl isn't something everyone has. >

There was a reimplementation of it in bash, but then again that isn't something that Windows users (without MinGW/Cygwin) has either... So it's easier to just install the readily available Perl package. The "gdmd.bat" script was created by running pl2bat on gdmd, BTW. http://www.perl.com/doc/manual/html/win32/bin/pl2bat.pl.html Maybe something awful like rewriting it in a compiled languge has to be done (did that for the wxD shell scripts), to cut down on depends ? On the other hand, I view both Bash and Perl as if not essential then as least very nice features to help me survive a hostile environment :-) Another alternative would be to avoid "gdmd", and use "gdc" instead... --anders
Aug 14 2008
parent reply Nicolay Korslund <korslund gmail.com> writes:
Anders F Björklund Wrote:
 So it's easier to just install the readily available Perl package.
 The "gdmd.bat" script was created by running pl2bat on gdmd, BTW.

Hi. The problem now isn't really the perl dependency, but the fact that it doesn't work at all with DSSS. It requires a gdmd.exe file, and the bat file didn't work for me.
 Maybe something awful like rewriting it in a compiled languge has to
 be done (did that for the wxD shell scripts), to cut down on depends ?

An alternative might be to use something like perlbin: http://perlbin.sourceforge.net/ . It creates a small stand-alone executable that embeds the script, and uses perl (as a library) to run it. Might be a perfect quick fix for running Perl scripts on .. troublesome platforms :) I haven't tested it though. On the other hand the gdmd script isn't that big, and rewriting it to our favorite language would seem like an appropriate place to show off the language, since it is a D compiler after all. I might make it a weekend project of mine sometime. Nico
Aug 14 2008
parent =?windows-1252?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
Nicolay Korslund wrote:

 The "gdmd.bat" script was created by running pl2bat on gdmd, BTW.

Hi. The problem now isn't really the perl dependency, but the fact that it doesn't work at all with DSSS. It requires a gdmd.exe file, and the bat file didn't work for me.

Hmm, that seems more like a DSSS problem. Maybe it could be convinced to use the real deal instead of using the wrapper ?
 Maybe something awful like rewriting it in a compiled languge has to
 be done (did that for the wxD shell scripts), to cut down on depends ?

An alternative might be to use something like perlbin:http://perlbin.sourceforge.net/ . It creates a small stand-alone executable that embeds the script, and uses perl (as a library) to run it. Might be a perfect quick fix for running Perl scripts on .. troublesome platforms :) I haven't tested it though.

Seems like a kludge, but might do the trick too I suppose... "And that's all perlbin is. A small stub executable (about 20k) requireing a perl dynamic link library (about 700kb) [...]" Seems like a lot of overhead* for that little syntax wrapper. * OK, so the Perl installer is like 15M but that's different ;-)
 On the other hand the gdmd script isn't that big, and rewriting it to
 our favorite language would seem like an appropriate place to show off
 the language, since it is a D compiler after all. I might make it a
 weekend project of mine sometime.

Probably time to get that unit test and regression suite in place, if there are going to be several of "gdmd" around... --anders
Aug 14 2008