1 Revision history for Perl extension Class-MOP.
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
21 - the Class::MOP::Class::*_package_variable
22 methods are all now methods of Class::MOP::Package
23 and called *_package_symbol instead. This is
24 because they are now more general purpose symbol
25 table manipulation methods.
27 * Class::MOP::Instance
28 - added an is_inlinable method to allow other
29 classes to check before they attempt to optimize.
30 - added an inline_create_instance to inline
31 instance creation (of course)
34 0.29_02 Thurs. June 22, 2006
35 ++ DEVELOPER RELEASE ++
37 - small change in &create so that it behaves
38 properly when inherited
39 - small fix to &clone_instance
41 0.29_01 Fri. May 12, 2006
42 ++ DEVELOPER RELEASE ++
43 - This release works in combination with
44 Moose 0.09_01, it is a developer release
45 because it introduces a new instance
46 sub-protocol and has not yet been
50 - anon-classes are now properly garbage collected
51 - added tests for this
52 - improved method modifier wrapping
54 * Class::MOP::Instance
55 - added new instance protocol
56 - added tests for this
57 - changed all relevant modules and examples
59 - Class::MOP::Attribute
63 - you no longer need to specify the metaclass
64 itself, if it is not there, Class::MOP::Class
66 - updated tests for this
69 - added ArrayBasedStorage example to show
70 instance storage using ARRAY refs instead of
72 - added tests for this
73 - InsideOutClass is totally revised using the
75 - added more tests for this
77 0.26 Mon. April 24, 2006
79 - added find_attribute_by_name method
80 - added tests and docs for this
81 - some small optimizations
83 * Class::MOP::Attribute
84 - some small optimizations
86 0.25 Thurs. April 20, 2006
88 - added create_anon_class for creating anonymous classes
89 - added tests for this
90 - added get_all_metaclasses, get_all_metaclass_names
91 and get_all_metaclass_instances method to allow
92 access to all the cached metaclass objects.
93 - attribute slot initialization is now the responsibility
94 of the attribute itself, and construct_instance now
95 delegates appropriately
97 * Class::MOP::Attribute
98 - attribute slot initialization is now the responsibility
99 of the attribute itself, so we added a method for it
100 called initialize_instance_slot
103 - adjusted all the examples to use the new attribute
104 initialize_instance_slot method
106 0.24 Tues. April 11, 2006
108 - cleaned up how the before/after/around method
109 modifiers get named with Sub::Name
111 0.23 Thurs. March 30, 2006
113 - fixed the way attribute defaults are handled
114 during instance construction (bug found by chansen)
116 * Class::MOP::Attribute
117 - read-only accessors ('reader') will now die if
118 passed more than one argument (attempting to write
120 - added tests for this
121 - adjusted all /example files to comply
123 0.22 Mon. March 20, 2006
125 - localized $@ in the *_package_variable functions
126 because otherwise, it does ugly things in Moose.
127 - added test case for this
129 0.21 Wed. March 15, 2006
131 - fixed issue where metaclasses are reaped from
132 our cache in global destruction, and so are not
133 available in DESTORY calls
135 0.20 Thurs. March 2, 2006
136 - removed the dependency for Clone since
137 we no longer to deep-cloning by default.
140 - added &package_name, &name and
141 &fully_qualified_name methods, some of
142 which were formerly private subs in
145 * Class::MOP::Method::Wrapped
146 - allows for a method to be wrapped with
147 before, after and around modifiers
148 - added tests and docs for this feature
151 - improved &get_package_symbol
152 - &version and &superclasses now use it
153 - methods are now blessed into Class::MOP::Method
155 - added methods to install CLOS-style method modifiers
156 - &add_before_method_modifier
157 - &add_after_method_modifier
158 - &add_around_method_modifier
159 - added tests and docs for these
160 - added &find_next_method_by_name which finds the
161 equivalent of SUPER::method_name
163 0.12 Thurs. Feb 23, 2006
164 - reduced the dependency on B, no need to always
168 - added docs to the C3 method dispatch order test
169 - fixed missing Algorithm::C3 dependency by making
170 the test skip if it is not installed
172 0.11 Mon Feb. 20, 2006
174 - added example of changing method dispatch order to C3
177 - changed how clone_instance behaves, it now only does a
178 shallow clone (see docs for more details)
179 - added docs and tests
181 0.10 Tues Feb. 14, 2006
182 ** This release was mostly about writing more tests and
183 cleaning out old and dusty code, the MOP should now
184 be considered "ready to use".
186 - adding more tests to get coverage up a little higher,
187 mostly testing errors and edge cases.
188 - test coverage is now at 99%
191 - no longer optionally exports to UNIVERSAL::meta or
192 creates a custom metaclass generator, use the
193 metaclass pragma instead.
196 - fixed a number of minor issues which came up in the
197 error/edge-case tests
199 * Class::MOP::Attribute
200 - fixed a number of minor issues which came up in the
201 error/edge-case tests
204 - fixing the AttributesWithHistory example, it was broken.
206 0.06 Thurs Feb. 9, 2006
208 - adding new metaclass pragma to make setting up the
209 metaclass a little more straightforward
212 - clean up bootstrapping to include more complete
213 attribute definitions for Class::MOP::Class and
214 Class::MOP::Attribute (accessors, readers, writers,
215 etc.) ... it is redundant, but is useful meta-info
219 - fixing minor meta-circularity issue with &meta, it
220 is now more useful for subclasses
221 - added &get_attribute_map as an accessor for the
222 hash of attribute meta objects
223 - &compute_all_applicable_attributes now just returns
224 the attribute meta-object, rather than the HASH ref
225 since all the same info can be gotten from the
226 attribute meta-object itself
227 - updated docs & tests to reflect
228 - added &clone_instance method which does a deep clone
229 of the instance structure created by &construct_instance
230 - added docs & tests for this
231 - added Clone as a dependency
232 - added &new_object and &clone_object convience methods to
233 return blessed new or cloned instances
234 - they handle Class::MOP::Class singletons correctly too
235 - added docs & tests for this
236 - cleaned up the &constuct_class_instance so that it behaves
237 more like &construct_instance (and managed the singletons too)
238 - added the &check_metaclass_compatibility method to make sure
239 that metaclasses are upward and downward compatible.
240 - added tests and docs for this
243 - adjusting code to use the &Class::MOP::Class::meta
245 - adjusting code to use the metaclass pragma
247 0.05 Sat Feb. 4, 2006
249 - added the &attribute_metaclass and &method_metaclass
250 attributes which contain a metaclass name to use for
251 attributes/methods respectively
254 - bootstrap additional attributes for Class::MOP::Class
257 - adjusted the example code and tests to use the new
258 &attribute_metaclass feature of Class::MOP::Class
262 0.04 Fri Feb. 3, 2006
264 - some documentation suggestions from #perl6
266 * Class::MOP::Attribute
267 - improved error messages
270 - added new examples:
271 - AttributesWithHistory
272 - ClassEncapsultedAttributes
274 0.03 Fri Feb. 3, 2006
275 - converted to Module::Build instead of EU::MM
277 * Class::MOP::Attribute
278 - refactored method generation code
279 - attributes are now associated with class directly
282 - refactored the InsideOut example to take advantage
283 of the Class::MOP::Attribute refactoring
284 - changed example files to .pod files and hide thier
285 package names from PAUSE (I don't want to own these
286 namespaces really, they are just examples)
288 0.02 Thurs Feb. 2, 2006
289 - moving examples from t/lib/* to examples/*
290 - adding POD documentation to the examples
292 0.01 Thurs Feb. 2, 2006