GDMD D port ready for alpha-testing

Johannes Pfau via D.gnu d.gnu at puremagic.com
Sat Mar 26 15:37:53 PDT 2016


Am Sat, 26 Mar 2016 10:35:44 +0000
schrieb Vladimir Panteleev <thecybershadow.lists at gmail.com>:

> On Saturday, 26 March 2016 at 10:09:10 UTC, Johannes Pfau wrote:
> > I've finally finished the D port of GDMD and pushed everything 
> > including a detailed README to 
> > https://github.com/D-Programming-GDC/GDMD/tree/dport  
> 
> Thanks for this.
> 
> I see that parsing response files isn't implemented yet. Response 
> files are practically required when used with rdmd on Windows, 
> because of the command line length limit.
> 
> std.process.escapeWindowsArgument is available on all platforms 
> for this purpose:
> 
> http://dlang.org/phobos/std_process.html#.escapeWindowsArgument
> 
> (The response files use the Windows syntax, regardless of the 
> host platform.)
> 

I didn't realize response file parsing is that important for windows,
thanks for letting me know ;-) I guess there's no proper documentation
for response files or any test files?


There are some open questions:

* Are escape sequences allowed outside of quoted strings? 
* Which characters end a comment?
* How does this parse: foo\"bar
* Or this: foo"bar


BTW:
The DMD implementation is using the backend license, so I
certainly couldn't copy it. It tried to follow clean-room design
principles when reimplementing it (writing a spec first, then using the
spec to implement the new parser) and choose a completely different
parsing approach (parsing/unescaping separated, range based) so I hope
it's different enough to avoid copyright or licensing issues....

https://github.com/D-Programming-GDC/GDMD/commit/0e2b0744a13a69f9dae90cf5db8c689ccca82f10
It'd be great if you could have a look at the unittests and tell me if
the parsing is correct ;-)

Now I still have to generate a response file for passing arguments to
GDC. First have to check whether GCC even uses the windows escaping
rules though. Do you know how many characters can be passed without
response files?


More information about the D.gnu mailing list