In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/b141c43c04aa77df154811acd708b7b951e3963d?hp=29dba7683e8595812491799fdba371ea0b772624>

- Log -----------------------------------------------------------------
commit b141c43c04aa77df154811acd708b7b951e3963d
Author: Florian Ragwitz <[email protected]>
Date:   Wed Oct 20 15:17:11 2010 -0700

    Mention the PL_* accessor removal in perldelta
-----------------------------------------------------------------------

Summary of changes:
 pod/perldelta.pod |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index 7513ad2..bb11eeb 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

--
Perl5 Master Repository

Reply via email to