Jekyll 0.3 is a major advance from Jekyll 0.2. C code is now completely unannotated, and the system is now more tolerent of changes to code.
This is because Jekyll now uses a new non-determistic translation system. When translating one language to another, the translator produces a non-deterministic file that describes all the different ways that the file could be encoded. This non-determinism is then resolved by attempting to select the file that most closely matches the previous file.
Jekyll 0.3 is a major step forward from Jekyll 0.2 as it uses a completely annotation-free encoding. We plan to release Jekyll 0.3 within the next few days.
Despite the .01 increment, this release contains quite a lot of changes under the covers. The C->Jekyll decoding system has been completely rewritten to use a more powerful transformational approach.
This has allowed us to change Jekyll's C encoding to be significantly lighter weight and less intrusive.
This change makes a number of major changes.
Translation from C to Jekyll to C is now able to preserve all information, including all layout changes, and changes to Jekyll-generated variable names. It does this by comparing with a previous version of the C file, and attempting to minimise the differences.
The encoding into C has also changed. The new encoding is much more lightweight, using less macros, and encoding more information with variable names.
The main change in this release is that type classes are now fully implemented.
Lambda expressions with environments now work properly.
The lossless translation system has been rewritten to be more elegant and to produce more nicely formatted C code.
There are no great new user-end features in this release - though quite a few new features are /almost/ ready.
The main purpose of this release is that it is a slight tidy-up of the version of Jekyll that the paper "Dr Jekyll and Mr C" was based on.
A new paper is available on the Jekyll home page giving an overview of the Jekyll language and its lossless translation to and from C.
This release fixes a number of bugs, changes the syntax for type variables, and allows basic types (int etc) to implement interfaces.
This new release adds support for complex initialiser expressions, including constructor initialisers, and dynamic memory allocation. It also fixes a number of bugs and tidies up a number of things.
Download it and have a play.
The files used to generate the website are now in the Jekyll CVS repository, under the name "website".
If you want to update the website, please update the source XML files, not the generated html files.
The Jekyll website is now up. It still needs a lot more content, but information is now available.