digitalmars.D - Help building Mango on Windows
-
mrw
(34/34)
Feb 15 2006
- Kris (53/92) Feb 15 2006 This is a bizarre one.
- Walter Bright (2/3) Feb 16 2006 Can you do shrink on it into one file?
<NewDUser> I'm trying to build Mango on Windows. Yesterday I used SVN to get the latest source. When I run 'build mango' I get compile errors in mango.io: C:\dmd\mango\mango\io\Writer.d(701): constructor mango.io.Writer.NewlineWriter.this () does not match argument types (void[]) C:\dmd\mango\mango\io\FileConst.d(59): cannot implicitly convert expression ("\x0d\x0a") of type void[] to char[] C:\dmd\mango\mango\io\Stdout.d(149): template instance cannot resolve forward reference C:\dmd\mango\mango\io\Stdout.d(149): UnicodeImporter!(...) is used as a type C:\dmd\mango\mango\io\Stdout.d(149): new can only create structs, dynamic arrays or class objects, not void's C:\dmd\mango\mango\io\Stdout.d(149): function mango.io.Writer.Writer.setEncoder(AbstractEncoder) does not match argument types (void*) C:\dmd\mango\mango\io\Stdout.d(149): cannot implicitly convert expression (new UnicodeImporter!(...)((Cout))) of type void* to mango.io.model.IBuffer.AbstractEncoder C:\dmd\mango\mango\io\Stdout.d(150): template instance cannot resolve forward reference C:\dmd\mango\mango\io\Stdout.d(150): UnicodeImporter!(char) is used as a type C:\dmd\mango\mango\io\Stdout.d(150): new can only create structs, dynamic arrays or class objects, not void's C:\dmd\mango\mango\io\Stdout.d(150): function mango.io.Writer.Writer.setEncoder(AbstractEncoder) does not match argument types (void*) C:\dmd\mango\mango\io\Stdout.d(150): cannot implicitly convert expression (new UnicodeImporter!(char)((Cerr))) of type void* to mango.io.model.IBuffer.AbstractEncoder Can anyone suggest a solution? I'm using DMD 0.145 </NewDUser> Thanks, Mark
Feb 15 2006
This is a bizarre one. JJR noticed the same issue on linux recently and I took a look at it yesterday. Here's where the error occurs: class NewlineWriter : INewlineWriter { private char[] fmt; this () { version (Posix) this (cast(char[]) FileConst.NewlineString); else this (FileConst.NewlineString); // ******* ERROR HERE! } this (char[] fmt) { this.fmt = fmt; } } and here's the FileConst reference: struct FileConst { version (Win32) { static const char PathSeparatorChar = '\\'; static const char FileSeparatorChar = '.'; static const char RootSeparatorChar = ':'; static const char[] PathSeparatorString = "\\"; static const char[] FileSeparatorString = "."; static const char[] RootSeparatorString = ":"; static const char[] NewlineString = "\r\n"; } version (Posix) { static const char PathSeparatorChar = '/'; static const char FileSeparatorChar = '.'; static const char RootSeparatorChar = ':'; static const char[] PathSeparatorString = "/"; static const char[] FileSeparatorString = "."; static const char[] RootSeparatorString = ":"; static const char[] NewlineString = "\n"; } } As you can see, I hacked the Posix version to "recast" FileConst.Newline into a char[], even though it's clearly declared as one to begin with. The 'recast' gets rid of the error, but I've absolutely no idea why it happens. Perhaps Walter could shed some light on this? To get around it for now, do the stupid 'recast' for the Win32 version also. It's really odd that this just started happening, with no changes to the related code, and only in this one very specific instance (other references to FileConst are just fine!) - Kris "mrw" <mark binarytheory.com> wrote in message news:dt0d2q$21p3$1 digitaldaemon.com...<NewDUser> I'm trying to build Mango on Windows. Yesterday I used SVN to get the latest source. When I run 'build mango' I get compile errors in mango.io: C:\dmd\mango\mango\io\Writer.d(701): constructor mango.io.Writer.NewlineWriter.this () does not match argument types (void[]) C:\dmd\mango\mango\io\FileConst.d(59): cannot implicitly convert expression ("\x0d\x0a") of type void[] to char[] C:\dmd\mango\mango\io\Stdout.d(149): template instance cannot resolve forward reference C:\dmd\mango\mango\io\Stdout.d(149): UnicodeImporter!(...) is used as a type C:\dmd\mango\mango\io\Stdout.d(149): new can only create structs, dynamic arrays or class objects, not void's C:\dmd\mango\mango\io\Stdout.d(149): function mango.io.Writer.Writer.setEncoder(AbstractEncoder) does not match argument types (void*) C:\dmd\mango\mango\io\Stdout.d(149): cannot implicitly convert expression (new UnicodeImporter!(...)((Cout))) of type void* to mango.io.model.IBuffer.AbstractEncoder C:\dmd\mango\mango\io\Stdout.d(150): template instance cannot resolve forward reference C:\dmd\mango\mango\io\Stdout.d(150): UnicodeImporter!(char) is used as a type C:\dmd\mango\mango\io\Stdout.d(150): new can only create structs, dynamic arrays or class objects, not void's C:\dmd\mango\mango\io\Stdout.d(150): function mango.io.Writer.Writer.setEncoder(AbstractEncoder) does not match argument types (void*) C:\dmd\mango\mango\io\Stdout.d(150): cannot implicitly convert expression (new UnicodeImporter!(char)((Cerr))) of type void* to mango.io.model.IBuffer.AbstractEncoder Can anyone suggest a solution? I'm using DMD 0.145 </NewDUser> Thanks, Mark
Feb 15 2006
"Kris" <fu bar.com> wrote in message news:dt0nms$2at8$1 digitaldaemon.com...Perhaps Walter could shed some light on this?Can you do shrink on it into one file?
Feb 16 2006