Whiley v0.3.10 Released!
Well, it’s been a tough slog. But, finally, we have a new release of Whiley!! The main thing that’s improved over the past few weeks is the underlying type implementation. This was causing problems before, as programs which should type-check were failing and vice-versa. To resolve this, the type system has been reimplemented from scratch and (hopefully) it should be significantly better. In particular, I’ve done quite a lot more testing (e.g. I now have around 15,000 individual unit tests for the Type
class).
The other main difference is the way in which import
statements are handled. Whilst this is definitely a step in the right direction, it’s not without some outstanding issues — which I discussed in more detail here.
ChangeLog
Changed the way imports are interpreted. Previously,
import whiley.lang.String
would have imported all symbols from moduleString
. Now, it only imports the module name. So, for example, to access the methodindexOf
, you need to writeString.indexOf(s,i)
. However, you can still replicate the old approach by directly importing the names from a module. For example,import * from whiley.lang.String
imports all names from theString
moduleThe entry point
main()
no longer hasSystem
as its receiver. Instead,System
is a parameter andmain
is a headless method. This is necessary as, otherwise, theSystem
process is blocked until main completes!Split out the type system into a separate library called wyautl. As part of this, I’ve essentially reimplemented the type system from scratch in an effort to really harden it up. I’ve done a significant amount of testing, and it’s definitely a lot better. The type system now directly supports negation and intersection types, which makes for some interesting possibilities.
Support for dictionaries is somewhat improved. In particular, you can now create an empty dictionary! An empty dictionary is denoted
{->}
(contrasting with{}
for sets and[]
for lists).Support for try-catch blocks has been added (finally). This means you can now catch exceptions in Whiley. At the moment, however, the system does not check that you properly declare your exceptions … but that will come shortly.
Improved the JavaDoc documentation for the compiler. I plan to make this documentation visible soon, in conjunction with detailed discussion of how the compiler actually works.
Various bug fixes.