D's New GC and Object Allocation Pools

Maxime Chevalier-Boisvert via Digitalmars-d digitalmars-d at puremagic.com
Sun Oct 26 07:13:23 PDT 2014


What I'm trying to do is have some specific classes be 
pool-allocated though, not completely circumvent the GC.

On Sunday, 26 October 2014 at 08:02:25 UTC, Mike wrote:
> On Sunday, 26 October 2014 at 07:08:21 UTC, Mike wrote:
>
>> I tried this on my Linux desktop, and while everything 
>> compiled and linked without errors, it resulted in a 
>> segmentation fault at runtime.  But where I have failed, 
>> others may succeed.  I tested with LDC and GDC, but not DMD.
>
> It does work, but for some reason if I replace the printf 
> statement below with D's writeln, I get a segmentation fault.  
> I don't know why.  Anywhere here's a trivial example to 
> illustrate the idea.
>
> module main;
>
> import std.stdio;
> import core.stdc.stdio;
>
> extern (C) Object __wrap__d_newclass(const ClassInfo ci)
> {
>     printf("You haven't provided any custom allocation yet!\n");
>     while(true) {}
>     return null;
> }
>
> void main(string[] args)
> {
>
> }
>
> Compile with:
> gdc -Wl,-wrap,_d_newclass main.d
>
> You'll see it output the string before it even reaches main 
> because the runtime initialization seems to allocate a few 
> things.  But, you get the idea. destroy is just a template, 
> however, so it will need a different method.
>
> Mike



More information about the Digitalmars-d mailing list