4.0 Release Notes

Skip to end of metadata
Go to start of metadata

BIG THANKS to Sam Harwell and, again, to Udo Borkowski for debugging help and
suggestions. Sam is doing the C# implementation. Benjamin Niemann is doing
the Python port. Alan Condit is doing Objective-C.

4.0 – March 27, 2011

  • ST.add() returns self now so we can chain. t.add("x", 1).add("y", "hi");
  • import from files in jar didn't work.
  • removed field tokens from STGroupString
  • improved imports lookup
  • made fields of events public final.
  • augmented debug event toString and fixed start/stop issue with eval
    events. renamed fields to be more clear.
  • Added IndentEvent for dbg
  • ^(INDENT expr-sub-tree) is now ^(INDENTED_EXPR INDENT expr-sub-tree)
    with changes to grammars. More consistent with subtree root being operator.
    STViz now highlights indentation properly in template pane.
  • Altered CodeGenerator.g to pass AST node for indentation not just string.
    This way we get INDENT operations into the sourceMap for indent debug events.

4.0b5 – March 6, 2011

  • true/false were only allowed as default args; now allowed as template
    arg expressions in templates. Works as dictionary value too.
  • couldn't have anonymous templates inside a region.
  • parentheses were a bit weird in conditions. Now, conditions cannot
    use parentheses to mean "early evaluation" except as obj.(propName)
  • nativeGroup of all implicit templates was STGroup.defaultGroup.
  • removed all writes of the enclosingInstance at evaluation time; fixed
    issue for STViz.
  • comments on line by themselves don't emit \n to output
  • STViz tried to highlight AST pane even when we switched ASTs
  • combined load_str, write into write_str single op. minor optimizations too.
    Seems a tiny bit faster per benchmarks.
  • Added ST.VERSION auto-updated by ANT.
  • added STGroupString
  • Added support for this in group.g:
  • IndexOutOfBounds Exception when using "cap" format on empty string
  • @t.() ::= "" caused NPE
  • Region redefinition caused NPE. "<@r>a<@end><@r()>"
  • STViz couldn't see first subtemplate when computing template range in output.
  • Was incorrectly computing filename to load template .st files from group dir.
  • Listener was not notified upon "no such template" in group dir.
  • Redid how ST found imported files, dir, etc.. Can now import a template
    file even. Can be absolute path or relative path. If relative, it
    looks in dir of .stg file with import then CLASSPATH.
  • The listener of import groups is now set to that of group that imports
    them.
  • Regions behave like <if> tags now. Indent respected if <@r>...<@end> on
    indented single line. Indent/newlines ignored after those tags if
    on separate lines.

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

Labels: