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