summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2006-01-27 10:36:05 +0000
committerNicholas Clark <nick@ccl4.org>2006-01-27 10:36:05 +0000
commite761a78610045f5eed6e9ca93d8aaefb22dcb0a6 (patch)
treef9bb264c11b7b911124d24470127c24f51d758b5
parent4b645107ff280e9efe46ab2fc89b620041a5b949 (diff)
downloadperl-e761a78610045f5eed6e9ca93d8aaefb22dcb0a6.tar.gz
A description of the new constants.
p4raw-id: //depot/perl@26955
-rw-r--r--pod/perl593delta.pod13
1 files changed, 12 insertions, 1 deletions
diff --git a/pod/perl593delta.pod b/pod/perl593delta.pod
index d29b928b5f..4a1a3056a5 100644
--- a/pod/perl593delta.pod
+++ b/pod/perl593delta.pod
@@ -234,7 +234,18 @@ transliteration mappings has been reimplemented in XS.
=head2 Constant subroutines
-XXX
+The interpreter internals now support a far more memory efficient form of
+inlineable constants. Storing a reference to a constant value in a symbol
+table is equivalent to a full typeglob referencing a constant subroutine,
+but using about 400 bytes less memory. This proxy constant subroutine is
+automatically upgraded to a real typeglob with subroutine if necessary.
+The approach taken is analogous to the existing space optimisation for
+subroutine stub declarations, which are stored as plain scalars in place
+of the full typeglob.
+
+Several of the core modules have been converted to use this feature for
+their system dependent constants - as a result C<use POSIX;> now takes about
+200K less memory.
=head2 C<PERL_DONT_CREATE_GVSV>