Revision history for Perl extension Text::Xslate
0.1033 Sun Jun 13 17:14:36 2010
[BUG FIXES]
- Workaround a Win32 filesystem issue
[NEW FEATURES]
- Anonymous macro: <: -> $x, $y { $x + $y }(10, 20) # => 30 :>
- The sort method accepts an anonymous macro
- New methods: map
- New options for Text::Xslate: line_start, tag_start and tag_end
0.1032 Thu Jun 10 18:00:25 2010
[CHANGES]
- Rename the term "escaped string" to "raw string":
escaped_string() -> mark_raw()
Text::Xslate::EscapedString -> Text::Xslate::Type::Raw
(old names remain for compatibility)
[BUG FIXES]
- App::Xslate created result files even if render() dies
[NEW FEATURES]
- New builtin filters:
+ mark_raw as an alias to 'raw'
+ unmark_raw as the opposite of 'mark_raw'
0.1031 Wed Jun 9 21:55:57 2010
[BUG FIXES]
- Issues on older perls
[NEW FEATURES]
- New defined() named operator/builtin method:
expr.defined() and defined(expr) is the same.
0.1030 Wed Jun 9 15:33:43 2010
[CHANGES]
- Unknown options to new() will produce warnings
[BUG FIXES]
- Resolve issue #10: utf8 flags break macros (reported by nihen)
- The auto semicolon insertion was broken
- Loops could waste memory
[NEW FEATURES]
- The interface of bridge mecahnism has been improved;
now you can do "module => ['Text::Xslate::Bridge::TT2']"
0.1029 Tue Jun 8 16:30:46 2010
Macros and autoboxing have been refactored.
[CHANGES]
- A few undecoumented features have been removed
[BUG FIXES]
- Tied array/hash could cause segv by builtin methods
[NEW FEATURES]
- User-defined autoboxing methods; see Text::Xslate::Bridge::TT2 on CPAN
- Macros become first objects;
i.e. <: macro foo -> { ... }; my $foo = [foo]; $foo[0]() :> works.
0.1028 Sun Jun 6 17:21:18 2010
This release introduces variable definition and mutation, which might be
unstable. Please report any bugs you'd run into.
[CHANGES]
- Make Kolon's while statement the same as Perl's
[BUG FIXES]
- Resolve various issues
[NEW FEATURES]
- Improve App::Xslate
- Implement constant folding
- For Kolon
+ constant statement (e.g. constant FOO = 42)
- For TTerse
+ CALL statement not to print expressions
+ WHILE statement
+ SET statement and the "=" operator to assign values
0.1027 Fri Jun 4 15:09:47 2010
[CHANGES]
- s/peep/peek/, which is really what I want
[BUG FIXES]
- Ternary operators could cause problems in PP::Booster, again (makamaka)
- "or" and "and" operators could cause problems in given-when
0.1026 Thu Jun 3 22:04:02 2010
[CHANGES]
- Metakolon's line code has been changed to %% like TT3 and TTerse
- The default cache_dir is chaned to "$HOME/.xslate_cache"
- Error messages are improved
[BUG FIXES]
- Empty hash/array literals ware not allowed
- There ware several edge-case issues in string literals
- The precedence of the ternary operator was wrong
- Resolve issue #5: [% "foo' %] was silently accepted
- Ternary operators could cause problems in PP::Booster (makamaka)
[NEW FEATURES]
- Macros can be called with the filter operator (e.g. expr | my_macro)
- For Kolon
+ Loop iterators as "$~LOOP_VAR" (e.g. $~item)
+ Loop iterator elements: index, count, size, max, body,
is_first, is_last, peep_next, and peep_prev
- For TTerse
+ Loop iterators as "loop"
+ Loop iterator elements: index, count, size, max, body
is_first/first, is_last/last, peep_next/next, and peep_prev/prev.
+ MACRO foo(...) BLOCK ... END syntax
+ WRAPPER "foo.tt" ... END syntax
0.1025 Mon May 31 20:29:50 2010
- Support 5.8.1
0.1024 Sun May 30 19:00:56 2010
[BUG FIXES]
- 'module' option wiped away builtin functions
- Array/hash literals ware invalid in TTerse
- Calling undefined functions produced unreadable messages in TTerse
- The parser could not parse <: f({ not => 42 }) :>
[NEW FEATURES]
- For TTerse
+ Support TT3-like single line code with '%%'
+ Support INCLUDE-WITH syntax
- New PP engine: Text::Xslate::PP::Booster (makamaka)
Now PP is much faster than Template-Toolkit 2.22
0.1023 Fri May 28 15:00:38 2010
[BUG FIXES]
- Fix variable localization for include command
- Correct warning location from render_string()
- More robust cache checking
[NEW FEATURES]
- For General
+ Array literal syntax: [ "foo", "bar", "baz" ]
+ Hash literal syntax: { foo => 1, baz => 2 }
- For TTerse
+ TT2 like comment tag [%# ... %]
+ "FOR" and "for" for "FOREACH"
+ The _ operator for concatination
- For App::xslate
+ --cache accepts an integer, not a bool
0.1022 Wed May 26 17:29:09 2010
[BUG FIXES]
- Fix variable localization (used for cascade-with-vars syntax)
[CHANGES]
- Use {} in cascade-with-vars syntax, instead of ()
[NEW FEATURES]
- Support include-with-vars syntax:
: include "foo.tx" { var => 42 }
- Support --escape and --verbose options in xslate(1)
- Support --eval (like perl's -e) option in xslate(1)
0.1021 Tue May 25 18:18:06 2010
[BUG FIXES]
- Fix a bug about for-loops on PP (makamaka)
[CHANGES]
- "'" will be escaped into "'", not "'"
[NEW FEATURES]
- Resolve issue#2: Improve cascade statement:
: cascade base ( foo => 42, bar => "baz" )
- Add html() and dump() builtins:
<: $var | html # explicit html-espace :>
<: $var | dump # print $var using Data::Dumper :>
0.1020 Fri May 21 17:21:03 2010
[NEW FEATURES]
- Resolve issue#1: make semicolon/{} block unnecessary in
block foo -> { ; }
- New "raw" builtin filter: <: $value | raw :>
0.1019 Wed May 19 15:48:53 2010
[BUG FIXES]
- Workaround Win32 CRLF issues on tests
0.1018 Wed May 19 15:34:47 2010
[CHANGES]
- Use Any::Moose (lestrrat)
[BUG FIXES]
- There was several issues on Mouse::PurePerl
0.1017 Tue May 18 14:35:30 2010
[NEW FEATURES]
- Support hex/oct/binary literals (e.g. 0xCAFE)
- Support lower-cased keywords in TTerse
[CHANGES]
- Rename 'import' option to 'module' because of the confliction with
Perl's import() method in App::Xslate
0.1016 Sun May 16 13:59:08 2010
[NEW FEATURES]
- Support --pp (and --xs) option in Makefile.PL
- Support autoboxing; currently supported methods are:
For array: size(), join(), reverse()
For hash: keys(), values(), kv() (and all the array methods)
0.1015 Fri May 14 14:52:52 2010
[BUG FIXES]
- Fix literal_to_value(), which could break values (reported by xaicron)
- Missing prerequisites: MouseX::Getopt (reported by xaicron)
0.1014 Fri May 14 13:05:17 2010
[NEW FEATURES]
- Now Xslate works without XS (makamaka)
- New xlsate(1) utility, which is like ttree(1) (lestrrat)
0.1013 Thu May 13 15:00:41 2010
[CHANGES]
- The warning policy has been changed. See the document for details.
- Allow Allow calling render without any variables (lestrrat)
0.1012 Mon May 10 13:56:28 2010
[BUG FIXES]
- Cascaded templates ware not reloaded correctly (thanks to tokuhirom)
0.1011 Fri May 7 12:29:45 2010
[NEW FEATURES]
- New escape => 'none' mode for non-HTML templates
0.1010 Thu May 6 13:25:47 2010
[BUG FIXES]
- There ware various parsing issues
[NEW FEATURES]
- Switch statement like Perl6
- Arrows in pointy blocks can be omitted if not necessary
0.1009 Wed May 5 13:59:13 2010
[NEW FEATURES]
- Extend cascade statement:
cascade myapp::base with component1, component2
cascade with component1, component2
- Function import mechanism, which needs no plugin modules:
Text::Xslate->new(import => [qw(Data::Dumper)])
- Support "elsif" in Kolon for compatibility with Perl
- Support "UNLESS" in TTerse for compatibility with TT
- Support function and method call in TTerse
[CHANGES]
- Internal APIs and tests have been refactored
0.1008 Mon May 3 18:36:52 2010
[CHANGES]
- Deprecate "string" option for new() and render(\%vars).
Use render_string() instead.
[NEW FEATURES]
- render_string($str, \%vars), which is provided mainly for testing
0.1007 Sun May 2 22:26:09 2010
[BUG FIXES]
- Nested function call could cause problems.
- Blessed references ware not printable.
- The "file" option to new() was confusing. Now it has been removed.
[NEW FEATURES]
- New operators: "and", "or", "not", "min", "max"
- New method call syntax:
$obj.method(...)
- New while statement:
while $obj.fetch() -> $row {
print $row;
}
- New "cache_dir" option to new()
- INCLUDE command in TTerse
0.1006 Sat May 1 13:36:06 2010
- Workaround MSVC problems
0.1005 Sat May 1 13:21:24 2010
- Introduce TTerse syntax, a Template-Toolkit-like template parser
- Introduce Metakolon syntax to produce Xslate templates by itself
- Change print command (<:= ... :>) to be implicitly enabled
i.e. you need not to put =; <: $foo :> is enough
- Add TT-like chomp command ("<:-" for prechomp, "-:>" for postchomp)
0.1004 Fri Apr 30 14:32:47 2010
- Fix an over-optimizing issue (revealed by Template::Benchmark)
0.1003 Fri Apr 30 12:30:21 2010
- Disable leaktrace testing temporarily
0.1002 Fri Apr 30 11:17:15 2010
- Fix template reloading issues
0.1001 Thu Apr 29 17:58:33 2010
- Fix macrocall issues, again
- Allow a literal string for cascade()
- Allow underbars in literal numbers
- Macros now returns a value, not output it directly
0.1000 Wed Apr 28 21:50:29 2010
- First non-dev release!
- Change the default path to ["."]
- Fix a macrocall issue
0.001_09 Wed Apr 28 18:01:42 2010
- New keywords: cascade, macro, block, before, around and after
- Add template cascading
- Add macro statement
- Add "cache => 2" mode (or release mode)
0.001_08 Fri Apr 23 13:33:14 2010
- Add escaped_string() to tell the engine that strings are escaped
0.001_07 Thu Apr 22 12:59:03 2010
- Fix a bug that for-loops for an empty array did not work
0.001_06 Wed Apr 21 13:39:50 2010
- Workaround multi-thread related problems
0.001_05 Tue Apr 20 18:27:33 2010
- Add "include" command
0.001_04 Tue Apr 20 17:08:49 2010
- The "file => [...]" option is no longer required
- Fix file auto reloading
0.001_03 Tue Apr 20 15:28:13 2010
[IMCOMPATIBLE CHANGE]
- Template tags are now <: ... :>, not <? ... ?>. This is because
<? $var ?> looks too like Text::MicroTemplate
- render() requires a file name:
my $tx = Text::Xslate->new( file => [qw(foo.tx bar.tx)] );
print $tx->render('foo.tx', \%vars);
print $tx->render('bar.tx', \%vars);
0.001_02 Mon Apr 19 15:07:43 2010
- Fix a bug that program branches could be broken by the optimizer
0.001_01 Mon Apr 5 18:52:06 2010
- The first preview release for OSDC.TW 2010 (5/24-25)
0.001 Mon Apr 5 18:52:06 2010
- original version; created by Module::Setup