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