On Tuesday, 27 May 2014 at 16:47:38 UTC, Etienne wrote:
You're right, it's obviously easier to keep it as the same pointer syntax but hijack the stdlib malloc functions to forcibly go through the GC.

If the GC controls everything, you can keep the info in 8 byte pointers.

- The GC always returns an libc-incompatible pointer value
- Dereferencing should call the resolver from the GC to process it with the libc-compatible value (possibly just removing the last couple bytes) - Sending a pointer through extern(C) should call the sanitizer which resolves the real pointer through the GC and sends that - The last bytes of a pointer would contain thread ID for void** and poolID for void*
- This would only work on x64 platforms

This would also help implementing weak references, am I right? Which then come in handy when improving std.signals?

Bastiaan.

Reply via email to