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