++ed by:

4 PAUSE users
2 non-PAUSE users.

Dave Rolsky

Changes for version 1.14

  • Added compatibility layer for 1.0x cache API. It is now possible to use $m->cache and $m->cache_self in the old way by setting the data_cache_api parameter to '1.0'.
  • Added back $comp->create_time, which was renamed as $comp->load_time in 1.09_02, as a deprecated method.
  • Added back $interp->time and $m->current_time, which were removed in
  • 1.09_01, as deprecated methods.
    • Implemented the long requested user-defined escapes feature. It is now possible to define your own escape flags, as well as overriding Mason's own 'h' and 'u' flags.
    • Implemented expire_if and busy_lock options in new $m->cache->get API. These retain the essence of the 1.0x options although both work a little differently.
    • Added new module to implement caching extensions, HTML::Mason::Cache::BaseCache, with accompanying documentation.
    • Enhanced Params.pod with TOC and full descriptions of all parameters. Standardized rest of documentation to link to Params.pod when referring to a parameter.
    • When a component path is not found, but that path matches a file on disk, we now print an extra warning, because this indicates that the user does not understand the distinction between component paths and filesystem paths.
    • The Request object's redirect() method now accepts an optional additional argument, allowing users to use a status code other than 302 for the redirect.
    • Mason should now work on a box with a fresh mod_perl 2/Apache 2 install. Previously, Mason unconditionally tried to load Apache::Status, which comes with mod_perl 1.x, but not (yet?) with mod_perl 2.
      • BUG FIXES
    • Installation was failing when Exception::Class wasn't installed.
    • Calling <%def> subcomponents no longer changes base_comp, which is important in autohandlers. (reported by Ian Robertson)
    • The documentation incorrectly indicated that you could create an ApacheHandler object during server startup without providing a component root. This will also shown incorrectly in the sample handler.pl in the eg/ directory.
    • Reduced Mason's memory usage when compiling and serving components. This is particularly noticeable with very large components (1-2MB or greater). Work on this will continue for future versions. (reported by Todd Holbrook)
    • %ARGS and <%shared> variables could not be accessed from <%filter>. (reported by Adam Roth)
    • Switch.pm did not work in file-based components. (reported by Gert Thiel)
    • use_strict could not be turned off. (reported by Viacheslav Voytovich)
    • $m->clear_buffer (and $m->redirect) did not work inside a component call with content. (reported by Manuel Capinha)
    • Some tests were failing on Windows, because they assumed Unix style filesystem paths. This was a problem with the tests, not the core code, but still worth fixing. (reported by Adam Rinehart).
    • $m->caller() was inadvertently left out of the documentation - fixed.
    • Fixed a small documentation error about what kinds of things are valid keys in <%flags> and <%attr> blocks.
    • Configuring multiple component roots via the httpd.conf file failed silently (as opposed to releases 1.10 - 1.12, where this failed with an error).
    • Unreadable component source files caused the confusing error message "source callback returned no source". This will now throw a much more helpful exception.
    • Errors occuring in subrequests would cause error output to be mixed with regular output when the error_mode was "output" (the default with ApacheHandler and CGIHandler). Errors in subrequests should now look the same as errors in the top request.
Show More