changelog
[gitmo/Class-MOP.git] / Changes
1 Revision history for Perl extension Class-MOP.
2
3 0.82_02 Fri, April 24, 2009
4     * Class::MOP::Method::Inlined
5       - Don't inline if the expected method is not defined at all (happens with
6         e.g. Moose::Object::_new is the expected method due to an overridden
7         name)
8     * Tests
9       - Some tests were trying to load Class::MOP::Immutable, which
10         was removed in 0.82_01.
11
12 0.82_01 Thu, April 23, 2009
13     * Class::MOP::Immutable (and others)
14       - Refactor the immutability system to use a pre-defined class
15         for the immutable metaclass of Class::MOP::Class::Immutable::$class
16       - Rather than generating methods into this class every time, use
17         a Trait (basic mixin) to supply the cached methods
18       - Remove the hack that returns the mutable metaclass for
19         metacircularity in order to provide consistent meta-metaclasses
20         for the Moose compatibility handling code
21         (mst broke it, nothingmuch fixed it)
22
23 0.82 Mon, April 20, 2009
24     * Various
25       - The deprecation wrappers for some renamed methods were not
26         passing arguments to the new method. (nothingmuch)
27
28     * Class::MOP::Immutable
29       - Warn during immutablization if the local class provides its own
30         constructor, to parallel the warning in Moose when a superclass
31         provides its own constructor (doy)
32
33 0.81 Tue, April 7, 2009
34     * Class::MOP
35     * Class::MOP::Class
36     * Class::MOP::Instance
37     * Class::MOP::Attribute
38     * Class::MOP::Method::Accessor
39     * Class::MOP::Method::Constructor
40       - Include stack traces in the deprecation warnings introduced in
41         0.80_01. (Florian Ragwitz)
42
43     * MOP.xs
44       - Avoid c compiler warnings by declaring some unused function
45         arguments. (Florian Ragwitz)
46
47 0.80_01 Sun, April 5, 2009
48     * Makefile.PL
49       - Make sure to preserve any compiler flags already defined in
50         Config.pm. Patch by Vincent Pit. RT #44739.
51
52     * Many methods have been renamed with a leading underscore, and a
53       few have been deprecated entirely. The methods with a leading
54       underscore are consider "internals only". People writing
55       subclasses or extensions to Class::MOP should feel free to
56       override them, but they are not for "public" use.
57
58       - Class::MOP::Class
59         - construct_class_instance => _construct_class_instance (use new_object)
60         - construct_instance => _construct_instance (use new_object)
61         - check_metaclass_compatibility => _check_metaclass_compatibility
62         - create_meta_instance => _create_meta_instance (use get_meta_instance)
63         - clone_instance => _clone_instance (use clone_object)
64         - compute_all_applicable_methods is deprecated, use get_all_methods
65         - compute_all_applicable_attributes is deprecated, use get_all_attributes
66
67       - Class::MOP::Instance
68         - bless_instance_structure is deprecated and will be removed
69           in a future release
70
71       - Class::MOP::Module
72         - create has been renamed to _instantiate_module. This method
73           does not construct an object, it evals some code that
74           creates the relevant package in Perl's symbol table.
75
76       - Class::MOP::Method::Accessor
77         - initialize_body => _initialize_body (this is always called
78           when an object is constructed)
79         - /(generate_.*_method(?:_inline)?)/ => '_' . $1
80
81       - Class::MOP::Method::Constructor
82         - initialize_body => _initialize_body (this is always called
83           when an object is constructed)
84         - /(generate_constructor_method(?:_inline)?)/ => '_' . $1
85         - attributes => _attributes
86         - meta_instance => _meta_instance
87
88 0.80 Wed, April 1, 2009
89     * Class::MOP::*
90       - Call user_class->meta in fewer places, with the eventual goal
91         of allowing the user to rename or exclude ->meta
92         altogether. Instead uses Class::MOP::class_of. (Sartak)
93
94     * Class::MOP
95       - New class_of function that should be used to retrieve a
96         metaclass. This is unlike get_metaclass_by_name in that it
97         accepts instances, not just class names. (Sartak)
98
99     * Class::MOP
100       - load_first_existing_class didn't actually load the first
101         existing class; instead, it loaded the first existing and
102         compiling class.  It now throws an error if a class exists (in
103         @INC) but fails to compile.  (hdp)
104
105     * Class::MOP
106     * Class::MOP::Class
107       - we had some semi-buggy code that purported to provide a
108         HAS_ISAREV based on whether mro had get_isarev (due to an
109         oversight, it always returned 1). Since mro and MRO::Compat
110         have always had get_isarev, HAS_ISAREV was pointless. This
111         insight simplified the subclasses method by deleting the
112         pure-perl fallback. HAS_ISAREV is now deprecated. (Sartak)
113
114 0.79 Fri, March 29, 2009
115     * No changes from 0.78_02.
116
117 0.78_02 Thu, March 26, 2009
118     * Class::MOP::Class
119     * Class::MOP::Immutable
120       - A big backwards-incompatible refactoring of the Immutable API,
121         and the make_immutable/make_mutable pieces of the Class
122         API. The core __PACKAGE__->meta->make_immutable API remains
123         the same, however, so this should only affect the most
124         guts-digging code.
125
126     * XS code
127       - The XS code used a macro, XSPROTO, that's only in 5.10.x. This
128         has been fixed to be backwards compatible with 5.8.x.
129
130     * Class::MOP::Class
131       - Add a hook for rebless_instance_away (Sartak)
132       - Use blessed instead of ref to get an instance's class name
133         in rebless_instance. (Sartak)
134
135 0.78_01 Wed, March 18, 2009
136     * Class::MOP::*
137       - Revised and reorganized all of the API documentation. All
138         classes now have (more or less) complete API documentation.
139
140     * Class::MOP::Class
141     * Class::MOP::Instance
142       - Reblessing into a package that supports overloading wasn't
143         properly adding overload magic to the object due to a bug
144         in (at least) 5.8.8. We now use $_[1] directly which seems
145         to set the magic properly. (Sartak)
146
147     * Class::MOP::Attribute
148       - The process_accessors method is now private. A public alias
149         exists (and will stick around for a few releases), but it
150         warns that calling the public method is deprecated.
151
152     * Class::MOP::Method::Generated
153       - Removed the new and _new methods, since this is an abstract
154         base class, and all existing subclasses implement their own
155         constructors.
156
157     * MOP.xs
158       - Stop is_class_loaded from thinking a class is loaded if it
159         only has an empty GV (Florian Ragwitz).
160         - Add a test for this (Yappo).
161       - Refactor get_all_package_symbols to allow short-circuiting
162         (Florian Ragwitz).
163         - Use this in is_class_loaded (Florian Ragwitz).
164       - Stop segfaulting when trying to get the name from a sub that's
165         still being compiled (Florian Ragwitz).
166         - Add tests for this (Florian Ragwitz).
167       - Prefix all public symbols with "mop_" (Florian Ragwitz).
168       - Clean up and simplify prehashing of hash keys (Florian Ragwitz).
169       - Simplify creating simple xs reader methods (Florian Ragwitz).
170       - Make everything compile with c++ compilers (Florian Ragwitz).
171       - Upgrade ppport.h from 3.14 to 3.17 (Florian Ragwitz).
172
173     * Tests
174       - Remove optional test plans for tests depending on Sub::Name as
175         we have a hard dependency on Sub::Name anyway (Florian Ragwitz).
176
177     * Makefile.PL
178       - Rebuild all c code if mop.h has changed (Florian Ragwitz)
179
180 0.78 Mon, February 23, 2009
181     * No changes from 0.77_01
182
183 0.77_01 Sun, February 22, 2009
184     * Everything
185       - This package now requires its XS components. Not using
186         Sub::Name lead to different behavior and bugginess in the pure
187         Perl version of the code. A Moose test would fail when run
188         against the pure Perl version of this code.
189
190     * Class::MOP::Instance
191       - The inline_* methods now quote attribute names themselves, and
192         don't expect to receive a quoted value.
193
194
195 0.77 Sat, February 14, 2009
196     * MOP.xs
197       - Avoid assertion errors on debugging perls in is_class_loaded
198         (Florian Ragwitz)
199
200     * Class::MOP
201       - Fixed various corner cases where is_class_loaded incorrectly
202         returned true for a class that wasn't really loaded. (Dave
203         Rolsky)
204
205     * Class::MOP::Class
206       - Add get_all_method_names (Sartak)
207       - Add a wrapped_method_metaclass attribute (Florian Ragwitz)
208
209     * Class::MOP::Package
210       - Disable deprecated get_all_package_symbols in list
211         context. (Florian Ragwitz)
212
213     * Makefile.PL
214       - Make sure we generate a BSD-compatible Makefile (Florian
215         Ragwitz)
216
217     * Class::MOP::Class
218       - The misspelled "check_metaclass_compatability" method we've
219         kept around for backwards compat_i_bility will be removed in a
220         near future release. You've been warned.
221
222 0.76 Thu, January 22, 2009
223     * Class::MOP::Method::Generated
224       - Added new private methods to support code generation, which
225         are being used by Moose and can be used by MooseX
226         authors. (mst)
227       - Generated methods are now generated with a #line directive
228         reflecting the source of the generated method. (nothingmuch)
229
230     * Class::MOP::Class
231       - Clarified documentation of methods that return
232         Class::MOP::Method objects. (doy)
233
234     * Class::MOP
235       - Clarified documentation of the metaclass cache methods. (Sartak)
236
237     * Tests
238       - Add test showing how the xs Class::MOP::is_class_loaded can
239         be made to operate differently to the pure perl version (t0m)
240
241 0.75 Wed, December 31, 2008
242     * Class::MOP::Class
243       - A class that was made immutable and then mutable could end up
244         sharing an immutable transformer object
245         (Class::MOP::Immutable) with other classes, leading to all
246         sorts of odd bugs. Reported by t0m. (Dave Rolsky)
247
248 0.74 Tue, December 25, 2008
249     * MOP.xs
250       - Add an xs implementation of Class::MOP::is_class_loaded (closes
251         RT#41862). Based on a patch by Goro Fuji. (Florian Ragwitz)
252       - Changed internals to make prehashing of hash keys easier and less
253         error-prone. (Florian Ragwitz)
254     * Class::MOP::Class
255       - Fix documentation to show that around modifiers happen on both
256         sides of the modified method. (Dave Rolsky)
257
258 0.73 Tue, December 16, 2008
259     * MOP.xs
260       - Don't use Perl_mro_meta_init. It's not part of the public perl
261         api. Fixes failures to build on Win32 (RT #41750).  (Florian
262         Ragwitz)
263     * t/082_get_code_info.t
264       - Add $^P &= ~0x200; (per Ovid's suggestion) in order to not
265         munger anonymous subs when under -d and so making the tests
266         succeed in that case.
267
268 0.72 Mon, December 8, 2008
269     * Class::MOP::Package
270       - Pass options to _new, so subclass' attributes can be
271         initialized (Sartak)
272     * Class::MOP::Method
273       - In the docs, indicate that package_name and name are required
274         when calling ->wrap (Stefan O'Rear)
275
276 0.71_02 Fri, December 5, 2008
277     * Class::MOP::Immutable
278       - Added a new attribute, inlined_constructor, which is true if
279         the constructor was inlined.
280     * Class::MOP::Package
281       - Make get_all_package_symbols return a hash ref in scalar
282         context and deprecate calling it in list context with a
283         warning. (Florian Ragwitz)
284     * MOP.xs
285       - Various improvements and refactoring, making things more robust and
286         easier to maintain. (Florian Ragwitz)
287
288 0.71_01 Wed, December 3, 2008
289     * Class::MOP::Method
290       - Add an "execute" method to invoke the body so
291         we can avoid using the coderef overload (Sartak)
292     * Class::MOP::Immutable
293       - When we memoize methods, get their results lazily
294         to remove some compile-time cost (Sartak)
295       - Small speedup from eliminating several method
296         calls (Sartak)
297     * Class::MOP::Class
298       - Some small internal tweaks to try to reduce the number of
299         times we call get_method_map when bootstrapping the MOP. This
300         might make loading Class::MOP (and Moose) a little
301         faster. (Dave Rolsky)
302       - Implemented an optional XS version of get_method_map. Mostly
303         taken from a patch by Goro Fuji (rt.cpan.org #41080), with
304         help form Florian Ragwitz. (Dave Rolsky)
305       - Make the behaviour of of get_all_package_symbols (and
306         therefore get_method_map) consistent for stub methods. Report
307         and test by Goro Fuji (rt.cpan.org #41255). (Florian Ragwitz)
308
309 0.71 Wed November 26, 2008
310     * Class::MOP::Class
311     * Class::MOP::Module
312       - Actual package creation has moved upward from
313         Class to Module so that Moose roles can share
314         the code (Sartak)
315
316 0.70_01 Mon, November 19, 2008
317     * Class::MOP
318       - Fixes for failures with blead (Florian Ragwitz)
319       - Silenced compiler warnings (Florian Ragwitz)
320
321 0.70 Fri, November 14, 2008
322     * Class::MOP
323       - Fixed an odd corner case where the XS version of
324         get_all_package_symbols could cause a segfault. This only
325         happened with inlined constants in Perl 5.10.0 (Florian
326         Ragwitz)
327
328 0.69 Fri, November 7, 2008
329     * Class::MOP::Method::Wrapped
330       - Added introspection methods for method modifiers (Dave Rolsky)
331
332
333 0.68 Fri October 24, 2008
334     * Class::MOP
335       - Make load_class require by file name instead of module name.
336         This stops confusing error messages when loading '__PACKAGE__'.
337         (Florian Ragwitz)
338       - Add load_one_class_of function to enable you to load one of a
339         list of classes, rather than having to call load_class multiple
340         times in an eval. (t0m)
341
342 0.67 Tue October 14, 2008
343     * Class::MOP::Class
344       - Call a method on the class after setting the superclass list
345         so that we can get Perl to detect cycles before MRO::Compat
346         spirals into an infinite loop (sartak)
347         - Reported by Schwern, [rt.cpan.org #39001]
348       - In create(), pass unused options on to initialize()
349         - added test for this
350
351 0.66 Sat September 20, 2008
352     !! This release has an incompatible change regarding !!
353        introspection of a class's method with Class::MOP::Class !!
354
355     * Tests and XS
356       - We (us maintainers) now run all tests with XS and then without
357         XS, which should help us catch skew between the XS/pure Perl
358         code. (Dave Rolsky)
359
360     * Class::MOP::Class
361       ! The alias_method method has been deprecated. It now simply
362         calls add_method instead. There is no distinction between
363         aliased methods and "real" methods.
364
365         This means that methods added via alias_method now show up as
366         part of the class's method list/map. This is a backwards
367         incompatible change, but seems unlikely to break any
368         code. Famous last words. (Dave Rolsky)
369
370     * Class::MOP::Class
371       - Fixed the spelling of "compatibility", but we still have a
372         "check_metaclass_compatability" method for backwards
373         compatibility.
374
375 0.65 Mon September 1, 2008
376     For those not following the series of dev releases, the changes
377     from 0.64 from 0.65 can mostly be summed up as a lot performance
378     improvements by nothingmuch, including new optional XS versions of
379     some methods. Also, Class::MOP now works _without_ any XS modules,
380     for sad systems without a compiler.
381
382     * Class::MOP::Method
383       - Added name and package_name XS accessors, and make sure all
384         the XS and Perl versions work the same way. (Dave Rolsky)
385
386     * MOP.xs
387       - The XS versions of various methods just returned undef when
388         called class methods, rather than dying like the pure Perl
389         versions. (Dave Rolsky)
390
391 0.64_07 Fri August 29, 2008
392     * Class::MOP
393       - Silenced warnings that managed to break Moose tests when XS
394         was loaded. (Dave Rolsky)
395       - Some XS versions of methods were ignored because of typos in
396         MOP.xs. (Dave Rolsky)
397
398 0.64_06 Mon August 25, 2008
399     * Class::MOP (MOP.xs)
400       - Another MS VC++ fix, cannot declare a variable in the middle
401         of a scope (Taro Nishino).
402
403 0.64_05 Sun August 24, 2008
404     * Class::MOP
405       - None of the dev releases actually loaded the XS properly, but
406         we silently fell back to the pure Perl version of the
407         code. (Dave Rolsky)
408
409     * Class::MOP (MOP.xs)
410       - Replaced some code that used functions not available on Visual
411         C++ with some Perl XS API bits (Dave Rolsky).
412
413 0.64_04 Sat August 23, 2008
414     * Class::MOP::Class
415       - Workaround a bug in 5.8.1's goto sub (nothingmuch)
416
417     * pod.t and pod_coveraget.t
418       - These are no longer shipped with the tarball because of bogus
419         failures from CPAN testers. (Dave Rolsky)
420
421 0.64_03 Thu August 21, 2008
422     * Class::MOP::Package
423       - Some (legit) code was misparsed by earlier 5.8.x
424         releases. (nothingmuch)
425
426     * Class::MOP
427       - Fix a constant in void context warning (nothingmuch)
428
429 0.64_02 Thu August 21, 2008
430     * Makefile.PL and Class::MOP
431       - Explicitly require Perl 5.8.0+ (Dave Rolsky)
432
433     * Makefile.PL
434       - Add missing prereqs that got lost in the switch away from
435         Module::Install.
436
437     * Class::MOP::Instance
438       - New method - get_all_attributes (nothingmuch)
439
440 0.64_01 Wed August 20, 2008
441     * Makefile.PL
442       - We now check to see if you have a compiler. If you don't, the
443         module installs without some XS bits, but will work the same
444         as with XS. This should make it easier to install on platforms
445         without a compiler (like Windows). (Dave Rolsky)
446
447     * many modules
448       - Perl 6 style attribute naming replaced with sane style ('methods', not
449         '%!methods'). These changes should not impact any existing API uses.
450         (nothingmuch).
451
452     * many modules
453       - Quite a number of optimizations based on profiling, including
454         allowing constructors to take hash references instead of
455         hashes, duplicating some frequently used code in XS, and
456         making constructors immutable. These changes should not impact
457         any existing API uses. (nothingmuch)
458
459     * Many modules
460       - Constructors now respect the meta attributes of their subclasses,
461         facilitating MOP extensibility. More related changes will happen in the
462         next several releases. (nothingmuch)
463
464     * Class::MOP::Class
465       - New method - get_all_methods, replaces the deprecated
466         compute_all_applicable_methods. get_all_attributes provided for
467         consistency (nothingmuch)
468       - New method - wrap_method was refactored out of get_method_map
469         (nothingmuch)
470       - New API for meta instance invalidation - invalidate_meta_instance,
471         invalidate_meta_instances, add_dependent_meta_instance,
472         remove_dependent_meta_instance, called automatically when attribute
473         definitions change and allows notification of dependent subclasses.
474         (nothingmuch)
475
476 0.64 Sun August 3, 2008
477     * Class::MOP::Immutable
478       - fixing subtle edge case in immutable when you
479         call ->meta (stevan)
480       - clean up option processing (nothingmuch)
481
482     * Class::MOP::Instance
483       - inlined initialize slot didn't match
484         non-inlined (nothingmuch)
485
486 0.63 Mon July 7, 2008
487     * Class::MOP
488       - load_class will initialize a metaclass even if
489         the class is already loaded (sartak)
490       - load_class now returns the metaclass instance
491         instead of just 1 (sartak)
492
493     * elsewhere
494       - better error messages (sartak and Dave Rolsky)
495
496 0.62 Wed June 18, 2008
497     - in is_class_loaded, recognize scalar references (as opposed to globs) in
498       the symbol table as methods (these are optimized constant subs)
499
500 0.61 Fri. June 13, 2008
501     - Okay, lets give this another try and see if PAUSE 
502       recognizes it correct this time.
503
504 0.60 Thurs. Jun 12, 2008
505     - Fixed a version number issue by bumping all modules
506       to 0.60.
507
508 0.59 Thurs. Jun 12, 2008
509     !! Several fixes resulting in yet another 25-30% speedup !!
510
511     * Class::MOP::Class
512       - now stores the instance of the instance 
513         metaclass to avoid needless recomputation
514         and deletes it when the cache is blown
515       - introduce methods to query Class::MOP::Class for 
516         the options used to make it immutable as well as
517         the proper immutable transformer. (groditi)        
518
519     * Class::MOP::Package
520       - {add, has, get, remove}_package_symbol all 
521         now accept a HASH ref argument as well as the
522         string. All internal usages now use the HASH
523         ref version.
524
525     * Class::MOP
526       - MOP.xs does sanity checks on the coderef 
527         to avoid a segfault
528       - is_class_loaded check now uses code that
529         was improved in Moose's ClassName type
530         check (Sartak)
531       - nonsensical (undef, empty, reference) class
532         names now throw a more direct error in
533         load_class (Sartak)
534         - tests for this and other aspects of
535           load_class (Sartak)
536     
537     * Class::MOP
538       Class::MOP::Class      
539       Class::MOP::Method
540       Class::MOP::Method::Wrapped
541       Class::MOP::Attribute
542       - switched usage of reftype to ref because 
543         it is much faster
544
545 0.58 Thurs. May 29, 2008
546     (late night release engineering)--
547     
548     - fixing the version is META.yml, no functional 
549       changes in this release
550
551 0.57 Wed. May 28, 2008
552     !! Several speedups resulting in 20-25% speedups !!
553     || (thanks to konobi, groditi, mst & CataMoose) !!
554
555     * Class::MOP::Class
556       - made get_method_map use list_all_package_symbols
557         instead of manually grabbing each symbol
558       - streamlining &initialize somewhat, since it gets
559         called so much
560         
561     * Class::MOP::Package
562       - made {get, has}_package_symbol not call 
563         &namespace so much 
564       - inlining a few calls to &name with 
565         direct HASH access key access
566       - added get_all_package_symbols to fetch 
567         a HASH of items based on a type filter
568         similar to list_all_package_symbols
569         - added tests for this
570
571     * Class::MOP::Method
572       Class::MOP::Method::Constructor
573       Class::MOP::Method::Generated
574       Class::MOP::Method::Accessor
575       - added more descriptive error message to help 
576         keep people from wasting time tracking an error
577         that is easily fixed by upgrading.
578
579     * Class::MOP::Immutable
580       - Don't inline a destructor unless the user actually
581         needs one
582         - added tests for this
583
584 0.56 Saturday, May 24, 2008
585     * Class::MOP
586       - we now get the &check_package_cache_flag
587         function from MRO::Compat
588       - All XS based functionality now has a 
589         Pure Perl alternative
590         - the CLASS_MOP_NO_XS environment variable
591           can now be used to force non-XS versions
592           to always be used
593
594     * Class::MOP::Attribute
595       - add has_read_method and has_write_method
596       - get_{read,write}_method_ref now wraps the
597         anon-sub ref in the method metaclass when
598         possible
599         - added tests for this
600
601     * Class::MOP::Immutable
602       - added the ability to "wrap" methods when
603         making the class immutable
604
605     * Class::MOP::Class
606       - now handling the edge case of ->meta->identifier
607         dying by wrapping add_package_symbol to specifically
608         allow for it to work.
609         - added tests for this
610
611     * Class::MOP::Attribute
612       Class::MOP::Class
613       Class::MOP::Immutable
614       - any time a method meta object is constructed
615         we make sure to pass the correct package and
616         method name information
617
618     * Class::MOP::Method
619       Class::MOP::Method::Wrapped
620       Class::MOP::Method::Generated
621       Class::MOP::Method::Accessor
622       Class::MOP::Method::Consructor
623       - the &wrap constructor method now requires that a 
624         'package_name' and 'name' attribute are passed. This 
625         is to help support the no-XS version, and will 
626         throw an error if these are not supplied.      
627       - all these classes are now bootstrapped properly
628         and now store the package_name and name attributes
629         correctly as well        
630
631     ~ Build.PL has been removed since the 
632       Module::Install support has been removed
633
634 0.55 Mon. April 28, 2008
635     - All classes now have proper C3 MRO support
636       - added MRO::Compat as a dependency to allow
637         for the C3 MRO support to Just Work in all
638         perl versions
639
640     * Class::MOP::Class
641       - rebless_instance now returns the instance
642         it has just blessed, this is mostly to
643         facilitate chaining
644       - set the attr correctly in rebless_instance
645         when it has no init_arg
646       - tweaked &linear_isa and &class_precedence_list
647         to support c3 classes.
648
649 0.54 Fri. March, 14, 2008
650     * Class::MOP
651       metaclass.pm
652       - making sure that load_class never gets
653         passed a value from @_ or $_ to squash
654         Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
655
656     * Class::MOP::Class
657       - make_{immutable,mutable} now return 1
658         (cause Sartak asked)
659       - improved error handling in ->create method
660       - rebless_instance now takes extra params which
661         will be used to populate values
662         - added tests for this
663
664     * Class::MOP::Object
665       - localizing the Data::Dumper configurations so
666         that it does not pollute others (RT #33509)
667
668     * Class::MOP::Class
669       Class::MOP::Package
670       Class::MOP::Module
671       Class::MOP::Method
672       Class::MOP::Attribute
673       - these classes no longer define their own ->meta,
674         but instead just inherit from Class::MOP::Object
675
676     * Class::MOP::Instance
677       Class::MOP::Immutable
678       - these classes now inherit from Class::MOP::Object
679
680     * t/
681       - fixed the filename length on several
682         test files so we install on VMS better
683         (RT #32295)
684       - fixed incorrect use of catdir when it
685         should be catfile (RT #32385)
686
687 0.53 Thurs. Feb. 14, 1008
688     ~~ several doc. fixes and updates ~~
689
690     * Class::MOP::Class
691       Class::MOP::Method::Constructor
692       Class::MOP::Attribute
693         - making init_arg accept an undefined value
694           to indicate that no constructor args can
695           be passed (thanks to nothingmuch)
696           - added tests for this
697         - added attribute initializer attribute (rjbs)
698
699     * Class::MOP.
700         - making this use the new init_arg => undef
701           feature instead of the silly hack from
702           before (thanks to nothingmuch)
703
704 0.52 Tues. Jan. 22, 2008
705     * Class::MOP::Class
706       - fixed bug in rebless_instance
707         (discovered by ash)
708
709     * Class::MOP::Method::Constructor
710       - removed assumptions about the existence of
711         a &meta method
712
713 0.51 Mon. Jan. 14, 2008
714     ~~~ some misc. doc. fixes ~~~
715     ~~ updated copyright dates ~~
716
717     * Class::MOP
718       - now sets the IS_RUNNING_ON_5_10
719         constant so that we can take advantage
720         of some of the nice bits of 5.10
721
722     * Class::MOP::Class
723       - uses the IS_RUNNING_ON_5_10 flag to
724         optimize the &linearized_isa method
725         and avoid the hack/check for circular
726         inheritence in &class_precedence_list
727       - added rebless_instance method (Sartak)
728         - added tests for this
729
730     * Class::MOP::Immutable
731       - the immutable class now keeps track of
732         the transformer which immutablized it
733
734     * Class::MOP::Instance
735       - added rebless_instance_structure method (Sartak)
736         - added tests for this
737
738 0.50 Fri. Dec. 21, 2007
739     * Class::MOP::Class
740       - fixed bug in immutable to make sure that
741         transformation arguments are saved
742         correctly (mst)
743         - added tests for this
744
745     * Class::MOP::Immutable
746       - fixed a bug (see above)
747
748     * Class::MOP::Attribute
749       - some doc updates
750
751 0.49 Fri. Dec. 14, 2007
752     !! Class::MOP now loads 2 x faster  !!
753     !! with XS speedups (thanks konobi) !!
754
755     * Class::MOP
756       - removed the dependency on B
757       - added two XS functions (thanks konobi)
758         - get_code_info($code) which replaces all
759           the B fiddling we were doing with
760           faster/leaner XS level fiddling
761         - check_package_cache_flag($pkg_name) which
762           returns the PL_sub_generation variable to
763           be used to help manage method caching.
764
765           NOTE:
766           In 5.10 or greater this will actually
767           use the mro::get_pkg_gen instead to give
768           even more accurate caching information.
769           blblack++ for that stuff :)
770
771     * Class::MOP::Class
772       - added the &subclasses method (thanks rlb)
773       - added the update_package_cache_flag and
774         reset_package_cache_flag which help keep
775         track of when we need to re-fetch the
776         method map.
777       - Several small improvements to take advantage
778         of the new method map caching features
779
780 0.48 Mon. Nov. 26, 2007
781     * Class::MOP::Attribute
782       - fixed get_read/write_method to handle the
783         HASH ref case, which makes the
784         get_read/write_method_ref handle it too.
785         - added more tests for this
786
787 0.47 Sat. Nov. 24, 2007
788     * Class::MOP::Attribute
789       - fixed misspelling in get_write_method_ref
790         - added more tests for this
791
792 0.46 Fri. Nov. 23, 2007
793     * Class::MOP::Class
794       - added the linearized_isa method instead of constantly
795         pruning duplicate classes (this will be even more
796         useful in the 5.10-compat version coming soon)
797
798     * Class::MOP::Attribute
799       - added the get_read_method_ref and get_write_method_ref
800         methods which allow you to retrieve a CODE ref which
801         can always be used to read or write an attribute.
802
803 0.45 Thurs. Nov. 13, 2007
804     * Class::MOP::Attribute
805       - Fix error message on confess (groditi)
806
807 0.44 Thurs. Nov. 13, 2007
808     - Apparently I didn't make dist correctly (groditi)
809
810 0.43 Thurs. Nov. 13, 2007
811     * Class::MOP
812       - Add support for the 'builder' attribute (groditi)
813
814     * Class::MOP::Class
815       - optimise metaclass-already-exists check in
816         construct_class_instance (groditi)
817       - duplicate check into initialize to save a
818         call through (groditi)
819
820     * Class::MOP::Attribute
821       - Add support for the 'builder' attribute (groditi)
822       - Make predicates check for the existence of a value, not whether
823         it is defined (groditi)
824
825     * Class::MOP::Instance
826       - Make predicates check for the existence of a value, not whether
827         it is defined (groditi)
828
829     * Class::MOP::Method::Accessor
830       - made this a subclass of Class::MOP::Method::Generated
831         - removed the relevant attributes
832
833     * Class::MOP::Method::Constructor
834       - fixed the cached values we had to be more sane
835       - made this a subclass of Class::MOP::Method::Generated
836       - fixed generated constructor so it properly handles
837         subclasses now.
838         - added tests for this
839       - added the option to allow for both inlined and
840         non-inlined constructors.
841       - Update inlined methods for builder and predicate changes (groditi)
842
843     * Class::MOP::Method::Generated
844       - added this class as an abstract base for the
845         Class::MOP::Method::{Constructor,Accessor} classes
846         - added tests for this
847
848     *t/
849       - Alter tests (005, 014 020, 021) for new builder addition (groditi)
850       - Tests for new predicate behavior (and corrections to old tests) (groditi)
851
852     *examples/
853       - Update ArrayRef based class example to work with predicate changes
854
855 0.42 Mon. July 16, 2007
856     !!! Horray for mst, he fixed it !!!
857
858     * Class::MOP::Package
859       - alter symbol table handling to deal with 5.8.x and 5.9.x
860
861     * t/
862       - Get rid of the crappy workaround from 0.40/41
863
864 0.41 Sun. July 15, 2007
865     * t/
866         Arghh!!! My TODO test didn't work, so I handle
867         it manually now so that people can use this
868         with 5.9.5/bleadperl without issue.
869
870 0.40 Tues, July 3, 2007
871     * t/
872       ~ marked a test in 003_methods.t as TODO
873         for perl 5.9.5 (this test is irrelvant to
874         the module functioning on 5.9.5 for the most
875         part anyway)
876
877 0.39 Mon. June 18, 2007
878     * Class::MOP::Immutable
879       - added make_metaclass_mutable + docs (groditi)
880       - removed unused variable
881       - added create_immutable_transformer
882         necessary for sane overloading of immutable behavior
883          - tests for this (groditi)
884
885     * Class::MOP::Class
886       - Immutability can now be undone,
887         added make_mutable + tests + docs (groditi)
888       - Massive changes to the way Immutable is done
889         for details see comments next to make_immutable
890         This fixes a bug where custom metaclasses broke
891         when made immutable. We are now keeping one immutable
892         metaclass instance per metaclass instead of just one
893         to prevent isa hierarchy corruption. Memory use will go
894         up, but I suspect it will be neglible.
895          - New tests added for this behavior.  (groditi)
896
897 0.38 Thurs. May 31, 2007
898     ~~ More documentation updates ~~
899
900     * Class::MOP::Package
901       - we now deal with stub methods properly
902         - added tests for this
903       - fixed some tests failing on 5.9.5 (thanks blblack)
904
905     * Class::MOP::Attribute
906       - added get_read_method and get_write_method
907         thanks to groditi for this code, tests
908         and docs.
909         - added tests and POD for this
910
911     * Class::MOP::Class
912       - fixed RT issue #27329, clone object now
913         handles undef values correctly.
914         - added tests for this
915       - Corrected anon-class handling so that they
916         will not get reaped when instances still
917         exist which need to reference them. This is
918         the correct behavior, hopefully this is an
919         obscure enough feature that there are not too
920         many work arounds out in the wild.
921         - added tests for this by groditi
922         - updated docs to explain this
923
924     * metaclass
925       - load custom metaclasses automatically (thanks groditi)
926         - added tests for this behavior
927
928 0.37 Sat. March 10, 2007
929     ~~ Many, many documentation updates ~~
930
931     * Class::MOP
932       - added &load_class and &is_class_loaded
933         - added tests and docs for these
934
935     * Class::MOP::Attribute
936       - default now checks the instance with defined to
937         avoid setting off bool-overloads (found by Carl Franks)
938
939 0.37_002
940     * /t
941       - bad name in a test, causing meaningless failuress.
942         No other changes.
943
944 0.37_001
945
946     ~~ GLOBAL CHANGES ~~
947     - All attribute names are now consistent and follow Perl 6
948       style (prefixed with the sigil, and ! as the twigil for
949       private attrs). This should not affect any code, unless
950       you broke encapsulation, in which case, it is your problem
951       anyway.
952
953     !! Class::MOP::Class::Immutable has been removed
954
955     * Class::MOP::Method::Constructor
956       - this has been moved out of Class::MOP::Class::Immutable
957         and is a proper subclass of Class::MOP::Method now.
958
959     * Class::MOP::Class
960       - this module now uses Class::MOP::Immutable for the
961         immutable transformation instead of
962         Class::MOP::Class::Immutable.
963
964     + Class::MOP::Immutable
965       - this module now controls the transformation from a mutable
966         to an immutable version of the class. Docs for this will
967         be coming eventually.
968
969
970 0.36 Sun. Nov. 5, 2006
971     * Class::MOP::Class
972       - added a few 'no warnings' lines to keep annoying
973         (and meaningless) warnings from chirping during
974         global destruction.
975
976     * Class::MOP
977       - some more bootstrapping is now done on the new
978         classes
979
980     * Class::MOP::Class::Immutable
981       *** API CHANGE ***
982       - constructor generation is now handled by
983         the Class::MOP::Method::Constructor class
984
985     * Class::MOP::Method::Constructor
986       - created this to handle constructor generation
987         in Class::MOP::Class::Immutable
988
989     * Class::MOP::Attribute
990       *** API CHANGE ***
991       - attributes now delegate to the
992         Class::MOP::Method::Accessor to generate
993         accessors
994
995     * Class::MOP::Method::Accessor
996       - all accessor generation functions from
997         Class::MOP::Attribute have been moved here
998
999 0.35 Sat. Sept. 30, 2006
1000
1001     * scripts/class_browser.pl
1002       - initial prototype of a class browser, more
1003         on this to come. Comments and patches are
1004         very much welcome.
1005
1006     * Class::MOP
1007       - All Class::MOP::* accessors are no longer
1008         re-generated in the bootstrap, instead
1009         they are aliased from the originals
1010         - fixed tests to reflect
1011       - added Class::MOP::Method (and its subclasses)
1012         to the bootstrap
1013         - adjusted tests for this
1014       - added the Class::MOP::Instance attributes
1015         to the bootstrap
1016
1017     * Class::MOP::Method
1018       *** API CHANGE ***
1019       - methods are no longer blessed CODE refs
1020         but are actual objects which can be CODE-ified
1021         - adjusted tests to compensate
1022         - adjusted docs for this
1023
1024     * Class::MOP::Class
1025       - changed how methods are dealt with to
1026         encapsulate most of the work into the
1027         &get_method_map method
1028       - made several adjustments for the change
1029         in Class::MOP::Method
1030       - &add_attribute now checks if you are adding
1031         a duplicate name, and properly removes the
1032         old one before installing the new one
1033         - added tests for this
1034         - adjusted docs for this
1035
1036     * Class::MOP::Class::Immutable
1037       - added caching of &get_method_map
1038       - fixed issue with &get_package_symbol
1039       - cleaned up the methods that die (patch by David Wheeler)
1040
1041     * Class::MOP::Package
1042       - added filtering capabilities to
1043         &list_all_package_symbols
1044
1045 0.34 Sat. Aug. 26, 2006
1046     * Class::MOP::Class
1047       - added the %:methods attribute, which like
1048         the $:version and such just actually goes
1049         to the symbol table to get it's stuff.
1050         However, it makes the MOP more complete.
1051      ** API CHANGE **
1052       - The &create method now requires that all
1053         but the package name now is passed in as
1054         named parameters. See docs for more info.
1055         - updated docs and tests for this
1056
1057     * Class::MOP::Object
1058       - added &dump method to easily Data::Dumper
1059         an object
1060
1061     * Class::MOP
1062       - cleaned up the initialization of attributes
1063         which do not store things in the instance
1064       - added the %:methods attribute definition to
1065         the bootstrap
1066
1067     ~ lots of misc. test cleanup
1068
1069 0.33 Sat. Aug. 19, 2006
1070     * Class::MOP::Class
1071       - moved the metaclass cache out of here
1072         and it is now in Class::MOP itself.
1073
1074     * Class::MOP
1075       - moved all the metaclass cache stuff here
1076         - fixed all tests for this
1077
1078     * Class::MOP::Attribute
1079       - reference values (other than CODE refs)
1080         are no longer allowed for defaults
1081         - added tests for this
1082
1083     * Class::MOP::Package
1084       - fixed an issue with perl 5.8.1 and how it deals
1085         with symbol tables. The namespace hash is now
1086         always reloaded from the symbol table.
1087
1088     ~ lots of misc. documentation cleanup
1089
1090 0.32 Sat. Aug. 12, 2006
1091     + added Class::MOP::Object so that the
1092       metamodel is more complete (and closer
1093       to what Perl 6 will probably be).
1094
1095     * Class::MOP::Package
1096       - refactored entire class, this is now
1097         the primary gateway between the metaclass
1098         and the Perl 5 symbol table
1099         - added many tests for this
1100       - this class is now a subclass of
1101         Class::MOP::Object
1102         - added some tests to reflect this
1103
1104     * Class::MOP::Class
1105       - refactored all symbol table access to
1106         use Class::MOP::Package methods instead
1107
1108     * Class::MOP::Module
1109       - adding the $:version attribute in the bootstrap
1110         so that Module has a version as an attribute
1111         - see comment in Class::MOP for details
1112       - added the $:authority attribute to this module
1113         as well as an &identifier method, to bring us
1114         ever closer to Perl 6 goodness
1115         - I have added $AUTHORITY to all the modules
1116         - added tests for this
1117
1118     * Class::MOP::Instance
1119       - added &deinitialize_slot for removing slots
1120         from an instance
1121         - added tests for this
1122
1123     * Class::MOP::Attribute
1124       - added support for &deinitialize_slot for removing
1125         slots from an instance
1126         - added tests for this
1127
1128 0.31 Sat. July 15, 2006
1129
1130     * Class::MOP::Class
1131       - added &find_method_by_name to locate a method
1132         anywhere within the class hierarchy
1133
1134     * Class::MOP::Attribute
1135       - added &set_value and &get_value for getting
1136         the value of the attribute for a particular
1137         instance.
1138
1139 0.30 Wed. July 5, 2006
1140     ---------------------------------------
1141     This is the first version of Class::MOP
1142     to introduce the immutable features which
1143     will be used for optimizating the MOP.
1144     This support should still be considered
1145     experimental, but moving towards stability.
1146     ---------------------------------------
1147
1148     * Created Class::MOP::Class::Immutable
1149
1150     * Created the Class::MOP::Package and
1151       Class::MOP::Module classes to more
1152       closely conform to Perl 6's meta-model
1153
1154     * Class::MOP::Class
1155       - now inherits from Class::MOP::Module
1156       - several methods moved to ::Module and
1157         ::Package and now inherited
1158         - added tests for this
1159
1160     * Class::MOP::Instance
1161       - added an is_inlinable method to allow other
1162         classes to check before they attempt to optimize.
1163       - added an inline_create_instance to inline
1164         instance creation (of course)
1165
1166     ** API CHANGE **
1167       - the Class::MOP::Class::*_package_variable
1168         methods are all now methods of Class::MOP::Package
1169         and called *_package_symbol instead. This is
1170         because they are now more general purpose symbol
1171         table manipulation methods.
1172
1173 0.29_02 Thurs. June 22, 2006
1174     ++ DEVELOPER RELEASE ++
1175     * Class::MOP::Class
1176       - small change in &create so that it behaves
1177         properly when inherited
1178       - small fix to &clone_instance
1179
1180 0.29_01 Fri. May 12, 2006
1181     ++ DEVELOPER RELEASE ++
1182       - This release works in combination with
1183         Moose 0.09_01, it is a developer release
1184         because it introduces a new instance
1185         sub-protocol and has not yet been
1186         optimized.
1187
1188     * Class::MOP::Class
1189       - anon-classes are now properly garbage collected
1190         - added tests for this
1191       - improved method modifier wrapping
1192
1193     * Class::MOP::Instance
1194       - added new instance protocol
1195         - added tests for this
1196       - changed all relevant modules and examples
1197         - Class::MOP::Class
1198         - Class::MOP::Attribute
1199         - examples/*
1200
1201     * metaclass
1202       - you no longer need to specify the metaclass
1203         itself, if it is not there, Class::MOP::Class
1204         is just assumed
1205         - updated tests for this
1206
1207     * examples/
1208       - added ArrayBasedStorage example to show
1209         instance storage using ARRAY refs instead of
1210         HASH refs.
1211         - added tests for this
1212       - InsideOutClass is totally revised using the
1213         new instance protocol
1214         - added more tests for this
1215
1216 0.26 Mon. April 24, 2006
1217     * Class::MOP::Class
1218       - added find_attribute_by_name method
1219         - added tests and docs for this
1220       - some small optimizations
1221
1222     * Class::MOP::Attribute
1223       - some small optimizations
1224
1225 0.25 Thurs. April 20, 2006
1226     * Class::MOP::Class
1227       - added create_anon_class for creating anonymous classes
1228         - added tests for this
1229       - added get_all_metaclasses, get_all_metaclass_names
1230         and get_all_metaclass_instances method to allow
1231         access to all the cached metaclass objects.
1232       - attribute slot initialization is now the responsibility
1233         of the attribute itself, and construct_instance now
1234         delegates appropriately
1235
1236     * Class::MOP::Attribute
1237       - attribute slot initialization is now the responsibility
1238         of the attribute itself, so we added a method for it
1239         called initialize_instance_slot
1240
1241     * examples/
1242       - adjusted all the examples to use the new attribute
1243         initialize_instance_slot method
1244
1245 0.24 Tues. April 11, 2006
1246     * Class::MOP::Class
1247       - cleaned up how the before/after/around method
1248         modifiers get named with Sub::Name
1249
1250 0.23 Thurs. March 30, 2006
1251         * Class::MOP::Class
1252           - fixed the way attribute defaults are handled
1253             during instance construction (bug found by chansen)
1254
1255         * Class::MOP::Attribute
1256           - read-only accessors ('reader') will now die if
1257             passed more than one argument (attempting to write
1258             to them basically)
1259               - added tests for this
1260               - adjusted all /example files to comply
1261
1262 0.22 Mon. March 20, 2006
1263     * Class::MOP::Class
1264       - localized $@ in the *_package_variable functions
1265         because otherwise, it does ugly things in Moose.
1266           - added test case for this
1267
1268 0.21 Wed. March 15, 2006
1269     * Class::MOP::Class
1270       - fixed issue where metaclasses are reaped from
1271         our cache in global destruction, and so are not
1272         available in DESTORY calls
1273
1274 0.20 Thurs. March 2, 2006
1275     - removed the dependency for Clone since
1276       we no longer to deep-cloning by default.
1277
1278     * Class::MOP::Method
1279       - added &package_name, &name and
1280         &fully_qualified_name methods, some of
1281         which were formerly private subs in
1282         Class::MOP::Class
1283
1284     * Class::MOP::Method::Wrapped
1285       - allows for a method to be wrapped with
1286         before, after and around modifiers
1287           - added tests and docs for this feature
1288
1289     * Class::MOP::Class
1290       - improved &get_package_symbol
1291           - &version and &superclasses now use it
1292       - methods are now blessed into Class::MOP::Method
1293         whenever possible
1294       - added methods to install CLOS-style method modifiers
1295          - &add_before_method_modifier
1296          - &add_after_method_modifier
1297          - &add_around_method_modifier
1298              - added tests and docs for these
1299       - added &find_next_method_by_name which finds the
1300         equivalent of SUPER::method_name
1301
1302 0.12 Thurs. Feb 23, 2006
1303     - reduced the dependency on B, no need to always
1304       have the latest
1305
1306     * examples/
1307       - added docs to the C3 method dispatch order test
1308       - fixed missing Algorithm::C3 dependency by making
1309         the test skip if it is not installed
1310
1311 0.11 Mon Feb. 20, 2006
1312     * examples/
1313       - added example of changing method dispatch order to C3
1314
1315     * Class::MOP::Class
1316       - changed how clone_instance behaves, it now only does a
1317         shallow clone (see docs for more details)
1318         - added docs and tests
1319
1320 0.10 Tues Feb. 14, 2006
1321     ** This release was mostly about writing more tests and
1322        cleaning out old and dusty code, the MOP should now
1323        be considered "ready to use".
1324
1325     - adding more tests to get coverage up a little higher,
1326       mostly testing errors and edge cases.
1327       - test coverage is now at 99%
1328
1329     * Class::MOP
1330       - no longer optionally exports to UNIVERSAL::meta or
1331         creates a custom metaclass generator, use the
1332         metaclass pragma instead.
1333
1334     * Class::MOP::Class
1335       - fixed a number of minor issues which came up in the
1336         error/edge-case tests
1337
1338     * Class::MOP::Attribute
1339       - fixed a number of minor issues which came up in the
1340         error/edge-case tests
1341
1342     * examples/
1343       - fixing the AttributesWithHistory example, it was broken.
1344
1345 0.06 Thurs Feb. 9, 2006
1346     * metaclass
1347       - adding new metaclass pragma to make setting up the
1348         metaclass a little more straightforward
1349
1350     * Class::MOP
1351       - clean up bootstrapping to include more complete
1352         attribute definitions for Class::MOP::Class and
1353         Class::MOP::Attribute (accessors, readers, writers,
1354         etc.) ... it is redundant, but is useful meta-info
1355         to have around.
1356
1357     * Class::MOP::Class
1358       - fixing minor meta-circularity issue with &meta, it
1359         is now more useful for subclasses
1360       - added &get_attribute_map as an accessor for the
1361         hash of attribute meta objects
1362       - &compute_all_applicable_attributes now just returns
1363         the attribute meta-object, rather than the HASH ref
1364         since all the same info can be gotten from the
1365         attribute meta-object itself
1366           - updated docs & tests to reflect
1367       - added &clone_instance method which does a deep clone
1368         of the instance structure created by &construct_instance
1369           - added docs & tests for this
1370           - added Clone as a dependency
1371       - added &new_object and &clone_object convience methods to
1372         return blessed new or cloned instances
1373           - they handle Class::MOP::Class singletons correctly too
1374           - added docs & tests for this
1375       - cleaned up the &constuct_class_instance so that it behaves
1376         more like &construct_instance (and managed the singletons too)
1377       - added the &check_metaclass_compatibility method to make sure
1378         that metaclasses are upward and downward compatible.
1379           - added tests and docs for this
1380
1381     * examples/
1382       - adjusting code to use the &Class::MOP::Class::meta
1383         fix detailed above
1384       - adjusting code to use the metaclass pragma
1385
1386 0.05 Sat Feb. 4, 2006
1387     * Class::MOP::Class
1388       - added the &attribute_metaclass and &method_metaclass
1389         attributes which contain a metaclass name to use for
1390         attributes/methods respectively
1391
1392     * Class::MOP
1393       - bootstrap additional attributes for Class::MOP::Class
1394
1395     * examples/
1396       - adjusted the example code and tests to use the new
1397         &attribute_metaclass feature of Class::MOP::Class
1398       - added new example:
1399         - LazyClass
1400
1401 0.04 Fri Feb. 3, 2006
1402     * Class::MOP::Class
1403       - some documentation suggestions from #perl6
1404
1405     * Class::MOP::Attribute
1406       - improved error messages
1407
1408     * examples/
1409       - added new examples:
1410         - AttributesWithHistory
1411         - ClassEncapsultedAttributes
1412
1413 0.03 Fri Feb. 3, 2006
1414     - converted to Module::Build instead of EU::MM
1415
1416     * Class::MOP::Attribute
1417       - refactored method generation code
1418       - attributes are now associated with class directly
1419
1420     * examples/
1421       - refactored the InsideOut example to take advantage
1422         of the Class::MOP::Attribute refactoring
1423       - changed example files to .pod files and hide thier
1424         package names from PAUSE (I don't want to own these
1425         namespaces really, they are just examples)
1426
1427 0.02 Thurs Feb. 2, 2006
1428     - moving examples from t/lib/* to examples/*
1429         - adding POD documentation to the examples
1430
1431 0.01 Thurs Feb. 2, 2006
1432     - Initial release