Class-XSConstructor
===================

Created:      2018-06-19
Home page:    <https://metacpan.org/release/Class-XSConstructor>
Bug tracker:  <https://github.com/tobyink/p5-class-xsconstructor/issues>
Maintainer:   Toby Inkster (TOBYINK) <tobyink@cpan.org>

0.023000	2026-01-21

 - Added: Class::XSConstructor now supports clone_on_write.
 - Added: Class::XSConstructor::clone() utility function exists.
 - Added: Class::XSReader now supports clone_on_read.

0.022002	2026-01-20

 [ Bug Fixes ]
 - Fix issues passing parameters to FOREIGNBUILDARGS.

0.022001	2026-01-16

 [ Bug Fixes ]
 - Fix an issue calling parent constructors where the parent class has a
   BUILDARGS method. (We need to ignore the parent BUILDARGS.)

0.022000	2026-01-15

 [ Bug Fixes ]
 - Suppress a few potential 'used only once' warnings.

 [ Other ]
 - Added: Document clearing internal data, when it might be useful, etc.
 - Added: Somewhat supported way to clear internal caches for the
   destructor too.

0.021000	2026-01-13

 - Added: Class::XSDestructor now also installs a DEMOLISHALL method.

0.020000	2026-01-12

 - Added: Class::XSReader exposing an XS function which has existed
   internally since 0.016000.
 - Added: Some internal refactoring, especially of how built-in defaults
   are handled.

0.019000	2026-01-11

 [ Documentation ]
 - Small documentation improvements.

 [ Packaging ]
 - Change the distribution abstract.

 [ Other ]
 - Added: New undef_tolerant option.

0.018002	2026-01-11

 [ Documentation ]
 - Use the right name for the Class::XSConstructor module in pod examples!

0.018001	2026-01-11

 [ Bug Fixes ]
 - Fix bug trying to use '0' as an arrayref.

0.018000	2026-01-11

 [ Bug Fixes ]
 - Class::XSConstructor::get_metadata() should return undef for classes we
   didn't build.

 [ Documentation ]
 - Somewhat document Class::XSConstructor::get_metadata().

 [ Other ]
 - Somewhat supported way to clear internal caches.

0.017000	2026-01-10

 [ Bug Fixes ]
 - Hopefully fix errors on debugging builds of Perl.

 [ Other ]
 - Added: BUILDARGS/FOREIGNBUILDARGS/BUILDALL to play nice with other
   modules.
 - Added: slot_initializer.

0.016002	2026-01-08

 - Faster strict constructor checks.

0.016001	2026-01-07

 [ Bug Fixes ]
 - Avoid av_count as older Perl doesn't support it.

0.016000	2026-01-07

 [ Documentation ]
 - Update benchmarks as we are now significantly faster than Mouse::XS.
 - Update copyright dates.

 [ Other ]
 - Added: Class::XSDelegation.
 - Added: Support for alias.
 - Added: Undocumented function Class::XSConstructor::install_reader().
 - Rearrange where most of the constructor metadata is stored to simplify
   things.
 - The first time a constructor or destructor is called, the metadata for
   the method will be copied from Perl space into a C struct making it much
   faster to access from XS as there is no longer a need to look things up
   in stashes, worry about magic, etc.

0.015003	2025-12-23

 - Small optmizations.

0.015002	2025-12-20

 [ Bug Fixes ]
 - Fix interplay between init_args and strict constructors.

0.015001	2025-12-19

 [ Documentation ]
 - Document some newer features.

0.015000	2025-12-19

 - Added: Support `init_arg`.
 - Added: Support `trigger`.
 - Added: Support `weak_ref`.
 - More use of constants instead of weird hard-coded numbers everywhere.
 - Some minor cleanups of the code.

0.014001	2025-12-19

 [ Bug Fixes ]
 - Consistently use uppercase for TRUE/FALSE as it seems lowercase versions
   of these constants are not defined on all platforms.

 [ Packaging ]
 - Update distribution metadata to point to correct bug tracker.

0.014000	2025-12-18

 [ Bug Fixes ]
 - Support threaded Perls.

 [ Packaging ]
 - Switch to 6 decimal place version numbers.

 [ Other ]
 - Added: Class::XSDestructor.
 - No longer use Ref::Util: use Types::Standard if it's installed or Perl's
   ref() builtin otherwise.

0.013	2025-12-16

 [ Bug Fixes ]
 - Fix calling of BUILD methods which was broken on
   non-Class::XSConstructor classes that inherited from
   Class::XSConstructor classes.

 [ Documentation ]
 - Remove further documentation of internals.

 [ Other ]
 - Certain common Types::Common types are now internally recognized and a
   fast C function is called to validate them instead of needing to call a
   coderef.

0.012	2025-12-15

 [ Bug Fixes ]
 - Fix for import method.

0.011	2025-12-15

 [ Bug Fixes ]
 - Allow non-Class::XSConstructor classes to inherit constructors from
   Class::XSConstructor classes without segfaulting.

 [ Documentation ]
 - Remove a lot of the documentation for internals. Some was out of date.
   You don't need to know about them anyway.

 [ Other ]
 - Added: Support builders.
 - Added: Support defaults.
 - Added: Support type coercions.

0.010	2025-12-08

 - Added: Allow MooseX::StrictConstructor-style constructors to be built;
   which reject unknown parameters.
 - Minor improvements to API.

0.009	2019-01-07

 [ Test Suite ]
 - Add tests for Type::Nano support.

0.008	2018-06-21

 [ Packaging ]
 - Don't use old versions of Devel::PPPort.
 - Perl 5.8.1 support didn't work; change required version of Perl to
   5.8.8.

0.007	2018-06-20

 [ Packaging ]
 - Allow installation on Perl 5.8.1.
 - Devel::PPPort should be a configure recommendation, not a build
   requirement.

 [ Other ]
 - Added: $Class::XSConstructor::REDEFINE to allow an existing `new` to be
   redefined without a warning.

0.006	2018-06-20

 [ Bug Fixes ]
 - Fix a bunch of XS compilation warnings.
 - Fix buggy implementation of type constraints.
 - XS stuff now works in threaded perls.

 [ Documentation ]
 - Document support for coderef type constraints.

0.005	2018-06-20

 [ Bug Fixes ]
 - Fix support for Perl 5.8.

0.004	2018-06-20

 [ Bug Fixes ]
 - Fix more broken assertions in XS code.

0.003	2018-06-20

 [ Packaging ]
 - Add dep on MRO::Compat for Perl 5.8.

0.002	2018-06-20

 [ Bug Fixes ]
 - Fix some broken assertions in XS code.

 [ Documentation ]
 - Add SEE ALSO section.

0.001	2018-06-20	Initial release
