Monday, September 10, 2012

After the release of version 0.6.1 early this year, we were hoping that our next release would be 1.0. Unfortunately, implementing compiled module caching (a featured we deemed critical for 1.0) proved to be more difficult than expected, and we've ended up doing several big coding sprints interspersed with lots of other smaller scale improvements without ever quite making it happen.

We've been trying to release no less frequently than quarterly, but as a result of all of these efforts and our focus on the bigger, 1.0 release, we found ourselves in a position of being well overdue for a release. So now that we've cleared up some really hard bugs, I've taken a break for a few days to release 0.7. The new version features lots of improvements:

Switched licensing from LGPLv3 to MPL 2.0.

Upgraded to LLVM 3.1

Added 16-bit integer types.

Added the "alias" statement (a more general replacement for "typedef").

Implemented a version of cast that returns a default instead of
throwing an exception when the cast fails.

I'm personally quite happy with where the language is at right now, when I write Crack code these days I'm finding myself thinking "damn, that really sucks" only very rarely, possibly less often than when I write Python code and certainly less than when I write Java or C++ code. So for me, at least, the project is now at the pay-off point: I can say that Crack is my preferred language for general-purpose coding.

That said, we hope you enjoy the new release and find it useful. We're currently hoping to release 1.0 (with caching, damn it!) by the end of the year, but we're not going to compromise on quality to make it happen. Our only guarantee is that when 1.0 comes, it will be unquestionably awesome :-)