Revision history for Perl extension Text::Xslate

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

    [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

    [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

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 "&apos;", not "&#39;"

    [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