no ref in the defaults
[gitmo/Class-MOP.git] / Changes
CommitLineData
7c90a1a8 1Revision history for Perl extension Class-MOP.
2
148b4697 30.33
4 * Class::MOP::Attribute
5 - reference values (other than CODE refs)
6 are no longer allowed for defaults
7 - added tests for this
8
716c5765 90.32 Sat. Aug. 12, 2006
6e57504d 10 + added Class::MOP::Object so that the
11 metamodel is more complete (and closer
12 to what Perl 6 will probably be).
13
9ca19585 14 * Class::MOP::Package
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
6e57504d 19 - this class is now a subclass of
20 Class::MOP::Object
716c5765 21 - added some tests to reflect this
9ca19585 22
23 * Class::MOP::Class
24 - refactored all symbol table access to
25 use Class::MOP::Package methods instead
f0480c45 26
27 * Class::MOP::Module
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
716c5765 34 - I have added $AUTHORITY to all the modules
35 - added tests for this
9ca19585 36
f0480c45 37 * Class::MOP::Instance
38 - added &deinitialize_slot for removing slots
39 from an instance
40 - added tests for this
9ca19585 41
42 * Class::MOP::Attribute
43 - added support for &deinitialize_slot for removing
44 slots from an instance
45 - added tests for this
46
1a09d9cc 470.31 Sat. July 15, 2006
48
b679e644 49 * Class::MOP::Class
50 - added &find_method_by_name to locate a method
51 anywhere within the class hierarchy
52
53 * Class::MOP::Attribute
54 - added &set_value and &get_value for getting
55 the value of the attribute for a particular
56 instance.
57
373a16ae 580.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 ---------------------------------------
e0a82090 66
373a16ae 67 * Created Class::MOP::Class::Immutable
be960ba1 68
373a16ae 69 * Created the Class::MOP::Package and
70 Class::MOP::Module classes to more
71 closely conform to Perl 6's meta-model
e0a82090 72
73 * Class::MOP::Class
74 - now inherits from Class::MOP::Module
75 - several methods moved to ::Module and
76 ::Package and now inherited
77 - added tests for this
c0cbf4d9 78
79 * Class::MOP::Instance
80 - added an is_inlinable method to allow other
81 classes to check before they attempt to optimize.
be960ba1 82 - added an inline_create_instance to inline
83 instance creation (of course)
84
2ba153a9 85 ** API CHANGE **
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.
e0a82090 91
cdfaa4cc 920.29_02 Thurs. June 22, 2006
93 ++ DEVELOPER RELEASE ++
df7b4119 94 * Class::MOP::Class
95 - small change in &create so that it behaves
96 properly when inherited
cdfaa4cc 97 - small fix to &clone_instance
df7b4119 98
667cecf3 990.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
105 optimized.
106
40483095 107 * Class::MOP::Class
108 - anon-classes are now properly garbage collected
109 - added tests for this
195f5bf8 110 - improved method modifier wrapping
40483095 111
2bab2be6 112 * Class::MOP::Instance
1becdfcc 113 - added new instance protocol
2bab2be6 114 - added tests for this
115 - changed all relevant modules and examples
116 - Class::MOP::Class
117 - Class::MOP::Attribute
118 - examples/*
119
1becdfcc 120 * metaclass
121 - you no longer need to specify the metaclass
122 itself, if it is not there, Class::MOP::Class
123 is just assumed
124 - updated tests for this
125
126 * examples/
127 - added ArrayBasedStorage example to show
128 instance storage using ARRAY refs instead of
129 HASH refs.
130 - added tests for this
131 - InsideOutClass is totally revised using the
132 new instance protocol
133 - added more tests for this
134
93b4e576 1350.26 Mon. April 24, 2006
e7f732e4 136 * Class::MOP::Class
137 - added find_attribute_by_name method
138 - added tests and docs for this
56a0b530 139 - some small optimizations
140
141 * Class::MOP::Attribute
142 - some small optimizations
e7f732e4 143
46666f33 1440.25 Thurs. April 20, 2006
587aca23 145 * Class::MOP::Class
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.
bd4e03f9 151 - attribute slot initialization is now the responsibility
152 of the attribute itself, and construct_instance now
153 delegates appropriately
154
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
fed4cee7 159
160 * examples/
161 - adjusted all the examples to use the new attribute
162 initialize_instance_slot method
587aca23 163
1daaa2b2 1640.24 Tues. April 11, 2006
8c936afc 165 * Class::MOP::Class
166 - cleaned up how the before/after/around method
167 modifiers get named with Sub::Name
168
b9dfbf78 1690.23 Thurs. March 30, 2006
a977cf65 170 * Class::MOP::Class
171 - fixed the way attribute defaults are handled
172 during instance construction (bug found by chansen)
b9dfbf78 173
174 * Class::MOP::Attribute
175 - read-only accessors ('reader') will now die if
176 passed more than one argument (attempting to write
177 to them basically)
178 - added tests for this
179 - adjusted all /example files to comply
a977cf65 180
f9eba090 1810.22 Mon. March 20, 2006
0eff2c16 182 * Class::MOP::Class
183 - localized $@ in the *_package_variable functions
184 because otherwise, it does ugly things in Moose.
185 - added test case for this
186
1988e85e 1870.21 Wed. March 15, 2006
2f6d5412 188 * Class::MOP::Class
189 - fixed issue where metaclasses are reaped from
190 our cache in global destruction, and so are not
191 available in DESTORY calls
192
96ceced8 1930.20 Thurs. March 2, 2006
d3cb0d4a 194 - removed the dependency for Clone since
195 we no longer to deep-cloning by default.
a4258ffd 196
197 * Class::MOP::Method
96ceced8 198 - added &package_name, &name and
199 &fully_qualified_name methods, some of
a4258ffd 200 which were formerly private subs in
201 Class::MOP::Class
202
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
d3cb0d4a 207
208 * Class::MOP::Class
58d75218 209 - improved &get_package_symbol
96ceced8 210 - &version and &superclasses now use it
a4258ffd 211 - methods are now blessed into Class::MOP::Method
212 whenever possible
a4258ffd 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
96ceced8 218 - added &find_next_method_by_name which finds the
219 equivalent of SUPER::method_name
d3cb0d4a 220
1c020571 2210.12 Thurs. Feb 23, 2006
d89c0fad 222 - reduced the dependency on B, no need to always
223 have the latest
224
1c020571 225 * examples/
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
229
0dea7280 2300.11 Mon Feb. 20, 2006
f3f5bd34 231 * examples/
232 - added example of changing method dispatch order to C3
a27ae83f 233
234 * Class::MOP::Class
19d4b5b8 235 - changed how clone_instance behaves, it now only does a
236 shallow clone (see docs for more details)
a27ae83f 237 - added docs and tests
f3f5bd34 238
3bf7644b 2390.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".
243
22286063 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%
aa448b16 247
248 * Class::MOP
249 - no longer optionally exports to UNIVERSAL::meta or
250 creates a custom metaclass generator, use the
251 metaclass pragma instead.
22286063 252
253 * Class::MOP::Class
254 - fixed a number of minor issues which came up in the
255 error/edge-case tests
256
257 * Class::MOP::Attribute
258 - fixed a number of minor issues which came up in the
259 error/edge-case tests
260
0b8eb325 261 * examples/
ea263060 262 - fixing the AttributesWithHistory example, it was broken.
663f8198 263
550d56db 2640.06 Thurs Feb. 9, 2006
677eb158 265 * metaclass
550d56db 266 - adding new metaclass pragma to make setting up the
677eb158 267 metaclass a little more straightforward
7b31baf4 268
269 * Class::MOP
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
274 to have around.
677eb158 275
99e5b7e8 276 * Class::MOP::Class
277 - fixing minor meta-circularity issue with &meta, it
278 is now more useful for subclasses
7b31baf4 279 - added &get_attribute_map as an accessor for the
280 hash of attribute meta objects
c9e77dbb 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
5f3c057a 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
550d56db 289 - added Clone as a dependency
5f3c057a 290 - added &new_object and &clone_object convience methods to
291 return blessed new or cloned instances
2a7575a6 292 - they handle Class::MOP::Class singletons correctly too
5f3c057a 293 - added docs & tests for this
2a7575a6 294 - cleaned up the &constuct_class_instance so that it behaves
295 more like &construct_instance (and managed the singletons too)
550d56db 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
5f3c057a 299
99e5b7e8 300 * examples/
301 - adjusting code to use the &Class::MOP::Class::meta
302 fix detailed above
677eb158 303 - adjusting code to use the metaclass pragma
99e5b7e8 304
aa9c883e 3050.05 Sat Feb. 4, 2006
2e41896e 306 * Class::MOP::Class
307 - added the &attribute_metaclass and &method_metaclass
351bd7d4 308 attributes which contain a metaclass name to use for
2e41896e 309 attributes/methods respectively
351bd7d4 310
311 * Class::MOP
312 - bootstrap additional attributes for Class::MOP::Class
2e41896e 313
314 * examples/
315 - adjusted the example code and tests to use the new
316 &attribute_metaclass feature of Class::MOP::Class
aa9c883e 317 - added new example:
318 - LazyClass
2e41896e 319
d7c2cbe3 3200.04 Fri Feb. 3, 2006
d6fbcd05 321 * Class::MOP::Class
322 - some documentation suggestions from #perl6
323
324 * Class::MOP::Attribute
325 - improved error messages
326
327 * examples/
328 - added new examples:
329 - AttributesWithHistory
d7c2cbe3 330 - ClassEncapsultedAttributes
343203ee 331
9ec169fe 3320.03 Fri Feb. 3, 2006
333 - converted to Module::Build instead of EU::MM
334
335 * Class::MOP::Attribute
336 - refactored method generation code
337 - attributes are now associated with class directly
338
f71f4295 339 * examples/
9ec169fe 340 - refactored the InsideOut example to take advantage
341 of the Class::MOP::Attribute refactoring
f71f4295 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)
9ec169fe 345
a57c7fa2 3460.02 Thurs Feb. 2, 2006
347 - moving examples from t/lib/* to examples/*
348 - adding POD documentation to the examples
349
a2e85e6c 3500.01 Thurs Feb. 2, 2006
7c90a1a8 351 - Initial release