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: