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