www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Building DMD

reply Frank Benoit <keinfarbton googlemail.com> writes:
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
Dec 20 2007
next sibling parent Bill Baxter <dnewsgroup billbaxter.com> writes:
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
Dec 20 2007
prev sibling next sibling parent BLS <nanali nospam-wanadoo.fr> writes:
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

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
Dec 20 2007
prev sibling next sibling parent reply Lionello Lunesu <lio lunesu.remove.com> writes:
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.
Dec 20 2007
next sibling parent Bill Baxter <dnewsgroup billbaxter.com> writes:
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
Dec 20 2007
prev sibling parent Jascha Wetzel <firstname mainia.de> writes:
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.
Dec 20 2007
prev sibling next sibling parent Sean Kelly <sean f4.ca> writes:
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
Dec 20 2007
prev sibling parent reply Robert Fraser <fraserofthenight gmail.coim> writes:
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.
Dec 20 2007
parent Frank Benoit <keinfarbton googlemail.com> writes:
Robert Fraser schrieb:
 Descent's Java port and Rebuild's DMD version are fully compilable.

But not full functional. They cannot build executables.
Dec 20 2007