Revision history for HTML::Mason.

An HTML version of this file, complete with links to documentation, is
available at http://www.masonhq.com/changes.html.

** denotes an incompatible change

0.71  Tue Sep 14 13:12:17 PDT 1999

    - Logic of top_level_predicate was reversed in 0.7; fixed.
      (Reported by Tom Hughes, Eric Hammond)
    - mc_suppress_http_header(0) was broken in 0.7; fixed.
      (Reported by Michael Alan Dorman)
    - Fixed bug in parser section that determines whether % is at the
      beginning of a line.  (Reported by Tom Hughes)
    - Parser no longer inadvertently accepts argument names with
      whitespace.  (Reported by Phillip Gwyn)

0.7  Wed Sep 1 10:12:55 PDT 1999

    - Improved core implementation with two new classes,
      HTML::Mason::Request and HTML::Mason::Component.  Code is now cleaner
      and more scalable, and the new APIs give developers control and
      introspection over Mason's inner workings.
    - Added documentation to accommodate new classes: created
      Request.pod and Component.pod, and moved component developer's guide
      (previously at Components.pod) to Devel.pod to avoid
      confusion.
    - Object files have changed significantly (they now return a
      component object).  Pre-0.7 object files will be detected and
      automatically updated, unless you are running in reload file mode
      in which case you are responsible for generating new object files.
    - New <%def> section defines a subcomponent embedded inside a larger
      component.  This allows repeated code and HTML to be modularized
      without affecting the global component namespace.
    - <%args> section now accommodates optional comments for declarations
    - Improved Perl translation of <%args> section (submitted by Ken
      Williams)
    - Autohandler and dhandler file names are now configurable
    - Dhandlers, which formerly worked only in mod_perl mode, now work in
      stand-alone mode as well
    - Interp::exec is now re-entrant with all request specific information
      having been moved to Request class.
    - ** Reworked Parser API. parse is now called make_component, has a
      simplified set of options, and returns a component object
      directly. make is now called make_dirs.
    - Source references now read from the object file, cleaner for a
      variety of reasons. Preprocess and postprocess now work with source
      references.
    - Removed obsolete and undocumented Interp::vars and mc_var functions
    - Simplified chown/getpwuid usage in handler.pl (submitted by Randal
      Schwartz)

0.6.2  Fri Aug 20 09:02:59 PDT 1999

    - Fixed problem with shared data cache locks over NFS (submitted by
      Tom Hughes)
    - Fixed mc_auto_comp, which never really worked as documented
    - Fixed preloading for directories (submitted by Dennis Watson)
    - Added back Utils::get_lock, which is used by content management

0.6.1  Tue Jul 27 09:34:31 PDT 1999

    - Added warnings to convert-0.6.pl about occasional erroneous
      component call syntax conversions (reported by Oleg Bartunov)
    - Fixed conversion of <% mc_comp("/foo/$bar") %> (reported by Oleg
      Bartunov)
    - Fixed cache access under high concurrencies (reported by Oleg
      Bartunov)
    - Fixed uppercase <%PERL>, broken in 0.6 (reported by Daniel L. Jones)
    - Fixed mc_suppress_http_header(0), broken in 0.6 (reported by Jim
      Mortko)

