StringTemplate v4 beta released


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


4.0b4 – February 5, 2011

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

  • 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