Revision history for Perl extension Text::Xslate (next major release) [NEW FEATURES] * Loop control statements (next and last) * for-else syntax in Kolon 1.0099_03 2011-03-13 13:22:21 [BUG FIXES] * Fix tests [CHANGES] * Remove PP::Booster stuff 1.0099_02 2011-03-10 16:21:18 [NEW FEATURES] * Add loop control statements (last and next) in both Kolon and TTerse 1.0099_01 2011-03-10 12:42:28 [CHANGES] * The bytecode version is now 1.3, which means all the compiled codes will be purged on render() * Remove PP::Booster because of its high maintainance cost * <: for nil -> $i { } :> no longer produces warnings [NEW FEATURES] * Add for-else syntax in Kolon 1.0012 2011-03-04 12:18:19 [BUG FIXES] * Fix a bug that <: include foo() :> and <: my $var = ...; include $var :> were wrongly parsed in Kolon (thanks to @shmorimo) 1.0011 2011-03-01 18:08:16 [CHANGES] * Internet Explorer (<= 8) doesn't support ' in title, so we must escape ' (apostrophe) into ', not ' (thanks to @tokuhirom) 1.0010 2011-02-28 18:09:28 [BUG FIXES] * Fix a bug in import_from(), which failed to import optimized constant introduced in 5.10 (thanks to @kane46taka) 1.0009 2011-02-28 13:00:50 [BUG FIXES] * Lock cache file operations with flock(2) * Fix doc issues [CHANGES] * Switch PP backend from PP::Booster to PP::Opcode. PP::Booster will be removed from the core because its maintainance cost is too high. 1.0008 2011-02-14 12:46:45 [BUG FIXES] * Fix docs 1.0007 2011-02-13 23:10:03 [BUG FIXES] * Suppress irrational uuv warnings in relational operators (github issue/28, reported by @tokuhirom) 1.0006 2011-02-11 16:23:32 [BUG FIXES] * Complex templates which include too many string literals (e.g. large JSON) could cause fatal errors on 5.10+, or SEGV on 5.8 (github issue/27; thanks to @cho45 for reporting it) [NEW FEATURES] * You can inject customized messages into the output with the 'warn_handler' option and Text::Xslate->print() method. See the Cookbook for details. 1.0005 2011-02-09 14:33:57 ANNOUNCE: If you are interested in xslate, join #xslate @ irc.perl.org! [BUG FIXES] * The INCLUDE recursion bug (see the NOTE at 1.0004) has been fixed. (thanks to @kane46taka for reporting it) 1.0004 2011-02-08 12:36:21 NOTE: All the versions including this version has a bug that INCLUDE recursion doesn't work. It will be fixed in the next release. [BUG FIXES] * Fix a critical bug that warnings in templates could break the Perl stack (thanks to @tokuhirom for reporting it) * Fix a bug that method calls didn't work in PP version (thanks to @tokuhirom for reporting it) 1.0003 2011-02-05 11:54:45 [NEW FEATURES] * For-loops allow overloaded objects. i.e. you can use Scalar::Defer to defer to create large arrays. 1.0002 2011-02-02 12:02:40 [BUG FIXES] * A tiny doc fix 1.0001 2011-02-02 11:50:43 [BUG FIXES] * Template caches was not purged correctly when functions were added (thanks to @tokuhirom for reporting it) * The 'super' keyword didn't work in template components (thanks to @shiba_yu36 for reporting it) 1.0000 2011-01-07 16:08:44 This is the version 1.0, which means "very stable". Although some features are planned to impement in the near future, the basic features are unlikely to be changed. [BUG FIXES] * Resolve github issue/23: html_builder() doesn't work with functions which accepts multiple arguments [DOCUMENTS] * Add an entry about I18N to the cookbook (c9s) 0.3002 2010-12-16 16:17:48 [BUG FIXES] * hash_with_default() didn't work with `include with vars` syntax (thanks to hirose31 for reporting this issue) 0.3001 2010-12-09 17:18:14 [BUG FIXES] * Fix `module => \@bridges` that importing of bridge modules incorrectly cleared the function mapping (reported by lestrrat) 0.3000 2010-11-23 15:19:04 [CHANGES] * `option => undef` passes the option as is, which allows Text::Xslate->new( line_start => undef ) (issue/21, reported by @tomita). Note that this is an IMCOMPATIBLE CHANGE. [DOCUMENTS] * Update Cookbook and FAQ 0.2015 2010-11-17 22:27:34 [NEW FEATURES] * The 'include' command allows barewords as 'cascade' does 0.2014 2010-11-06 09:24:00 [BUF FIXES] * Error messages did not respect input_layer 0.2013 2010-10-30 15:17:40 [BUG FIXES] * Magic handlings for 'print' opcode [NEW FEATURES] * hash_with_default(\%vars, $default) in Text::Xslate::Util see Text::Xslate::Manual::Debugging [OTHERS] * Switch from M::I::ExtendsMakeTest to M::I::TestTarget 0.2012 Mon Oct 18 23:25:38 2010 * No code changes * Update Module::Install::ExtendsMakeTest (to HEAD of the repo) to avoid problems with non-author environments 0.2011 Sun Oct 17 18:38:01 2010 [CHANGES] * The bytecode version is now 1.2 * Remove builtin ref(); Add is_array_ref() and is_hash_ref() instead. I'm sorry to change APIs, but use of ref() would confuse people. 0.2010 Sat Oct 16 10:00:00 2010 This is the commemorative release for YAPC::Asia Tokyo 2010! [CHANGES] * The bytecode version is now 1.1 [NEW FEATURES] * Add a builtin function ref(), which is the same as Perl's ref() [BUG FIXES] * Resolve RT #62028 (Kaare Rasmussen): Test failed on old URI::Find 0.2009 Wed Oct 6 18:50:45 2010 [BUG FIXES] * Large template files could cause SEGV (reported by id:peppon) [ENHANCEMENT] * The first call of render() has been significantly faster than 0.2008 0.2008_02 Tue Sep 28 16:42:21 2010 [BUG FIXES] * Cache mechanism was affected by the special variables $/ and $\ * Developpers' releases might produced warnings about versions [CHANGES] * Upgrading Text::Xslate no longer forces to purge cached templates. Instead, the internal bytecode version (1.0, currentl) is used. 0.2008_01 Wed Sep 22 17:18:53 2010 [CHANGES] * Use Data::MessagePack as the bytecode serializer, which make the first call of render() much faster 0.2008 Sun Sep 19 18:17:51 2010 [CHANGES] * The obsolete feature that render(undef) is the same as render('') has been removed. render(undef) always throws the error. [FEATURES] * Range operator (e.g. <: for [1 .. 10] -> $i { } :>) 0.2007 Fri Sep 17 12:12:50 2010 [BUG FIXES] * Resolve RT #61359 (Sam Graham): Taint flag broke templates 0.2006 Tue Sep 14 11:46:33 2010 [BUF FIXES] * Single-quote literals parsed wrong, when contain paired double q (Mons Anderson) * Infinite recursion during _fold_constants in case of warnings (Mons Anderson) 0.2005 Mon Sep 13 14:44:22 2010 [BUG FIXES] * Workaround a new deprecated warnings for qw(...) (See perl.git/master/ea25a9b2cf73948b1e8c5675de027e0ad13277bd) 0.2004 Fri Sep 10 13:50:08 2010 [BUG FIXES] * Workaround test failure about 'too long arguments for exec()' 0.2003 Thu Sep 9 19:25:08 2010 [BUG FIXES] * Fix a misuse of test functions. This problem is revealed by Test::Builder2. * Workaround MAGIC problems with html_escape($1) 0.2002 Tue Sep 7 15:23:49 2010 [FEATURES] * Performance improvement (thanks to @kazuho) This version is 10% faster than the previous version! * Update meta spec. 0.2001 Tue Aug 31 13:48:29 2010 [BUG FIXES] * Resolve github issue/16: header/footer was applied recursively, which caused deep recursions (reported by egor) * Dies in macros could make inconsistent data * Optimization of if statements could make wrong results [FEATURES] * Statement modifiers (a.k.a. post-if statements) for Kolon and TTerse 0.2000 Fri Aug 27 11:44:26 2010 Version 0.2000 is stable but has some incompatible changes. Please check the [CHANGES] section of this file before upgrading. [CHANGES] * Remove deprecated .defined() method. Use defined(expr) instead. 0.1999_06 Thu Aug 26 14:50:46 2010 [BUG FIXES] * Fix a test. IPC::Cmd seems broken. 0.1999_05 Wed Aug 25 18:35:15 2010 [BUG FIXES] * Fix another build problem on Win32 0.1999_04 Wed Aug 25 11:34:09 2010 [BUG FIXES] * Fix a build problem on Win32 0.1999_03 Tue Aug 24 17:20:16 2010 [BUG FIXES] * t/300_examples/100_eg_pl.t could hung up on Win32 (@turugina) 0.1999_02 Tue Aug 24 12:08:03 2010 [CHANGES] * For Text::Xslate::Runner, remove --input_layer option, and add --input_encoding and --output_encoding [BUG FIXES] * uri_escape() in PP didn't work for UTF-8-flagged string 0.1999_01 Sun Aug 22 17:45:17 2010 [CHANGES] * The "escape" option is changed to "type", which accepts "html", "xml", and "text" * The default pure Perl backend is now PP::Booster, which is about 2 times faster than PP::Opcode (according to benchmark/x-poor-env.pl) [BUG FIXES] * Modulus zero ($foo % 0) could throw uncatchable errors [FEATURES] * Repeat operator (infix:) is added (so "x" is now an invalid variable name in TTerse) * Now html_builder() can be applied to dynamic filters (e.g. to the HTML::FillInForm::fillinform() function) 0.1058 Tue Aug 17 17:59:53 2010 [CHANGES] - Deprecate defined() method, which is provided only for compatibility with TT, but the behaviour might not be exceptable. That is, $object.defined() returns false unless the $object has its own defined() method. Use defined(expr) function instead, which return false if and only if the expr is undef (nil). [FEATURES] - Add html_builder() to make it easy to import HTML builders. See Text::Xslate::Cookbook for example. 0.1057 Sun Aug 15 18:28:32 2010 [BUG FIXES] - Subroutines that localize $SIG{__WARN__} or $SIG{__DIE__} could make Perl interpreter panic (reported by tokuhirom) - Invalid expressions could produce insane errors including infinite loop (issue/13, reported by y) - A Win32 problem in tests might be fixed [FEATURES] - Experimental support for PP::Compiler which make PP::Booster faster (makamaka) 0.1056 Tue Aug 10 14:28:55 2010 [BUG FIXES] - The rendering methods ignored signals - 'path' option could not deal with overloaded strings (e.g. Path::Class::Dir) correctly (chiba) - Die in macros/blocks caused segfaults (reported by chiba) [OTHERS] - Benchmarks to compare other template engines have been refactored and improved (lestrrat, tokuhirom). See http://xslate.org/benchmark.html for details. 0.1055 Sat Aug 7 17:33:56 2010 [BUG FIXES] - Make xslate(1) print the result to stdout when both --suffix and --dest are omitted - Add HTML escaping in benchmarks correctly, updating the result of benchmarks in documents 0.1054 Mon Aug 2 17:26:21 2010 [BUG FIXES] - The print routine for raw stirings was significantly slower than that with automatic HTML escaping 0.1053 Sun Aug 1 18:14:52 2010 [BUG FIXES] - Fix incorrect titles of manuals 0.1052 Sun Aug 1 15:42:16 2010 http://xslate.org is out! Thanks to Shibuya.pm, esp. @tokuhirom and @lestrrat. [BUG FIXES] - Forbid '..' in file names - "<: $foo :>:<: $bar :>" caused parse errors [CHANGES] - The algorithm of building cache paths has been changed, which requires to re-compile templates. [NEW FEATURES] - Documents: Text::Xslate::Manual for table of contents, Text::Xslate::Builtin for builtin methods and filters - Exportable functions: uri_escape() - Builtin filters: uri 0.1051 Thu Jul 29 17:41:43 2010 [BUG FIXES] - Fix cache issues enbugged in 0.1049 0.1050 Tue Jul 27 19:36:39 2010 [BUG FIXES] - Fix another keyword problem 0.1049 Tue Jul 27 19:03:04 2010 [BUG FIXES] - Compliant with Moose 1.09 (warns about coerce => 1 without coercion) - Lower cased keywords were incorrectly parsed as an upper cased keyword in TTerse (thanks to chiba) - Complex expression problems in PP::Booster, again (@maka2_donzoko) [CHANGES] - Now chache file names include tha path they are 0.1048 Mon Jul 26 16:17:43 2010 [BUG FIXES] - Virtual paths were not cached when cache => 1 - The explanation of 'tag_end' were incorrect - AUTOLOAD were ignored in methodcall - Complex expression problems in PP::Booster (@maka2_donzoko) [CHANGES] - Internal refactoring to make parsers more robust - Rename Text::Xslate::Cookbook to Text::Xslate::Manual::Cookbook - Now string concatination (infix:<~>) respects raw strings [NEW FEATURES] - Add GET statement to TTerse - Add prefix:, infix: and infix: to TTerse (@clouder) [NEW DOCUMENTS] - Text::Xslate::Manual::FAQ to answer a few questions 0.1047 Mon Jul 19 17:04:51 2010 [BUG FIXES] - $foo.nil did not work. - "+10" was wongly converted into "10" [CHANGES] - Rename Text::Xslate->engine to Text::Xslate->current_engine - Remove deprecated Text::Xslate::EscapedString->new [NEW FEATURES] - New methods: Text::Xslate->current_file and current_line 0.1046 Sat Jul 17 18:48:14 2010 [NEW FEATURES] - Add Perl6-like bitwise operators: infix:<+|> for bitwise or infix:<+&> for bitwise and infix:<+^> for bitwise xor prefix:<+^> for bitwise negate 0.1045 Tue Jul 13 20:05:10 2010 [BUG FIXES] - prechomp/postchomp ([%- ... -%]) was not completly comptible with TT2 - Line numbers were wrong if templates used prechomp/postchomp - TTerse could not parse dynamic filters with FILTER blocks correctly [NEW FEATURES] - Text::Xslate::Runner as the guts of xslate(1) - The __FILE__ and __LINE__ keywords for testing and debugging - Now parsers can has its own identity pattern 0.1044 Mon Jul 12 17:50:35 2010 [BUG FIXES] - Underscores in bare words (i.e. left-hand side of the operator '=>') were accidentally removed. - There were several issues on path => \%vpath [NEW FESTURES] - $array.reduce(-> $x, $y { ... }) method 0.1043 Sat Jul 10 14:26:57 2010 [BUG FIXES] - What Makefile.PL wrote for additional tests did not work on Win32 (thanks to Taro, Nishino) [DOC FIXES] - Fix typos for Changes: s/ware/were/g (thanks to @ryochin) [NEW FEATURES] - Extend 'path' option for in-memory file mapping, inspired by Text::MicorTemplate::DataSection (@typester++), requested by @kazeburo 0.1042 Tue Jul 6 13:28:43 2010 [BUG FIXES] - Makefile.PL did not work on some environments - block -> {} and FILTER BLOCK were not consistent with normal macros [CHANGES] - Internal refactoring 0.1041 Sat Jul 3 14:52:00 2010 [BUG FIXES] - Tests for filenames did not work on Win32 [CHANGES] - Refactor internal function registration APIs [NEW FEATURES] - For App::xslate + New option --version to show versions + New option --engine (or -E) to change the engine class 0.1040 Thu Jul 1 15:33:14 2010 [BUG FIXES] - UTF8 flags was not respected in some cases [CHANGES] - Error messages contain source lines 0.1039 Mon Jun 28 20:31:54 2010 [DOCUMENTS] - Applying the raw filter in templates is considered harmful. Remove the use of it from the cookbook. Thanks to @typester. 0.1038 Mon Jun 28 17:44:52 2010 [BUG FIXES] - Extra white spaces caused syntax errors in given blocks - Original error handlers (i.e. $SIG{__WARN__} and $SIG{__DIE__}) were ignored. This problem affected PSGI applications with the StackTrace middlewere. [NEW FEATURES] - New document Text::Xslate::Cookbook - Block filter syntax in Kolon. See Text::Xslate::Cookbook. - SWITCH-CASE directives in TTerse 0.1037 Sun Jun 27 17:37:57 2010 [BUG FIXES] - Template cascading broke the file name of error messages [OTHERS] - Internal refactoring 0.1036 Wed Jun 23 20:05:44 2010 [CHANGES] - Change line_start, tag_start and tag_end to take string tokens, not regexps [NEW FEATURES] - Improve performance (about 10%+) by direct threaded code, although it's enabled only on gcc - Text::Xslate->engine() method to access the executing engine from functions and methods 0.1035 Sun Jun 20 15:03:12 2010 [BUG FIXES] - Macros with args could not refer to outer variables [NEW FEATURES] - "while defined expr -> $item" as a syntactic sugar to "while defined(my $item = expr)" - New iterator element: $~iter.cycle(...) 0.1034 Wed Jun 16 17:27:44 2010 [CHANGES] - Rename $~iter.max to $~iter.max_index in Kolon [BUG FIXES] - The cache reloader was broken from 0.1032 (thanks to @fujiwara) [NEW FEATURES] - For TTerse + Support header/footer options curresponding to TT's PRE_PROCESS/POST_PROCESS + Support DEFAULT and FILTER syntax 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 were not allowed - There were 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 were 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 calling render without any variables (lestrrat) 0.1012 Mon May 10 13:56:28 2010 [BUG FIXES] - Cascaded templates were 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 were 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 were 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 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