0.6  Fri Jul 16 08:09:27 PDT 1999

    - New <& &> tag provides a more convenient way to call components
      inside HTML. mc_comp still works.
    - The "perl_" prefix has been eliminated from section names: now
      simply use <%init>, <%cleanup>, <%args>, etc. The old names still
      work.
    - The utility bin/convert0.6.pl converts existing components to use
      the above new syntax.
    - New autohandler feature finally provides an easy way to specify a
      common template or behavior for a directory. An autohandler is invoked
      just before any top-level components in its directory begins executing.
      It can display header/footers, apply a filtering function, set up
      globals, etc.  A good complement to dhandlers.
    - New <%once> section contains code that will be executed once when a
      component is loaded.  It is useful for defining persistent variables
      and named subroutines.
    - New <%filter> section and mc_call_self command allow you to arbitrarily
      filter the output of the current component.
    - New <%text> section allows you to turn off Mason processing for a
      particular section of text.
    - Implemented first installation test suite! [modus]
    - HEAD optimization: we now automatically abort after headers are sent
      on a HEAD request.
    - New Parser make() utility traverses a tree of components, compiling
      any out-of-date components into object files and reporting errors.
    - New mc_comp_source command returns the source filename of this or
      any component.
    - mc_file now uses current component path by default for relative paths
      if no static_file_root defined (suggested by John Landahl)
    - Various previewer interface improvements
    - Removed link tags in pods documentation due to 5.004 problems
    - Took out previewer stub from Mason.pm to eliminate "subroutine
      redefined" warning
    - Updated makeconfig.pl to prefer GDBM_File, to avoid a bug in
      Berkeley DB 1.x
    - Cleaned and sped up interp hooks facility
    - Stopped substituting control characters for section strings in Parser
      [modus]
    - Fixed mc_cache 'expire' bug (reported by Aaron Ross)
    - Changed ignore_warnings default to ignore "subroutine redefined"
      warnings to make <%once> more useful
    - Removed defunct Safe code from Parser and defunct ALLOW_HANDLERS
      code from Interp
    - Added index file to htdocs/

0.5.1  Thu Jun 10 23:35:13 PDT 1999
    - Removed leftover "use File::Recurse" in ApacheHandler.pm [modus]
    - Added empty test target to FAQ Makefile, required on certain
      architectures [modus]

