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