|
By Dave, on December 9th, 2016
The concept of effective union types in Whiley exposes some interesting features worth considering. In particular, they result in a separation between the readable and writeable view of a type. But, we’re getting ahead of ourselves! Let’s start with what exactly effective unions are…
Effective Unions
An effective union is a union type which . . . → Read More: Understanding Effective Unions in Whiley
By Dave, on November 24th, 2016
The next release is finally upon us. This one has been a long time coming, and its going to take a while before it settles down again!! Work on this release has been ongoing since February, though partial changes were released in v0.3.40. In that time, a significant portion of the compiler has been . . . → Read More: Whiley v0.4.0 Released!
By Dave, on November 15th, 2016
Today I saw an interesting talk about mix-fix function syntax. The idea is to allow a more complex syntax for declaring and calling functions, rather than the very common “uniform” style. Consider the call, f(x,y), to a single function (e.g. declared f(int,int)) accepting two parameters. With mixfix functions, we can break our function names . . . → Read More: Mixfix Function Syntax for Whiley
By Dave, on September 1st, 2016
Recently, as part of our Programming Languages Reading group, we looked at the paper “Contracts in Practice” by Estler et al., (see here for a copy). This is quite an interesting paper and the authors perform an empirical investigation as to how contracts are used by programmers in practice. They dig out some data . . . → Read More: Program Specification in Practice?
By Dave, on August 3rd, 2016
Flow-sensitive typing (a.k.a. “Flow Typing”) is definitely getting more popular these days. Ceylon, Kotlin, TypeScript, Racket, Whiley all support flow typing in some form. Then, of course, there’s Facebook Flow and the list goes on!
Recently, I’ve made some fairly major updates to the internals of the Whiley compiler (basically, redesigning the intermediate language). . . . → Read More: Flow Typing with Constrained Types
By Dave, on May 28th, 2016
The concept of lifetimes was pioneered in the Rust programming language, and builds on earlier notions of regions and ownership types. Lifetimes are considered one of Rust’s “most unique and compelling features”.
Recently, the concept of reference lifetimes has been added to Whiley by Sebastian Schweizer (@SebastianS90). In this post, I’m going to try . . . → Read More: Reference Lifetimes in Whiley
By Dave, on May 28th, 2016
The next version of Whiley is upon us, and this one includes a bumper package of changes. In particular, I am very excited by the introduction of reference lifetimes into Whiley.
ChangeList Reference Lifetimes (#642). This represents a fairly significant step forward in the evolution of the Whiley language. Reference lifetimes have been implemented . . . → Read More: Whiley v0.3.40 Released!
By Dave, on April 21st, 2016
An interesting feature of Whiley is that it supports true recursive types. These are surprisingly tricky to get right, and recently we came across some interesting examples that the Whiley compiler should (but doesn’t) check for.
Recursive Types
The following illustrates the syntax for recursive types in Whiley:
type Link is {any data, LinkedList . . . → Read More: Contractive and Uninhabited Types in Whiley
By Dave, on March 11th, 2016
Progress has slowed on Whiley now that Trimester 1 and my SWEN221 class with 220+ students has begun! Despite this, development continues with more contributions from others which is great. This release is largely a “cleaning up” and “bug fixing” release, rather than landing any big features.
ChangeList Parameterised Test cases (#580,#588). Thanks to . . . → Read More: Whiley v0.3.39 Released!
By Dave, on January 29th, 2016
Finally, just over one month since the last release of Whiley, version v0.3.38 is released today! The list of changes is reasonably large and we should expect lots more going forward …
ChangeList Removed Tuple Types (#537). Part of my ongoing work to simplify the language. Tuple types were not heavily used in any . . . → Read More: Whiley v0.3.38 Released!
|
|