Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Just after two months of the huge 0.9 release, here is Boo 0.9.1 - bringing more new features and bug fixes.
Highlights of this release are:

  • Macro definition arguments [BOO-1146] - macro definitions can define typed arguments as with any method definition.
    Code Block
    macro repeatLines(repeatCount as int, lines as string*):
        for line in lines:
            for i in range(repeatCount):
                print line
    
    repeatLines 2, "boo", "rocks"
    
  • Nested macros extensions [BOO-1140] - nested macros no longer have to be defined within their parent macro block.
    Code Block
    macro parent:
        yield
    
    macro parent.child:
        yield [| print "parent.child" |]
    
    parent:
        child
    
  • Omitted expression for member references [BOO-1150] - `.foo' is now equivalent to `self.foo' by default. This behavior can easily be changed by a macro or compiler step.
    Code Block
    macro with(target, body as Expression*):
        for expression in body:
            match expression:
                case BinaryExpression(Left: mre = MemberReferenceExpression(Target: OmittedExpression())):
                    mre.Target = target
                    yield
    
    with System.Threading.Thread.CurrentThread:
        .CurrentCulture = CultureInfo.InvariantCulture
        .CurrentUICulture = CultureInfo.InvariantCulture
    
  • Volatile fields [BOO-806]
    Code Block
    class Threaded:
        [volatile] foo as int
    
  • TypeSystem refactoring - brings cleaner API and faster compilation (-30% time)

Take note that from now on strong versioning is used on Boo releases, this release assemblies are versioned `2.0.9.1'.

Contributors to this release: Cedric Vivier, Daniel Grunwald, JB Evain, Rodrigo B. De Oliveira.
Read the changelog for the complete list of improvements.

Download it now and have fun!