Revision history for Perl extension UNIVERSAL::Object 0.17 2023-07-05 - Immutable classes are now unlocked within DEMOLISH 0.16 2018-22-09 - fix some errors in 5.10 and 5.8 that were annoying me 0.15 2018-16-09 - improve some error messages - Immutable objects now correctly work with overloaded objects by accessing the overload::StrVal instead of the overloaded string - If your REPR type is a HASH then we will lock the set of keys to be those of your set of SLOTS. This should not break anything if you were not already violating encapsulation somehow ;) 0.14 2018-01-25 - adding in Travis CI integration - thanks to JJ Merelo for this - slots are now sorted by name before we attempt to populate the instance, this should make some errors more predictable - thanks to Tony Inkster for this - Avoid the stringy eval stuff around mro/MRO::Compat - thanks to Graham Knopp for this 0.13 2017-10-30 - switched back to Carp::confess from Carp::cluck, the stack trace is vital until this module matures and the error messages improve 0.12 2017-10-18 - UNIVERSAL::Object::Immutable now allows for alteration of the instance during `BUILD` by delaying locking of the instance until the very last moment before `new` returns - updated docs for this - UNIVERSAL::Object::Immutable now supports CODE ref based instances - updated docs and tests for this - added test to demonstrate that `%HAS` is not a requirement and (ab)using SLOTS method works too 0.11 2017-06-19 - fix a test that is causing CPANTS to fail, sorry 0.10 2017-05-12 - Improve the content of the errors produced by this module so that it is clearer where the errors are coming from without having to view the stack trace. If that is needed there is the Carp::Always module. - tweaked the tests to match the new errors 0.09 2017-05-08 - add support to UNIVERSAL::Object::Immutable to handle additional REPR types - handles SCALAR, REF, ARRAY and HASH - added tests for this 0.08 2017-04-07 - fixing spelling mistakes and bad POD formatting 0.07 2017-04-06 - tightened up the perl version requirements in the modules as well as the config - adding UNIVERSAL::Object::Immutable for creating immutable instances - added tests and docs for this - NOTE: this class requires v5.8 or greater 0.06 2017-02-08 - cleaning up some test failures and some sloppy test writing on my part - *sigh* 0.05 2017-02-07 - the REPR method now takes the $proto which results from BUILDARGS in case it needs to consult it in the creation of the representation - switch to using Carp::croak instead of die it is, and always has been, in core. - added some tests to show how to inherit from classes which do not use UNIVERSAL::Object - added new tests for non-HASH ref based instance 0.04 2016-12-29 - only require MRO::Compat for perls before 5.10 - thanks to Dan Book for the dist.ini fix 0.03 2016-12-27 - added a `REPR` method which returns the structure to be used as an instance - added docs and tests - added a `BLESS` method which handles blessing and calling the `CREATE` method to construct the instance - added docs and tests 0.02 2016-12-19 - fixing an issue in a test, looks like if you call a package namespace `SUPER` it causes issues. 0.01 2016-12-18 - Initial release to an unsuspecting world