The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.8 - 2000-01-23

  • New integrated request API. $m replaces $REQ as the global variable containing the current request object. All mc_ commands have been incorporated into $m methods: mc_comp becomes $m->comp, mc_file becomes $m->file, etc. The old commands still work for now.
  • The utility bin/convert0.8.pl converts existing components to use the new request API.
  • Autohandler methods have been renamed: from mc_auto_next to $m->call_next and mc_auto_comp to $m->fetch_next. This is in preparation for a more general component inheritance system. convert0.8.pl handles this change.
  • Can now specify multiple component roots in the spirit of @INC. (suggested by Ewan Edwards and others)
  • Simplified HTTP header behavior. Headers are sent at the end of the request (in batch mode) or just before the first non-whitespace output (in stream mode). suppress_http_header no longer needed.
  • New organization of Component class into subclasses Component::FileBased and Component::Subcomponent. No outward change.
  • Updated object file format. Mason should generally auto-detect and recompile old object files, but may not catch everything. Try removing your object directory if errors persist.
  • ** mc_suppress_http_header command still exists but does nothing. In most cases this should not cause a problem. The only incompatibility is if you have used mc_suppress_http_header to suppress headers completely (i.e. you don't want Mason to send headers at all); in this case pass auto_send_headers=>0 to ApacheHandler.
  • Output mode parameter was moved from ah->output_mode to interp->out_mode, to make it independent of mod_perl. ah->output_mode still works.
  • New in-memory code cache keeps track of component usage, and discards the most infrequently used components as needed. You can specify the cache size with interp->max_code_cache_size.
  • ** Eliminated the now unnecessary interp->code_cache_mode.
  • ** Eliminated the "source references" optimization, a common source of bugs, no longer needed with the new code cache.
  • Allow arguments to be accessed via @_ as in regular subroutines; no longer required to be in hash form. (suggested by Ken Williams)
  • Added $m->scomp, which returns the output of the component call instead of printing it. This is a cleaner replacement for the STORE parameter, which still works but is no longer officially documented.
  • Added $m->flush_buffer, which forces the buffer to be sent to the client when in batch mode.
  • Added $m->caller_args, which returns the argument list for any point in the stack. (suggested by Lee Semel)
  • Added $m->decline, which passes control to the next dhandler. (suggested by Chuck O'Donnell)
  • Augmented $m->cache_self to cache return values as well as output. (suggested by Jon Frisby)
  • Changed data cache filenames from colon-separated to url-encode style for Win32 compatibility. (submitted by Ken Williams)
  • Added improved, separate session_handler.pl for session handling.
  • ** mc_comp_source no longer works for non-existent components.
  • ** Removed mc_date legacy command.
  • Added warnings about using Mason with mod_perl DSO.
  • Added more site configuration examples to Admin.pod.
  • Split object parameter methods (interp->comp_root, etc.) into read/write and read-only as appropriate.
  • Fixed request stack corruption when die() or error from one component is caught by another component's eval.
  • Fixed doc_root / comp_root mismatch on case-insensitive O/S. (reported by John Arnold)
  • Fixed "directory not absolute" warning on "/" (reported by Joe Edmonds)
  • Fixed reload file scanning mechanism (submitted by Brian Holmes)
  • Added use_data_dumper_xs Config.pm item, which checks whether Data::Dumper::Dumpxs is available. (reported by Pelle Johnsen)
  • Added "code examples" section to README

Documentation

High-performance, dynamic web site authoring system
Mason Administrator's Guide
Former Developer's Guide
Mason Developer's Manual

Modules

A bundle to install the HTML::Mason package
Mason/mod_perl interface
Old Mason command reference
Mason Component Class
Mason Component Interpreter
Mason Component Parser
Mason Request Class

Provides

in lib/Apache/Mason.pm
in lib/HTML/Mason.pm
in lib/HTML/Mason/ApacheHandler.pm
in lib/HTML/Mason/Component/FileBased.pm
in lib/HTML/Mason/Component/Subcomponent.pm
in lib/HTML/Mason/FakeApache.pm
in lib/HTML/Mason/FakeApache.pm
in lib/HTML/Mason/FakeApache.pm
in lib/HTML/Mason/Preview.pm
in lib/HTML/Mason/Preview.pm
in lib/HTML/Mason/Preview.pm
in lib/HTML/Mason/Preview.pm
in lib/HTML/Mason/ApacheHandler.pm
in lib/HTML/Mason/Resolver.pm
in lib/HTML/Mason/Resolver/File.pm
in lib/HTML/Mason/Tools.pm
in lib/HTML/Mason/Utils.pm