Garbage Collection for Systems Programmers
Ogi
ogion.art at gmail.com
Tue Apr 9 10:29:54 UTC 2024
On Monday, 8 April 2024 at 20:21:35 UTC, Walter Bright wrote:
> The sad thing is if you don't want the GC in your program,
> don't use 'new'. I can never get this point across.
Also don’t use exceptions, don’t use `lazy`, don’t use built-in
dynamic and associative arrays, be careful to not accidentally
allocate with an array literal:
```D
if (arr[0..3] == [0, 1, 2]) { /*…*/ } // bad
int[3] arr2 = [0, 1, 2];
if (arr[0..3] == arr2) { /*…*/ } // good
```
…be careful to not accidentally create a closure:
```D
int x;
auto r = arr[].map!(e = e*x); // bad
auto r = arr[].zip(x.repeat).map!(t = t[0]*t[1]); // good
```
…and don’t use a huge bulk of Phobos.
Writing no-GC code feels like walking through a minefield. Even
seemingly innocent things like `DateTime` can use GC internally.
More information about the Digitalmars-d
mailing list