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