Revision history for Perl extension Object::InsideOut. 3.21 Fri Aug 17 15:46:35 2007 - Faster object creation 3.19 Tue Jun 26 16:19:02 2007 - Less use of BEGIN blocks - Fixed a threads::shared issue 3.18 Fri Jun 8 18:31:32 2007 - Fixed secure mode breakage caused by MRMA upgrade 3.17 Fri May 11 19:43:53 2007 - Fix for pseudo-forks 3.16 Thu May 10 17:41:38 2007 - Minor mod for CPAN's PAUSE indexer 3.15 Thu May 10 17:19:55 2007 - Modified (and documented) object initialization sequence - Improved file versioning - Subversion repository on Google 3.14 Mon Mar 26 15:35:57 EDT 2007 - Fix to Foreign.pm (courtesy of Michael Houghton) - Updated version numbers in POD 3.13 Mon Mar 19 09:36:46 EDT 2007 - Fix recursion bug caused by bad :Automethod 3.12 Thu Mar 15 08:07:53 EDT 2007 - Fix for classes permissions 3.11 Sun Feb 18 19:22:45 EST 2007 - Handle pseudo-forks 3.09 Fri Feb 16 22:21:05 EST 2007 - Exemptions for :Restricted/:Private accessors 3.08 Wed Dec 27 09:13:28 EST 2006 - Apply defaults before :Init is called - Do initialize() in CLONE_SKIP - Fix to handling :Default values 3.07 Wed Dec 20 08:22:30 EST 2006 - Fixed bug with :Name attribute 3.06 Mon Dec 11 15:03:13 EST 2006 - Updates to Bundle::Object::InsideOut - Skip certain tests under 5.8.0 3.05 Fri Dec 8 20:02:17 EST 2006 - Catch when threads::shared loaded after OIO initialized 3.04 Fri Dec 8 13:17:51 EST 2006 - Added :Default(...) for :Field's 3.03 Thu Dec 7 13:41:40 EST 2006 - Fixed ->can() for cumulative/chained automethods - Fixed using overloads with :Cumulative/:Chained 3.01 Tue Dec 5 16:36:42 EST 2006 - :Restricted/:Private classes - Exemptions for :Restricted :Cumulative/:Chained - Separate POD file - Internal code rework 2.25 Thu Nov 30 13:29:36 EST 2006 - Exemptions for :Restricted/:Private - Partial compatibility with Attribute::Params::Validate 2.24 Mon Nov 27 14:58:01 EST 2006 - Catch missing 'name' param in field attributes 2.23 Tue Nov 14 16:08:13 EST 2006 - Rework of :Cumulative/:Chained code 2.22 Tue Nov 14 13:43:53 EST 2006 - Fixed using :Restricted with :Cumulative/:Chained 2.21 Mon Nov 13 10:09:24 EST 2006 - Added subtype-checking for list/array/array_ref - Improvments to Term::YAPI in examples dir 2.19 Thu Nov 2 14:07:17 EST 2006 - Added more dependencies to Bundle::Object::InsideOut 2.18 Wed Nov 1 07:51:27 EST 2006 - Fixes to Bundle::Object::InsideOut syntax 2.17 Tue Oct 31 13:07:01 EST 2006 - Added Bundle::Object::InsideOut 2.16 Mon Oct 23 13:30:32 EDT 2006 - Another fix for the :Type attribute - Noted in POD that the PPM version of Want is bad 2.15 Fri Oct 20 15:46:06 EDT 2006 - Fixed bug with :Type attribute 2.14 Tue Oct 17 11:38:26 EDT 2006 - Fixed bug with 'require' on empty classes 2.12 Fri Oct 13 14:42:50 EDT 2006 - Metadata requires Perl 5.8.0 or later 2.08 Wed Oct 11 15:18:36 EDT 2006 - Runtime inheritance with ->add_class 2.07 Tue Oct 10 15:47:44 EDT 2006 - Added :SECURE mode 2.06 Mon Oct 9 16:04:09 EDT 2006 - Added :hash_only flag - Added SECURITY section to POD 2.05 Fri Oct 6 15:42:30 EDT 2006 - Implemented :MergeArgs for methods 2.04 Tue Oct 3 15:01:30 EDT 2006 - Removed :lvalue method from meta tests 2.03 Tue Oct 3 14:40:26 EDT 2006 - Added introspection - Document My::Class->create_field() - Added examples/YAPI.pm - Added POD tests 2.02 Sat Sep 23 17:57:11 EST 2006 - Completed redesign on field attributes (Backwards compatibility maintained. See POD for details.) - Support argument preprocessing on set accessors - Fixed handling of weak fields in dump() - Want module not used by default (Still required for :lvalue accessors) - Removed 'process_args' from Object::InsideOut::Util (Hope no one was using it. It wasn't documented.) 2.01 Tue Sep 19 11:00:15 EDT 2006 - Started redesign on field attributes Changed :Field(..., 'Weak' => 1) To :Field(...) :Weak Changed :Field(..., 'Deep' => 1), etc. To :Field(...) :Deep Changed :Field(..., 'Name' => 'foo') To :Field(...) :Name(foo) (Multiple attributes can be line wrapped! See POD.) - Optimized 'set' accessor code - Added option to suppress use of Want module - Documented that attribute handlers need to come first in a class 1.52 Fri Sep 1 15:58:25 EDT 2006 - Support class-specified attribute handlers - Made Want module optional 1.51 Wed Aug 30 11:08:30 EDT 2006 - Added 'All/Std_All'+'Arg' field declarations keywords - More method chaining support - Require Want 0.12 or later - Document $SIG{'__DIE__'} interference issues 1.49 Tue Aug 8 14:15:43 EDT 2006 - Support for :lvalue accessor generation 1.48 Thu Aug 3 12:15:20 EDT 2006 - Reworked multiple error handling 1.47 Tue Aug 1 15:50:28 EDT 2006 - Workaround Perl's "in cleanup" bug 1.46 Thu Jul 27 16:56:35 EDT 2006 - Fix masking of $@ by 'eval's in :DESTROY subroutines - Documented limitation with namespace 'DB' 1.45 Tue Jun 27 14:09:44 EDT 2006 - Added :PreInit subroutines 1.44 Fri Jun 23 13:57:15 EDT 2006 - Fix file versioning for PAUSE 1.43 Fri Jun 23 12:56:29 EDT 2006 - Moved exception code to Exception.pm - Versioned all .pm files - Caution against returning objects from threads 1.42 Thu May 4 11:26:15 EDT 2006 - Fixed object ID reclamation 1.41 Thu Apr 27 11:53:01 EDT 2006 - Documented that cloning does not clone internally held objects 1.39 Thu Apr 27 11:11:01 EDT 2006 - Fixed bug whereby cloning was duplicating objects 1.38 Sun Mar 5 21:39:00 EST 2006 - Bug fix for standard accessors with private permissions 1.37 Wed Feb 15 13:58:15 EST 2006 - Parameter preprocessing (courtesy of Berkan Eskikaya) 1.36 Wed Feb 8 11:43:14 EST 2006 - Support 'weakened' fields 1.35 Fri Feb 3 11:59:38 EST 2006 - Workaround for Perl 5.8.4/5.8.5 bug 1.34 Wed Feb 1 17:28:09 EST 2006 - Insure proper 'import' for 'threads::shared' in Util.pm - Fix for Storable bug (courtesy of Matthijs Bomhoff) - Delayed loading for various OIO features - Added singleton class example to POD - Documented 'use base' cases in POD 1.33 Wed Jan 18 23:24:43 EST 2006 - Compatible with Exporter - example in POD 1.32 Wed Jan 18 13:36:31 EST 2006 - Compatible with Attribute::Handlers 1.31 Sat Jan 14 04:33:22 EST 2006 - Fix to module importation bug (#17055) - Documented that Object::InsideOut objects are 'readonly' - Documented direct data fetching in class code 1.29 Mon Jan 9 09:29:54 EST 2006 - Added 'private' and 'restricted' acessors 1.28 Fri Jan 6 16:01:41 EST 2006 - Exported methods don't override parents' methods - Internal: Removed 'caller_level' in ->die() 1.27 Wed Dec 28 08:57:06 EST 2005 - Added '::storable' flag 1.26 Wed Dec 21 13:54:26 EST 2005 - Suppress import() invoked via inheritance - Only put 'Object::InsideOut' in base class @ISAs 1.25 Wed Dec 21 09:55:17 EST 2005 - Use 'B' module to find subroutine names - Changed author's email address - Test fixes for Perl 5.6.X bug 1.24 Fri Dec 16 10:21:00 2005 - Support foreign classes that only export object methods 1.23 Mon Dec 12 10:04:30 2005 - Deep object cloning, and deep field cloning - Handle creating shared objects when using Storable 1.22 Fri Dec 09 12:55:00 2005 - Support object serialization using the Storable module 1.21 Thu Dec 08 11:47:20 2005 - Minor fix to :Field declaration handling code 1.19 Thu Dec 08 10:41:10 2005 - Store clone of :InitArgs 'Default's if ref 1.18 Wed Dec 07 11:59:35 2005 - Can inherit from non-Object::InsideOut classes - create_field() requires 3 args 1.17 Fri Dec 02 12:29:40 2005 - Handle ->class::method(), ->SUPER::method(), and ->class::SUPER::method() in :Automethods - Handle ->can('class::method') and ->can('class::SUPER::method') 1.16 Thu Dec 01 13:51:50 2005 - Preclude name collisions in ->dump() - Added installation check for Scalar::Util::weaken() 1.15 Tue Nov 29 13:16:40 2005 - Added create_field() for dynamic field creation 1.14 Wed Nov 23 08:15:30 2005 - User-specified 'set' method return type - Removed deprecated _DUMP and INITIALIZE 1.13 Mon Nov 21 11:10:00 2005 - POD fixup 1.12 Mon Nov 21 11:03:00 2005 - Support custom type checking for initializers and accessors 1.11 Fri Nov 18 08:41:00 2005 - Eliminated internal use of each() 1.1 Thu Nov 17 13:53:20 2005 - Fixed bug with each(%{$obj}) on results object - Filled in 'holes' in POD - Workable version numbering 1.04.00 Wed Nov 16 16:24:00 2005 - Added chaining and accumulation for :Automethods - Chained methods don't return a results object in scalar context 1.03.00 Tue Nov 15 11:03:40 2005 - Changed structure for object serialization output 1.02.00 Tue Nov 15 10:13:05 2005 - Added ->set() method for object sharing support 1.01.00 Mon Nov 14 14:49:40 2005 - Added object serialization support - deprecated _DUMP 1.00.00 Fri Nov 11 15:27:00 2005 - Can now use array-based object fields - up to 40% faster - Deprecated INITIALIZE - no longer needed 0.07.00 Thu Nov 10 08:50:00 2005 - Verify ${} is not overloaded - Require Scalar::Util 1.10 or later, and Test::More 0.50 or later - Verified on Perl 5.6.0 through 5.9.2 0.06.00 Thu Nov 03 14:44:20 2005 - Handle ->can('SUPER::method') 0.05.00 Thu Nov 03 10:48:05 2005 - More tests (and fixes to a couple of bugs they turned up) 0.04.00 Wed Nov 02 16:05:00 2005 - Added specifier for 'standard' (i.e., get_X/set_X) accessor methods - More tests (and fixes to a couple of bugs they turned up) 0.03.00 Tue Nov 01 15:41:00 2005 - Added :Chained method attribute - Renamed Cumulative.pm to Results.pm - Added INITIALIZE() subroutine to overcome CHECK/INIT phase issues with mod_perl and with runtime loading of classes 0.02.00 Mon Oct 31 14:27:30 2005 - Error trapping on user-supplied subroutines - Added Build.PL 0.01.00 Mon Oct 31 13:15:00 2005 - Initial release