www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Harmonia build errors with DMD 0.129 - 1 attachment

reply Marcio <mqmnews321 sglebs.com> writes:
Hi,

    	Just installed Harmonia (SVN checkout) and tried build.bat, and got 
all the errors in the attached file.

    	Is it because DMD 0.129 introduces language changes that break 
Harmonia ?

    	Thanks,

marcio
---------

DMD:

D:\marcio\D\Harmonia4D>dmd
Digital Mars D Compiler v0.129
Copyright (c) 1999-2005 by Digital Mars written by Walter Bright
Documentation: www.digitalmars.com/d/index.html
Aug 20 2005
parent Yk <Yk_member pathlink.com> writes:
In article <Xns96B8F0246DE19mqmnews321SGLEBSCOM 63.105.9.61>, Marcio says...
Hi,

    	Just installed Harmonia (SVN checkout) and tried build.bat, and got 
all the errors in the attached file.

    	Is it because DMD 0.129 introduces language changes that break 
Harmonia ?

    	Thanks,

marcio
---------

Hi marcio, I got the same results when i changed from dmd 0.109 to 0.129. It seems that the compiler semantics are a -bit- stricter now. There is no other solution than modifying the following modules: - harmonia.native.win32 => remove one of the many duplicated enums (they are rather easy to find, Lines 398-441 and 426-442 if I remember well). - std.boxer => this conflicts with phobos std.boxer, so this one is a bit tricky, you may choose to : 1) use phobos/std.boxer and rename all 'box' structures occurences to 'Box' (phobos-compatible but pretty tricky since it may be confusing with function 'box(...)'), then rename harmonia\std\boxer.d to boxer.d.unused or 2) rename module std.boxer to, say, "module notstd.boxer2" and rename folder+file harmonia\std\boxer.d => harmonia\notstd\boxer2.std and finally change every modules that uses std.boxer (replace "import std.boxer" with "import notstd.boxer2"). - and when you've exhausted every small compile errors, you may get something like "error xxx : Menu.MenuItem.destroyed does not overload any". Very annoying .. The only solution I found was to move methods void created(),void destroyed(),void resized(),void moved(),void closing(inout bool) from class Window to class Widget. And that worked, but I still don't know why it doesn't work with class Window. I'm not sure this will completely solve your problem, but that may help. Note: make a release build of harmonia, otherwise you'll have to rebuild phobos.lib in debug mode, and that's quite a challenge. Good luck.
Aug 23 2005