diff options
author | Florian Ragwitz <rafl@debian.org> | 2010-10-20 15:17:11 -0700 |
---|---|---|
committer | Florian Ragwitz <rafl@debian.org> | 2010-10-20 15:17:18 -0700 |
commit | b141c43c04aa77df154811acd708b7b951e3963d (patch) | |
tree | 3c64ad2eb437f8a1db2526bb1cfdd12809277a7f /pod | |
parent | 29dba7683e8595812491799fdba371ea0b772624 (diff) | |
download | perl-b141c43c04aa77df154811acd708b7b951e3963d.tar.gz |
Mention the PL_* accessor removal in perldelta
Diffstat (limited to 'pod')
-rw-r--r-- | pod/perldelta.pod | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 7513ad2559..bb11eebf2f 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -179,6 +179,26 @@ The bulk of the C<Tie::Hash::NamedCapture> module used to be in the perl core. It has now been moved to an XS module, to reduce the overhead for programs that do not use C<%+> or C<%->. +=item * + +Eliminate C<PL_*> accessor functions under ithreads. + +When C<MULTIPLICITY> was first developed, and interpreter state moved into an +interpreter struct, thread and interpreter local C<PL_*> variables were defined +as macros that called accessor functions, returning the address of the value, +outside of the perl core. The intent was to allow members within the interpreter +struct to change size without breaking binary compatibility, so that bug fixes +could be merged to a maintenance branch that necessitated such a size change. + +However, some non-core code defines C<PERL_CORE>, sometimes intentionally to +bypass this mechanism for speed reasons, sometimes for other reasons but with +the inadvertent side effect of bypassing this mechanism. As some of this code is +widespread in production use, the result is that the core B<can't> change the +size of members of the interpreter struct, as it will break such modules +compiled against a previous release on that maintenance branch. The upshot is +that this mechanism is redundant, and well-behaved code is penalised by +it. Hence it can and should be removed. + =back =head1 Modules and Pragmata |