So far, we've been using the following software to test (and improve) the applicability of ABCL:
Another aspect of our user experience is performance. Being an implementation on the JVM, of course we're restricted in many ways on which code we can generate and how we store our data. As a result we'll be in a disadvantageous position to start with.
That doesn't mean there's no room for improvement in ABCL at the moment. The development team has gradually moved into the area of profiling and improving the implementation over the last 2 or 3 months. As it turns out, there's still a lot which could be improved, with the following examples:
- Support for unboxed single-floats and double-floats in the compiler
- Careful creation of new objects - focussing on re-use - in the support library
- Prevent unnecessary re-opening of system files (fasls and others)
- Prevent unnecessary loading of compiled files (which clear out the HotSpot caches)