Thread overview
gdmd does not work on Windows
Jul 05, 2008
Nicolay Korslund
Jul 05, 2008
torhu
Jul 05, 2008
Nicolay Korslund
Jul 05, 2008
torhu
Jul 10, 2008
Nicolay Korslund
Aug 14, 2008
Nicolay Korslund
July 05, 2008
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
July 05, 2008
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.
July 05, 2008
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
July 05, 2008
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).
July 10, 2008
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
August 14, 2008
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
August 14, 2008
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
August 14, 2008
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