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