Whiley v0.4.2. Released!


And, after a long while, another official release of Whiley is here.  This is something of an interim release whilst other things are brewing in the background.  There also some known issues with this release.  The main changes are:

  • Fully Qualified Names.  The syntax of fully qualified names has changed.  Specifically, :: is used in place of . for separating package names.  For example, a name such as std.array is now std::array (see RFC#13).

  • Removal of negation and any types (RFC#20). This also includes the temporary removal of intersection types (#843) and the replacement of (internal) negations with difference types (#827).  The latter improves error messages.  For example, an error such as expected type int, found type (int|null)&!int becomes expected type int, found type (int|null)-int .  This is all part of my push towards a proper “low level” API for building backends (see RFC#21).

  • Support final modifier.  Support has been added for a final modifier, similar to that found in Java (see RFC#5).  In particular, this required the addition of a new compiler phase for checking definite unassignment.

  • Empty Array Initialisers.  Finally, the empty array initialiser [] is back!  For various reasons this had presented some challenges for type checking, and was particularly frustrating as it caused problems with empty string initialisers "" as well (see #692).

  • Improved Verification.  In addition, there have been many improvements to the theorem prover and verification in general, though lots remains to be done here (see e.g. #143, #141, #140, #138, #137, #136, #131, #128, #124).

At the moment, I am continuing to make progress towards a realistic low-level API which will allow for a greater range of backends (e.g. C/LLVM).

Known Issues

There is one known issue with this release:

  • The JVM backend is currently offline.  Specifically the command wy jvmcompile ... will not succeed.  This is related to ongoing work towards a low-level API and we should expect it to come back online ASAP.