The Urn Logo

Version 0.3.0 released

Another update! Firstly, about Urn itself: someone posted a link to Urn’s repo on Reddit, which meant we got lots of useful feedback from various people.

Struct literals

I finally caved in and added “struct literals”. This means the compiler now has the notion of a table built in to it, and so can generate more efficient code. It also makes your code a significantly prettier:

(with (obj { :name "Bertie"
             :age 23 })
  (print! (.> obj :name)))

Compiler improvements

We’ve put some work into making the compiler easier to work with. Firstly, if you attempt to use an undefined variable, we’ll now suggest variables in scope with similar name. This makes it much easier to see when you’ve got a typo.

We’ve also improved multi-line support in the REPL. If Urn detects that an expression isn’t finished, it will automatically prompt for another line: meaning you input complex expressions with ease.