Thread overview
Building DMD
Dec 20, 2007
Frank Benoit
Dec 20, 2007
Bill Baxter
Dec 20, 2007
BLS
Dec 20, 2007
Lionello Lunesu
Dec 20, 2007
Bill Baxter
Dec 20, 2007
Jascha Wetzel
Dec 20, 2007
Sean Kelly
Dec 20, 2007
Robert Fraser
Dec 20, 2007
Frank Benoit
December 20, 2007
DMDs frontend is open source, the backend is close.
Is there a way to compile a full functional DMD from the released sources?

If the DMD release would contain a static lib for the closed part (like libDmdBackend.a/dmdBackend.lib) it should be possible to build DMD without making the backend open source.

The advantage would be
- Users could learn how DMD works, not only by looking at the code.
- If a bug blocks developement, the user /can/ try to find a workaround.
  And then, the change /can/ be tested, before submitting a patch.

Frank
December 20, 2007
Frank Benoit wrote:
> DMDs frontend is open source, the backend is close.
> Is there a way to compile a full functional DMD from the released sources?
> 
> If the DMD release would contain a static lib for the closed part (like
> libDmdBackend.a/dmdBackend.lib) it should be possible to build DMD
> without making the backend open source.
> 
> The advantage would be
> - Users could learn how DMD works, not only by looking at the code.
> - If a bug blocks developement, the user /can/ try to find a workaround.
>   And then, the change /can/ be tested, before submitting a patch.
> 
> Frank

I think that'd be grand.

--bb
December 20, 2007
Frank Benoit schrieb:
> DMDs frontend is open source, the backend is close.
> Is there a way to compile a full functional DMD from the released sources?
> 
> If the DMD release would contain a static lib for the closed part (like
> libDmdBackend.a/dmdBackend.lib) it should be possible to build DMD
> without making the backend open source.
> 
> The advantage would be
> - Users could learn how DMD works, not only by looking at the code.
> - If a bug blocks developement, the user /can/ try to find a workaround.
>   And then, the change /can/ be tested, before submitting a patch.
> 
> Frank
Hi Frank,

Vote++
Further advantage,
IDE developers could modify DMD to what they need. DMD as dll/so, code metrics, profiler output ...

But I doubt that Walter is willing to give us this opportunity.
At the moment you are not allowed to bundle DMD with your product.

Bjoern
December 20, 2007
Frank Benoit wrote:
> DMDs frontend is open source, the backend is close.
> Is there a way to compile a full functional DMD from the released sources?
> 
> If the DMD release would contain a static lib for the closed part (like
> libDmdBackend.a/dmdBackend.lib) it should be possible to build DMD
> without making the backend open source.
> 
> The advantage would be
> - Users could learn how DMD works, not only by looking at the code.
> - If a bug blocks developement, the user /can/ try to find a workaround.
>   And then, the change /can/ be tested, before submitting a patch.
> 
> Frank

I've managed to compile and link(!) GDC under cygwin once. It wasn't easy, and I should have written it down :( but it does give you an open D compiler in the end.

L.
December 20, 2007
Lionello Lunesu wrote:
> Frank Benoit wrote:
>> DMDs frontend is open source, the backend is close.
>> Is there a way to compile a full functional DMD from the released sources?
>>
>> If the DMD release would contain a static lib for the closed part (like
>> libDmdBackend.a/dmdBackend.lib) it should be possible to build DMD
>> without making the backend open source.
>>
>> The advantage would be
>> - Users could learn how DMD works, not only by looking at the code.
>> - If a bug blocks developement, the user /can/ try to find a workaround.
>>   And then, the change /can/ be tested, before submitting a patch.
>>
>> Frank
> 
> I've managed to compile and link(!) GDC under cygwin once. It wasn't easy, and I should have written it down :( but it does give you an open D compiler in the end.

I tried once and eventually gave up. :-(

--bb
December 20, 2007
Lionello Lunesu wrote:
> Frank Benoit wrote:
>> DMDs frontend is open source, the backend is close.
>> Is there a way to compile a full functional DMD from the released sources?
>>
>> If the DMD release would contain a static lib for the closed part (like
>> libDmdBackend.a/dmdBackend.lib) it should be possible to build DMD
>> without making the backend open source.
>>
>> The advantage would be
>> - Users could learn how DMD works, not only by looking at the code.
>> - If a bug blocks developement, the user /can/ try to find a workaround.
>>   And then, the change /can/ be tested, before submitting a patch.
>>
>> Frank
> 
> I've managed to compile and link(!) GDC under cygwin once. It wasn't easy, and I should have written it down :( but it does give you an open D compiler in the end.
> 
> L.

Just for the record: compiling llvmdc on linux is very simple. It doesn't implement the whole language yet, but it's nice to play around with. Tomas is aiming for an alpha release early next year (go tomas, goo :)
I'm really looking forward to that - D on LLVM, that'll remedy all the target platform troubles D has.
December 20, 2007
Frank Benoit wrote:
> DMDs frontend is open source, the backend is close.
> Is there a way to compile a full functional DMD from the released sources?

Not as it stands, though someone may be able to create a c-front back-end without tremendous heartache.


Sean
December 20, 2007
Frank Benoit Wrote:

> DMDs frontend is open source, the backend is close.
> Is there a way to compile a full functional DMD from the released sources?
> 
> If the DMD release would contain a static lib for the closed part (like libDmdBackend.a/dmdBackend.lib) it should be possible to build DMD without making the backend open source.
> 
> The advantage would be
> - Users could learn how DMD works, not only by looking at the code.
> - If a bug blocks developement, the user /can/ try to find a workaround.
>   And then, the change /can/ be tested, before submitting a patch.
> 
> Frank

Descent's Java port and Rebuild's DMD version are fully compilable.
December 20, 2007
Robert Fraser schrieb:
> Descent's Java port and Rebuild's DMD version are fully compilable.


But not full functional. They cannot build executables.