0.33
[gitmo/Class-MOP.git] / Changes
CommitLineData
7c90a1a8 1Revision history for Perl extension Class-MOP.
2
56e8dd5d 30.33 Sat. Aug. 19, 2006
be7677c7 4 * Class::MOP::Class
5 - moved the metaclass cache out of here
6 and it is now in Class::MOP itself.
56e8dd5d 7
8 * Class::MOP
9 - moved all the metaclass cache stuff here
10 - fixed all tests for this
be7677c7 11
148b4697 12 * Class::MOP::Attribute
13 - reference values (other than CODE refs)
14 are no longer allowed for defaults
15 - added tests for this
56dcfc1a 16
17 * Class::MOP::Package
18 - fixed an issue with perl 5.8.1 and how it deals
e3a2c885 19 with symbol tables. The namespace hash is now
20 always reloaded from the symbol table.
21
22 ~ lots of misc. documentation cleanup
1396f86b 23
716c5765 240.32 Sat. Aug. 12, 2006
6e57504d 25 + added Class::MOP::Object so that the
26 metamodel is more complete (and closer
27 to what Perl 6 will probably be).
28
9ca19585 29 * Class::MOP::Package
30 - refactored entire class, this is now
31 the primary gateway between the metaclass
32 and the Perl 5 symbol table
33 - added many tests for this
6e57504d 34 - this class is now a subclass of
35 Class::MOP::Object
716c5765 36 - added some tests to reflect this
9ca19585 37
38 * Class::MOP::Class
39 - refactored all symbol table access to
40 use Class::MOP::Package methods instead
f0480c45 41
42 * Class::MOP::Module
43 - adding the $:version attribute in the bootstrap
44 so that Module has a version as an attribute
45 - see comment in Class::MOP for details
46 - added the $:authority attribute to this module
47 as well as an &identifier method, to bring us
48 ever closer to Perl 6 goodness
716c5765 49 - I have added $AUTHORITY to all the modules
50 - added tests for this
9ca19585 51
f0480c45 52 * Class::MOP::Instance
53 - added &deinitialize_slot for removing slots
54 from an instance
55 - added tests for this
9ca19585 56
57 * Class::MOP::Attribute
58 - added support for &deinitialize_slot for removing
59 slots from an instance
60 - added tests for this
61
1a09d9cc 620.31 Sat. July 15, 2006
63
b679e644 64 * Class::MOP::Class
65 - added &find_method_by_name to locate a method
66 anywhere within the class hierarchy
67
68 * Class::MOP::Attribute
69 - added &set_value and &get_value for getting
70 the value of the attribute for a particular
71 instance.
72
373a16ae 730.30 Wed. July 5, 2006
74 ---------------------------------------
75 This is the first version of Class::MOP
76 to introduce the immutable features which
77 will be used for optimizating the MOP.
78 This support should still be considered
79 experimental, but moving towards stability.
80 ---------------------------------------
e0a82090 81
373a16ae 82 * Created Class::MOP::Class::Immutable
be960ba1 83
373a16ae 84 * Created the Class::MOP::Package and
85 Class::MOP::Module classes to more
86 closely conform to Perl 6's meta-model
e0a82090 87
88 * Class::MOP::Class
89 - now inherits from Class::MOP::Module
90 - several methods moved to ::Module and
91 ::Package and now inherited
92 - added tests for this
c0cbf4d9 93
94 * Class::MOP::Instance
95 - added an is_inlinable method to allow other
96 classes to check before they attempt to optimize.
be960ba1 97 - added an inline_create_instance to inline
98 instance creation (of course)
99
2ba153a9 100 ** API CHANGE **
101 - the Class::MOP::Class::*_package_variable
102 methods are all now methods of Class::MOP::Package
103 and called *_package_symbol instead. This is
104 because they are now more general purpose symbol
105 table manipulation methods.
e0a82090 106
cdfaa4cc 1070.29_02 Thurs. June 22, 2006
108 ++ DEVELOPER RELEASE ++
df7b4119 109 * Class::MOP::Class
110 - small change in &create so that it behaves
111 properly when inherited
cdfaa4cc 112 - small fix to &clone_instance
df7b4119 113
667cecf3 1140.29_01 Fri. May 12, 2006
115 ++ DEVELOPER RELEASE ++
116 - This release works in combination with
117 Moose 0.09_01, it is a developer release
118 because it introduces a new instance
119 sub-protocol and has not yet been
120 optimized.
121
40483095 122 * Class::MOP::Class
123 - anon-classes are now properly garbage collected
124 - added tests for this
195f5bf8 125 - improved method modifier wrapping
40483095 126
2bab2be6 127 * Class::MOP::Instance
1becdfcc 128 - added new instance protocol
2bab2be6 129 - added tests for this
130 - changed all relevant modules and examples
131 - Class::MOP::Class
132 - Class::MOP::Attribute
133 - examples/*
134
1becdfcc 135 * metaclass
136 - you no longer need to specify the metaclass
137 itself, if it is not there, Class::MOP::Class
138 is just assumed
139 - updated tests for this
140
141 * examples/
142 - added ArrayBasedStorage example to show
143 instance storage using ARRAY refs instead of
144 HASH refs.
145 - added tests for this
146 - InsideOutClass is totally revised using the
147 new instance protocol
148 - added more tests for this
149
93b4e576 1500.26 Mon. April 24, 2006
e7f732e4 151 * Class::MOP::Class
152 - added find_attribute_by_name method
153 - added tests and docs for this
56a0b530 154 - some small optimizations
155
156 * Class::MOP::Attribute
157 - some small optimizations
e7f732e4 158
46666f33 1590.25 Thurs. April 20, 2006
587aca23 160 * Class::MOP::Class
161 - added create_anon_class for creating anonymous classes
162 - added tests for this
163 - added get_all_metaclasses, get_all_metaclass_names
164 and get_all_metaclass_instances method to allow
165 access to all the cached metaclass objects.
bd4e03f9 166 - attribute slot initialization is now the responsibility
167 of the attribute itself, and construct_instance now
168 delegates appropriately
169
170 * Class::MOP::Attribute
171 - attribute slot initialization is now the responsibility
172 of the attribute itself, so we added a method for it
173 called initialize_instance_slot
fed4cee7 174
175 * examples/
176 - adjusted all the examples to use the new attribute
177 initialize_instance_slot method
587aca23 178
1daaa2b2 1790.24 Tues. April 11, 2006
8c936afc 180 * Class::MOP::Class
181 - cleaned up how the before/after/around method
182 modifiers get named with Sub::Name
183
b9dfbf78 1840.23 Thurs. March 30, 2006
a977cf65 185 * Class::MOP::Class
186 - fixed the way attribute defaults are handled
187 during instance construction (bug found by chansen)
b9dfbf78 188
189 * Class::MOP::Attribute
190 - read-only accessors ('reader') will now die if
191 passed more than one argument (attempting to write
192 to them basically)
193 - added tests for this
194 - adjusted all /example files to comply
a977cf65 195
f9eba090 1960.22 Mon. March 20, 2006
0eff2c16 197 * Class::MOP::Class
198 - localized $@ in the *_package_variable functions
199 because otherwise, it does ugly things in Moose.
200 - added test case for this
201
1988e85e 2020.21 Wed. March 15, 2006
2f6d5412 203 * Class::MOP::Class
204 - fixed issue where metaclasses are reaped from
205 our cache in global destruction, and so are not
206 available in DESTORY calls
207
96ceced8 2080.20 Thurs. March 2, 2006
d3cb0d4a 209 - removed the dependency for Clone since
210 we no longer to deep-cloning by default.
a4258ffd 211
212 * Class::MOP::Method
96ceced8 213 - added &package_name, &name and
214 &fully_qualified_name methods, some of
a4258ffd 215 which were formerly private subs in
216 Class::MOP::Class
217
218 * Class::MOP::Method::Wrapped
219 - allows for a method to be wrapped with
220 before, after and around modifiers
221 - added tests and docs for this feature
d3cb0d4a 222
223 * Class::MOP::Class
58d75218 224 - improved &get_package_symbol
96ceced8 225 - &version and &superclasses now use it
a4258ffd 226 - methods are now blessed into Class::MOP::Method
227 whenever possible
a4258ffd 228 - added methods to install CLOS-style method modifiers
229 - &add_before_method_modifier
230 - &add_after_method_modifier
231 - &add_around_method_modifier
232 - added tests and docs for these
96ceced8 233 - added &find_next_method_by_name which finds the
234 equivalent of SUPER::method_name
d3cb0d4a 235
1c020571 2360.12 Thurs. Feb 23, 2006
d89c0fad 237 - reduced the dependency on B, no need to always
238 have the latest
239
1c020571 240 * examples/
241 - added docs to the C3 method dispatch order test
242 - fixed missing Algorithm::C3 dependency by making
243 the test skip if it is not installed
244
0dea7280 2450.11 Mon Feb. 20, 2006
f3f5bd34 246 * examples/
247 - added example of changing method dispatch order to C3
a27ae83f 248
249 * Class::MOP::Class
19d4b5b8 250 - changed how clone_instance behaves, it now only does a
251 shallow clone (see docs for more details)
a27ae83f 252 - added docs and tests
f3f5bd34 253
3bf7644b 2540.10 Tues Feb. 14, 2006
255 ** This release was mostly about writing more tests and
256 cleaning out old and dusty code, the MOP should now
257 be considered "ready to use".
258
22286063 259 - adding more tests to get coverage up a little higher,
260 mostly testing errors and edge cases.
261 - test coverage is now at 99%
aa448b16 262
263 * Class::MOP
264 - no longer optionally exports to UNIVERSAL::meta or
265 creates a custom metaclass generator, use the
266 metaclass pragma instead.
22286063 267
268 * Class::MOP::Class
269 - fixed a number of minor issues which came up in the
270 error/edge-case tests
271
272 * Class::MOP::Attribute
273 - fixed a number of minor issues which came up in the
274 error/edge-case tests
275
0b8eb325 276 * examples/
ea263060 277 - fixing the AttributesWithHistory example, it was broken.
663f8198 278
550d56db 2790.06 Thurs Feb. 9, 2006
677eb158 280 * metaclass
550d56db 281 - adding new metaclass pragma to make setting up the
677eb158 282 metaclass a little more straightforward
7b31baf4 283
284 * Class::MOP
285 - clean up bootstrapping to include more complete
286 attribute definitions for Class::MOP::Class and
287 Class::MOP::Attribute (accessors, readers, writers,
288 etc.) ... it is redundant, but is useful meta-info
289 to have around.
677eb158 290
99e5b7e8 291 * Class::MOP::Class
292 - fixing minor meta-circularity issue with &meta, it
293 is now more useful for subclasses
7b31baf4 294 - added &get_attribute_map as an accessor for the
295 hash of attribute meta objects
c9e77dbb 296 - &compute_all_applicable_attributes now just returns
297 the attribute meta-object, rather than the HASH ref
298 since all the same info can be gotten from the
299 attribute meta-object itself
300 - updated docs & tests to reflect
5f3c057a 301 - added &clone_instance method which does a deep clone
302 of the instance structure created by &construct_instance
303 - added docs & tests for this
550d56db 304 - added Clone as a dependency
5f3c057a 305 - added &new_object and &clone_object convience methods to
306 return blessed new or cloned instances
2a7575a6 307 - they handle Class::MOP::Class singletons correctly too
5f3c057a 308 - added docs & tests for this
2a7575a6 309 - cleaned up the &constuct_class_instance so that it behaves
310 more like &construct_instance (and managed the singletons too)
550d56db 311 - added the &check_metaclass_compatibility method to make sure
312 that metaclasses are upward and downward compatible.
313 - added tests and docs for this
5f3c057a 314
99e5b7e8 315 * examples/
316 - adjusting code to use the &Class::MOP::Class::meta
317 fix detailed above
677eb158 318 - adjusting code to use the metaclass pragma
99e5b7e8 319
aa9c883e 3200.05 Sat Feb. 4, 2006
2e41896e 321 * Class::MOP::Class
322 - added the &attribute_metaclass and &method_metaclass
351bd7d4 323 attributes which contain a metaclass name to use for
2e41896e 324 attributes/methods respectively
351bd7d4 325
326 * Class::MOP
327 - bootstrap additional attributes for Class::MOP::Class
2e41896e 328
329 * examples/
330 - adjusted the example code and tests to use the new
331 &attribute_metaclass feature of Class::MOP::Class
aa9c883e 332 - added new example:
333 - LazyClass
2e41896e 334
d7c2cbe3 3350.04 Fri Feb. 3, 2006
d6fbcd05 336 * Class::MOP::Class
337 - some documentation suggestions from #perl6
338
339 * Class::MOP::Attribute
340 - improved error messages
341
342 * examples/
343 - added new examples:
344 - AttributesWithHistory
d7c2cbe3 345 - ClassEncapsultedAttributes
343203ee 346
9ec169fe 3470.03 Fri Feb. 3, 2006
348 - converted to Module::Build instead of EU::MM
349
350 * Class::MOP::Attribute
351 - refactored method generation code
352 - attributes are now associated with class directly
353
f71f4295 354 * examples/
9ec169fe 355 - refactored the InsideOut example to take advantage
356 of the Class::MOP::Attribute refactoring
f71f4295 357 - changed example files to .pod files and hide thier
358 package names from PAUSE (I don't want to own these
359 namespaces really, they are just examples)
9ec169fe 360
a57c7fa2 3610.02 Thurs Feb. 2, 2006
362 - moving examples from t/lib/* to examples/*
363 - adding POD documentation to the examples
364
a2e85e6c 3650.01 Thurs Feb. 2, 2006
7c90a1a8 366 - Initial release