Matthew Simon Cavalletto


Text::MicroMason::Docs::Changes - Change History for the MicroMason Distribution


Version 1.992


Updated ToDo.pod with a few ideas for upcoming releases.

Extended t/58-quicktemplate.t to demonstrate use of the pre_fill method.


Fixed incorrect handling of default values for array or hash variables in an <%args> block. Thanks to Alexander for the bug report.

Added extra newlines to the do blocks generated by Base's assemble(), so that <% exprs %> can contain a comment. Problem reported by Alexander.

Improved error reporting by changing the file name embedded in the CPP-style line number comment at the top of each stretch of generated Perl code. Based on a problem report from Alexander. This does not fix the line numbering problem, but at least the file name is more helpful than it used to be.


Added RoughDraft of "" based on a reply to a question via email from Alexander.


Fixed return value from Text::MicroMason::Cache::File set() method; thanks to Alan Ferrency for the helpful bug report and test case.


Extracted HasParams and StoreOne mixins from HTMLTemplate.

Added QuickTemplate mixin class with emulation for Text::QuickTemplate.


Added reference links to benchmarking section in Docs/ToDo.pod.

Added "local $^W;" in two test scripts to silence extra warning on Perl 5.005_04.

Bumped version number.

Version 1.991


Bumped version number.

Added ApacheHandler configuration options and basic documentation.


Added PLP mixin class with emulation for PLP templating package.

Added the skeleton for a basic ApacheHandler class.

Improved strict_root support in TemplateDir and added documentation for it.

Extracted argument passing logic from TextTemplate to create new PassVariables mixin.

Added Sprintf syntax mixin and basic tests.


Added DoubleQuote syntax mixin and basic tests.

Version 1.99


Added AllowGlobals mixin based on suggestion and patch from Jonas Alves. Reviewed similar functionality in HTML::Mason and added docs and tests.

Extracted debug options to separate Debug mixin class.

Changed name of internal new() method to create(), while propogating the mixin finding behavior from the Text::MicroMason facade up to Text::MicroMason::Base.

Renamed examples directory to samples.

Added read_handle method and output_sub attribute.

Added assembler_vars method and removed %Assembler global.


Fixed early exit of t/42-text_template.t to skip test if missing Text::Balanced.


Renamed the Mason compatibilty class to HTMLMason to match other syntax classes. Changed it to be a mixin like the other classes, instead of a subclass.

Switched to use of Class::MixinFactory and removed old class() and NEXT() methods.

Extracted new interpret() method from inside of compile().

Adjusted setting of options and attributes so that this doesn't happen within interpret().

Extracted list of related modules to new Docs::Related POD file.

Version 1.98


Fixed unprotected test dependency on Text::Balanced for TextTemplate emulation.

Fixed unexpected side-effect of change to parsing for single-character Filter flags.

Minor adjustments to POD documentation.

Version 1.97


Moved to do list into new pod file. Moved extra pod files into Docs namespace.

Added _printable to default set of functions in Filters. Tweaked parse_filters and get_filter_functions methods.

Changed internal names for ouput and include token types to expr and file. Corrected typo in one of the assembler token names.

Adjusted $Carp::CarpLevel in Base croak_msg().

Fixed test failure in t/33-filters.t reported by William Kern.


Fixed typo in ServerPages example; thanks to William Kern for pointing it out.


Adjustments to documentation in top-level package.

Version 1.96


Added PostProcess mixin class at the suggestion of Alan Ferrency.

Renamed a few keys in the hash returned by assembler_rules().

Moved syntax documentation to Mason subclass.

Version 1.95


Fixed problem with extra semicolons breaking code statements broken onto multiple % code lines; thanks to Alan Ferrency for test code to isolate the problem, now added to regression tests.


Documentation updates.

Version 1.94


Factored subclass-specific lex_token() method out from superclass lex() method.

Added Embperl mixin class with emulation for HTML::Embperl.

Merged Devel.pod back in to other package documentation.


Replaced assembler attribute with assembler_rules() method.

Added Mason subclass and moved some functionality to there from Base.

Documentation updates.


Added HTMLTemplate mixin class with emulation for HTML::Template.


Added TextTemplate mixin class with emulation for Text::Template.

Version 1.93


Instead of run-time eval of @MIXIN to fix SUPER resolution, now using a new SUPER method.


Documentation updates.

Version 1.92


Uploaded to CPAN to fix packaging issue with 1.9_1.

Version 1.91


