StringTemplate v4 beta released

StringTemplate v4 beta released

or

I haven't really done the documentation together yet, but you can start poking around at the main landing page.

CHANGES

4.0b4 – February 5, 2011

BIG THANKS to Udo Borkowski for his help debugging these betas and his
suggestions.

  • added write to file methods

  • had infinite loop for expr: "<t()$"

  • the default file encoding is now UTF-8

  • early eval <(x)> using new STWriter derived from type of current STWriter.
    e.g., AutoIndentWriter.

  • didn't detect nonterminated comment. <!bad comment>

  • added two literals "true" and "false" to the template argument syntax; e.g.,
    stat(name,x=true,y=false) ::= "..."

  • it was treating "..." default arg as a template not string.

  • throws STException now upon not finding group file or group dir instead
    of sending err to listener.

  • default args couldn't have subtemplates
    t(x,y={<x:{s|<s>}>}) ::= "..."

  • Added a new benchmark from Oliver Zeigermann. Discovered 60% of time is
    spent using reflection invoke() for properties.

4.0b3 – January 28, 2011

  • exception in lexer blew out of parsing

  • missing '}' in {...} caused infinite loop

  • NPE in storeArgs if empty arg list

  • removed debugging prints.

  • x={<(...)>} default arg was hardcoded to <...> not $..$ or whatever.

  • The grammar needed to match and ignore an optional INDENT before region @end

  • when redefining a region (template) the newline before the >> was kept.

  • WS not ignored in front of STRING token in expressions.

  • closing STViz doesn't exit vm now.

  • throws exception if registering renderer or model adaptor for primitive

4.0b2 – January 22, 2011

  • Order of static init issue; an error mgr was null.

  • Fixed some unit testing the Windows friendly

  • Fix bug in triple if-elseif-elseif-elseif; added unit tests

  • bug where I did not say current_ip when calling exec() from writeObject

  • Updated README to include install information

4.0b1 – January 14, 2011