The Urn Logo

Version 0.4.1 released

I’ve just pushed another update to Urn. This doesn’t have any major features, but offers some interesting improvements:

Another step towards self-hosting

When we first started writing the Urn compiler, we obviously couldn’t write it in Urn so, for want of a better choice, we wrote it in Lua. As Urn progressed, we’ve converted more and more of the compiler to Urn. Over the last couple of bits, I’ve ported about 650 lines of the compiler to Urn, meaning we’ve a little less than 500 lines left to migrate.

Thanks to this, the compiler is now 4900 lines of Urn (this excludes tests or the standard library). I’m not sure if this a demonstration of the conciseness of Urn, or the lack of comments in the code.

Various optimiser improvements

Sadly, Urns optimiser is by far the slowest part of the compiler - taking 5.4 seconds on the Urn compiler. However, thanks to a couple of minor changes in the tree visitor, the optimiser’s performance has increased - taking it down to 5.1 seconds for the Urn compiler. This is far from an ideal time, and so we will continue to make further improvements to the optimiser and code generation.