f15190606300cc48e623c81d9cb6f53a64573f57
[gitmo/Class-MOP.git] / Changes
1 Revision history for Perl extension Class-MOP.
2
3 0.29_02
4     * Class::MOP::Class
5       - small change in &create so that it behaves 
6         properly when inherited
7
8 0.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
16     * Class::MOP::Class
17       - anon-classes are now properly garbage collected
18         - added tests for this 
19       - improved method modifier wrapping 
20
21     * Class::MOP::Instance
22       - added new instance protocol
23         - added tests for this
24       - changed all relevant modules and examples
25         - Class::MOP::Class
26         - Class::MOP::Attribute
27         - examples/*
28
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
44 0.26 Mon. April 24, 2006
45     * Class::MOP::Class
46       - added find_attribute_by_name method
47         - added tests and docs for this
48       - some small optimizations
49
50     * Class::MOP::Attribute
51       - some small optimizations
52
53 0.25 Thurs. April 20, 2006
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.
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
68     
69     * examples/
70       - adjusted all the examples to use the new attribute 
71         initialize_instance_slot method 
72
73 0.24 Tues. April 11, 2006
74     * Class::MOP::Class
75       - cleaned up how the before/after/around method 
76         modifiers get named with Sub::Name
77
78 0.23 Thurs. March 30, 2006
79         * Class::MOP::Class
80           - fixed the way attribute defaults are handled 
81             during instance construction (bug found by chansen)
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 
89
90 0.22 Mon. March 20, 2006
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
96 0.21 Wed. March 15, 2006
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
102 0.20 Thurs. March 2, 2006
103     - removed the dependency for Clone since 
104       we no longer to deep-cloning by default.
105     
106     * Class::MOP::Method
107       - added &package_name, &name and 
108         &fully_qualified_name methods, some of 
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
116
117     * Class::MOP::Class
118       - improved &get_package_variable
119           - &version and &superclasses now use it
120       - methods are now blessed into Class::MOP::Method
121         whenever possible
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
127       - added &find_next_method_by_name which finds the 
128         equivalent of SUPER::method_name
129
130 0.12 Thurs. Feb 23, 2006
131     - reduced the dependency on B, no need to always 
132       have the latest
133
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
139 0.11 Mon Feb. 20, 2006
140     * examples/
141       - added example of changing method dispatch order to C3
142       
143     * Class::MOP::Class
144       - changed how clone_instance behaves, it now only does a
145         shallow clone (see docs for more details)
146         - added docs and tests
147
148 0.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
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%
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.
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      
170     * examples/
171       - fixing the AttributesWithHistory example, it was broken.
172
173 0.06 Thurs Feb. 9, 2006
174     * metaclass
175       - adding new metaclass pragma to make setting up the 
176         metaclass a little more straightforward
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.
184
185     * Class::MOP::Class
186       - fixing minor meta-circularity issue with &meta, it 
187         is now more useful for subclasses
188       - added &get_attribute_map as an accessor for the 
189         hash of attribute meta objects
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
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
198           - added Clone as a dependency
199       - added &new_object and &clone_object convience methods to
200         return blessed new or cloned instances
201           - they handle Class::MOP::Class singletons correctly too
202           - added docs & tests for this
203       - cleaned up the &constuct_class_instance so that it behaves
204         more like &construct_instance (and managed the singletons too)
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
208           
209     * examples/
210       - adjusting code to use the &Class::MOP::Class::meta
211         fix detailed above
212       - adjusting code to use the metaclass pragma
213       
214 0.05 Sat Feb. 4, 2006
215     * Class::MOP::Class
216       - added the &attribute_metaclass and &method_metaclass
217         attributes which contain a metaclass name to use for 
218         attributes/methods respectively
219     
220     * Class::MOP
221       - bootstrap additional attributes for Class::MOP::Class 
222         
223     * examples/
224       - adjusted the example code and tests to use the new
225         &attribute_metaclass feature of Class::MOP::Class
226       - added new example:
227         - LazyClass
228
229 0.04 Fri Feb. 3, 2006
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
239         - ClassEncapsultedAttributes
240
241 0.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     
248     * examples/
249       - refactored the InsideOut example to take advantage 
250         of the Class::MOP::Attribute refactoring
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)
254
255 0.02 Thurs Feb. 2, 2006
256     - moving examples from t/lib/* to examples/*
257         - adding POD documentation to the examples
258
259 0.01 Thurs Feb. 2, 2006
260     - Initial release