Wednesday October 17, 2007

Today I posted download links for Nu-0.2.0, a small but significant set of upgrades to Nu. The release contains two changes that can break existing programs (they broke some of mine!), hence the new minor version number.

I'll describe each change in more detail in subsequent posts (see the git commit logs if you don't want to wait), and I'll also be updating the documentation to cover the new topics.

Here's a brief list of the changes:

  • Character escape sequences are now parsed in strings by default. New string forms allow explicit control of escaping.

  • There's a new literal form for regular expressions.

  • There's a new literal form for characters.

  • Nu closures now close on variable bindings rather than values. My original preference was to close on values, but popular opinion and Lisp precendent disagreed. Now it is possible to use Nu closures to implement object systems (although I prefer Objective-C's) and to do language pony tricks like Paul Graham's famous make-accumulator example.

  • There's a new sample program, NuAnywhere, that uses mach injection to inject the Nu console into any running Cocoa application. That's right: Safari, iCal, Pages, they're all yours now.