Announcing jhc 0.7.4! There have been a few major changes, the main one being that there is now support for a garbage collector. This drastically increases the number of programs which are feasable to compile with jhc. http://repetae.net/computer/jhc/ Any testing people can do with -fjgc would be greatly appreciated! My gameplan is to fix any issues that come up with the new gc and release a 0.7.5 that will have the GC enabled by default. This will probably be the first version of jhc I can recommend to non-developers with a good concience :). Once that is done I can implement a good strategy for library compatibility with other compilers and the standards. As it is, jhc has a mix of haskell 98 and haskell 2010 and the ghc base as its distributed libraries, basically whatever I found I needed in practice I added as I went along. This won't work in the long run. Major changes * a garbage colletor which can be enabled with '-fjgc' is available. after some more testing, I will make it the default in the 0.7.5 release. * A new memory allocator based on Jeff Bonwick's slab memory allocator for kernels. This means that in many cases, memory can be pulled off a slab and immediately used with no initialization, in addition, it allowed a rearrangement of the GC meta-data to optimizally use the cache. * packed representation of algebraic types, 'Maybe Foo' is actually represented in memory as a NULL pointer or just a 'Foo' with no tag bits. Combined with the slab allocator, this can double the number of some common values that can be put in a cache line. * some intense profiling of generated code and modification of the rts and code generator. Signifigant speed-ups in compiled programs are the result. Some other changes since 0.7.3 are * documentation updates, especially when it comes to the runtime. * ghc 6.12 support (it is in fact required now.) * no more monolithic 'Main'. the core pass moved to E.Main and the grin pass moved to Grin.Main. * generated C code is more compact and easier to debug. * more use of bytestring internally, improved performance * JHC_RTS_INCLUDE flag allows including the rts from an external file. useful for debugging/developing the RTS. * explicit register support in grin, for alternate back ends such as a NCG * Removed all compiler magic dealing with Eq,Bounded,Ord, and Bits. instances for these are specified in haskell code even for built in types now. * cleaned out some obsolete flags and options on command line. * updated applicative and support for newest version of 'containers' library. * bug updates * various bug fixes