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