perl.git
10 years agovarious changes
Yves Orton [Thu, 1 Jan 2009 17:05:53 +0000 (18:05 +0100)] 
various changes

(cherry picked from commit b6194a9dbf93238df7e489901287cc0265a05f6c)

10 years agoAlmost a literal conversion of make_patchnum.sh
Kenichi Ishigaki [Thu, 1 Jan 2009 16:41:06 +0000 (17:41 +0100)] 
Almost a literal conversion of make_patchnum.sh

(cherry picked from commit 786aaa2520ef9071f3a79fccadd271b02b8e6097)

10 years agoprepare for refactoring to perl
Yves Orton [Thu, 1 Jan 2009 16:37:52 +0000 (17:37 +0100)] 
prepare for refactoring to perl

(cherry picked from commit 8ed12dca5306d03e0105857d74b40a6d40ecbe60)

10 years agomodified make_patchnum.sh script
Yves Orton [Thu, 1 Jan 2009 16:36:35 +0000 (17:36 +0100)] 
modified make_patchnum.sh script

(cherry picked from commit 166a466fb1666ac00cde800e4385dc95621e2ea5)

10 years agoAnother regexp failure with utf8-flagged string and byte-flagged pattern (reminder)
Slaven Rezic [Sun, 4 Jan 2009 16:28:33 +0000 (17:28 +0100)] 
Another regexp failure with utf8-flagged string and byte-flagged pattern (reminder)

Date: 17 Nov 2007 16:29:29 +0100
Message-ID: <87r6iohova.fsf@biokovo-amd64.herceg.de>

(cherry picked from commit c012444fd89eef64e1d1687642cdb9f968e96739)

10 years agoRemove duplicate return in S_mro_get_linear_isa_c3() accidentally added by
Nicholas Clark [Sat, 3 Jan 2009 18:06:25 +0000 (18:06 +0000)] 
Remove duplicate return in S_mro_get_linear_isa_c3() accidentally added by
fa60396f123333e92849ecaecffb9252458d6678

(cherry picked from commit 105ae854636da9ac798d310437c2718c19f2c172)

10 years agotodays merging activity
David Mitchell [Mon, 30 Mar 2009 23:38:57 +0000 (00:38 +0100)] 
todays merging activity

10 years agoadd -d option to Porting/cmpVERSION.pl to display diffs
David Mitchell [Sat, 3 Jan 2009 14:19:00 +0000 (14:19 +0000)] 
add -d option to Porting/cmpVERSION.pl to display diffs

(cherry picked from commit 2547c837a73d50421f898a78d070bf820ac97f12)

10 years agosome more Porting/ script documentation
David Mitchell [Sat, 3 Jan 2009 13:51:28 +0000 (13:51 +0000)] 
some more Porting/ script documentation

(cherry picked from commit a7d002a11216fa10d2d93aff87fec9eea46a32ff)

10 years agoAdd some basic decriptions and/or usage info to some Porting/ scripts
David Mitchell [Sat, 3 Jan 2009 13:38:16 +0000 (13:38 +0000)] 
Add some basic decriptions and/or usage info to some Porting/ scripts

(cherry picked from commit 0c429c7857dc17d863b0f599b99cd7e16e6d865f)

10 years agoChanging get_isa_hash() to static means that it needs to be wrapped in
Nicholas Clark [Sat, 3 Jan 2009 18:04:17 +0000 (18:04 +0000)] 
Changing get_isa_hash() to static means that it needs to be wrapped in
an #if defined(PERL_IN_UNIVERSAL_C).

(cherry-picked from commit 4ba0c7624af22979d48903837c60220f54b46269)

10 years agoget_isa_hash() is only used in S_isa_lookup(), so it can be static. Also, it has
Nicholas Clark [Sat, 3 Jan 2009 10:38:28 +0000 (10:38 +0000)] 
get_isa_hash() is only used in S_isa_lookup(), so it can be static. Also, it has
never been in a released version of perl, so this change has no compatibility
implications.

(cherry-picked from commit aea323039bd02667df3bd60d27358d65842cd171)

10 years agoFollowing change 34356, which decoupled get_isa_hash() from
Nicholas Clark [Sat, 3 Jan 2009 10:23:16 +0000 (10:23 +0000)] 
Following change 34356, which decoupled get_isa_hash() from
S_mro_get_linear_isa_dfs(), we can move get_isa_hash() to any other source file.

(cherry picked from commit 00bf72ff155f3450b111622b688bd0036a18326c)

