1 Revision history for Perl extension Class-MOP.
3 0.34 Sat. Aug. 26, 2006
5 - added the %:methods attribute, which like
6 the $:version and such just actually goes
7 to the symbol table to get it's stuff.
8 However, it makes the MOP more complete.
10 - The &create method now requires that all
11 but the package name now is passed in as
12 named parameters. See docs for more info.
13 - updated docs and tests for this
16 - added &dump method to easily Data::Dumper
20 - cleaned up the initialization of attributes
21 which do not store things in the instance
22 - added the %:methods attribute definition to
25 ~ lots of misc. test cleanup
27 0.33 Sat. Aug. 19, 2006
29 - moved the metaclass cache out of here
30 and it is now in Class::MOP itself.
33 - moved all the metaclass cache stuff here
34 - fixed all tests for this
36 * Class::MOP::Attribute
37 - reference values (other than CODE refs)
38 are no longer allowed for defaults
39 - added tests for this
42 - fixed an issue with perl 5.8.1 and how it deals
43 with symbol tables. The namespace hash is now
44 always reloaded from the symbol table.
46 ~ lots of misc. documentation cleanup
48 0.32 Sat. Aug. 12, 2006
49 + added Class::MOP::Object so that the
50 metamodel is more complete (and closer
51 to what Perl 6 will probably be).
54 - refactored entire class, this is now
55 the primary gateway between the metaclass
56 and the Perl 5 symbol table
57 - added many tests for this
58 - this class is now a subclass of
60 - added some tests to reflect this
63 - refactored all symbol table access to
64 use Class::MOP::Package methods instead
67 - adding the $:version attribute in the bootstrap
68 so that Module has a version as an attribute
69 - see comment in Class::MOP for details
70 - added the $:authority attribute to this module
71 as well as an &identifier method, to bring us
72 ever closer to Perl 6 goodness
73 - I have added $AUTHORITY to all the modules
74 - added tests for this
76 * Class::MOP::Instance
77 - added &deinitialize_slot for removing slots
79 - added tests for this
81 * Class::MOP::Attribute
82 - added support for &deinitialize_slot for removing
83 slots from an instance
84 - added tests for this
86 0.31 Sat. July 15, 2006
89 - added &find_method_by_name to locate a method
90 anywhere within the class hierarchy
92 * Class::MOP::Attribute
93 - added &set_value and &get_value for getting
94 the value of the attribute for a particular
97 0.30 Wed. July 5, 2006
98 ---------------------------------------
99 This is the first version of Class::MOP
100 to introduce the immutable features which
101 will be used for optimizating the MOP.
102 This support should still be considered
103 experimental, but moving towards stability.
104 ---------------------------------------
106 * Created Class::MOP::Class::Immutable
108 * Created the Class::MOP::Package and
109 Class::MOP::Module classes to more
110 closely conform to Perl 6's meta-model
113 - now inherits from Class::MOP::Module
114 - several methods moved to ::Module and
115 ::Package and now inherited
116 - added tests for this
118 * Class::MOP::Instance
119 - added an is_inlinable method to allow other
120 classes to check before they attempt to optimize.
121 - added an inline_create_instance to inline
122 instance creation (of course)
125 - the Class::MOP::Class::*_package_variable
126 methods are all now methods of Class::MOP::Package
127 and called *_package_symbol instead. This is
128 because they are now more general purpose symbol
129 table manipulation methods.
131 0.29_02 Thurs. June 22, 2006
132 ++ DEVELOPER RELEASE ++
134 - small change in &create so that it behaves
135 properly when inherited
136 - small fix to &clone_instance
138 0.29_01 Fri. May 12, 2006
139 ++ DEVELOPER RELEASE ++
140 - This release works in combination with
141 Moose 0.09_01, it is a developer release
142 because it introduces a new instance
143 sub-protocol and has not yet been
147 - anon-classes are now properly garbage collected
148 - added tests for this
149 - improved method modifier wrapping
151 * Class::MOP::Instance
152 - added new instance protocol
153 - added tests for this
154 - changed all relevant modules and examples
156 - Class::MOP::Attribute
160 - you no longer need to specify the metaclass
161 itself, if it is not there, Class::MOP::Class
163 - updated tests for this
166 - added ArrayBasedStorage example to show
167 instance storage using ARRAY refs instead of
169 - added tests for this
170 - InsideOutClass is totally revised using the
171 new instance protocol
172 - added more tests for this
174 0.26 Mon. April 24, 2006
176 - added find_attribute_by_name method
177 - added tests and docs for this
178 - some small optimizations
180 * Class::MOP::Attribute
181 - some small optimizations
183 0.25 Thurs. April 20, 2006
185 - added create_anon_class for creating anonymous classes
186 - added tests for this
187 - added get_all_metaclasses, get_all_metaclass_names
188 and get_all_metaclass_instances method to allow
189 access to all the cached metaclass objects.
190 - attribute slot initialization is now the responsibility
191 of the attribute itself, and construct_instance now
192 delegates appropriately
194 * Class::MOP::Attribute
195 - attribute slot initialization is now the responsibility
196 of the attribute itself, so we added a method for it
197 called initialize_instance_slot
200 - adjusted all the examples to use the new attribute
201 initialize_instance_slot method
203 0.24 Tues. April 11, 2006
205 - cleaned up how the before/after/around method
206 modifiers get named with Sub::Name
208 0.23 Thurs. March 30, 2006
210 - fixed the way attribute defaults are handled
211 during instance construction (bug found by chansen)
213 * Class::MOP::Attribute
214 - read-only accessors ('reader') will now die if
215 passed more than one argument (attempting to write
217 - added tests for this
218 - adjusted all /example files to comply
220 0.22 Mon. March 20, 2006
222 - localized $@ in the *_package_variable functions
223 because otherwise, it does ugly things in Moose.
224 - added test case for this
226 0.21 Wed. March 15, 2006
228 - fixed issue where metaclasses are reaped from
229 our cache in global destruction, and so are not
230 available in DESTORY calls
232 0.20 Thurs. March 2, 2006
233 - removed the dependency for Clone since
234 we no longer to deep-cloning by default.
237 - added &package_name, &name and
238 &fully_qualified_name methods, some of
239 which were formerly private subs in
242 * Class::MOP::Method::Wrapped
243 - allows for a method to be wrapped with
244 before, after and around modifiers
245 - added tests and docs for this feature
248 - improved &get_package_symbol
249 - &version and &superclasses now use it
250 - methods are now blessed into Class::MOP::Method
252 - added methods to install CLOS-style method modifiers
253 - &add_before_method_modifier
254 - &add_after_method_modifier
255 - &add_around_method_modifier
256 - added tests and docs for these
257 - added &find_next_method_by_name which finds the
258 equivalent of SUPER::method_name
260 0.12 Thurs. Feb 23, 2006
261 - reduced the dependency on B, no need to always
265 - added docs to the C3 method dispatch order test
266 - fixed missing Algorithm::C3 dependency by making
267 the test skip if it is not installed
269 0.11 Mon Feb. 20, 2006
271 - added example of changing method dispatch order to C3
274 - changed how clone_instance behaves, it now only does a
275 shallow clone (see docs for more details)
276 - added docs and tests
278 0.10 Tues Feb. 14, 2006
279 ** This release was mostly about writing more tests and
280 cleaning out old and dusty code, the MOP should now
281 be considered "ready to use".
283 - adding more tests to get coverage up a little higher,
284 mostly testing errors and edge cases.
285 - test coverage is now at 99%
288 - no longer optionally exports to UNIVERSAL::meta or
289 creates a custom metaclass generator, use the
290 metaclass pragma instead.
293 - fixed a number of minor issues which came up in the
294 error/edge-case tests
296 * Class::MOP::Attribute
297 - fixed a number of minor issues which came up in the
298 error/edge-case tests
301 - fixing the AttributesWithHistory example, it was broken.
303 0.06 Thurs Feb. 9, 2006
305 - adding new metaclass pragma to make setting up the
306 metaclass a little more straightforward
309 - clean up bootstrapping to include more complete
310 attribute definitions for Class::MOP::Class and
311 Class::MOP::Attribute (accessors, readers, writers,
312 etc.) ... it is redundant, but is useful meta-info
316 - fixing minor meta-circularity issue with &meta, it
317 is now more useful for subclasses
318 - added &get_attribute_map as an accessor for the
319 hash of attribute meta objects
320 - &compute_all_applicable_attributes now just returns
321 the attribute meta-object, rather than the HASH ref
322 since all the same info can be gotten from the
323 attribute meta-object itself
324 - updated docs & tests to reflect
325 - added &clone_instance method which does a deep clone
326 of the instance structure created by &construct_instance
327 - added docs & tests for this
328 - added Clone as a dependency
329 - added &new_object and &clone_object convience methods to
330 return blessed new or cloned instances
331 - they handle Class::MOP::Class singletons correctly too
332 - added docs & tests for this
333 - cleaned up the &constuct_class_instance so that it behaves
334 more like &construct_instance (and managed the singletons too)
335 - added the &check_metaclass_compatibility method to make sure
336 that metaclasses are upward and downward compatible.
337 - added tests and docs for this
340 - adjusting code to use the &Class::MOP::Class::meta
342 - adjusting code to use the metaclass pragma
344 0.05 Sat Feb. 4, 2006
346 - added the &attribute_metaclass and &method_metaclass
347 attributes which contain a metaclass name to use for
348 attributes/methods respectively
351 - bootstrap additional attributes for Class::MOP::Class
354 - adjusted the example code and tests to use the new
355 &attribute_metaclass feature of Class::MOP::Class
359 0.04 Fri Feb. 3, 2006
361 - some documentation suggestions from #perl6
363 * Class::MOP::Attribute
364 - improved error messages
367 - added new examples:
368 - AttributesWithHistory
369 - ClassEncapsultedAttributes
371 0.03 Fri Feb. 3, 2006
372 - converted to Module::Build instead of EU::MM
374 * Class::MOP::Attribute
375 - refactored method generation code
376 - attributes are now associated with class directly
379 - refactored the InsideOut example to take advantage
380 of the Class::MOP::Attribute refactoring
381 - changed example files to .pod files and hide thier
382 package names from PAUSE (I don't want to own these
383 namespaces really, they are just examples)
385 0.02 Thurs Feb. 2, 2006
386 - moving examples from t/lib/* to examples/*
387 - adding POD documentation to the examples
389 0.01 Thurs Feb. 2, 2006