Revision history for Perl extension Class-XSAccessor.
1.19_01 - 2026-10-10
- Fix Class::XSAccessor::Array method installation: ensure getters and
predicates are not accidentally overwritten as read-write accessors.
- Use key length comparison and memcmp instead of strcmp in hash registry
to prevent key aliasing on embedded NUL bytes and improve lookup speed;
eliminate redundant key re-allocation on shared hash keys and enforce
bounded key copy in hash table storage (XSA-04, XSA-05).
- Safe package stash resolution and invocant validation in constructors:
use gv_stashsv to support full package names, validate that invocants
are defined and blessed (if references), and check for NULL stash (XSA-11).
- Validate hash key length against I32 limits to prevent integer wrapping
and buffer overflows with excessive key lengths (XSA-05).
- Normalize old package separator (') to (::) in subroutine names and
package parameters, and reject subroutine names containing embedded
NUL bytes in both Perl and XS layers (XSA-03).
- Validate array index bounds (must be 0..10_000_000) to prevent negative
index out-of-bounds access, realloc(0) deallocation, and excessive
memory allocation, with portable IVdf error formatting (XSA-02).
- B::C compatibility fix (thanks, Todd Rinaldo)
- Clean up macros (thanks, Nicolas R)
- Re-enable erroneously disabled test (thanks, Peter Rabbitson)
1.19 - 2013-11-22
- Require Time::HiRes explicitly because CentOS cripples the base
perl install.
- Simplify entersub optimization (chocolateboy)
1.18 - 2013-06-17
- Revert fixes for implicitly-lvalue getters for now since that
actually breaks user code. It seems it's not just because the
users are naughty, so more investigation required.
1.17 - 2013-06-17
- For Hashes: Implement predicates that check definedness and
existance explicitly. The traditional "predicates" check
definedness. It's conceivable to also want a bool-check
type predicate. File a ticket if you need that.
- Fix bug regarding getters being implicitly lvalue by
returning the internal SV*. Instead, we now use TARG.
1.16 - 2012-11-05
- Drop erroneous MYMETA files from distribution.
1.15 - 2012-11-04
- Support for hash keys with NUL (\0) characters. Previously,
these were truncated.
1.14 - 2012-08-26
- Skip some failing tests on old debugging perls. Guys, please
upgrade your perl!
1.13 - 2011-12-12
- Promotes 1.12_03 to a stable release.
1.12_03 - 2011-12-09
- Fix for unthreaded perls (broken in 1.12_02).
1.12_02 - 2011-12-07
- Removes the cached read-only and read-write accessors
for the time being. (These were only available from another
development release.
- Much more brutal thread-safety testing.
- Fixed thread-safety problem with the global hashkey storage.
- Lots of refactoring in the C code.
- Instead of storing an index in the CV, we store a pointer to
the hashkey struct.
1.12_01 - 2011-11-29
- Implements cached read-only and read-write accessors.
Details on what that means are in the documentation.
1.12 - 2011-09-04
- Reclaim compatibility with the most recent versions of
ExtUtils::ParseXS.
- Explicit tests for wrong-type invocants.
1.11 - 2010-12-03
- Fix assignment to lvalue accessors that
point at an uninitialized hash element.
1.10 - 2010-12-01
- Fix RT #63458 and potentially #50454
We don't occasionally crash during END any more.
Instead, we rely on the OS to reap a bit of memory after
perl was shut down anyway.
- Tiny refactoring for smaller object size.
1.09 - 2010-10-31
- Fix #62531: Predicates return value, not bool (SJOHNSTON)
- TODO test for perl-crashing bug (in perl) that can happen
on (arcane) XSUB aliasing on perls < 5.8.9 (Peter Rabbitson)
We're open for work-around patches.
1.08 - 2010-09-17
- Promote latest development release to a stable release.
1.07_04 - 2010-09-12
- Since WIN32 doesn't have the PERL_CORE optimization,
it gets the PERL_NO_GET_CONTEXT optimization back.
- Add threading test that would previously crash on win32
and perls compiled with track-mempool.
- Use the system's malloc/etc for the shared memory, not perl's.
1.07_03 - 2010-09-09
- Minor constructor optimization/cleanup.
- Various built-time warning fixes.
- PERL_CORE optimization now disabled on WIN32.
- Class::Accessor::Fast compatibility code added (not
for public consumption!)
- Clear requirement of Perl 5.8 everywhere.
- Fix minor (constant as in O(1)) memory leak.
1.07_02 - 2010-08-23
- Various warning fixes and small cleanups over previous
dev. version.
1.07_01 - 2010-08-18
- Experimental support for lvalue accessors:
$obj->foo = 12
1.07 - 2010-08-15
- Include two new test files for the fix in 1.06.
- Define PERL_CORE, but *only* while including XSUB.h to get
a significant speed-up (see XSAccessor.xs for an explanation).
Idea from chocolateboy. Complaints from rightfully annoyed
perl5-porters (in particular but not limited to Nicholas)
go to Steffen.
1.06 - 2010-08-14
- Add sanity checks to make sure we don't segfault on
invalid invocants (chocolateboy)
1.05 - 2009-11-15
- Minor developer doc tweaks.
- Minor XS refactoring
1.04_05 - 2009-11-09
- Fixes for perls < 5.10:
=> No entersub optimization
=> Do no use precalculated hashes
- Updated entersub optimization
- Remove brain-damaged double-hashing
- Minor portability fixlets
1.04_04 - 2009-11-05
- Fixes for non-threaded perls
(no need for locks, perl_mutex not even defined).
1.04_03 - 2009-11-03
** This release features some very radical changes. Test well. **
- Replace use of perl hashes in the global hash key name storage with
a full-blown, separate implementation of a hash table
(Steffen, chocolateboy)
- Similarly, throw out the SV's for simple C strings.
- Add a global lock for all modifications to global data structures:
- The above three items fix RT #50454 (serious threading issues).
- Add support for alternate use Class::XSAccessor { ... } syntax
(Adam K)
1.04_02 - 2009-09-07
** This release features some very radical changes. Test well. **
- Significant optimization by replacing the relevant entersub ops
with stripped down versions (chocolateboy)
1.04_01 - 2009-09-07
** This release features some very radical changes. Test well. **
- More aggressive OPTIMIZE flags if possible (chocolateboy)
- Added shorthand syntax for getters, setters, accessors, and predicates
where the attribute has the same name as the method (chocolateboy)
- Remove dependency on AutoXS::Header.
- Merge Class::XSAccessor::Array into this distribution.
- Refactored the XS to remove duplicate code.
- Refactored the perl code in XSAccessor.pm and Array.pm to remove
duplicate code (=> Heavy.pm).
- Upgrade Devel::PPPort/ppport.h (chocolateboy)
1.04 - 2009-06-11
- Fix a bunch of warnings thanks to a heads up from
Marcela Maslanova.
1.03 - 2009-05-31
- Upgrade to AutoXS::Header 1.01: Make it C89!
1.02 - 2009-05-17
- Require new AutoXS header version in order to fix
prototyping issue.
1.01 - 2009-05-16
- XS boolean constants for PPI
1.00 - 2009-05-16
- Implement new caching algorithm: Only recreate
the int => hash key association for new hash keys.
0.14 - 2008-12-09
- Fix Makefile issue on Windows using nmake (Petar Shangov)
0.13 - 2008-12-04
- Add predicate tests
- Fix some compiler warnings (Tom Heady)
0.12 - 2008-12-02
- Compilation fix for Solaris cc. (Probably going half-way only.)
0.11 - 2008-11-29
- Forgot to add more tests in previous release.
0.10 - 2008-11-29
- Add generation of constructors.
0.09 - 2008-11-29
- Add the class option to set the target class.
0.08 - 2008-11-21
- Reduce code duplication.
- Fix for compilation issues on Solaris with Sun's cc.
0.07 - 2008-08-29
- Documented the "replace" option.
- Added the "chained" option to generate chainable setters
and mutators.
0.06 - 2008-08-28
- Copy input scalars on setter/mutator calls (RT #38573)
0.05 - 2008-06-21
- Add read/write accessors. (chocolateboy)
- By default, return the new value from setters. (chocolateboy)
- Add predicates, i.e. "has_foo".
0.04 - 2008-05-03
- Win32 support.
0.03 - 2008-05-03
- Refer to Class::XSAccessor::Array for array based objects.
0.02 - 2008-04-03
- Mention in the docs that fully qualified method names are
supported.
0.01 - 2008-04-03
- original version as uploaded to CPAN.
Keyboard Shortcuts
Global
s
Focus search bar
?
Bring up this help dialog
GitHub
gp
Go to pull requests
gi
Go to GitHub issues (only if GitHub is preferred repository)