1 Revision history for Perl extension Class-MOP.
5 - added &find_method_by_name to locate a method
6 anywhere within the class hierarchy
8 * Class::MOP::Attribute
9 - added &set_value and &get_value for getting
10 the value of the attribute for a particular
13 0.30 Wed. July 5, 2006
14 ---------------------------------------
15 This is the first version of Class::MOP
16 to introduce the immutable features which
17 will be used for optimizating the MOP.
18 This support should still be considered
19 experimental, but moving towards stability.
20 ---------------------------------------
22 * Created Class::MOP::Class::Immutable
24 * Created the Class::MOP::Package and
25 Class::MOP::Module classes to more
26 closely conform to Perl 6's meta-model
29 - now inherits from Class::MOP::Module
30 - several methods moved to ::Module and
31 ::Package and now inherited
32 - added tests for this
34 * Class::MOP::Instance
35 - added an is_inlinable method to allow other
36 classes to check before they attempt to optimize.
37 - added an inline_create_instance to inline
38 instance creation (of course)
41 - the Class::MOP::Class::*_package_variable
42 methods are all now methods of Class::MOP::Package
43 and called *_package_symbol instead. This is
44 because they are now more general purpose symbol
45 table manipulation methods.
47 0.29_02 Thurs. June 22, 2006
48 ++ DEVELOPER RELEASE ++
50 - small change in &create so that it behaves
51 properly when inherited
52 - small fix to &clone_instance
54 0.29_01 Fri. May 12, 2006
55 ++ DEVELOPER RELEASE ++
56 - This release works in combination with
57 Moose 0.09_01, it is a developer release
58 because it introduces a new instance
59 sub-protocol and has not yet been
63 - anon-classes are now properly garbage collected
64 - added tests for this
65 - improved method modifier wrapping
67 * Class::MOP::Instance
68 - added new instance protocol
69 - added tests for this
70 - changed all relevant modules and examples
72 - Class::MOP::Attribute
76 - you no longer need to specify the metaclass
77 itself, if it is not there, Class::MOP::Class
79 - updated tests for this
82 - added ArrayBasedStorage example to show
83 instance storage using ARRAY refs instead of
85 - added tests for this
86 - InsideOutClass is totally revised using the
88 - added more tests for this
90 0.26 Mon. April 24, 2006
92 - added find_attribute_by_name method
93 - added tests and docs for this
94 - some small optimizations
96 * Class::MOP::Attribute
97 - some small optimizations
99 0.25 Thurs. April 20, 2006
101 - added create_anon_class for creating anonymous classes
102 - added tests for this
103 - added get_all_metaclasses, get_all_metaclass_names
104 and get_all_metaclass_instances method to allow
105 access to all the cached metaclass objects.
106 - attribute slot initialization is now the responsibility
107 of the attribute itself, and construct_instance now
108 delegates appropriately
110 * Class::MOP::Attribute
111 - attribute slot initialization is now the responsibility
112 of the attribute itself, so we added a method for it
113 called initialize_instance_slot
116 - adjusted all the examples to use the new attribute
117 initialize_instance_slot method
119 0.24 Tues. April 11, 2006
121 - cleaned up how the before/after/around method
122 modifiers get named with Sub::Name
124 0.23 Thurs. March 30, 2006
126 - fixed the way attribute defaults are handled
127 during instance construction (bug found by chansen)
129 * Class::MOP::Attribute
130 - read-only accessors ('reader') will now die if
131 passed more than one argument (attempting to write
133 - added tests for this
134 - adjusted all /example files to comply
136 0.22 Mon. March 20, 2006
138 - localized $@ in the *_package_variable functions
139 because otherwise, it does ugly things in Moose.
140 - added test case for this
142 0.21 Wed. March 15, 2006
144 - fixed issue where metaclasses are reaped from
145 our cache in global destruction, and so are not
146 available in DESTORY calls
148 0.20 Thurs. March 2, 2006
149 - removed the dependency for Clone since
150 we no longer to deep-cloning by default.
153 - added &package_name, &name and
154 &fully_qualified_name methods, some of
155 which were formerly private subs in
158 * Class::MOP::Method::Wrapped
159 - allows for a method to be wrapped with
160 before, after and around modifiers
161 - added tests and docs for this feature
164 - improved &get_package_symbol
165 - &version and &superclasses now use it
166 - methods are now blessed into Class::MOP::Method
168 - added methods to install CLOS-style method modifiers
169 - &add_before_method_modifier
170 - &add_after_method_modifier
171 - &add_around_method_modifier
172 - added tests and docs for these
173 - added &find_next_method_by_name which finds the
174 equivalent of SUPER::method_name
176 0.12 Thurs. Feb 23, 2006
177 - reduced the dependency on B, no need to always
181 - added docs to the C3 method dispatch order test
182 - fixed missing Algorithm::C3 dependency by making
183 the test skip if it is not installed
185 0.11 Mon Feb. 20, 2006
187 - added example of changing method dispatch order to C3
190 - changed how clone_instance behaves, it now only does a
191 shallow clone (see docs for more details)
192 - added docs and tests
194 0.10 Tues Feb. 14, 2006
195 ** This release was mostly about writing more tests and
196 cleaning out old and dusty code, the MOP should now
197 be considered "ready to use".
199 - adding more tests to get coverage up a little higher,
200 mostly testing errors and edge cases.
201 - test coverage is now at 99%
204 - no longer optionally exports to UNIVERSAL::meta or
205 creates a custom metaclass generator, use the
206 metaclass pragma instead.
209 - fixed a number of minor issues which came up in the
210 error/edge-case tests
212 * Class::MOP::Attribute
213 - fixed a number of minor issues which came up in the
214 error/edge-case tests
217 - fixing the AttributesWithHistory example, it was broken.
219 0.06 Thurs Feb. 9, 2006
221 - adding new metaclass pragma to make setting up the
222 metaclass a little more straightforward
225 - clean up bootstrapping to include more complete
226 attribute definitions for Class::MOP::Class and
227 Class::MOP::Attribute (accessors, readers, writers,
228 etc.) ... it is redundant, but is useful meta-info
232 - fixing minor meta-circularity issue with &meta, it
233 is now more useful for subclasses
234 - added &get_attribute_map as an accessor for the
235 hash of attribute meta objects
236 - &compute_all_applicable_attributes now just returns
237 the attribute meta-object, rather than the HASH ref
238 since all the same info can be gotten from the
239 attribute meta-object itself
240 - updated docs & tests to reflect
241 - added &clone_instance method which does a deep clone
242 of the instance structure created by &construct_instance
243 - added docs & tests for this
244 - added Clone as a dependency
245 - added &new_object and &clone_object convience methods to
246 return blessed new or cloned instances
247 - they handle Class::MOP::Class singletons correctly too
248 - added docs & tests for this
249 - cleaned up the &constuct_class_instance so that it behaves
250 more like &construct_instance (and managed the singletons too)
251 - added the &check_metaclass_compatibility method to make sure
252 that metaclasses are upward and downward compatible.
253 - added tests and docs for this
256 - adjusting code to use the &Class::MOP::Class::meta
258 - adjusting code to use the metaclass pragma
260 0.05 Sat Feb. 4, 2006
262 - added the &attribute_metaclass and &method_metaclass
263 attributes which contain a metaclass name to use for
264 attributes/methods respectively
267 - bootstrap additional attributes for Class::MOP::Class
270 - adjusted the example code and tests to use the new
271 &attribute_metaclass feature of Class::MOP::Class
275 0.04 Fri Feb. 3, 2006
277 - some documentation suggestions from #perl6
279 * Class::MOP::Attribute
280 - improved error messages
283 - added new examples:
284 - AttributesWithHistory
285 - ClassEncapsultedAttributes
287 0.03 Fri Feb. 3, 2006
288 - converted to Module::Build instead of EU::MM
290 * Class::MOP::Attribute
291 - refactored method generation code
292 - attributes are now associated with class directly
295 - refactored the InsideOut example to take advantage
296 of the Class::MOP::Attribute refactoring
297 - changed example files to .pod files and hide thier
298 package names from PAUSE (I don't want to own these
299 namespaces really, they are just examples)
301 0.02 Thurs Feb. 2, 2006
302 - moving examples from t/lib/* to examples/*
303 - adding POD documentation to the examples
305 0.01 Thurs Feb. 2, 2006