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