foo
[gitmo/Class-MOP.git] / Changes
1 Revision history for Perl extension Class-MOP.
2
3 0.30 Sat. May 6, 2006
4     * Class::MOP::Class
5       - anon-classes are now properly garbage collected
6         - added tests for this 
7
8     * Class::MOP::Instance
9       - added new instance protocol
10         - added tests for this
11       - changed all relevant modules and examples
12         - Class::MOP::Class
13         - Class::MOP::Attribute
14         - examples/*
15
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
31 0.26 Mon. April 24, 2006
32     * Class::MOP::Class
33       - added find_attribute_by_name method
34         - added tests and docs for this
35       - some small optimizations
36
37     * Class::MOP::Attribute
38       - some small optimizations
39
40 0.25 Thurs. April 20, 2006
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.
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
55     
56     * examples/
57       - adjusted all the examples to use the new attribute 
58         initialize_instance_slot method 
59
60 0.24 Tues. April 11, 2006
61     * Class::MOP::Class
62       - cleaned up how the before/after/around method 
63         modifiers get named with Sub::Name
64
65 0.23 Thurs. March 30, 2006
66         * Class::MOP::Class
67           - fixed the way attribute defaults are handled 
68             during instance construction (bug found by chansen)
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 
76
77 0.22 Mon. March 20, 2006
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
83 0.21 Wed. March 15, 2006
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
89 0.20 Thurs. March 2, 2006
90     - removed the dependency for Clone since 
91       we no longer to deep-cloning by default.
92     
93     * Class::MOP::Method
94       - added &package_name, &name and 
95         &fully_qualified_name methods, some of 
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
103
104     * Class::MOP::Class
105       - improved &get_package_variable
106           - &version and &superclasses now use it
107       - methods are now blessed into Class::MOP::Method
108         whenever possible
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
114       - added &find_next_method_by_name which finds the 
115         equivalent of SUPER::method_name
116
117 0.12 Thurs. Feb 23, 2006
118     - reduced the dependency on B, no need to always 
119       have the latest
120
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
126 0.11 Mon Feb. 20, 2006
127     * examples/
128       - added example of changing method dispatch order to C3
129       
130     * Class::MOP::Class
131       - changed how clone_instance behaves, it now only does a
132         shallow clone (see docs for more details)
133         - added docs and tests
134
135 0.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
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%
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.
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      
157     * examples/
158       - fixing the AttributesWithHistory example, it was broken.
159
160 0.06 Thurs Feb. 9, 2006
161     * metaclass
162       - adding new metaclass pragma to make setting up the 
163         metaclass a little more straightforward
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.
171
172     * Class::MOP::Class
173       - fixing minor meta-circularity issue with &meta, it 
174         is now more useful for subclasses
175       - added &get_attribute_map as an accessor for the 
176         hash of attribute meta objects
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
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
185           - added Clone as a dependency
186       - added &new_object and &clone_object convience methods to
187         return blessed new or cloned instances
188           - they handle Class::MOP::Class singletons correctly too
189           - added docs & tests for this
190       - cleaned up the &constuct_class_instance so that it behaves
191         more like &construct_instance (and managed the singletons too)
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
195           
196     * examples/
197       - adjusting code to use the &Class::MOP::Class::meta
198         fix detailed above
199       - adjusting code to use the metaclass pragma
200       
201 0.05 Sat Feb. 4, 2006
202     * Class::MOP::Class
203       - added the &attribute_metaclass and &method_metaclass
204         attributes which contain a metaclass name to use for 
205         attributes/methods respectively
206     
207     * Class::MOP
208       - bootstrap additional attributes for Class::MOP::Class 
209         
210     * examples/
211       - adjusted the example code and tests to use the new
212         &attribute_metaclass feature of Class::MOP::Class
213       - added new example:
214         - LazyClass
215
216 0.04 Fri Feb. 3, 2006
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
226         - ClassEncapsultedAttributes
227
228 0.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     
235     * examples/
236       - refactored the InsideOut example to take advantage 
237         of the Class::MOP::Attribute refactoring
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)
241
242 0.02 Thurs Feb. 2, 2006
243     - moving examples from t/lib/* to examples/*
244         - adding POD documentation to the examples
245
246 0.01 Thurs Feb. 2, 2006
247     - Initial release