I've been playing around with the Boehm (Böhm, I suppose) garbage collector, and it's pretty amazing. Jürgen, do you have any experience with it?
Updating the GNU APL code to (conditionally, with a compiler option) to support using the collector for at least Value objects should be fairly simple. This would provide several benefits:
- A performance improvement since there is no need to deal with the reference counter.
- Improved parallelism if one wants to expand threading beyond simply paralellising simple loops (no need to deal with race conditions when accessing the reference count)
- Provide a more solid ground when attempting to reduce excessive cloning (with the GC, once can simply share everything and clone before modification)
I was thinking of starting to implement this, but it would take more than a few hours which means that I first would like to hear your input on it before wasting my time.
Regards,
Elias