1 Revision history for Perl extension Class-MOP.
3 0.29_03 Wed. July 5, 2006
4 ++ DEVELOPER RELEASE ++
6 created the Class::MOP::Package and
7 Class::MOP::Module classes to more
8 closely conform to Perl 6's meta model
10 created Class::MOP::Class::Immutable
11 which can be used to "close" a class
12 and then apply some optimizations
15 - now inherits from Class::MOP::Module
16 - several methods moved to ::Module and
17 ::Package and now inherited
18 - added tests for this
20 * Class::MOP::Instance
21 - added an is_inlinable method to allow other
22 classes to check before they attempt to optimize.
23 - added an inline_create_instance to inline
24 instance creation (of course)
27 - the Class::MOP::Class::*_package_variable
28 methods are all now methods of Class::MOP::Package
29 and called *_package_symbol instead. This is
30 because they are now more general purpose symbol
31 table manipulation methods.
33 0.29_02 Thurs. June 22, 2006
34 ++ DEVELOPER RELEASE ++
36 - small change in &create so that it behaves
37 properly when inherited
38 - small fix to &clone_instance
40 0.29_01 Fri. May 12, 2006
41 ++ DEVELOPER RELEASE ++
42 - This release works in combination with
43 Moose 0.09_01, it is a developer release
44 because it introduces a new instance
45 sub-protocol and has not yet been
49 - anon-classes are now properly garbage collected
50 - added tests for this
51 - improved method modifier wrapping
53 * Class::MOP::Instance
54 - added new instance protocol
55 - added tests for this
56 - changed all relevant modules and examples
58 - Class::MOP::Attribute
62 - you no longer need to specify the metaclass
63 itself, if it is not there, Class::MOP::Class
65 - updated tests for this
68 - added ArrayBasedStorage example to show
69 instance storage using ARRAY refs instead of
71 - added tests for this
72 - InsideOutClass is totally revised using the
74 - added more tests for this
76 0.26 Mon. April 24, 2006
78 - added find_attribute_by_name method
79 - added tests and docs for this
80 - some small optimizations
82 * Class::MOP::Attribute
83 - some small optimizations
85 0.25 Thurs. April 20, 2006
87 - added create_anon_class for creating anonymous classes
88 - added tests for this
89 - added get_all_metaclasses, get_all_metaclass_names
90 and get_all_metaclass_instances method to allow
91 access to all the cached metaclass objects.
92 - attribute slot initialization is now the responsibility
93 of the attribute itself, and construct_instance now
94 delegates appropriately
96 * Class::MOP::Attribute
97 - attribute slot initialization is now the responsibility
98 of the attribute itself, so we added a method for it
99 called initialize_instance_slot
102 - adjusted all the examples to use the new attribute
103 initialize_instance_slot method
105 0.24 Tues. April 11, 2006
107 - cleaned up how the before/after/around method
108 modifiers get named with Sub::Name
110 0.23 Thurs. March 30, 2006
112 - fixed the way attribute defaults are handled
113 during instance construction (bug found by chansen)
115 * Class::MOP::Attribute
116 - read-only accessors ('reader') will now die if
117 passed more than one argument (attempting to write
119 - added tests for this
120 - adjusted all /example files to comply
122 0.22 Mon. March 20, 2006
124 - localized $@ in the *_package_variable functions
125 because otherwise, it does ugly things in Moose.
126 - added test case for this
128 0.21 Wed. March 15, 2006
130 - fixed issue where metaclasses are reaped from
131 our cache in global destruction, and so are not
132 available in DESTORY calls
134 0.20 Thurs. March 2, 2006
135 - removed the dependency for Clone since
136 we no longer to deep-cloning by default.
139 - added &package_name, &name and
140 &fully_qualified_name methods, some of
141 which were formerly private subs in
144 * Class::MOP::Method::Wrapped
145 - allows for a method to be wrapped with
146 before, after and around modifiers
147 - added tests and docs for this feature
150 - improved &get_package_symbol
151 - &version and &superclasses now use it
152 - methods are now blessed into Class::MOP::Method
154 - added methods to install CLOS-style method modifiers
155 - &add_before_method_modifier
156 - &add_after_method_modifier
157 - &add_around_method_modifier
158 - added tests and docs for these
159 - added &find_next_method_by_name which finds the
160 equivalent of SUPER::method_name
162 0.12 Thurs. Feb 23, 2006
163 - reduced the dependency on B, no need to always
167 - added docs to the C3 method dispatch order test
168 - fixed missing Algorithm::C3 dependency by making
169 the test skip if it is not installed
171 0.11 Mon Feb. 20, 2006
173 - added example of changing method dispatch order to C3
176 - changed how clone_instance behaves, it now only does a
177 shallow clone (see docs for more details)
178 - added docs and tests
180 0.10 Tues Feb. 14, 2006
181 ** This release was mostly about writing more tests and
182 cleaning out old and dusty code, the MOP should now
183 be considered "ready to use".
185 - adding more tests to get coverage up a little higher,
186 mostly testing errors and edge cases.
187 - test coverage is now at 99%
190 - no longer optionally exports to UNIVERSAL::meta or
191 creates a custom metaclass generator, use the
192 metaclass pragma instead.
195 - fixed a number of minor issues which came up in the
196 error/edge-case tests
198 * Class::MOP::Attribute
199 - fixed a number of minor issues which came up in the
200 error/edge-case tests
203 - fixing the AttributesWithHistory example, it was broken.
205 0.06 Thurs Feb. 9, 2006
207 - adding new metaclass pragma to make setting up the
208 metaclass a little more straightforward
211 - clean up bootstrapping to include more complete
212 attribute definitions for Class::MOP::Class and
213 Class::MOP::Attribute (accessors, readers, writers,
214 etc.) ... it is redundant, but is useful meta-info
218 - fixing minor meta-circularity issue with &meta, it
219 is now more useful for subclasses
220 - added &get_attribute_map as an accessor for the
221 hash of attribute meta objects
222 - &compute_all_applicable_attributes now just returns
223 the attribute meta-object, rather than the HASH ref
224 since all the same info can be gotten from the
225 attribute meta-object itself
226 - updated docs & tests to reflect
227 - added &clone_instance method which does a deep clone
228 of the instance structure created by &construct_instance
229 - added docs & tests for this
230 - added Clone as a dependency
231 - added &new_object and &clone_object convience methods to
232 return blessed new or cloned instances
233 - they handle Class::MOP::Class singletons correctly too
234 - added docs & tests for this
235 - cleaned up the &constuct_class_instance so that it behaves
236 more like &construct_instance (and managed the singletons too)
237 - added the &check_metaclass_compatibility method to make sure
238 that metaclasses are upward and downward compatible.
239 - added tests and docs for this
242 - adjusting code to use the &Class::MOP::Class::meta
244 - adjusting code to use the metaclass pragma
246 0.05 Sat Feb. 4, 2006
248 - added the &attribute_metaclass and &method_metaclass
249 attributes which contain a metaclass name to use for
250 attributes/methods respectively
253 - bootstrap additional attributes for Class::MOP::Class
256 - adjusted the example code and tests to use the new
257 &attribute_metaclass feature of Class::MOP::Class
261 0.04 Fri Feb. 3, 2006
263 - some documentation suggestions from #perl6
265 * Class::MOP::Attribute
266 - improved error messages
269 - added new examples:
270 - AttributesWithHistory
271 - ClassEncapsultedAttributes
273 0.03 Fri Feb. 3, 2006
274 - converted to Module::Build instead of EU::MM
276 * Class::MOP::Attribute
277 - refactored method generation code
278 - attributes are now associated with class directly
281 - refactored the InsideOut example to take advantage
282 of the Class::MOP::Attribute refactoring
283 - changed example files to .pod files and hide thier
284 package names from PAUSE (I don't want to own these
285 namespaces really, they are just examples)
287 0.02 Thurs Feb. 2, 2006
288 - moving examples from t/lib/* to examples/*
289 - adding POD documentation to the examples
291 0.01 Thurs Feb. 2, 2006