Articles

Whiley v0.3.33 Released!

The next release of Whiley is upon us!! Work got a little bogged down with the start of term, but should hopefully now pick up a little.  The main component of this release is the removal of the string and char data types from the language. This is quite a big change, but is . . . → Read More: Whiley v0.3.33 Released!

Looking Forward to 2015

It’s scary to think that 2014 has been and gone, and that I still haven’t released the next major version of Whiley!  Despite this, I have been busy improving the compiler and language and I thought it would be helpful for me to recap what was achieved last year, and what the goals going . . . → Read More: Looking Forward to 2015

The Architecture of Verification in Whiley

As the Whiley compiler continues to evolve, certain aspects of its architecture are really starting to mature.  One of the more recent pieces to take shape is the verification pipeline.  This is the process by which a Whiley file is converted into a series of verification conditions, which are then checked by the automated . . . → Read More: The Architecture of Verification in Whiley

Namespaces in Whiley

With the upcoming v0.3.10 release of Whiley, the way import statements are interpreted has changed in a fairly significant manner.  The primary purpose of this is to give better support for [[Namespace (computer science)|namespaces]]. The following illustrates what’s changed:

import whiley.lang.Math bool check(int x, int y): return max(x,y) == x

Previously, the above code . . . → Read More: Namespaces in Whiley

Whiley v0.3.9 Released!

So, it’s that time again for another update of the Whiley compiler. Perhaps the most interesting update is that constraints are back! Admitedly, only runtime checking of constraints is back; and, there are quite a few problems with it. But, it’s a step in the right direction, and I’m pretty excited about it.

I’ve . . . → Read More: Whiley v0.3.9 Released!

The State of Whiley

The aim of this post is simply to list the main outstanding issues with the design and implementation of Whiley.  This is primarily for my own purposes, in order to help me focus my efforts and to ensure I don’t forget something important.

Syntax

Deciding upon the language syntax is obviously the highest priority . . . → Read More: The State of Whiley

Implementing Actors on the JVM

Whiley adopts the [[Actor model]] of concurrency, instead of the traditional [[Thread (computer science)|multi-threading]] approach used in e.g. Java.  The actor model is simple and easy to use, and is less likely to result in complex [[race condition|race conditions]] or [[deadlock|deadlocks]]. The Actor Model has been around for a while, but Erlang has recently . . . → Read More: Implementing Actors on the JVM