Documentation

Articles

Are Checked Exceptions Always Caused by I/O?

Recently, I’ve had the pleasure of working with Eclipse and trying to build a plugin.  On the whole, I have to confess, I find that Eclipse is an extremely well-designed and considered piece of software.  The biggest problem, I suppose, is that it is designed for a wide variety of tasks and this means . . . → Read More: Are Checked Exceptions Always Caused by I/O?

Whiley v0.3.14 Released!

Finally, it’s time for yet another release.  The main change with this release has been a reworking of the compiler framework into a more serious build system called, unsurprisingly, the Whiley Builder System (wybs).  This has helped integration with both Ant and Eclipse.  However, there remain a few aspects of it that need improvement, . . . → Read More: Whiley v0.3.14 Released!

Type Aliasing in Java?

A problem I often encounter in Java is that I want to say “these two things are the same”, but Java won’t let me. Suppose I want to maintain an int[] array which is always sorted in my program. So, whenever I get one of these things, I can rely on it being sorted. Here’s . . . → Read More: Type Aliasing in Java?

A Problem of Decoupling?

Recently, I’ve been working on improving the core framework that underpins the Whiley compiler.  This provides a platform for reading/writing files of specified content in a structured fashion.  Like Java, Whiley provides a hierarchical namespace in which names live and can be imported by others.  Let’s consider a simple example:

package zlib.core import Console . . . → Read More: A Problem of Decoupling?

Efficient Value Semantics for Whiley

The latest release of the Whiley compiler (v0.3.12) includes an optimisation for passing compound structures (e.g. lists, sets and records) by value.  This is really important because all compound structures in Whiley have value semantics, meaning they are always passed by value.  In fact, Whiley does not support references or pointers as found in . . . → Read More: Efficient Value Semantics for Whiley

Final should be Default for Classes in Java

We were having an interesting discussion the other day, and the issue of final classes came up.  For some reason, it suddenly occurred to me that all classes should be final by default. That is, classes should be implicitly final, rather than requiring an explicit declaration.  For example, the following should be considered invalid . . . → Read More: Final should be Default for Classes in Java

Whiley v0.3.12 Released!

Well, crikey, what a long time since the last release.  Things haven’t changed a whole lot, apart from various bug fixes.  Probably the most interesting update is the inclusion of reference counting of compound structures to enable in-place updates and prevent unnecessary cloning.  This leads to some nice performance improvements.  Quite a bit of . . . → Read More: Whiley v0.3.12 Released!

Not all Tests are Passing … is that so Bad?

For the Whiley compiler, I currently have over 500 end-end tests and in excess of 15,000 unit tests (most of which were auto-generated and target the type system).  Each end-end test is a short Whiley program that is  categorised as either valid or invalid.  Valid tests also include sample output and are expected to . . . → Read More: Not all Tests are Passing … is that so Bad?

What Kind of Revert are You?

Reverting is tough.  There’s no doubt about it!  I don’t mean tough as in technically challenging — no, version control systems make this easy!  I mean tough as in mentally challenging.  You’re faced with days or weeks of effort going down the drain, and you have to decide when to pull the plug.  Sure, . . . → Read More: What Kind of Revert are You?