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