February 04, 2007 Re: Tango ready? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Carlos Santander | Carlos Santander wrote:
> Frits van Bommel escribió:
>> kris wrote:
>>> Justin C Calvarese wrote:
>>>> If Tango requires DMD 1.004+, I think it should say so on the relevant web page(s), such as one or more of these:
>>>>
>>>> http://www.dsource.org/projects/tango/wiki/Download
>>>> http://www.dsource.org/projects/tango/wiki/TopicBuildingTango
>>>> http://www.dsource.org/projects/tango/wiki/TopicInstallTango
>>>>
>>>> If it's already mentioned in bunch of other places, I'm sorry I missed them.
>>>>
>>>
>>> Done. Thanks!
>>
>> From the download page: "The runtime portion of this release requires a v1.004 compatible compiler."
>>
>> Actually, that's just if you compiler actually *is* DMD, I think. In object.d, it has the v1.004 modification in a version(DigitalMars), so I think it'll probably break if used with a v1.004-compatible GDC...
>> (Presumably this was done because GDC isn't v1.004-compatible yet?)
>
> David updated it yesterday. The gdc-0.22-dev branch in svn is up to 1.004.
Then I'm willing to bet it won't work with current Tango unless it for some weird reason defines version=DigitalMars when parsing module 'object'.
If I'm right, one of the error messages will be similar to "toobj.c:417: virtual void ClassDeclaration::toObjFile(): Assertion `classinfo->structsize == (0x3C+8)' failed." (that's the error DMD gave me when I tried to compile with an old object.d, with the line number changed to where the assertion is in the current gdc-0.22-dev branch)
Tango's 'object' module is littered with version(DigitalMars) blocks to select stuff that changed in v1.004, and which the new gdc presumably will need as well.
So in fact the current Tango release requires DMD v1.004 or GDC 0.21. Earlier GDC versions may also work if it's runtime-compatible, but that's about the extent of Tango portability between compilers at the moment.
|
February 04, 2007 Re: Tango ready? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Frits van Bommel | Frits van Bommel wrote: > Carlos Santander wrote: >> Frits van Bommel escribió: >>> kris wrote: >>>> Justin C Calvarese wrote: >>>>> If Tango requires DMD 1.004+, I think it should say so on the relevant web page(s), such as one or more of these: >>>>> >>>>> http://www.dsource.org/projects/tango/wiki/Download http://www.dsource.org/projects/tango/wiki/TopicBuildingTango http://www.dsource.org/projects/tango/wiki/TopicInstallTango >>>>> >>>>> If it's already mentioned in bunch of other places, I'm sorry I missed them. >>>>> >>>> >>>> Done. Thanks! >>> >>> From the download page: "The runtime portion of this release requires >>> a v1.004 compatible compiler." >>> >>> Actually, that's just if you compiler actually *is* DMD, I think. In object.d, it has the v1.004 modification in a version(DigitalMars), so I think it'll probably break if used with a v1.004-compatible GDC... (Presumably this was done because GDC isn't v1.004-compatible yet?) >> >> David updated it yesterday. The gdc-0.22-dev branch in svn is up to 1.004. > > Then I'm willing to bet it won't work with current Tango unless it for some weird reason defines version=DigitalMars when parsing module 'object'. If I'm right, one of the error messages will be similar to "toobj.c:417: virtual void ClassDeclaration::toObjFile(): Assertion `classinfo->structsize == (0x3C+8)' failed." (that's the error DMD gave me when I tried to compile with an old object.d, with the line number changed to where the assertion is in the current gdc-0.22-dev branch) > > Tango's 'object' module is littered with version(DigitalMars) blocks to select stuff that changed in v1.004, and which the new gdc presumably will need as well. > > So in fact the current Tango release requires DMD v1.004 or GDC 0.21. Earlier GDC versions may also work if it's runtime-compatible, but that's about the extent of Tango portability between compilers at the moment. Yes, we cannot require the user to use a compiler from SVN, neither update our codebase on it (if for nothing else than mantainance reasons). So the latest release needs GDC 0.21, and the Tango svn will not be updated until 0.22 is officially released. We may host contributed patches for those who want to follow the bleeding edge at all times, though. -- Lars Ivar Igesund blog at http://larsivi.net DSource & #D: larsivi Dancing the Tango |
February 04, 2007 Re: Tango ready? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Lars Ivar Igesund | Lars Ivar Igesund wrote:
> Frits van Bommel wrote:
>> So in fact the current Tango release requires DMD v1.004 or GDC 0.21.
>> Earlier GDC versions may also work if it's runtime-compatible, but
>> that's about the extent of Tango portability between compilers at the
>> moment.
>
> Yes, we cannot require the user to use a compiler from SVN, neither update
> our codebase on it (if for nothing else than mantainance reasons). So the
> latest release needs GDC 0.21, and the Tango svn will not be updated until
> 0.22 is officially released.
If only std.compiler was kept up-to-date, then you could just use static if conditions on the compiler version to automatically select the correct version...
(Assuming the circular dependency won't be a problem)
Of course, I use DMD anyway so I'm not personally affected by this.
|
Copyright © 1999-2021 by the D Language Foundation