Posted description of mixin mechanism to PerlMonks for discussion.

Debugged CompileCache and finished ExecuteCache. Added test scripts.

Debugged TemplateDir and added test script.

Implemented support for one-time options passed to compile that override other attributes. Adjusted Safe facade to prevent this from being done there, in order to avoid escapes from a Safe compartment.


Reorganized t/ directory.

Version 1.90


Documentation updates.


Documentation updates.

Version 1.55


Documentation updates.

Version 1.54


Renamed "interpret" method to "execute" for consistency with function interface.

Moved try_ functionality to new ErrorCatching mixin.

Generalized behavior of assemble method; moved template elements into %Assembly hash.

Version 1.53


Moved Safe functionality to new Safe mixin.

Moved filtering functionality to new Filters mixin.


Added mixin inheritance hacking logic based on DBIx::SQLEngine::Record::Class.

Version 1.52


Extracted Changes to separate POD document.


Additional work.

Version 1.51


Refactoring of method interface to merge compie and interpretation into single subroutines with parameters to indicate whether we're reading text or a file.

Added initial support for filtering interpolated expressions based on a patch and extended discussion with Alan Ferrency.

Packaged as version 1.51 but not released to CPAN.


Refactored to object-oriented implementation to allow subclassing. Inspired by discussion with Alan Ferrency about how to extend functionality.

Started CodeCache subclass based on experimental caching code included in 1.07.

Started TemplateDir subclass with base directory and relative path calculations based on a patch from Tommi Maekitalo.

Incorporated patch from Tommi Maekitalo to put default values from an <%args> block into the %ARGS variable as well as the separate named variables.

Created ServerPages subclass based on feature request from William Kern.


Moved package documentation into separate ReadMe.pod.


Version 1.07


Discard line break after <%perl> block as suggested by Tommi Maekitalo. Note that removing these line breaks may affect the rendering of your current templates! Although I am typically hesitant to change established behavior, this does improve the template output and brings us into line with HTML::Mason's behavior.

Added $Debug flag and support for <%args> blocks based on a contribution by Tommi Maekitalo.

Adjusted internals to allow block reordering, and added support for <%init> and <%once>.

Released as Text-MicroMason-1.07.tar.gz.

Version 1.06


Changed the way that subroutines were scoped into the Text::MicroMason::Commands namespace so that Safe compartments with separate namespaces and shared symbols have the visibility that one would expect.

Fixed a bug in which an unadorned percent sign halted parsing, as reported by William Kern at PixelGate. Added a test to the end of 6-regression.t that fails under 1.05 but passes under 1.06 to confirm this.

Simplified parser regular expressions by using non-greedy matching.

Added documentation for *_file() functions. Corrected documentation to reflect the fact that template code is not compiled with "use safe" in effect by default, but that this might change in the future.

Released as Text-MicroMason-1.06.tar.gz.

Version 1.05


Adjusted regular expression based on parsing problems reported by Philip King and Daniel J. Wright, related to newlines and EOF. Added regression tests that fail under 1.04 but pass under 1.05 to ensure these features keep working as expected.

Added non-printing-character escaping to parser failure and debugging messages to better track future reports of whitespace-related bugs.

Moved tests from into t/ subdirectory.

Added experimental suppport for file code cache in compile_file_codecache.

Released as Text-MicroMason-1.05.tar.gz.

Version 1.04


Adjusted regular expression based on parsing problems reported by Mark Hampton.

Added file-include support with <& ... &> syntax.

Documentation tweaks. Adjusted version number to simpler 0.00 format. Released as Text-MicroMason-1.04.tar.gz.


Documentation tweaks based on feedback from Pascal Barbedor. Updated author's contact information.

Version 1.0.3


Renamed from HTML::MicroMason to Text::MicroMason. Documentation tweaks. Released as Text-MicroMason-1.0.3.tar.gz.

Version 1.0.2


Munged interface for clarity. Added Safe support. Adjusted docs to reflect feedback from mason-users. Released as HTML-MicroMason-1.0.2.tar.gz.

Version 1.0.1


Parser tweakage; additional documentation. Added Exporter support. Released as HTML-MicroMason-1.0.1.tar.gz.


Added try_interpret; documented error messages.

Version 1.0.0


Extended documentation; added makefile, test script. Renamed accumulator to $OUT to match Text::Template. Released as HTML-MicroMason-1.0.0.tar.gz.




For distribution, installation, support, copyright and license information, see Text::MicroMason::Docs::ReadMe.