Revision history for Perl extension DTL::Fast. 2017.1 - Tue 9 Mar 2017 - Changed versioning to the year-based - Fixed bug with SSI security warning - Added die_on_missing_path option to the DTL::Fast::Context 1.623 - Tue 23 Feb 2017 - Removed test with incorrect utf symbols, because they are not accepted by perl 5.26 1.621 - Wed 09 Dec 2015 - Minor docs fixes - Memory leaks fixes in _template key 1.620 - Mon 13 Apr 2015 - Improvement - Implemented `slice` filter working with scalars as substring, fixes #81 - Prettified expressions rendering error messages - Prettified rendering error messages for `numberformat` and `stringformat` filters - Bugfix - Empty brackets now rendered as is, without throwing an exception, fixes #80 - Added `with` tag parameters validation, fixes #82 - Fixed bug with `-var` rendering, fixes #91 1.619 - Mon 06 Apr 2015 - Bugfix - Fixed bug with non-reference on context traversing, fixes #76 - Improvement - Implemented pretty debug message for context traversing errors 1.618 - Sun 05 Apr 2015 - Improvement - Changed context variable traversing: context is not being passed to the code references or object methods anymore, fixes #69, thanks @cblake777 - `ssi` tag is now depricated, warning added - `now` tag is now supports `.. as var_name` syntax from Django 1.8. Fixes #73 - parsing error messages in `autoescape`, `block` and `now` tags are now pretty - expression parsing messages are now pretty - Documentation - Documented supported operators and some syntax features - Documentation links to Django site now leads to the 1.8 version - Bugfix - forloop.last has a proper value on 1 item array, fixes #72 1.617 - Sun 29 Mar 2015 - Implemented DTL::Fast::count_lines function in C, counts newline symbols in the string - Implemented proper lines counting for multi-line syntax constructions, fixes #64 - for tag now dies with pretty message on duplicate empty tag - Uknown filter and tag now shows error environment, fixes #63 - Undefined time value in date filter treated as 0, fixes #61 - Implemented dump, dump_html and dump_warn tags for dumping context variables in different ways, fixes #68 - warn tag removed in favor of dump_warn - Added variable name validation and restrictions, fixes #62 1.616 - Sun 22 Mar 2015 - Updated Escape::XS version requirement to 0.12 1.615 - Sat 21 Mar 2015 - Improved error message on undisclosed/unknown tags, with source line numbers support - Reverted Escape::XS mapping, not working on windows (no idea why) 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