1 Revision history for Perl extension Class-MOP.
3 0.32 Sat. Aug. 12, 2006
4 + added Class::MOP::Object so that the
5 metamodel is more complete (and closer
6 to what Perl 6 will probably be).
9 - refactored entire class, this is now
10 the primary gateway between the metaclass
11 and the Perl 5 symbol table
12 - added many tests for this
13 - this class is now a subclass of
15 - added some tests to reflect this
18 - refactored all symbol table access to
19 use Class::MOP::Package methods instead
22 - adding the $:version attribute in the bootstrap
23 so that Module has a version as an attribute
24 - see comment in Class::MOP for details
25 - added the $:authority attribute to this module
26 as well as an &identifier method, to bring us
27 ever closer to Perl 6 goodness
28 - I have added $AUTHORITY to all the modules
29 - added tests for this
31 * Class::MOP::Instance
32 - added &deinitialize_slot for removing slots
34 - added tests for this
36 * Class::MOP::Attribute
37 - added support for &deinitialize_slot for removing
38 slots from an instance
39 - added tests for this
41 0.31 Sat. July 15, 2006
44 - added &find_method_by_name to locate a method
45 anywhere within the class hierarchy
47 * Class::MOP::Attribute
48 - added &set_value and &get_value for getting
49 the value of the attribute for a particular
52 0.30 Wed. July 5, 2006
53 ---------------------------------------
54 This is the first version of Class::MOP
55 to introduce the immutable features which
56 will be used for optimizating the MOP.
57 This support should still be considered
58 experimental, but moving towards stability.
59 ---------------------------------------
61 * Created Class::MOP::Class::Immutable
63 * Created the Class::MOP::Package and
64 Class::MOP::Module classes to more
65 closely conform to Perl 6's meta-model
68 - now inherits from Class::MOP::Module
69 - several methods moved to ::Module and
70 ::Package and now inherited
71 - added tests for this
73 * Class::MOP::Instance
74 - added an is_inlinable method to allow other
75 classes to check before they attempt to optimize.
76 - added an inline_create_instance to inline
77 instance creation (of course)
80 - the Class::MOP::Class::*_package_variable
81 methods are all now methods of Class::MOP::Package
82 and called *_package_symbol instead. This is
83 because they are now more general purpose symbol
84 table manipulation methods.
86 0.29_02 Thurs. June 22, 2006
87 ++ DEVELOPER RELEASE ++
89 - small change in &create so that it behaves
90 properly when inherited
91 - small fix to &clone_instance
93 0.29_01 Fri. May 12, 2006
94 ++ DEVELOPER RELEASE ++
95 - This release works in combination with
96 Moose 0.09_01, it is a developer release
97 because it introduces a new instance
98 sub-protocol and has not yet been
102 - anon-classes are now properly garbage collected
103 - added tests for this
104 - improved method modifier wrapping
106 * Class::MOP::Instance
107 - added new instance protocol
108 - added tests for this
109 - changed all relevant modules and examples
111 - Class::MOP::Attribute
115 - you no longer need to specify the metaclass
116 itself, if it is not there, Class::MOP::Class
118 - updated tests for this
121 - added ArrayBasedStorage example to show
122 instance storage using ARRAY refs instead of
124 - added tests for this
125 - InsideOutClass is totally revised using the
126 new instance protocol
127 - added more tests for this
129 0.26 Mon. April 24, 2006
131 - added find_attribute_by_name method
132 - added tests and docs for this
133 - some small optimizations
135 * Class::MOP::Attribute
136 - some small optimizations
138 0.25 Thurs. April 20, 2006
140 - added create_anon_class for creating anonymous classes
141 - added tests for this
142 - added get_all_metaclasses, get_all_metaclass_names
143 and get_all_metaclass_instances method to allow
144 access to all the cached metaclass objects.
145 - attribute slot initialization is now the responsibility
146 of the attribute itself, and construct_instance now
147 delegates appropriately
149 * Class::MOP::Attribute
150 - attribute slot initialization is now the responsibility
151 of the attribute itself, so we added a method for it
152 called initialize_instance_slot
155 - adjusted all the examples to use the new attribute
156 initialize_instance_slot method
158 0.24 Tues. April 11, 2006
160 - cleaned up how the before/after/around method
161 modifiers get named with Sub::Name
163 0.23 Thurs. March 30, 2006
165 - fixed the way attribute defaults are handled
166 during instance construction (bug found by chansen)
168 * Class::MOP::Attribute
169 - read-only accessors ('reader') will now die if
170 passed more than one argument (attempting to write
172 - added tests for this
173 - adjusted all /example files to comply
175 0.22 Mon. March 20, 2006
177 - localized $@ in the *_package_variable functions
178 because otherwise, it does ugly things in Moose.
179 - added test case for this
181 0.21 Wed. March 15, 2006
183 - fixed issue where metaclasses are reaped from
184 our cache in global destruction, and so are not
185 available in DESTORY calls
187 0.20 Thurs. March 2, 2006
188 - removed the dependency for Clone since
189 we no longer to deep-cloning by default.
192 - added &package_name, &name and
193 &fully_qualified_name methods, some of
194 which were formerly private subs in
197 * Class::MOP::Method::Wrapped
198 - allows for a method to be wrapped with
199 before, after and around modifiers
200 - added tests and docs for this feature
203 - improved &get_package_symbol
204 - &version and &superclasses now use it
205 - methods are now blessed into Class::MOP::Method
207 - added methods to install CLOS-style method modifiers
208 - &add_before_method_modifier
209 - &add_after_method_modifier
210 - &add_around_method_modifier
211 - added tests and docs for these
212 - added &find_next_method_by_name which finds the
213 equivalent of SUPER::method_name
215 0.12 Thurs. Feb 23, 2006
216 - reduced the dependency on B, no need to always
220 - added docs to the C3 method dispatch order test
221 - fixed missing Algorithm::C3 dependency by making
222 the test skip if it is not installed
224 0.11 Mon Feb. 20, 2006
226 - added example of changing method dispatch order to C3
229 - changed how clone_instance behaves, it now only does a
230 shallow clone (see docs for more details)
231 - added docs and tests
233 0.10 Tues Feb. 14, 2006
234 ** This release was mostly about writing more tests and
235 cleaning out old and dusty code, the MOP should now
236 be considered "ready to use".
238 - adding more tests to get coverage up a little higher,
239 mostly testing errors and edge cases.
240 - test coverage is now at 99%
243 - no longer optionally exports to UNIVERSAL::meta or
244 creates a custom metaclass generator, use the
245 metaclass pragma instead.
248 - fixed a number of minor issues which came up in the
249 error/edge-case tests
251 * Class::MOP::Attribute
252 - fixed a number of minor issues which came up in the
253 error/edge-case tests
256 - fixing the AttributesWithHistory example, it was broken.
258 0.06 Thurs Feb. 9, 2006
260 - adding new metaclass pragma to make setting up the
261 metaclass a little more straightforward
264 - clean up bootstrapping to include more complete
265 attribute definitions for Class::MOP::Class and
266 Class::MOP::Attribute (accessors, readers, writers,
267 etc.) ... it is redundant, but is useful meta-info
271 - fixing minor meta-circularity issue with &meta, it
272 is now more useful for subclasses
273 - added &get_attribute_map as an accessor for the
274 hash of attribute meta objects
275 - &compute_all_applicable_attributes now just returns
276 the attribute meta-object, rather than the HASH ref
277 since all the same info can be gotten from the
278 attribute meta-object itself
279 - updated docs & tests to reflect
280 - added &clone_instance method which does a deep clone
281 of the instance structure created by &construct_instance
282 - added docs & tests for this
283 - added Clone as a dependency
284 - added &new_object and &clone_object convience methods to
285 return blessed new or cloned instances
286 - they handle Class::MOP::Class singletons correctly too
287 - added docs & tests for this
288 - cleaned up the &constuct_class_instance so that it behaves
289 more like &construct_instance (and managed the singletons too)
290 - added the &check_metaclass_compatibility method to make sure
291 that metaclasses are upward and downward compatible.
292 - added tests and docs for this
295 - adjusting code to use the &Class::MOP::Class::meta
297 - adjusting code to use the metaclass pragma
299 0.05 Sat Feb. 4, 2006
301 - added the &attribute_metaclass and &method_metaclass
302 attributes which contain a metaclass name to use for
303 attributes/methods respectively
306 - bootstrap additional attributes for Class::MOP::Class
309 - adjusted the example code and tests to use the new
310 &attribute_metaclass feature of Class::MOP::Class
314 0.04 Fri Feb. 3, 2006
316 - some documentation suggestions from #perl6
318 * Class::MOP::Attribute
319 - improved error messages
322 - added new examples:
323 - AttributesWithHistory
324 - ClassEncapsultedAttributes
326 0.03 Fri Feb. 3, 2006
327 - converted to Module::Build instead of EU::MM
329 * Class::MOP::Attribute
330 - refactored method generation code
331 - attributes are now associated with class directly
334 - refactored the InsideOut example to take advantage
335 of the Class::MOP::Attribute refactoring
336 - changed example files to .pod files and hide thier
337 package names from PAUSE (I don't want to own these
338 namespaces really, they are just examples)
340 0.02 Thurs Feb. 2, 2006
341 - moving examples from t/lib/* to examples/*
342 - adding POD documentation to the examples
344 0.01 Thurs Feb. 2, 2006