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