modifying the DMD compiler

Brad Roberts braddr at puremagic.com
Sat Dec 13 12:15:49 PST 2008


Jarrett Billingsley wrote:
> On Sat, Dec 13, 2008 at 1:25 PM, torhu <no at spam.invalid> wrote:
>> On 13.12.2008 17:16, Moritz wrote:
>>> Hello,
>>>
>>> Im a student of computer science and at university, we're working on a
>>> distributed shared memory system, implemented as a C library.
>>>
>>> Im also a great fan of D, and so Im asking myself if I could connect D
>>> to the C library (which is no problem, as far as I know) and then modify
>>> the memory allocation of the compiler to place objects into the
>>> distributed memory (I would also need to disable garbage collection, but
>>> that should be no problem).
>>>
>>> Ive already reviewed the sourcecode of the dmd (the parts of it that are
>>> shipped with the dmd) and found out malloc() is called in Mem.c
>>>
>>> So I guess a rather simple way to do what I need would be to overwrite
>>> the new() operator or to add another operator to allocate distributed
>>> memory (something like new_shared() maybe).
>>>
>> D supports 'placement new' like in C++:
>> http://www.digitalmars.com/d/1.0/class.html#allocators
>>
>> If you're using Tango or dmd 2.x you can also replace the GC with your own
>> version if you need to.
> 
> He's... he's modifying the DMD source, which is in C++.

While he's asked about how to modify the compiler, I suspect what he's
really interested is in modifying the runtime so that applications that
are written in D can take advantage of what he's doing.  Modifying the
compiler would be of minimal value.

Later,
Brad



More information about the Digitalmars-d mailing list