foo
[gitmo/Class-MOP.git] / Changes
CommitLineData
7c90a1a8 1Revision history for Perl extension Class-MOP.
2
e0a82090 30.29_03
4 ++ DEVELOPER RELEASE ++
5
6 created the Class::MOP::Package and
7 Class::MOP::Module classes to more
8 closely conform to Perl 6's meta model
be960ba1 9
10 created Class::MOP::Class::Immutable
11 which can be used to "close" a class
12 and then apply some optimizations
e0a82090 13
14 * Class::MOP::Class
15 - now inherits from Class::MOP::Module
16 - several methods moved to ::Module and
17 ::Package and now inherited
18 - added tests for this
19
20 ** API CHANGE **
21 - the Class::MOP::Class::*_package_variable
22 methods are all now methods of Class::MOP::Package
23 and called *_package_symbol instead. This is
24 because they are now more general purpose symbol
25 table manipulation methods.
c0cbf4d9 26
27 * Class::MOP::Instance
28 - added an is_inlinable method to allow other
29 classes to check before they attempt to optimize.
be960ba1 30 - added an inline_create_instance to inline
31 instance creation (of course)
32
e0a82090 33
cdfaa4cc 340.29_02 Thurs. June 22, 2006
35 ++ DEVELOPER RELEASE ++
df7b4119 36 * Class::MOP::Class
37 - small change in &create so that it behaves
38 properly when inherited
cdfaa4cc 39 - small fix to &clone_instance
df7b4119 40
667cecf3 410.29_01 Fri. May 12, 2006
42 ++ DEVELOPER RELEASE ++
43 - This release works in combination with
44 Moose 0.09_01, it is a developer release
45 because it introduces a new instance
46 sub-protocol and has not yet been
47 optimized.
48
40483095 49 * Class::MOP::Class
50 - anon-classes are now properly garbage collected
51 - added tests for this
195f5bf8 52 - improved method modifier wrapping
40483095 53
2bab2be6 54 * Class::MOP::Instance
1becdfcc 55 - added new instance protocol
2bab2be6 56 - added tests for this
57 - changed all relevant modules and examples
58 - Class::MOP::Class
59 - Class::MOP::Attribute
60 - examples/*
61
1becdfcc 62 * metaclass
63 - you no longer need to specify the metaclass
64 itself, if it is not there, Class::MOP::Class
65 is just assumed
66 - updated tests for this
67
68 * examples/
69 - added ArrayBasedStorage example to show
70 instance storage using ARRAY refs instead of
71 HASH refs.
72 - added tests for this
73 - InsideOutClass is totally revised using the
74 new instance protocol
75 - added more tests for this
76
93b4e576 770.26 Mon. April 24, 2006
e7f732e4 78 * Class::MOP::Class
79 - added find_attribute_by_name method
80 - added tests and docs for this
56a0b530 81 - some small optimizations
82
83 * Class::MOP::Attribute
84 - some small optimizations
e7f732e4 85
46666f33 860.25 Thurs. April 20, 2006
587aca23 87 * Class::MOP::Class
88 - added create_anon_class for creating anonymous classes
89 - added tests for this
90 - added get_all_metaclasses, get_all_metaclass_names
91 and get_all_metaclass_instances method to allow
92 access to all the cached metaclass objects.
bd4e03f9 93 - attribute slot initialization is now the responsibility
94 of the attribute itself, and construct_instance now
95 delegates appropriately
96
97 * Class::MOP::Attribute
98 - attribute slot initialization is now the responsibility
99 of the attribute itself, so we added a method for it
100 called initialize_instance_slot
fed4cee7 101
102 * examples/
103 - adjusted all the examples to use the new attribute
104 initialize_instance_slot method
587aca23 105
1daaa2b2 1060.24 Tues. April 11, 2006
8c936afc 107 * Class::MOP::Class
108 - cleaned up how the before/after/around method
109 modifiers get named with Sub::Name
110
b9dfbf78 1110.23 Thurs. March 30, 2006
a977cf65 112 * Class::MOP::Class
113 - fixed the way attribute defaults are handled
114 during instance construction (bug found by chansen)
b9dfbf78 115
116 * Class::MOP::Attribute
117 - read-only accessors ('reader') will now die if
118 passed more than one argument (attempting to write
119 to them basically)
120 - added tests for this
121 - adjusted all /example files to comply
a977cf65 122
f9eba090 1230.22 Mon. March 20, 2006
0eff2c16 124 * Class::MOP::Class
125 - localized $@ in the *_package_variable functions
126 because otherwise, it does ugly things in Moose.
127 - added test case for this
128
1988e85e 1290.21 Wed. March 15, 2006
2f6d5412 130 * Class::MOP::Class
131 - fixed issue where metaclasses are reaped from
132 our cache in global destruction, and so are not
133 available in DESTORY calls
134
96ceced8 1350.20 Thurs. March 2, 2006
d3cb0d4a 136 - removed the dependency for Clone since
137 we no longer to deep-cloning by default.
a4258ffd 138
139 * Class::MOP::Method
96ceced8 140 - added &package_name, &name and
141 &fully_qualified_name methods, some of
a4258ffd 142 which were formerly private subs in
143 Class::MOP::Class
144
145 * Class::MOP::Method::Wrapped
146 - allows for a method to be wrapped with
147 before, after and around modifiers
148 - added tests and docs for this feature
d3cb0d4a 149
150 * Class::MOP::Class
58d75218 151 - improved &get_package_symbol
96ceced8 152 - &version and &superclasses now use it
a4258ffd 153 - methods are now blessed into Class::MOP::Method
154 whenever possible
a4258ffd 155 - added methods to install CLOS-style method modifiers
156 - &add_before_method_modifier
157 - &add_after_method_modifier
158 - &add_around_method_modifier
159 - added tests and docs for these
96ceced8 160 - added &find_next_method_by_name which finds the
161 equivalent of SUPER::method_name
d3cb0d4a 162
1c020571 1630.12 Thurs. Feb 23, 2006
d89c0fad 164 - reduced the dependency on B, no need to always
165 have the latest
166
1c020571 167 * examples/
168 - added docs to the C3 method dispatch order test
169 - fixed missing Algorithm::C3 dependency by making
170 the test skip if it is not installed
171
0dea7280 1720.11 Mon Feb. 20, 2006
f3f5bd34 173 * examples/
174 - added example of changing method dispatch order to C3
a27ae83f 175
176 * Class::MOP::Class
19d4b5b8 177 - changed how clone_instance behaves, it now only does a
178 shallow clone (see docs for more details)
a27ae83f 179 - added docs and tests
f3f5bd34 180
3bf7644b 1810.10 Tues Feb. 14, 2006
182 ** This release was mostly about writing more tests and
183 cleaning out old and dusty code, the MOP should now
184 be considered "ready to use".
185
22286063 186 - adding more tests to get coverage up a little higher,
187 mostly testing errors and edge cases.
188 - test coverage is now at 99%
aa448b16 189
190 * Class::MOP
191 - no longer optionally exports to UNIVERSAL::meta or
192 creates a custom metaclass generator, use the
193 metaclass pragma instead.
22286063 194
195 * Class::MOP::Class
196 - fixed a number of minor issues which came up in the
197 error/edge-case tests
198
199 * Class::MOP::Attribute
200 - fixed a number of minor issues which came up in the
201 error/edge-case tests
202
0b8eb325 203 * examples/
ea263060 204 - fixing the AttributesWithHistory example, it was broken.
663f8198 205
550d56db 2060.06 Thurs Feb. 9, 2006
677eb158 207 * metaclass
550d56db 208 - adding new metaclass pragma to make setting up the
677eb158 209 metaclass a little more straightforward
7b31baf4 210
211 * Class::MOP
212 - clean up bootstrapping to include more complete
213 attribute definitions for Class::MOP::Class and
214 Class::MOP::Attribute (accessors, readers, writers,
215 etc.) ... it is redundant, but is useful meta-info
216 to have around.
677eb158 217
99e5b7e8 218 * Class::MOP::Class
219 - fixing minor meta-circularity issue with &meta, it
220 is now more useful for subclasses
7b31baf4 221 - added &get_attribute_map as an accessor for the
222 hash of attribute meta objects
c9e77dbb 223 - &compute_all_applicable_attributes now just returns
224 the attribute meta-object, rather than the HASH ref
225 since all the same info can be gotten from the
226 attribute meta-object itself
227 - updated docs & tests to reflect
5f3c057a 228 - added &clone_instance method which does a deep clone
229 of the instance structure created by &construct_instance
230 - added docs & tests for this
550d56db 231 - added Clone as a dependency
5f3c057a 232 - added &new_object and &clone_object convience methods to
233 return blessed new or cloned instances
2a7575a6 234 - they handle Class::MOP::Class singletons correctly too
5f3c057a 235 - added docs & tests for this
2a7575a6 236 - cleaned up the &constuct_class_instance so that it behaves
237 more like &construct_instance (and managed the singletons too)
550d56db 238 - added the &check_metaclass_compatibility method to make sure
239 that metaclasses are upward and downward compatible.
240 - added tests and docs for this
5f3c057a 241
99e5b7e8 242 * examples/
243 - adjusting code to use the &Class::MOP::Class::meta
244 fix detailed above
677eb158 245 - adjusting code to use the metaclass pragma
99e5b7e8 246
aa9c883e 2470.05 Sat Feb. 4, 2006
2e41896e 248 * Class::MOP::Class
249 - added the &attribute_metaclass and &method_metaclass
351bd7d4 250 attributes which contain a metaclass name to use for
2e41896e 251 attributes/methods respectively
351bd7d4 252
253 * Class::MOP
254 - bootstrap additional attributes for Class::MOP::Class
2e41896e 255
256 * examples/
257 - adjusted the example code and tests to use the new
258 &attribute_metaclass feature of Class::MOP::Class
aa9c883e 259 - added new example:
260 - LazyClass
2e41896e 261
d7c2cbe3 2620.04 Fri Feb. 3, 2006
d6fbcd05 263 * Class::MOP::Class
264 - some documentation suggestions from #perl6
265
266 * Class::MOP::Attribute
267 - improved error messages
268
269 * examples/
270 - added new examples:
271 - AttributesWithHistory
d7c2cbe3 272 - ClassEncapsultedAttributes
343203ee 273
9ec169fe 2740.03 Fri Feb. 3, 2006
275 - converted to Module::Build instead of EU::MM
276
277 * Class::MOP::Attribute
278 - refactored method generation code
279 - attributes are now associated with class directly
280
f71f4295 281 * examples/
9ec169fe 282 - refactored the InsideOut example to take advantage
283 of the Class::MOP::Attribute refactoring
f71f4295 284 - changed example files to .pod files and hide thier
285 package names from PAUSE (I don't want to own these
286 namespaces really, they are just examples)
9ec169fe 287
a57c7fa2 2880.02 Thurs Feb. 2, 2006
289 - moving examples from t/lib/* to examples/*
290 - adding POD documentation to the examples
291
a2e85e6c 2920.01 Thurs Feb. 2, 2006
7c90a1a8 293 - Initial release