1 Revision history for Perl extension Class-MOP.
5 - small change in &create so that it behaves
6 properly when inherited
8 0.29_01 Fri. May 12, 2006
9 ++ DEVELOPER RELEASE ++
10 - This release works in combination with
11 Moose 0.09_01, it is a developer release
12 because it introduces a new instance
13 sub-protocol and has not yet been
17 - anon-classes are now properly garbage collected
18 - added tests for this
19 - improved method modifier wrapping
21 * Class::MOP::Instance
22 - added new instance protocol
23 - added tests for this
24 - changed all relevant modules and examples
26 - Class::MOP::Attribute
30 - you no longer need to specify the metaclass
31 itself, if it is not there, Class::MOP::Class
33 - updated tests for this
36 - added ArrayBasedStorage example to show
37 instance storage using ARRAY refs instead of
39 - added tests for this
40 - InsideOutClass is totally revised using the
42 - added more tests for this
44 0.26 Mon. April 24, 2006
46 - added find_attribute_by_name method
47 - added tests and docs for this
48 - some small optimizations
50 * Class::MOP::Attribute
51 - some small optimizations
53 0.25 Thurs. April 20, 2006
55 - added create_anon_class for creating anonymous classes
56 - added tests for this
57 - added get_all_metaclasses, get_all_metaclass_names
58 and get_all_metaclass_instances method to allow
59 access to all the cached metaclass objects.
60 - attribute slot initialization is now the responsibility
61 of the attribute itself, and construct_instance now
62 delegates appropriately
64 * Class::MOP::Attribute
65 - attribute slot initialization is now the responsibility
66 of the attribute itself, so we added a method for it
67 called initialize_instance_slot
70 - adjusted all the examples to use the new attribute
71 initialize_instance_slot method
73 0.24 Tues. April 11, 2006
75 - cleaned up how the before/after/around method
76 modifiers get named with Sub::Name
78 0.23 Thurs. March 30, 2006
80 - fixed the way attribute defaults are handled
81 during instance construction (bug found by chansen)
83 * Class::MOP::Attribute
84 - read-only accessors ('reader') will now die if
85 passed more than one argument (attempting to write
87 - added tests for this
88 - adjusted all /example files to comply
90 0.22 Mon. March 20, 2006
92 - localized $@ in the *_package_variable functions
93 because otherwise, it does ugly things in Moose.
94 - added test case for this
96 0.21 Wed. March 15, 2006
98 - fixed issue where metaclasses are reaped from
99 our cache in global destruction, and so are not
100 available in DESTORY calls
102 0.20 Thurs. March 2, 2006
103 - removed the dependency for Clone since
104 we no longer to deep-cloning by default.
107 - added &package_name, &name and
108 &fully_qualified_name methods, some of
109 which were formerly private subs in
112 * Class::MOP::Method::Wrapped
113 - allows for a method to be wrapped with
114 before, after and around modifiers
115 - added tests and docs for this feature
118 - improved &get_package_variable
119 - &version and &superclasses now use it
120 - methods are now blessed into Class::MOP::Method
122 - added methods to install CLOS-style method modifiers
123 - &add_before_method_modifier
124 - &add_after_method_modifier
125 - &add_around_method_modifier
126 - added tests and docs for these
127 - added &find_next_method_by_name which finds the
128 equivalent of SUPER::method_name
130 0.12 Thurs. Feb 23, 2006
131 - reduced the dependency on B, no need to always
135 - added docs to the C3 method dispatch order test
136 - fixed missing Algorithm::C3 dependency by making
137 the test skip if it is not installed
139 0.11 Mon Feb. 20, 2006
141 - added example of changing method dispatch order to C3
144 - changed how clone_instance behaves, it now only does a
145 shallow clone (see docs for more details)
146 - added docs and tests
148 0.10 Tues Feb. 14, 2006
149 ** This release was mostly about writing more tests and
150 cleaning out old and dusty code, the MOP should now
151 be considered "ready to use".
153 - adding more tests to get coverage up a little higher,
154 mostly testing errors and edge cases.
155 - test coverage is now at 99%
158 - no longer optionally exports to UNIVERSAL::meta or
159 creates a custom metaclass generator, use the
160 metaclass pragma instead.
163 - fixed a number of minor issues which came up in the
164 error/edge-case tests
166 * Class::MOP::Attribute
167 - fixed a number of minor issues which came up in the
168 error/edge-case tests
171 - fixing the AttributesWithHistory example, it was broken.
173 0.06 Thurs Feb. 9, 2006
175 - adding new metaclass pragma to make setting up the
176 metaclass a little more straightforward
179 - clean up bootstrapping to include more complete
180 attribute definitions for Class::MOP::Class and
181 Class::MOP::Attribute (accessors, readers, writers,
182 etc.) ... it is redundant, but is useful meta-info
186 - fixing minor meta-circularity issue with &meta, it
187 is now more useful for subclasses
188 - added &get_attribute_map as an accessor for the
189 hash of attribute meta objects
190 - &compute_all_applicable_attributes now just returns
191 the attribute meta-object, rather than the HASH ref
192 since all the same info can be gotten from the
193 attribute meta-object itself
194 - updated docs & tests to reflect
195 - added &clone_instance method which does a deep clone
196 of the instance structure created by &construct_instance
197 - added docs & tests for this
198 - added Clone as a dependency
199 - added &new_object and &clone_object convience methods to
200 return blessed new or cloned instances
201 - they handle Class::MOP::Class singletons correctly too
202 - added docs & tests for this
203 - cleaned up the &constuct_class_instance so that it behaves
204 more like &construct_instance (and managed the singletons too)
205 - added the &check_metaclass_compatibility method to make sure
206 that metaclasses are upward and downward compatible.
207 - added tests and docs for this
210 - adjusting code to use the &Class::MOP::Class::meta
212 - adjusting code to use the metaclass pragma
214 0.05 Sat Feb. 4, 2006
216 - added the &attribute_metaclass and &method_metaclass
217 attributes which contain a metaclass name to use for
218 attributes/methods respectively
221 - bootstrap additional attributes for Class::MOP::Class
224 - adjusted the example code and tests to use the new
225 &attribute_metaclass feature of Class::MOP::Class
229 0.04 Fri Feb. 3, 2006
231 - some documentation suggestions from #perl6
233 * Class::MOP::Attribute
234 - improved error messages
237 - added new examples:
238 - AttributesWithHistory
239 - ClassEncapsultedAttributes
241 0.03 Fri Feb. 3, 2006
242 - converted to Module::Build instead of EU::MM
244 * Class::MOP::Attribute
245 - refactored method generation code
246 - attributes are now associated with class directly
249 - refactored the InsideOut example to take advantage
250 of the Class::MOP::Attribute refactoring
251 - changed example files to .pod files and hide thier
252 package names from PAUSE (I don't want to own these
253 namespaces really, they are just examples)
255 0.02 Thurs Feb. 2, 2006
256 - moving examples from t/lib/* to examples/*
257 - adding POD documentation to the examples
259 0.01 Thurs Feb. 2, 2006