MakeMe...hanges(3pm)
β¨ NAME β¨
okay so bestie, this is the Class::MakeMethods::Docs::Changes(3pm) page β from User Contributed Perl Documentation β and it's literally the lore drop: the history of Class::MakeMethods. no cap, it's a whole timeline. π
πΈ SYNOPSIS πΈ
Revision history for Class::MakeMethods. That's it. That's the synopsis. π
π¦ CHANGES π¦
π Version 1.010
π 2004/09/06
- Moved
get_declarations()and associated documentation fromStandardmodule to superclass. periodt.
π 2004/09/03
- Developed
test.pltest harness with recursive file search to fix Windows"command line too long"errors.
π 2004/09/01
- Moved
Template::TextBuilderandTemplate::DiskCacheintoUtility::namespace. - Added support for defaults with
--and-paramtoStandardget_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::Hashclass.
π Version 1.009
π 2003/09/25
- Added
Emulator::mcoderand compatibility tests. - Released to CPAN as
Class-MakeMethods-1.009.tar.gz.
π 2003/09/22
- Added support for lvalue methods to
TemplateandTemplate::Generic. Added a few tests to demonstrate they're working. Added an example toDocs::Examples. - Added
Emulator::accessorsand 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 preventingmake testfrom 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::Arraysubclasses, 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 ofTemplate-subshandling 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
DESTROYbehavior ofTemplate::InsideOutand cleaned up documentation.
π Version 1.007
π 2003/09/01
- Made
Templatedefinitions automatically import their class's generic definitions, if present. This eliminates the need forGenericsubclasses to explicitly redeclare every method it inherits, and should obviate the "missing declaration" problems referenced below. - Updated the names of several
Templatesubclasses, with stubs at the old names for backwards compatibility:FlyweightbecomesInsideOut,StaticbecomesGlobal, andStructbecomesArray. - Added
Template::Inheritableand basic tests for it. - Eliminated use of legacy
Test.pmfrom remaining tests, except forMethodMakeremulation. - Rearranged test directories in an effort to avoid a reported bug with the test path of
t/*/*.tunder Windows. - Released to CPAN as
Class-MakeMethods-1.007.tar.gz.
π 2003/08/27
- Added section to
Class::MakeMethods/EXTENDINGdocumentation based on question from Terrence Brannon.
π 2003/02/07
- Fixed missing declaration of
Template::Hash:instance, reported viaRT.
π Version 1.006
π 2003/01/26
- Additional documentation touch-ups. Moved miscellaneous
PODfiles into theDocsdirectory. - 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 in1.04:tie_scalar,tie_list,object_tie_list,object_tie_hash - Also need to compare against the changes included in
Class-MethodMaker-1.09and1.10, which don't seem to include any new test code, but do include functionality changes.
π 2002/12/12
- Re-integrated
TemplateandEmulatorpackages; 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 aMakefile.PLattribute 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 inStandard::*::arraymethod generators, reported by Jared Rhine. - Tried to improve documentation, based on feedback from Jared Rhine. Expunged
ReadMe.pod. Extracted method catalogs intoCatalog.pod. Moved examples to newExample.pod, although that underlines how few examples there are.
π Version 1.005
π 2002/06/06
- Added
Autoloadinterface. - Modified
Attributeinterface to add"inheritable"default logic forMakerclass 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
undefinStandard::*:hashmethods.
π 2002/02/14
- Adjusted
Standard::*:hashmethods to avoid assuming that the hashref already exists.
π 2002/02/07
- Added missing
*_reset => cleartoTemplatenumber--counterinterface.
π 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::TakeNametoEmulator. - Split
TemplateandEmulatorpackages 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.gzClass-MakeMethods-Template-1.003.tar.gzClass-MakeMethods-Emulator-1.003.tar.gz
- Of course, if you're not using the
TemplateorEmulatorclasses, 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:hookand matching test. AddedComposite->CurrentResultsmethod 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::*andComposite::*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.tand7_MethodMaker_hash_of_lists.tboth 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::StatictoBasic::Globalfor consistency withStandardandComposite. 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. (Seehttp://www.perlmonks.org/index.pl?node_id=138370for details.) - Extended
Template::Genericto 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 ofStandard::*ones. Trimmed out some duplicated documentation in favor of more"See L<...>"links. Adjusted documentation of*::Inheritablepackages in an attempt to clarify the way in which the inheritance tree is searched for a value. - Factored out common code from
Standard::InheritableandComposite::Inheritableto new module,Utility::Inheritable. Factored out common code fromStandard::HashandStandard::Arrayto new module,Utility::ArraySplicer. Factored out common code fromTemplate::Universalto new module,Utility::Ref. RenamedEmulator::TakeNametoUtility::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
Makefilerule fromMakefile.PLto avoid warnings when used with recent versions ofExtUtils::MakeMaker, which also define a similar rule. (Based on bug report from Ron Savage.) - Fixed test failure for machines with
P5.6but noAttribute::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
ReadMeandGuidedocumentation.
β 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 toClass::Methodswhen it forked from that project, and then briefly toClass::MethodGenerator. (Note that it can be surprisingly difficult to comply with both of theseperlmodlibguidelines: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 selectedClass::MakeMethods, as it is two whole words, and is reminiscent ofClass::MethodMakerwithout being confusing (I hope!), and I believe this issue is now settled. - Standardized syntax for global options; renamed
-implementationto-MakerClassand-target_classto-TargetClass. Moved$TargetClassand other context information into%CONTEXTwith_contextaccessor. AddedForceInstall. - Completed re-simplification of build directories; we're back to a single
Makefile, which avoids a warning inP5.6.0. - Added the
Attributeinterface for use with P5.6 and later, based onAttribute::Handlers. π - Renamed
Simplesubclasses toBasic, then added documentation and initial tests. π - Added
Standardsubclasses with parameter parsing and more powerful accessors. β¨ - Modified
Emulator::Structto useStandard::*methods. Found a struct test from P5.7 and addedauto_initfunctionality to match it. π¦ - Added
Composite::*subclasses. π - Added
Emulator::AccessorFast. π₯ - Added
Class::MakeMethods::Guidewith an introduction and examples. π - Continued the clean-up effort on
Templatedocumentation. RenamedTemplate"attributes" to "method parameters" to avoid confusion with Perl attributes. RetitledTemplatenaming rules from "templates" to "interfaces". π§ - Changed initialization code expressions of
Template::Classin 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 the module to
Class::MethodGenerator, although naming questions remain. π€ - Moved
Templatesubclasses into theTemplate::*namespace. Simplified the build directory and makefile structure. π - Changed initialization code expressions of
Template::PackageVar,ClassVarfor P5.6.0 compatibility. (Reported by M Schwern.) π
π v1.000.11 - 2001/05/07, 2001/05/12
- Eliminated the
Bundlefile. Moved general documentation tocm_base. π§Ή - Renamed
Class::Methods::BasetoClass::Methods::Generator. β¨ - Extracted code for
Templatedeclarations into the newClass::Methods::Templatemodule. Extracted disk-caching into the newTemplate::DiskCachemodule. MovedTextBuilderinto theTemplate::tree. π¦ - Moved
_namespace_capturecode to the new packageClass::Methods::Emulator::TakeName. π - Added the
Simple::Hashsubclass. π
π v1.000.10 - 2001/04/26, 2001/05/02, 2001/05/04
- Moved
_namespace_captureand_namespace_releasetoClass::Methods::Base. π«Ά - Additional doc tweakage. Moved
ReadMedocumentation toBundle::ClassMethods. MergedExtendingdocumentation intoBase. π - Removed spurious uses of
-default => 'default'in templates. π - Added the new
ClassInheritsubclass andEmulator::Inheritable. π - Expunged the
Indexsubclass in favor ofboolean_indexandstring_indextypes onGeneric. π - Moved the
Struct:builtin_isatype to the new packageStructBuiltin. π§ - Refactored the code templating function as
Class::Methods::Base::TextBuilder. β¨
π v1.000.9 - 2001/03/24
- Reversed the sense of
-and--, as it was in 1.000.1. π - Separated source files into separate directories with distinct
Makefilesand 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 the package fromClass::MethodMakerv2.0 toClass::Methodsv1.000. π«Ά - Adjusted documentation to reflect the fork, although additional cleanup is still needed. π
- Moved backward compatibility to the
Emulator::MethodMakersubclass. π - Added
Generic -compatibilityarrayindex_*andhash_of_arrays*_lastand*_setmethods to match changes inClass::MethodMakerv1.02. AddedEmulator::MethodMakersupport for the'-static'flag. The emulator now completely satisfies the enclosed test suites, fromClass::MethodMakerv0.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.pmnow contains only somerequirestatements and the general user guide documentation. π§ - Moved
ReadMe.pod,Changes.pod, andToDo.podinto theMethodMakerdirectory. SeparatedCatalog.pod,Extending.pod,RelatedModules.pod. π - Included version 1 docs as
Class::Methods::OriginalDocs; minor revisions for clarity. β¨ - Renamed the
Packagesubclass toPackageVar, andClasstoClassVar. π - Added the
Emulation::Structsubclass. πΈ - Added support for shifting targets with
make( -target_class => Package, ... ). π - Extended the
ClassNamesubclass to handle requiring, rather than creating subclases. π«Ά
π v1.000.6 - 2000/12/29, 2001/01/02, 2001/01/04
- Restored the
-sugarimport option for compatibility with earlier versions. π - Added plural names to
Generic:hash -compatibilityto 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'sarray_of_objects; found by Ron Savage. π§Ή - Renamed
Hash.pm'sdeleteandexistsbehaviors to avoid possible run-time import conflict withGeneric.pm's behaviors; failure reported by Ron Savage. π - Added
_STATIC_ATTR_{return_value_undefined}attributes toGenericstring 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 the
Universal -warn_callsmodifier. β¨ - Folded various pod files together into the main module's inline documentation. Updated the catalog of existing implementations in the 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, andbooleanfrom theGenericscalar methods. π¦ - Provide
_disk_cacheto shortcut the lengthy_interpret_text_builderprocess. β‘ - Fixes to
ClassNameimplementation. π§ - 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_classandmakefunctionality intoimport; moved support for the old functions to theCompatibilitymodule. β¨ - Adjusted tests to generally use standard syntax, and not
Compatibilityhooks. π§
π 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
-privateand-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
Genericmethods fromStaticandHash. RewroteClassVarandPackageVarto use theGenericframework. π - Attribute expansion can now substitute values besides
name, using*{attr}. β¨ - Added
_diagnosticsfunction and documentation of all failure messages. π - Added a
SEE ALSOsection to documentation, a brief review ofClass::*on CPAN. Stumbled across Damian Conway's very niceClass::Contractmodule. π«Ά - Added
ScalarandFlyweightimplementations. π¦
π 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
StaticandHashinterfaces intoGenerictemplates. AddedStatic:arrayandStatic:codesupport. β¨ - Allow global
-importto 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, andIndeximplementations into separate packages. ποΈ
π v0.9.3 - 2000/09/30
- Refactored
subclass_nameandclass_registry. π«Ά - Folded in some misc improvements from
Class::MethodMaker1.0. β¨
π v0.97x - 2000/08/04 to 2000/08/13
- Forked from
Class::MethodMaker0.96. Substantial rewrite started. π - Created
build_meta_methodand 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
AutoSplitfunctionality. β‘ - Also folded in some older changes and additions from Evolution's internal collection of
MethodMakersubclasses: π§
π§ Class::MethodMaker::Extensions π§
Change notes from the unreleased collection of extensions to Class::MethodMaker that were later folded into Class::MakeMethods: π
2000/01/12Addedset_foo,clear_footoclass_varhashes. π1999/07/27Addedsubclass_name. β¨1999/04/15Changedclass_varto use symbol table lookups, noteval "". π1999/04/05Changeddetermine_onceto check again if undefined. π«Ά1999/03/25Addedsingletonmethod. π1998/09/18Finished integration ofclass_registryhandlers. π§1998/07/31Addedclass_varandclassnameshandlers. πΈ1998/06/12Addedlookuphandlers. π1998/05/09Createdno_opanddetermine_oncemethod groups. π¦
okay that's the whole timeline, bestie β this page is from perl v5.36.0, dated 2022-10-13 πβ¨
π¦ where this page comes from
- ubuntu noble: libclass-makemethods-perl 1.01-7 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu resolute: libclass-makemethods-perl 1.01-7 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libclass-makemethods-perl 1.01-7 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms