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