November 19, 2019
On Friday, 15 November 2019 at 11:32:07 UTC, Basile B. wrote:
>
> TBH I see your point but D is a system programming language. Even if there's a GC you can also do Manual Memory Mangement (sometimes you'll see "MMM "to refer to that in the forums), RC, and you can also write custom machine code in asm blocks.
>
> In most of the case, if you just stick to the GC way, it'll be alright, even if pointers are actual machine pointers, i.e usable in asm blocks ;)
>
> Recently some guys have discovered however that an aggressive anti virus scanner could cause problems...
>
> Anyway, just to say, D produces machine code and doesn't requires a VM... if you need fat pointers for a custom memory management, free to you.
>
> I don't think this will ever change.

Nim which is a systems programming language handles the GC part nicely.

With Nim you can plug and play many different types of GC types.

https://nim-lang.org/docs/gc.html

    --gc:refc Deferred reference counting with cycle detection, thread local heap, default.
    --gc:markAndSweep Mark-And-Sweep based garbage collector, thread local heap.
    --gc:boehm Boehm based garbage collector, stop-the-world, shared heap.
    --gc:go Go lang like garbage collector, stop-the-world, shared heap.
    --gc:regions Stack based garbage collector.
    --gc:none No garbage collector.

so the architecture of Nim allows this just by a compiler switch. Would D even support reference counting as Nim defaults to with the current mixup of raw and GC pointers?

1 2
Next ›   Last »