The URL

    http://www.masonhq.com/download/HTML-Mason-0.8.tar.gz

has entered CPAN and should soon be available at a mirror near you.

Mason is a component-based web site development system with caching,
debugging, and previewing facilities.  Check out http://www.masonhq.com/
for more information.

This release introduces a multitude of new features, fixes, backend 
improvements, and a few syntax changes. Most significantly, mc_ commands 
have been folded into the Request API, now accessed through the global $m.

For current Mason users, this release includes a utility bin/convert0.8.pl
that 
converts your existing components to use the new $m syntax. Although
this utility is very convenient and accurate, it does get rare constructs
wrong that must be corrected manually. Please back up your site
beforehand and QA it after converting. The old syntax still works with a
few minor exceptions (see ** items below.)

Changes in 0.8 (HTML version at http://www.masonhq.com/changes.html):

  - 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


Reply via email to