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