Class::MakeMethods::Changes - Revision history for Class::MakeMethods

    Revision history for Class::MakeMethods:

    v1.0.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

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

        Minor touch-ups to ReadMe and Guide documentation.

    v1.0.13 - 2001/05/16, 2001/05/18, 2001/05/20, 2001/06/02, 2001/06/22, 2001/06/24
        Renamed module to Class::MakeMethods.

        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

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

        Added Standard subclasses with parameter parsing and more powerful

        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

        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.

    v1.0.12 - 2001/05/14
        Renamed module to Class::MethodGenerator, although naming questions

        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.0.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::

        Moved _namespace_capture code to new package

        Added Simple::Hash subclass.

    v1.0.10 - 2001/04/26, 2001/05/02, 2001/05/04
        Moved _namespace_capture and _namespace_release to

        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

    v1.0.9 - 2001/03/24
        Reversed sense of - and --, as it was in 1.0.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.0.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.0.

        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.0.7 - 2001/01/05, 2001/01/06, 2001/01/07
        Moved core code and internal code to
        now contains only some require statements and the general user guide

        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.0.6 - 2000/12/29, 2001/01/02, 2001/01/04
        Restored -sugar import option for compatibility with earlier

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

        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

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

        Renamed's delete and exists behaviors to avoid possible run-
        time import conflict with'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.0.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.0.4 - 2000/11/22
        Separated string, number, and boolean from the Generic scalar

        Provide _disk_cache to shortcut the lengthy _interpret_text_builder

        Fixes to ClassName implementation.

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

    v1.0.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.0.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.

    v1.0.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

        Added _diagnostics function and documentation of all failure

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

        Added Scalar and Flyweight implementations.

    v1.0.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 '--

        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,

    v1.0.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

    v1.0.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

    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

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