Discussion about deprecating @nogc and workarounds

Richard (Rikki) Andrew Cattermole richard at cattermole.co.nz
Sat Sep 7 13:28:39 UTC 2024


On 08/09/2024 1:06 AM, Lance Bachmeier wrote:
> On Saturday, 7 September 2024 at 08:05:10 UTC, Kapendev wrote:
> 
>> BetterC is weird, but it does do something. If `@nogc` were to be 
>> removed, BetterC could act as a replacement for those who want to 
>> avoid using the gc and enforce that at compile time.
> 
> How do you replace this code with BetterC? Answer: You don't.
> 
> ```
> import std;
> void main() {
>      writeln(add(3, 4));
> }
> @nogc int add(int x, int y) { return x+y; }
> ```
> 
> The use cases of @nogc and BetterC are very different. With BetterC you 
> lose classes, dynamic arrays, and associative arrays, among other things.

Just because you lose access to almost all of druntime and phobos does 
not mean you cannot replace almost everything.

```d
module app;
import sidero.base.console;

@safe nothrow @nogc:

void main() {
     writeln(add(3, 4)); // 7
}

int add(int x, int y) {
     return x + y;
}

```

So far the only thing I haven't been able to find a solution for when 
needed is exceptions in terms of niceness.



More information about the Digitalmars-d mailing list