Revision history for Perl extension DTL::Fast.

1.613 - Sat 21 Feb 2015 14:15 MSK
    - implemented html_protect in C, test performance increased 17%, fixes #32
    - internal context access optimisation, total performance increase 30%
    - variable context access optimisation for simple variables, total increase 36%
    - shortcuted escape/unescape functions to URI::Escape::XS
    - DTL::Fast::Utils::as_bool method now works without additional functions calls
    - Implemented and documented eval_sequence method
    - Documented custom tags creation, fixes #12
    - Documented custom filters creation, fixes #13

1.612 - Sun 15 Feb 2015 18:40 MSK
    - Fixed timeuntil test race condition, thanks to @eserte, fixes #59
    - Implemented dynamic inheritance. You may now extend with context, fixes #9
    - Redundant serialized cache removed from templating system. Only runtime and custom now.
    - Added block_super tag and {{ block.super }} support, fixes #52

1.611 - Sun 15 Feb 2015 11:44 MSK
    - stringformat now treats undef values as empty strings
    - fixed bug with crashing on error messging with "undef in sprintf" error, fixes #57
    - logical operators now behaves properly. Second operand evaluated only if first is not enough, fixes #25
    - upper and lower filters treats undef as an empty string
    - implemented split filter (experimental)
    - implemented sprintf tag (experimental)

1.609 - Wed 11 Feb 2015 21:38 MSK
    - Dynamic filters loading implemented, fixes #16
    - Dynamic operators loading implemented, fixes #19
    - Custom operators introduced
    - Documented some additional filters 
    - Fixed bug with locale-specific string operations: cmp, lt, gt, upper, lower, capfirst, dictsort

1.608 - Tue 10 Feb 2015 19:09 MSK
    - Removed unsafe map usage in complicated loops
    - Fixed bug with spaceless closing tags `endcomment` and `endverbatim`

1.606 - Mon 09 Feb 2015 16:23 MSK
    - SSI tag behavior now is like in Django, fixes #26
    - ifchanged tag is now rendered on the first pass
    - ifchanged tag can now work without parameters (watching rendered content); not recommended, bad performance
    - new tag - warn
    - fixed bug with slicing indexes outside the array boundaries
    - implemented dynamic tags loading and preloading registering with register_tag, fixes #18
    - replaced some redundant methods with direct perl API calls
    - documented numberformat filter, fixes #10

1.605 - Wed 28 Jan 2015 18:27 MSK
    - Fixed spaces between equals in 'with' tag. Now tags may be multiline, fixes #7
    - Fixed filters behavior in with tag, if constant strings being used in assignment, fixes #8
    - Blocks now can be multi-line

1.604 - Tue 27 Jan 2015 20:18 MSK
    - Fixed bug when expression fails if variable name contains operator
    - Load tag is now accepts package names with or without quotes

1.602 - Sun 25 Jan 2015 20:18 MSK
    - Implemented and tested include .. with tag

1.05.6 - 2015-01-22
    - Removed changes from pod documentation
    - Fixed lvalue test for perl 5.10

1.05.5 - 2015-01-21
    - Changes file cleanup
    - Added filter numberformat, formats number like 12 345 678.9999999
    - Added DTL::Fast::Utils::is_lvalue method to check if method is lvalue. 
      Lvalue methods in context being invoked without context argument.
    - Fixed bugs with spaces in variables and filters

1.05.4 - 2015-01-20
    - Unknown block warning now displays template filename
    - Spaces in control blocks are not mandatory

1.05.3 - 2015-01-20
    - Context trying to traverse objects like hash if there is no method

1.05.2 - 2015-01-19
    - Fixed bug in C spaceless implementation for linux
    - Moved inheritance part into Template constructor
    - Fixed bug with inheritance + blocks extension
    - Fixed bug with logic on arrays/hashes/scalars reference, object method 
      as_bool support added. Tested.
    - Fixed bug with setting value to undef using DTL::Fast::Context::set
    - Fixed bug with inheritance path.
    - Implemented cache validation. Speed now is comparable to Dotiac::DTL
    - Made dirs parameter optional for Template constructor, but it's still 
      mandatory for get_template/select_template
    - Implemented cache classes: 
    
        DTL::Fast::Cache
        DTL::Fast::Cache::Runtime
        DTL::Fast::Cache::Serialized
        DTL::Fast::Cache::Compressed
        DTL::Fast::Cache::File
        DTL::Fast::Cache::Memcached

    - New dependencies added: Compress::Zlib, Digest::MD5
    - Added Perl::Critic testing, complies level 4.
    - Implemented C realization of spaceless tag.

1.04 - 2015-01-14
    - Taken date function from Dotiac::DTL to DTL::Fast::Utils::time2str_php
    - `now` tag and `date` filter now works with time2str_php function (like Django itself)
    - Implemented strftime filter, which works with Date::Format str2time.
    - Added Russian version of pluralize filter:

        use DTL::Fast;
        use DTL::Fast::Filter::Ru::Pluralize; # this will override default pluralize with Russian version.
        
    - Refactored strings backup and parametrized filters.
    - `block` and `extends` tags now works as tags.
    - New dependency added: Storable

1.03 - 2015-01-13
    - Tested with CentOS & Perl 5.10
    - Lowered Perl version requirement to 5.10
    - Changed implicit split to explicit in wordcount filter (v5.10 considers it depricated).
    - Added exception on missing parent template in extends tag.
    - Added exception on missing included template in include tag.
    - Added exception on recursive inheritance (extends tag).
    - Added exception on recursive inclusion (include tag).

1.02 - 2015-01-10
    - changed some intermediate getters to direct access. Improved rendering performance by 10%.
    - added tests for performance measuring and profiling (see timethese directory).

1.01 - 2015-01-09
    - fixed bug with add filter repeated usage.

1.00 - 2015-01-09
    - First release

0.01  Sun Dec 28 18:36:48 2014
    - original version; created by h2xs 1.23 with options
        -AX DTL::Fast
