www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Joka/Parin update - Optional GC support

[Parin](https://github.com/Kapendev/parin) is a game 
engine/framework I'm working on and 
[Joka](https://github.com/Kapendev/joka) is a utility library 
used by Parin. Both don't use the GC by default.

I recently added a new version flag: `JokaGcMemory`. When 
defined, it changes the allocation strategy from manual memory 
management to using the GC. It basically disables the "free" 
functions and uses `new` for everything. So if you prefer 
GC-based code, it's now an option. Nothing changes unless you opt 
in. The idea for this came while reading some comments on a 
Discord server:

 yeah, people use D, but then go 'GC' is evil hurr durr
 nogc this nogc that
 like why
I personally don't hate GC. Manual stuff is just more fun for me and it makes it easier to run games on a web browser. GC + Kapendev = ❤️ (This line makes the post more professional) Anyway, the trickier part of adding this was working around the ` nogc` attribute. It wasn't too bad, but now ` nogc` effectively acts like a made up ` noallocation` attribute for my code, which is kind of nice. It would be easier to just ignore it, but I think it can be useful sometimes, so I do support it when I can. That's it. Nothing crazy, but it's a cool thing. Btw, check out my new game: https://kapendev.itch.io/worms-within ![game screenshot](https://img.itch.zone/aW1hZ2UvMzU4OTk2OC8yMTM5MTYyMC5wbmc=/original/fWBA1L.png)
Jun 20