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