Provided by: libclass-makemethods-perl_1.01-4_all bug

NAME

       Class::MakeMethods::Docs::Changes - History of Class::MakeMethods

SYNOPSIS

       Revision history for Class::MakeMethods.

CHANGES

   Version 1.010
       2004/09/06
           Moved get_declarations() and associated documentation from Standard module to superclass.

       2004/09/03
           Developed  test.pl  test  harness  with  recursive file search to fix Windows "command line too long"
           errors.

       2004/09/01
           Moved Template::TextBuilder and Template::DiskCache into Utility:: namespace.

           Added support for defaults with -- and -param to Standard get_declarations().

       2004/08/12
           Began testing and integrating tied-value patches from Dominique Dumont.

       2004/04/27
           Added method types to Evaled::Hash.

       2004/04/23
           Added skeleton of a new Evaled::Hash class.

   Version 1.009
       2003/09/25
           Added Emulator::mcoder and compatibility tests.

           Released to CPAN as Class-MakeMethods-1.009.tar.gz.

       2003/09/22
           Added support for lvalue methods to Template and Template::Generic. Added a few tests to  demonstrate
           they're working. Added an example to Docs::Examples.

           Added Emulator::accessors and compatibility tests.

           Minor documentation improvements.

   Version 1.008
       2003/09/05
           Adjusted  layout  of  test  directories  in  another attempt to solve a MakeMaker/shell-glob issue on
           Windows that was preventing make test from running correctly.

           Removed Template::PseudoHash, since this package never really worked, as pointed out  by  a  question
           from  Mike  Castle.  Management  of array-based objects can be handled by any of the existing ::Array
           subclasses, and support for pseudo-hashes would not provide any useful new capabilities.

           Added  support  for  "Template::Universal:forward_methods  -delegate"  and  "Template::Generic:object
           --soft_delegate"  based on a suggestion from Peter Chen. Extended behavior of Template -subs handling
           to make it easy to add such functionality in the future.

           Released to CPAN as Class-MakeMethods-1.008.tar.gz.

       2003/09/02
           Adjusted DESTROY behavior of Template::InsideOut and cleaned up documentation.

   Version 1.007
       2003/09/01
           Made Template definitions automatically import their class's generic definitions,  if  present.  This
           eliminates  the  need  for  Generic  subclasses to explicitly redeclare every method it inherits, and
           should obviate the "missing declaration" problems referenced below.

           Updated the names of several  Template  subclasses,  with  stubs  at  the  old  names  for  backwards
           compatibility: Flyweight becomes InsideOut, Static becomes Global, and Struct becomes Array.

           Added Template::Inheritable and basic tests for it.

           Eliminated use of legacy Test.pm from remaining tests, except for MethodMaker emulation.

           Rearranged  test directories in an effort to avoid a reported bug with the test path of t/*/*.t under
           Windows.

           Released to CPAN as Class-MakeMethods-1.007.tar.gz.

       2003/08/27
           Added section to Class::MakeMethods/EXTENDING documentation based on question from Terrence Brannon.

       2003/02/07
           Fixed missing declaration of Template::Hash:instance, reported via RT.

   Version 1.006
       2003/01/26
           Additional documentation touch-ups. Moved miscellaneous POD files into the Docs directory.

           Added new test scripts from Class-MethodMaker-1.08, although we don't yet pass them. In particular, I
           need to add support for the new method types added in 1.04:  tie_scalar,  tie_list,  object_tie_list,
           object_tie_hash

           Also  need  to  compare  against the changes included in Class-MethodMaker-1.09 and 1.10, which don't
           seem to include any new test code, but do include functionality changes.

       2002/12/12
           Re-integrated Template and Emulator packages; the separate distribution turned out  to  be  a  hastle
           rather  than  a  convenience. However, in order to keep test scripts for each subsystem separate, I'm
           now using a Makefile.PL attribute to specify a two-level deep directory tree of test scripts; I  hope
           this doesn't break on Windows...

           Fixed  possible  "use  of  undefined as a reference" problem in Standard::*::array method generators,
           reported by Jared Rhine.

           Tried to improve documentation, based on feedback from Jared Rhine.  Expunged  ReadMe.pod.  Extracted
           method  catalogs  into  Catalog.pod.  Moved examples to new Example.pod, although that underlines how
           few examples there are.

   Version 1.005
       2002/06/06
           Added Autoload interface.

           Modifed Attribute interface to add "inheritable" default logic for Maker class parameter.  (Suggested
           by Malcolm Cook.)

           Fixed typo in documentation for Standard::Universal. (Spotted by Malcolm Cook.)

   Version 1.004
       2002/03/23
           Released to CPAN as Class-MakeMethods-1.004.tar.gz.

       2002/03/16
           Allow double-colons between package name and method generator name.

       2002/02/19
           Fixed related use of undef in Standard::*:hash methods.

       2002/02/14
           Adjusted Standard::*:hash methods to avoid assuming that the hashref already exists.

       2002/02/07
           Added missing *_reset => clear to Template number --counter interface.

       2002/02/02
           Adjusted error message in Utility::ArraySplicer

       2002/01/26
           Applied small documentation corrections suggested by Adam Spiers.

           Added Standard::Universal:alias.

   Version 1.003
       2002/01/24
           Folded "Getting Started Guide" POD into main module documentation.

           Renamed Utility::TakeName to Emulator.

           Split Template and Emulator packages into their own distributions.

           Please Note: This means that to fully upgrade you must retrieve all three of these files:

             Class-MakeMethods-1.003.tar.gz
             Class-MakeMethods-Template-1.003.tar.gz
             Class-MakeMethods-Emulator-1.003.tar.gz

           Of course, if you're not using the Template or Emulator classes, there's no need to download them...

       2002/01/21
           Started bumping sub-version numbers and not using sub-sub-versions, to shorten distribution names and
           more closely match standard practice.

           Added Composite::Inheritable:hook and matching test. Added Composite->CurrentResults method to easily
           access, update composite method results.

   Version 1.000.*
       v1.000.16 - 2002/01/21
           Released to CPAN as v1.000.016.

       v1.000.16 - 2002/01/20
           Adjusted the hash and array methods in the Standard::* and Composite::* packages to properly accept a
           set-contents  call  with  a single reference argument, and to return contents rather than ref in list
           context.

       v1.000.16 - 2002/01/14
           Fixed a subtle bug in a test script inherited from  Class::MethodMaker:  4_Template_hash_hash_array.t
           and  7_MethodMaker_hash_of_lists.t  both  relied  on  "keys %hash" returning the keys in a particular
           order, which *almost* always worked, but  caused  failures  on  one  or  more  Perl  version/platform
           combinations.

       v1.000.15 - 2002/01/14
           Released to CPAN as v1.000.015.

       v1.000.15 - 2002/01/12
           Renamed  Basic::Static to Basic::Global for consistency with Standard and Composite. Hopefully, there
           aren't many users of this module yet; please accept my apologies if this breaks your code.

           Eliminated "local @_ = ...", which appears to cause a scoping problem on Perl  5.6.  Thanks  to  Adam
           Spiers for a thorough bug report. (See http://www.perlmonks.org/index.pl?node_id=138370 for details.)

           Extended Template::Generic to support "array --get_set_ref" method style requested by Adam Spiers.

           Various documentation tweaks, including feedback from Adam Spiers: Adjusted documentation to downplay
           Basic::*  modules  as  a  starting  point,  in favor of Standard::* ones. Trimmed out some duplicated
           documentation in favor of more "See L<...>" links. Adjusted documentation of *::Inheritable  packages
           in an attempt to clarify the way in which the inheritance tree is searched for a value.

           Factored  out  common  code  from  Standard::Inheritable  and  Composite::Inheritable  to new module,
           Utility::Inheritable. Factored out common code from Standard::Hash and Standard::Array to new module,
           Utility::ArraySplicer. Factored out common code from Template::Universal to new module, Utility::Ref.
           Renamed Emulator::TakeName to Utility::TakeName (this is internal use only, so  there  should  be  no
           public impact).

       v1.000.15 - 2001/12/01
           Adjusted Template::Universal's code for _CALL_METHODS_FROM_HASH_, to ensure that method/arg pairs are
           called in order they were passed in.

       v1.000.15 - 2001/07/04, 2001/07/19
           Minor additions to documentation of various method types.

       v1.000.14 - 2001/07/01
           Released as v1.000.014.

       v1.000.14 - 2001/06/25, 2001/06/29, 2001/07/01
           Removed  Makefile  rule  from  Makefile.PL  to  avoid  warnings  when  used  with  recent versions of
           ExtUtils::MakeMaker, which also define a similar rule. (Based on bug report from Ron Savage.)

           Fixed test failure for machines with P5.6 but no Attribute::Handlers.  (Reported by Ron  Savage,  Jay
           Lawrence.)

           Added Template::Flyweight:string_index. (But still needs test script.)

           Added Standard::Universal. (But still needs test scripts.)

           Minor touch-ups to ReadMe and Guide documentation.

       v1.000.13 - 2001/05/16, 2001/05/18, 2001/05/20, 2001/06/02, 2001/06/22, 2001/06/24
           To  date,  this module has been circulated under several provisional names: it was originally floated
           as a possible version-2 rewrite of Class::MethodMaker, then renamed to Class::Methods when it  forked
           from  that  project,  and  then briefly to Class::MethodGenerator.  (Note that it can be surprisingly
           difficult to comply with both of these perlmodlib guidelines: "To be portable  each  component  of  a
           module  name should be limited   to 11 characters. [...] Always try to use two or more whole words.")
           In the end, I selected  Class::MakeMethods,  as  it  is  two  whole  words,  and  is  reminiscent  of
           Class::MethodMaker without being confusing (I hope!), and I believe this issue is now settled.

           Standardized  syntax  for global options; renamed -implementation to -MakerClass and -target_class to
           -TargetClass. Moved $TargetClass and other context information into %CONTEXT with _context  accessor.
           Added ForceInstall.

           Completed  re-simplification  of  build  directories; we're back to a single Makefile, which avoids a
           warning in P5.6.0.

           Added Attribute interface for use with P5.6 and later, based on Attribute::Handlers.

           Renamed "Simple" subclasses to "Basic". Added documentation and initial tests.

           Added Standard subclasses with parameter parsing and more powerful accessors.

           Modified Emulator::Struct to use  Standard::*  methods.  Found  struct  test  from  P5.7,  and  added
           auto_init functionality to match.

           Added Composite::* subclasses.

           Added Emulator::AccessorFast.

           Added Class::MakeMethods::Guide with introduction and examples.

           Continued  clean-up  effort  on  Template  documentation.  Renamed  Template  "attributes" to "method
           parameters" to avoid confusion with Perl attributes. Retitled Template naming rules from  "templates"
           to "interfaces".

           Changed initialization code expressions of Template::Class in hopes of P5.6.1 compatibility. (Problem
           reported by M Schwern.)

           Added 'Template::Generic:new --and_then_init' based on feedback from Jay Lawrence.

   Early 1.000 versions
       v1.000.12 - 2001/05/14
           Renamed module to Class::MethodGenerator, although naming questions remain.

           Moved  Template  subclasses  into  Template::*  namespace.  Simplified  build  directory and makefile
           structure.

           Changed initialization code expressions of Template::PackageVar, ClassVar for  P5.6.0  compatibility.
           (Reported by M Schwern.)

       v1.000.11 - 2001/05/07, 2001/05/12
           Eliminated Bundle file. Moved general documentation to cm_base.

           Renamed Class::Methods::Base to Class::Methods::Generator.

           Extracted  code  for  Template  declarations  to new Class::Methods::Template module. Extracted disk-
           caching to new Template::DiskCache module.  Moved TextBuilder into the Template:: tree.

           Moved _namespace_capture code to new package Class::Methods::Emulator::TakeName.

           Added Simple::Hash subclass.

       v1.000.10 - 2001/04/26, 2001/05/02, 2001/05/04
           Moved _namespace_capture and _namespace_release to Class::Methods::Base.

           Additional doc  tweakage.  Moved  ReadMe  documentation  to  Bundle::ClassMethods.  Merged  Extending
           documentation into Base.

           Removed spurious uses of -default => 'default' in templates.

           Added new ClassInherit subclass and Emulator::Inheritable.

           Expunged Index subclass in favor of boolean_index and string_index types on Generic.

           Moved Struct:builtin_isa type to new package, StructBuiltin.

           Refactored code templating function as Class::Methods::Base::TextBuilder.

       v1.000.9 - 2001/03/24
           Reversed sense of - and --, as it was in 1.000.1.

           Separated  source  files into separate directories with distinct Makefiles and test hierarchies. This
           should   clarify   the   boundaries   between   the   core   method-generation   code,   the   common
           constructor/accessor methods, and the various emulator and experimental packages.

       v1.000.8 - 2001/01/19
           Following  receipt  of a suggestion to fork from the maintainer of Class::MethodMaker, renamed packge
           from Class::MethodMaker v2.0 to Class::Methods v1.000.

           Adjusted documentation to reflect fork, although additional cleanup is still needed.

           Moved backward compatibility to Emulator::MethodMaker subclass.

           Added Generic -compatibility array index_* and hash_of_arrays  *_last  and  *_set  methods  to  match
           changes in Class::MethodMaker v1.02.  Added Emulator::MethodMaker support for the '-static' flag. The
           emulator now completely satisfies the enclosed test suites, from Class::MethodMaker v0.92 and v1.02.

       v1.000.7 - 2001/01/05, 2001/01/06, 2001/01/07
           Moved  core  code  and  internal  code to Internals.pm. MethodMaker.pm now contains only some require
           statements and the general user guide documentation.

           Moved ReadMe.pod, Changes.pod,  and  ToDo.pod  into  MethodMaker  directory.  Separated  Catalog.pod,
           Extending.pod, RelatedModules.pod.

           Included version 1 docs as Class::Methods::OriginalDocs; minor revisions for clarity.

           Renamed Package subclass to PackageVar, Class to ClassVar.

           Added Emulation::Struct subclass.

           Added support for shifting targets with make( -target_class => Package, ... ).

           Extended ClassName subclass to handle requiring, rather than creating subclases.

       v1.000.6 - 2000/12/29, 2001/01/02, 2001/01/04
           Restored -sugar import option for compatibility with earlier versions.

           Added plural names to "Generic:hash -compatibility" to support v0.92 usage.

           Replaced use of substr(..., 0, 1) with ... =~ s/^-// for P5.004 compatibility; problem found by Scott
           Godin.

           Copy @_ before splicing and pushing on to it for P5.004 compatibility.

           Expunged duplicate lines from Generic.pm's array_of_objects; found by Ron Savage.

           Renamed  Hash.pm's  delete  and  exists  behaviors  to  avoid  possible run-time import conflict with
           Generic.pm's behaviors; failure reported by Ron Savage.

           Added  _STATIC_ATTR_{return_value_undefined}  attributes  to  Generic  string  and  number  to  allow
           overrides of this functionality.

           Minor doc touchups and expanded examples section.

       v1.000.5 - 2000/11/28, 2000/12/16, 2000/12/28
           Added Universal -warn_calls modifier.

           Folded  various  pod  files  together  into  main  module's inline documentation.  Updated catalog of
           existing implementations in documentation.  Added pointers to some tutorials and books which  discuss
           Class::Methods.

           Standardized naming of test scripts.

           Can now specify default template name, via -default=>"foo".

       v1.000.4 - 2000/11/22
           Separated string, number, and boolean from the Generic scalar methods.

           Provide _disk_cache to shortcut the lengthy _interpret_text_builder process.

           Fixes to ClassName implementation.

           Change to forward methods to provide better error messages when object is empty.

       v1.000.3 - 2000/11/03
           Rearranged documentation into separate files in the pod/ directory.

           Collapsed  find_target_class  and make functionality into import; moved support for the old functions
           to the Compatibility module.

           Adjusted tests to generally use standard syntax, and not Compatibility hooks.

       v1.000.2.1 - 2000/10/23
           Moved commonly-accessible information to Universal.

           Added block{...} replacement for enhanced behavior templating.

           Added modifier mechanism to support -private and -protected.

           May need to be able to specify import ordering so that modifiers are applied in the right order. This
           hasn't bit me yet, but it's there. Darn.

       v1.000.2 - 2000/10/22
           Completed generalization of Generic methods from Static and Hash.  Rewrote ClassVar and PackageVar to
           use Generic framework.

           Attribute expansion can now substitute values besides name, using *{attr}.

           Added _diagnostics function and documentation of all failure messages.

           Added SEE ALSO section to documentation, brief review of Class::* on CPAN.   Stumbled  across  Damian
           Conway's very nice Class::Contract module.

           Added Scalar and Flyweight implementations.

       v1.000.1.1 - 2000/10/21
           Rolled  back  change  from  yesterday; can still pick templates like '-java'.  Allow attributes to be
           specified as '--foo'=>'bar' or '--'=>{foo=>'bar'}

           Automated caching for meta-method definition hashes.

           Generalized several Static and Hash  interfaces  into  Generic  templates.   Added  Static:array  and
           Static:code support.

           Allow global -import to set default sources for templates, exprs, behaviors.

       v1.000.1 - 2000/10/19
           Support inheritance of templates between meta-methods with -import.

           Made "template" an attribute, rather than a special state variable.

           Allow  any  attribute  to  be specified as -foo=>'bar'.  Changed selection of standard templates from
           '-java' to '--java'.

           Initial support for string-eval behaviors and code_exprs, and Generic.pm

       v1.000.0 - 2000/10/14, 2000/10/15
           Completed initial pass of full rewrite.

           Assorted cleanup of syntax and documentation.

           Moved Hash, Static, and Index implementations into separate packages.

       v0.9.3 - 2000/09/30
           Refactored subclass_name and class_registry.

           Folded in some misc improvements from Class::MethodMaker 1.0.

       v0.97x - 2000/08/04 to 2000/08/13
           Forked from Class::MethodMaker 0.96. Substantial rewrite started

           Created build_meta_method and refactored many methods to use it.

           Added new_hash, hash_init, new_from_prototype.

           Extended arg format. Added -template=>behavior_name. Added support for array-of-names arguments.

           Performance tuning. Additional refactoring to support AutoSplit functionality.

           Also folded in some older changes and additions from Evolution's internal collection  of  MethodMaker
           subclasses:

   Class::MethodMaker::Extensions
       Change  notes  from unreleased collection of extensions to Class::MethodMaker that were later folded into
       Class::MakeMethods:

         2000/01/12 Added set_foo, clear_foo to class_var hashes.
         1999/07/27 Added subclass_name.
         1999/04/15 Changed class_var to use symbol table lookups, not eval "".
         1999/04/05 Changed determine_once to check again if undefined.
         1999/03/25 Added singleton method.
         1998/09/18 Finished integration of class_registry handlers.
         1998/07/31 Added class_var and classnames handlers.
         1998/06/12 Added lookup handlers.
         1998/05/09 Created no_op and determine_once method groups.

perl v5.10.0                                       2004-09-07                    MakeMethods::Docs::Changes(3pm)