10 years agoFix a thinko in regression test for [perl #54956]
Ben Morrow [Sat, 3 Jan 2009 08:23:32 +0000 (09:23 +0100)] 
Fix a thinko in regression test for [perl #54956]

(follows to commit 8c8eee8276dbc780932b841fe5183943a7117a3d)

(cherry picked from commit 44250bdc17df7fe8bb261563edbd7aeb85406e89)

10 years agoa test for Paul Evan's qr leak
Yuval Kogman [Fri, 15 Aug 2008 13:59:15 +0000 (16:59 +0300)] 
a test for Paul Evan's qr leak

(cherry picked from commit 49c38585884a547ae094a6be3f8a37db3018e48d)

10 years agoMore comprehensive smartmatch.t, supersedes smobj.t
Yuval Kogman [Sat, 28 Jun 2008 22:40:36 +0000 (01:40 +0300)] 
More comprehensive smartmatch.t, supersedes smobj.t

(cherry picked from commit 1cfb70492a75e71d0d138b31ac879fa68a42e0f3)

10 years agoadd eval and error support to the t/op/smartmatch.t test
Yuval Kogman [Sat, 28 Jun 2008 22:40:35 +0000 (01:40 +0300)] 
add eval and error support to the t/op/smartmatch.t test

(cherry picked from commit a86f5011b590cb88c7014f49e191e01aa918b09b)

10 years agoadd undef tests to t/op/smartmatch.t
Yuval Kogman [Sat, 28 Jun 2008 22:40:34 +0000 (01:40 +0300)] 
add undef tests to t/op/smartmatch.t

(cherry picked from commit b472f62a7910ee5203ec5d411f2f1f65943f5efd)

10 years agoperlsyn: equivalent code for HASH ~~ ARRAY
brian d foy [Sat, 7 Jun 2008 23:59:22 +0000 (00:59 +0100)] 
perlsyn: equivalent code for HASH ~~ ARRAY
Message-ID: <070620082359221579%brian.d.foy@gmail.com>

p4raw-id: //depot/perl@34027

(cherry picked from commit d6db67f2d91e588a13d4c1b90d1af1054faf4d41)

10 years agoMinimal mention of overloading.pm in overload.pm
Paul Fenwick [Fri, 2 Jan 2009 11:26:29 +0000 (12:26 +0100)] 
Minimal mention of overloading.pm in overload.pm

(cherry picked from commit 7e49475998c8ec327d9f30272b715a1e9c1fa3fd)

10 years agoIn amagic_call(), offset should be strictly lesser than the SV len to be allowed...
Vincent Pit [Fri, 2 Jan 2009 11:24:44 +0000 (12:24 +0100)] 
In amagic_call(), offset should be strictly lesser than the SV len to be allowed to access the corresponding string buffer byte

(cherry picked from commit ed15e576876f5122f97f9cdd2b304e5a94efbc0a)

10 years agoAdd a new test for overloading.pm
Rafael Garcia-Suarez [Fri, 2 Jan 2009 11:05:59 +0000 (12:05 +0100)] 
Add a new test for overloading.pm

This one overloads "cos", which is currently at the end of the
overload table, so we properly test the bitstring stored in %^H

(cherry picked from commit abb619adf81df64d67e76aa14cbb224b1ad99bd6)

10 years agoFix overload index mismatch in overloading logic.
Vincent Pit [Fri, 2 Jan 2009 11:01:50 +0000 (12:01 +0100)] 
Fix overload index mismatch in overloading logic.

In amagic_call(), the 'method' arg comes the overload enum in overload.h, but is expected to match the bit set from %overloading::numbers::names. It values wrongly start at 1, differing by 1 from the enum indexes. This didn't appear in the tests because 'method' was reduced modulo 7 instead of 8.

(cherry picked from commit d87d3eede5d67a7d281a1d929949e466e06bc21a)

10 years agorun regen
David Mitchell [Mon, 30 Mar 2009 22:23:42 +0000 (23:23 +0100)] 
run regen

10 years agoBump coopyright year in embed.pl and various files that were just touched
Rafael Garcia-Suarez [Fri, 2 Jan 2009 10:41:41 +0000 (11:41 +0100)] 
Bump coopyright year in embed.pl and various files that were just touched

(and run "make regen")

(cherry picked from commit 83706693c63eb4fe0fd171a88263c83548c89029)

10 years agoFactorize numeric constant for "overloading" lexical hint
Rafael Garcia-Suarez [Fri, 2 Jan 2009 10:40:48 +0000 (11:40 +0100)] 
Factorize numeric constant for "overloading" lexical hint

(cherry-picked from commit effb3d11767a16df2fa0fbc159836c966b80ba88)

10 years ago[perl #61392] Method call documentation in perlobj.pod
ian.goodacre@xtra.co.nz (via RT) [Fri, 2 Jan 2009 13:36:54 +0000 (14:36 +0100)] 
[perl #61392] Method call documentation in perlobj.pod

(cherry picked from commit e947c198f4d08c5b6342363b752901f195bc5cb5)

10 years agomake overloading.pm recognise 5.10.x
David Mitchell [Mon, 30 Mar 2009 21:40:32 +0000 (22:40 +0100)] 
make overloading.pm recognise 5.10.x
(this should really go in bleed, once 5.10.1 exists)

10 years agoBump copyright year after previous change
Rafael Garcia-Suarez [Fri, 2 Jan 2009 09:46:22 +0000 (10:46 +0100)] 
Bump copyright year after previous change

(cherry picked from commit f4b6e4b3030d41298059a7177b55b86f24360e10)

10 years ago[perl #54956] crash on binary-or lvalue operation on qr//
Ben Morrow [Fri, 2 Jan 2009 09:41:52 +0000 (10:41 +0100)] 
[perl #54956] crash on binary-or lvalue operation on qr//

This fixes the following problem:

  -e 'my $re = qr/x/; $re |= "y"'
  assert failure under 5.10.0, 10-maint, bleed, but not 5.8.8

(cherry picked from commit 8c8eee8276dbc780932b841fe5183943a7117a3d)

10 years agoBump copyright year after previous change d15cd8313063e574
Rafael Garcia-Suarez [Fri, 2 Jan 2009 09:30:43 +0000 (10:30 +0100)] 
Bump copyright year after previous change d15cd8313063e574

(cherry picked from commit 67fbe0e1b13187d3561157e5b4b998bec3109d41)

10 years agoMove variable declaration without initialisation at the top
Rafael Garcia-Suarez [Fri, 2 Jan 2009 09:00:35 +0000 (10:00 +0100)] 
Move variable declaration without initialisation at the top

Plus a comment by Nicholas

(cherry picked from commit d15cd8313063e5745ca7fc7b7b5dc3d73def2e68)

10 years agoFix a couple of typos in overloading.pm docs
Rafael Garcia-Suarez [Fri, 2 Jan 2009 08:55:03 +0000 (09:55 +0100)] 
Fix a couple of typos in overloading.pm docs

(cherry picked from commit 23f6cb285656c85849665669b0a13828f0d8b395)

10 years ago'overloading' pragma
Yuval Kogman [Sat, 9 Aug 2008 13:01:15 +0000 (16:01 +0300)] 
'overloading' pragma

(cherry picked from commit e46c382ee1a26c0abddc80ad1249dc544d229d4e)

10 years agoFollowing 33291, on VMS we need to use the same prototypes other platforms
Craig A. Berry [Fri, 22 Feb 2008 00:20:45 +0000 (00:20 +0000)] 
Following 33291, on VMS we need to use the same prototypes other platforms
use in order to get the do_spawn-related assert macros defined.  Based
on suggestions by John Malmberg.

p4raw-id: //depot/perl@33343

(cherry picked from commit 9ec7171b93c2f7e007fcbb49144b664695f0d21b)

10 years agoUpgrade to IPC::SysV 2.00_02
Marcus Holland-Moritz [Sat, 29 Nov 2008 05:43:24 +0000 (05:43 +0000)] 
Upgrade to IPC::SysV 2.00_02

p4raw-id: //depot/perl@34953

(cherry picked from commit 503ba33a32294abe4e07fa9e519b91bcf80bf407)

10 years agoUpgrade to IPC::SysV 2.00_01
Marcus Holland-Moritz [Wed, 26 Nov 2008 22:34:54 +0000 (22:34 +0000)] 
Upgrade to IPC::SysV 2.00_01

p4raw-id: //depot/perl@34936

(cherry picked from commit aec08fdf1cbafdae7e2d5b94ea4ce3d52f2c4c72)

10 years agoRe: [PATCH] Exclude .svn and _darcs from IPC::SysV's Makefile.PL libscan
Marcus Holland-Moritz [Wed, 9 Jan 2008 19:58:11 +0000 (20:58 +0100)] 
Re: [PATCH] Exclude .svn and _darcs from IPC::SysV's Makefile.PL libscan
Message-ID: <20080109195811.2c5353e5@r2d2>

Make libscan() in IPC::SysV's Makefile.PL inherit EU::MM's
libscan() behaviour.

p4raw-id: //depot/perl@32926

(cherry picked from commit 3f163fbbebeeaba9ded4fcd6c8371584f6da43d5)

10 years agoFirst cut at handling git patch numbers on VMS.
Craig A. Berry [Thu, 1 Jan 2009 16:41:35 +0000 (10:41 -0600)] 
First cut at handling git patch numbers on VMS.
Partially based on suggestions from John Malmberg at <495C279C.7020106@gmail.com>.

(cherry picked from commit 9c3905ef054a16857454499c7acfa64d8373c309)

10 years agoSwitching to `` requires one more \ to escape $Config in new_config=`...`
Nicholas Clark [Wed, 31 Dec 2008 07:44:28 +0000 (07:44 +0000)] 
Switching to `` requires one more \ to escape $Config in new_config=`...`

(cherry picked from commit 28b1daef84496f2ebce3fad4ac7861dd4dd92f38)

10 years agoSwitching from $() to `` requires two more backticks in unpushed_commits=`...`
Nicholas Clark [Wed, 31 Dec 2008 07:42:55 +0000 (07:42 +0000)] 
Switching from $() to `` requires two more backticks in unpushed_commits=`...`

(cherry picked from commit 050a6864ccd9ebde9d8e59e8575c3ba4ac7097d4)

10 years agoMore efficient API choices for string appending.
Nicholas Clark [Wed, 31 Dec 2008 07:32:42 +0000 (07:32 +0000)] 
More efficient API choices for string appending.

(cherry picked from commit d0a9311f604aa78fbd7b7284f993900eeb0c2a7e)

10 years agocflags also runs under /bin/sh so can't use $()
Nicholas Clark [Wed, 31 Dec 2008 07:30:24 +0000 (23:30 -0800)] 
cflags also runs under /bin/sh so can't use $()

(cherry picked from commit 5f589954180c59496f647c8523dcd3df0d8e579b)

10 years agoSolaris awk (at least) thinks that + should be escaped.
Nicholas Clark [Wed, 31 Dec 2008 07:18:37 +0000 (23:18 -0800)] 
Solaris awk (at least) thinks that + should be escaped.

(cherry picked from commit a2837a9e92f4ea37fd2681a70558d242250a5a34)

10 years agoSolaris /bin/sh doesn't do POSIX $( ... ) syntax for ` .... `
Nicholas Clark [Wed, 31 Dec 2008 07:16:50 +0000 (23:16 -0800)] 
Solaris /bin/sh doesn't do POSIX $( ... ) syntax for ` .... `

(cherry picked from commit 8ffec826be729d9e6b57b1c75aba2efd9067825d)

10 years agovarargs functions such as sv_catpvf can't have compatibility wrappers for
Nicholas Clark [Wed, 31 Dec 2008 07:14:15 +0000 (07:14 +0000)] 
varargs functions such as sv_catpvf can't have compatibility wrappers for
threads, so have to be written longhand as Perl_sv_catpvf(aTHX_ ...)  :-(

(cherry picked from commit 54bb77241e478a3cfef59931ff5bed2271662f23)

10 years agomuch better git related version numbering in our (*nix for now) build process
Yves Orton [Wed, 31 Dec 2008 00:16:23 +0000 (01:16 +0100)] 
much better git related version numbering in our (*nix for now) build process

The net result of this patch is to make available via Config.pm and -v/-V the
details about the git version info we have available for the build. When built within
a git repository git is queried directly. When built from a snapshot or bundle
it is assumed that the source is unchanged, and that the required details are
avaialble in a file called .patch, whose format current is a four field string
in the following format: "$branchname $date.$time $sha1 $describe". The
generator of these files currently resides on camel.booking.com.

* git-describe is now used more directly with -v.
When the prefix of git-describe matches the version number
as determined by the defines in patchlevel.h then we use ONLY
the git-describe output, otherwise we include
the git describe in parenthesis after the version number. Either way
the describe text is optionally followed by a star should there be
uncommitted changes.
eg: This is perl, v5.11.0 (GitLive-blead-136-g58ca560) built for i686-linux
or: This is perl, v5.11.0-1-g58ca560 built for i686-linux
or: This is perl, v5.11.0 built for i686-linux

* include the SHA1 in perl -V summary, and automatically include unpushed
commits in the registered patches list

* include various git/version/.patch details in %Config, as follows:

git_commit_id             # sha1 of HEAD
git_ancestor              # ancestor in $remote/$branch (presumably canonical)
git_describe              # git describe
git_branch                # current branch
git_uncommitted_changes   # "true" if there are any, empty otherwise
git_unpushed_commits      # List of sha1's of unpushed commits
git_commit_id_title       # Used to make the perl -V summary output

Additionally one more value is added depending on build process used: when
building from an rsynced snapshot (or any dist including a file called
.patch) then the second field will be used to populate the
"git_snapshot_date" field. Otherwise if built in a git directory (as is hopefully
recommended these day) then the field will be "git_commit_date" which will be the
commit date of HEAD.

This patch introduces two new files (on top of .patchnum) that will be generated by
make_patchnum.sh: "lib/Config_git.pl" and "unpushed.h", the former is used to make
git data available to Config.pm/%Config without rebuilding everything else, and the
second is used to expose unpushed commits (if any) via the registered patch facility
of patchlevel.h

(cherry-picked from commit 46807d8e809cc127621bf85d9e9cea2f838eb477)

10 years agoadded information how to build on Leopard
Igor Sutton [Tue, 30 Dec 2008 23:41:07 +0000 (00:41 +0100)] 
added information how to build on Leopard

(cherry picked from commit 675b0f774d374f6951c02c6463c64a746ad46acd)

10 years agoMark my dual-life modules as authoritative in blead
Rafael Garcia-Suarez [Mon, 29 Dec 2008 12:39:48 +0000 (13:39 +0100)] 
Mark my dual-life modules as authoritative in blead

(cherry picked from commit 3eb629a04d2069448368e3c6c52aab75c686b6bb)

10 years agoPL_registered_mros can start with 1 hash bucket, as it will probably never
Nicholas Clark [Mon, 29 Dec 2008 11:22:55 +0000 (11:22 +0000)] 
PL_registered_mros can start with 1 hash bucket, as it will probably never
contain more than "dfs", and even if C3 is loaded, 2 buckets are less than the
default of 8.

(cherry picked from commit 9e1694326ed89111b35daf7589dacbe10253cdcd)

10 years agoBump switch version to 2.14
Rafael Garcia-Suarez [Mon, 29 Dec 2008 08:50:06 +0000 (09:50 +0100)] 
Bump switch version to 2.14

(cherry picked from commit 01c2a33d9c8801c319aa999a05dc0d7812571930)

10 years agoMake Switch.pm skip POD like perl does
Rafael Garcia-Suarez [Sun, 28 Dec 2008 22:30:57 +0000 (23:30 +0100)] 
Make Switch.pm skip POD like perl does

Patch provided by Daniel Klein <danielklein-à-airpost.net> :

  It also doesn't check for invalid POD which gets ignored by the
  compiler anyway.

Seems that Damian had a POD parser in mind when he devised those
regular expressions, but perl only looks for =cut followed by a
non-letter.

(cherry picked from commit 39bcdda02ea582e7bdf8b0cf2e7186e89c6baea9)

10 years agoFix line numbering issues with POD filtered by Switch.pm
Rafael Garcia-Suarez [Sun, 28 Dec 2008 22:20:46 +0000 (23:20 +0100)] 
Fix line numbering issues with POD filtered by Switch.pm

Patch provided by Daniel Klein <danielklein-à-airpost.net> :

  I noticed a very subtle bug in the code: it filters out all detected POD
  from the source code. This means that any line number reporting after
  POD code will be out by the number of POD lines removed. So if there is
  an error or a "warn"ing in the code it will be harder for the programmer
  to track down.

(cherry picked from commit 6a9befb105d93024902eb178dab77655333f1829)

10 years agoSwitch.pm doesn't appear to support plain arrays and hashes in case().
Rafael Garcia-Suarez [Sun, 28 Dec 2008 22:03:27 +0000 (23:03 +0100)] 
Switch.pm doesn't appear to support plain arrays and hashes in case().

(cherry picked from commit cd3d9d47255d3080961ba7b58c9a145c7b45b905)

10 years agoLet us direct Switch questions to P5P.
Rafael Garcia-Suarez [Sun, 28 Dec 2008 18:52:44 +0000 (19:52 +0100)] 
Let us direct Switch questions to P5P.

I still can release versions of Switch to CPAN, but I prefer
to consider the blead version canonical.

(cherry picked from commit b62fb10ea98565ce5572416500e1e3517cb17d33)

10 years agoHandle non-numeric version numbers in ext/Digest/MD5/Makefile.PL
Jerry Hedden [Tue, 23 Dec 2008 16:49:36 +0000 (11:49 -0500)] 
Handle non-numeric version numbers in ext/Digest/MD5/Makefile.PL

(cherry picked from commit fc0bcb62b85d01e88e3b64c381528a3ea82ead30)

10 years agoAdd casts to gain C++ compatibility, as spotted by Yves.
Nicholas Clark [Sun, 28 Dec 2008 14:21:03 +0000 (14:21 +0000)] 
Add casts to gain C++ compatibility, as spotted by Yves.

(Cherry-picked from commit 5844ac76c26b089bf113b64f4251a673b59bdebb)

10 years agoBreak out the set-the-MRO logic from the XS_mro_set_mro into Perl_mro_set_mro(),
Nicholas Clark [Sat, 27 Dec 2008 14:32:59 +0000 (14:32 +0000)] 
Break out the set-the-MRO logic from the XS_mro_set_mro into Perl_mro_set_mro(),
which can be called from C code (such as the guts of extensions).

(cherry picked from commit 31b9005d8ff165a414c5e3493027e1656d7e810f)

10 years agoOptimisation of the use of the meta structure - don't create a hash if all we
Nicholas Clark [Sat, 27 Dec 2008 09:20:21 +0000 (09:20 +0000)] 
Optimisation of the use of the meta structure - don't create a hash if all we
are dealing with is data for the current MRO. Instead the direct pointer "owns"
the (reference to the) data, with the hash pointer left as NULL to signal this.

(cherry picked from commit 553e831a35acc518a30a7514866e0d1440e894ef)

10 years agoRemove the comment that the mro:: functions are actually in the core
Nicholas Clark [Sat, 27 Dec 2008 08:39:14 +0000 (08:39 +0000)] 
Remove the comment that the mro:: functions are actually in the core
interpreter, hence you don't actually need to use mro;
This should have remained an implementation detail, as it limits the scope to
move things around within a stable branch. So for now, remove the expectation.

(cherry picked from commit 58d4c5dfb9bcf0d0f30468212e01c1f9c9d48ce3)

10 years agoProper pluggable Method Resolution Orders. 'c3' is now implemented outside the
Nicholas Clark [Sat, 27 Dec 2008 00:20:35 +0000 (00:20 +0000)] 
Proper pluggable Method Resolution Orders. 'c3' is now implemented outside the
core, in ext/mro/mro.xs. Also move mro::_nextcan() to mro.xs. It needs direct
access to S_mro_get_linear_isa_c3(), and nothing on CPAN calls it, except via
methods defined in mro.pm. Hence all users already require mro;

(cherry picked from commit b2685f0c86badfc357584d8dbfb2bf17057ea226)

10 years agoExplictly export Perl_mro_meta_init() so that HvMROMETA() can become part of the
Nicholas Clark [Fri, 26 Dec 2008 21:31:47 +0000 (21:31 +0000)] 
Explictly export Perl_mro_meta_init() so that HvMROMETA() can become part of the
public API and be used outside the core. However, leave Perl_mro_meta_init() as
a private implementation detail.

(cherry picked from commit c60bad7b8870cf2745c93e1b99cbb504daa780b2)

10 years agoAdd Perl_mro_register() to register Method Resolution Orders,
Nicholas Clark [Fri, 26 Dec 2008 18:26:53 +0000 (18:26 +0000)] 
Add Perl_mro_register() to register Method Resolution Orders,
Perl_mro_get_from_name() to retrieve MROs by name, and PL_registered_mros to
store them in. Abolish the static array of mros, and instead register the dfs
and c3 MRO structures.

(cherry picked from commit a3e6e81e81213c31f0612471c427044481a95287)

10 years agoAdd MRO_GET_PRIVATE_DATA() to use the cached mro private data where possible.
Nicholas Clark [Fri, 26 Dec 2008 17:14:44 +0000 (17:14 +0000)] 
Add MRO_GET_PRIVATE_DATA() to use the cached mro private data where possible.

(cherry picked from commit 123892d916359369839f3896f283189be71dc32c)

10 years agoRepurpose struct mro_meta to allow it to store cached linear ISA for arbitary
Nicholas Clark [Fri, 26 Dec 2008 16:38:58 +0000 (16:38 +0000)] 
Repurpose struct mro_meta to allow it to store cached linear ISA for arbitary
method resolution orders.

mro_linear_dfs becomes a hash holding the different MROs' private data.
mro_linear_c3 becomes a shortcut pointer to the current MRO's private data.

(cherry picked from commit fa60396f123333e92849ecaecffb9252458d6678)

10 years agoSilence a compiler warning introduced by 34963
Steve Hay [Tue, 2 Dec 2008 17:47:19 +0000 (17:47 +0000)] 
Silence a compiler warning introduced by 34963

p4raw-id: //depot/perl@34982

(cherry picked from commit 4f5084fafb145bb35b8f361d4dab26b04511700d)

10 years agoConvention seems to be that static definitions are also made visible by
Nicholas Clark [Mon, 1 Dec 2008 21:28:13 +0000 (21:28 +0000)] 
Convention seems to be that static definitions are also made visible by
|| defined(PERL_DECL_PROT), so add this where it is missing.

p4raw-id: //depot/perl@34972

(cherry-picked from commit efd0b058b26702bef38cdb6ce1a9da02e3e7cf89,
althought many of the updates were skipped because the functions aren't
static in maint)

10 years agoIn Perl_ss_dup(), case SAVEt_FREEPV can be rolled into case
Nicholas Clark [Mon, 1 Dec 2008 13:20:27 +0000 (13:20 +0000)] 
In Perl_ss_dup(), case SAVEt_FREEPV can be rolled into case
SAVEt_DELETE for a space optimisation.

p4raw-id: //depot/perl@34969

(cherry picked from commit 8e41545fc5fd5bfd2ddf4723e7793ec207deefff)

10 years agoImplement Perl_save_delete() using save_pushptri32ptr().
Nicholas Clark [Mon, 1 Dec 2008 13:19:41 +0000 (13:19 +0000)] 
Implement Perl_save_delete() using save_pushptri32ptr().

p4raw-id: //depot/perl@34968

(cherry picked from commit 85a721ca70aa3423dbb60aac2a8755ab0fc07bbb)

10 years agoRe-order Perl_save_delete() to PTR, INT, PTR.
Nicholas Clark [Mon, 1 Dec 2008 11:54:42 +0000 (11:54 +0000)] 
Re-order Perl_save_delete() to PTR, INT, PTR.

p4raw-id: //depot/perl@34967

(cherry picked from commit 35d4f826f8e56c33d13476d0f2f79c923032b721)

10 years agoAdd S_save_pushptri32ptr() and use it to re-implement Perl_save_hints()
Nicholas Clark [Mon, 1 Dec 2008 11:27:31 +0000 (11:27 +0000)] 
Add S_save_pushptri32ptr() and use it to re-implement Perl_save_hints()
and Perl_save_aelem().

p4raw-id: //depot/perl@34966

(cherry-picked from commit be84297eef8d269e574a1aac0dbf18f3c3b7341d,
but skipped re-implementing Perl_save_hints since the push order is
different between bleed and maint)

10 years agoMove the implmentation of SAVEHINTS() into a new Perl_save_hints() in
Nicholas Clark [Mon, 1 Dec 2008 11:06:05 +0000 (11:06 +0000)] 
Move the implmentation of SAVEHINTS() into a new Perl_save_hints() in
scope.c. "Inlined" macro functions in scope.h are actually space
inefficient.

(cherry-picked from commit da8315f8f4d9d4df8cbebe108ef0ddb4795856d7,
but modified to allow for the fact that the body of SAVEHINTS()
hasn't been reordered by the blead-only commit 601cee3b44)

p4raw-id: //depot/perl@34965

10 years agoExpose save_pushi32ptr() and implement SAVECOPARYBASE() with it.
Nicholas Clark [Mon, 1 Dec 2008 09:46:15 +0000 (09:46 +0000)] 
Expose save_pushi32ptr() and implement SAVECOPARYBASE() with it.

p4raw-id: //depot/perl@34963

(cherry picked from commit 7623d4262995987d3de73f116de43554c077f9c7)

10 years agoExpose save_pushptrptr() and implement SAVESWITCHSTACK() with it.
Nicholas Clark [Mon, 1 Dec 2008 00:02:17 +0000 (00:02 +0000)] 
Expose save_pushptrptr() and implement SAVESWITCHSTACK() with it.

p4raw-id: //depot/perl@34960

(cherry picked from commit dfcd3de5defffbf214d60b8322b79ded8e367fd3)

10 years agoRefactor all of the code of the form
Nicholas Clark [Sun, 30 Nov 2008 23:45:20 +0000 (23:45 +0000)] 
Refactor all of the code of the form
SSCHECK(3);
SSPUSHINT(i);
SSPUSHPTR(ptr);
SSPUSHINT(type);
into a static function S_save_pushi32ptr().

p4raw-id: //depot/perl@34959

(cherry picked from commit 1409bc0658469580630ba458c85fe9cc3cb2d78c)

10 years agoRe-implement the macros SAVECOMPPAD(), SAVECOMPILEWARNINGS(),
Nicholas Clark [Sun, 30 Nov 2008 23:27:57 +0000 (23:27 +0000)] 
Re-implement the macros SAVECOMPPAD(), SAVECOMPILEWARNINGS(),
SAVEPARSER() in terms of save_pushptr(). This shinks the exectuable
by about 4K. Maybe some of the other scope.h macros should become
functions.

p4raw-id: //depot/perl@34958

(cherry picked from commit 747e2fae43204b65ccf806e75ededd01638e4351)

10 years agoRefactor all of the code of the form
Nicholas Clark [Sun, 30 Nov 2008 23:16:09 +0000 (23:16 +0000)] 
Refactor all of the code of the form
SSCHECK(3);
SSPUSHPTR(ptr1);
SSPUSHPTR(ptr2);
SSPUSHINT(type);
into a static function S_save_pushptrptr().
It might be possible to make some of its callers trivial macros, and
so eliminate them as functions. But start with the easy part.

p4raw-id: //depot/perl@34957

(cherry-picked from commit e22024d3cff7db1071a80c1941fd213f9e45cd7c)

10 years agoConvert all the scope save functions of the form
Nicholas Clark [Sun, 30 Nov 2008 22:46:37 +0000 (22:46 +0000)] 
Convert all the scope save functions of the form
SSCHECK(2);
SSPUSHPTR(o);
SSPUSHINT(SAVEt_FREEOP);
into a single function Perl_save_pushptr(ptr, type), which the others
call. Implement the others as macros. This reduces the object code size.

p4raw-id: //depot/perl@34956

(cherry picked from commit 2fd8beea017eccf05d12bfa6e4db7c5340ce637b)

10 years agorun regen
David Mitchell [Mon, 30 Mar 2009 13:19:38 +0000 (14:19 +0100)] 
run regen

10 years agoS_mro_get_linear_isa_*() should have an *un*signed level.
Nicholas Clark [Thu, 27 Nov 2008 22:37:41 +0000 (22:37 +0000)] 
S_mro_get_linear_isa_*() should have an *un*signed level.
[Unless it's a signed concept, use an usigned type.]

p4raw-id: //depot/perl@34948

(cherry picked from commit 94d1e7066cadf6c0f535c5b253acfe24a6200844)

10 years agoNote (hopefully) all the use cases of all the rest of the non-public but
Nicholas Clark [Thu, 27 Nov 2008 19:13:28 +0000 (19:13 +0000)] 
Note (hopefully) all the use cases of all the rest of the non-public but
exported APIs.

p4raw-id: //depot/perl@34946

(cherry-picked from commit d67fec574fe4138665a5e0ed89833497c7102c1e)

10 years agorun regen
David Mitchell [Mon, 30 Mar 2009 10:24:41 +0000 (11:24 +0100)] 
run regen

10 years agoNote where (nearly) all the other private non-static functions are used.
Nicholas Clark [Wed, 26 Nov 2008 23:50:06 +0000 (23:50 +0000)] 
Note where (nearly) all the other private non-static functions are used.

p4raw-id: //depot/perl@34942

(cherry-picked from commit 6702284617d8c80196d105d0d999663377cec94b)

10 years agotodays merging activity
David Mitchell [Mon, 30 Mar 2009 00:02:23 +0000 (01:02 +0100)] 
todays merging activity

10 years agofix some 5.10.x-specific const warnings after the big MUTABLE_* merge
David Mitchell [Sun, 29 Mar 2009 23:48:13 +0000 (00:48 +0100)] 
fix some 5.10.x-specific const warnings after the big MUTABLE_* merge

10 years agoFor 5.10.x, disable the const cast checking that MUTABLE_PTR does in blead
David Mitchell [Sun, 29 Mar 2009 23:31:43 +0000 (00:31 +0100)] 
For 5.10.x, disable the const cast checking that MUTABLE_PTR does in blead

10 years agoprovide minimal documentation for the MUTABLE_*() macros
David Mitchell [Sun, 29 Mar 2009 21:03:13 +0000 (22:03 +0100)] 
provide minimal documentation for the MUTABLE_*() macros

(cherry picked from commit cf3f0ffbff208944549640df283e3008d1b83d77)

10 years agoAllow lvalue usage of SvRV() and add MUTABLE_SV() check.
Marcus Holland-Moritz [Mon, 10 Nov 2008 19:13:20 +0000 (19:13 +0000)] 
Allow lvalue usage of SvRV() and add MUTABLE_SV() check.
Also add new SvRV_const() macro for read-only access.

p4raw-id: //depot/perl@34804

(cherry-picked from commit f19a12a3a65a1b840e4df1373a12eab6e50a8d5c
with some mods because SVt_RV no longer exists is such in bleed)

10 years agoRevert SvPVX() to allow lvalue usage, but also add a
Marcus Holland-Moritz [Fri, 7 Nov 2008 22:33:39 +0000 (22:33 +0000)] 
Revert SvPVX() to allow lvalue usage, but also add a
MUTABLE_SV() check. Use SvPVX_const() instead of SvPVX()
where only a const SV* is available. Also fix two falsely
consted pointers in Perl_sv_2pv_flags().

p4raw-id: //depot/perl@34770

(cherry-picked from commit d2c6dc5ee586de7e57a1fe8c160cf7c8aaf3f3f8)

10 years agoAdd MUTABLE_GV(), and eliminate (V *) casts in *.c.
Nicholas Clark [Fri, 31 Oct 2008 08:55:20 +0000 (08:55 +0000)] 
Add MUTABLE_GV(), and eliminate (V *) casts in *.c.
Can't easily do gv.h, as GvGP() (at least) needs to split into two
macros - one const for reading, one non-const for writing.

p4raw-id: //depot/perl@34679

(cherry-picked from commit 159b6efe04c56d08ae56a63921b5ab3a69ac2ee9)

10 years agosizeof(const SV *) is the same as sizeof(SV *), except that it doesn't
Nicholas Clark [Fri, 31 Oct 2008 07:34:02 +0000 (07:34 +0000)] 
sizeof(const SV *) is the same as sizeof(SV *), except that it doesn't
match my regexp for non-const casts.

p4raw-id: //depot/perl@34677

(cherry picked from commit 260890edab60aa2cfcb8de6aa9ee77abafa96e24)

10 years agoEliminate (SV *) casts from the rest of *.c, picking up one (further)
Nicholas Clark [Thu, 30 Oct 2008 23:22:31 +0000 (23:22 +0000)] 
Eliminate (SV *) casts from the rest of *.c, picking up one (further)
erroneous const in dump.c.

p4raw-id: //depot/perl@34675

(cherry-picked from commit ad64d0ecd555e97c5a216efca1ec5a96b7fd0b34)

10 years agoEliminate (SV *) casts from sv.c and [tu]*.c, except for the cast in
Nicholas Clark [Thu, 30 Oct 2008 21:39:14 +0000 (21:39 +0000)] 
Eliminate (SV *) casts from sv.c and [tu]*.c, except for the cast in
Perl_sv_magicext(), which is documented.

p4raw-id: //depot/perl@34671

(cherry-picked from commit daba3364ed9f39ba44b28575c032f6db52d47881)

10 years agoAdd MUTABLE_IO(), and eliminate (IO *) casts in *.c.
Nicholas Clark [Wed, 29 Oct 2008 23:20:01 +0000 (23:20 +0000)] 
Add MUTABLE_IO(), and eliminate (IO *) casts in *.c.

p4raw-id: //depot/perl@34654

(cherry picked from commit a45c7426c93f17067d1734c68cb400246e1db490)

10 years agoEliminate (AV *) casts in *.c.
Nicholas Clark [Wed, 29 Oct 2008 22:45:15 +0000 (22:45 +0000)] 
Eliminate (AV *) casts in *.c.

p4raw-id: //depot/perl@34650

(cherry-picked from commit 502c6561fcd473b7da3277363169d75f16ac2f8b)

10 years agoAdd MUTABLE_CV(), and eliminate (CV *) casts in *.c.
Nicholas Clark [Wed, 29 Oct 2008 21:57:34 +0000 (21:57 +0000)] 
Add MUTABLE_CV(), and eliminate (CV *) casts in *.c.

p4raw-id: //depot/perl@34647

(cherry-picked from commit ea726b52599b52cf534201a46ec3455418c9eb8e)

10 years agoEvery remaining (HV *) cast in *.c
Nicholas Clark [Tue, 28 Oct 2008 22:14:26 +0000 (22:14 +0000)] 
Every remaining (HV *) cast in *.c

p4raw-id: //depot/perl@34629

(cherry-picked from commit 85fbaab29c398adbb5b4445d3ed41e0a96364ce4)

10 years agoss_dup wrapper const casting analagous to change 34626.
Nicholas Clark [Tue, 28 Oct 2008 21:59:11 +0000 (21:59 +0000)] 
ss_dup wrapper const casting analagous to change 34626.

p4raw-id: //depot/perl@34628

(cherry picked from commit b8082b6e76ddae55d59bd06493f5cb60a320b165)

10 years agoSome consting in Perl_ss_dup(), and a few (HV*) casts that can be
Nicholas Clark [Tue, 28 Oct 2008 20:56:50 +0000 (20:56 +0000)] 
Some consting in Perl_ss_dup(), and a few (HV*) casts that can be
(const HV *).

p4raw-id: //depot/perl@34626

(cherry picked from commit 1d1936752b08f97898c1aed5d2c9f75d1560ff60)

10 years agoEliminate (HV *) casts in u*.c.
Nicholas Clark [Tue, 28 Oct 2008 20:13:55 +0000 (20:13 +0000)] 
Eliminate (HV *) casts in u*.c.

p4raw-id: //depot/perl@34624

(cherry-picked from commit ef8f7699778dff55cfd4d5ca899723febaa96cd0)