0.5   Thu Jun  3 23:45:09 PDT 1999
    - Removed memory leak associated with "return sub { ... }"
    - Overhauled Config.pm, now maintains previous configuration when
      upgrading Mason (suggested by Patrick Kane)
    - Made filename processing compatible with Windows 32 (suggested by
      Rafael Weinstein)
    - Removed requirement of File::Tools/File::Recurse, replaced with
      standard File::Find
    - Switched output to STDOUT from $r->print, to facilitate chaining
      with other mod_perl tools
    - Switched to standard argument processing code, now handles
      multi-part forms [modus]
    - New preprocess and postprocess Parser options allow you to apply
      auomatic modifications to components, before or after they are compiled
      into code. (submitted by Philip Gwyn)
    - New in_package Parser option allows components to live in any
      package. (submitted by Philip Gwyn)
    - Added documentation about using globals in components, and
      some new facilities: Parser option 'allow_globals' and Interp
      method 'set_global'.
    - Documented how to save persistent user information with Apache::Session [modus]
    - ** Changed behavior of reload_file mode to read directly from object
      files. If you use reload files, you're now responsible for
      creating object files. [mschmick]
    - Reduced number of file stats when loading components [mschmick]
    - New apache_status_title ApacheHandler option makes it possible to
      use Mason's perl-status page with multiple ApacheHandler objects.
      (submitted by Philip Gwyn)
    - Upgraded FakeApache/debug files to work with mod_perl 1.19
    - New sections in Component Developer's Guide explain how debug files
      work and some caveats about when they don't.
    - Mentioned mailing lists, masonhq.com web site, and FAQ in the
      documentation and README
    - Improved documentation on how to integrate images and non-Mason
      hierarchies with Mason.
    - Differentiated mc_cache and mc_cache_self in the commands manual
      (suggested by Tom Hukins)
    - Increased discouraging of SDBM, improved warnings when cache store
      fails (suggested by Patrick Kane)
    - Fixed HTML documentation to work with IE (suggested by Fen Lebalme)
    - Fixed infinite loop in ApacheHandler dhandler search (submitted by
      Chuck O'Donnell)
    - Documented Parser method parse(), which allows you to compile
      components outside of a Interp environment.
    - New mc_cache actions 'expire' and 'keys' help you peer into data cache
      files and expire selected keys.
    - Corrected Parser to properly handle \ in components (submitted by
      Ken Williams)
    - ** Took Preview out of Mason.pm; ApacheHandler used only if mod_perl
      environment. If you use the previewer, you now have to explicitly "use
      HTML::Mason::Preview" in your handler.pl.
    - Improved documentation about argument/GET/POST handling (suggested
      by Ken Williams)
    - Added cache option 'busy_lock', which prevents multiple processes
      from recomputing an expire cache value at the same time.  (suggested
      by Dennis Watson)
    - Inserted work-around for Perl 5.005 $r scoping bug (submitted by
      Rafael Weinstein)
    - Fixed "new CGI" example in Components.pod (submitted by Austin Lin)
    - Fixed "return if content-type..." line in handler.pl and Mason.pod
      (submitted by Patrick Kane)
    - Added CREDITS file

0.4  Wed Jan 06 10:35:00 PST  1999
    - Added support for using Perl profiler in conjunction with debug
      files
    - Fixed bug in previewer HTML trace introduced in 0.3
    - Created Perl status section for Mason
    - Removed most warnings when PerlWarn is on (suggested by Philip Gwyn)
    - Added code_cache_mode parameter to control caching of components in
      memory
    - Fixed mismatch between documentation and code with regards to cache
      store events in system log.  The real event name is CACHE_WRITE.
    - Changed system logging to use canonical server name when recording
      URI
    - Field access methods inside Mason objects are now handled with
      custom subroutines instead of generic AUTOLOAD, improving performance
    - Information for debug file is no longer collected if debug mode is
      "none"
    - Code to decline images and other non-text requests was placed in
      default handler.pl and described in documentation (suggested by
      Patrick Kane)
    - Fixed server header output from debug files (suggested by Ewan
      Edwards)
    - Created a Mason bundle
    - Created a CPAN "alias" from Apache::Mason to HTML::Mason

0.3   Wed Nov 25 17:00:34 PST 1998
    - Added optional system logging of page requests, cache activity,
      component loading
    - Deny directory requests so that index files will work in mod_perl
      1.16+
    - Removed reliance on several external packages (Date::Manip,
      CGI::Base, URI::Escape). This should reduce the amount of memory taken
      up by Mason processes and make Mason easier to install.
    - ** Due to the removal of Date::Manip, the mc_date command will no
      longer work unless Date::Manip is explicitly used, and the syntax for
      the expire_at cache parameter and the Interp current_time parameter
      have changed.
    - Added parser taint_check flag which allows Mason to work with taint
      checking on (suggested by Randal Schwartz)
    - Added warning messages when returning 404 from ApacheHandler
    - Improved cache locking with the use of separate lock files
    - Makefile.PL checks for required and optional packages
    - Documentation fixes and improvements
    - Removed obsolete and undocumented commands from Commands.pm
    - Failure to write debug file is now a warning rather than fatal error
    - Augmented "no configuration for previewer port" error
    - Fixed $interp->exec to be able to return list
    - Changed parser to remove ctrl-Ms instead of replacing with spaces
    - Always call http_header hook, not just at top level
    - Added global IN_DEBUG_FILE flag
    - Renamed mc_call_stack to mc_comp_stack to match documentation

0.2   Fri Aug 21 08:54:13 1998
    - Replaced File::lockf module, which could not port to some systems,
      with simple call to flock
    - Corrected email address in README
    - Fixed undeclared variable bug in preview component
    - The previewer did not work in basic versions of Perl 5.004 due to an
      eval scoping bug. A workaround was put in place.
    - Fixed expire_if cache option to pass correct argument to provided
      subroutine
    - Empty argument section no longer parsing incorrectly
    - Took out directory names from manifest which were causing errors on
      install
    - Debug file is no longer prepared when debug_mode is "none"
    - Use Preview.pm in Mason.pm

0.1   Wed Jul 22 20:53:56 1998
    - Original version; created by h2xs 1.18