summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2012-04-04 22:22:53 -0700
committerFather Chrysostomos <sprout@cpan.org>2012-04-05 06:00:51 -0700
commit894ea76b1f298c94bba681c05aacda756c876245 (patch)
tree830c2b3c912e37280688ecab6f78a48fd515857e /ext
parent66c058c5af700a1bacbab597e94809954af40beb (diff)
downloadperl-894ea76b1f298c94bba681c05aacda756c876245.tar.gz
Fix VMS build broken by d1718a7cf5
This comment in perl.c: /* Note: 20,40,80 used for NATIVE_HINTS */ (added by a0ed51b3 [Here are the long-expected Unicode/UTF-8 mod- ifications.]), has apparently always been wrong. The values in vms/vmsish.h end with 7 zeroes in hex, and are only shifted down to one zero when assigned to cop->op_private in op.c:newSTATEOP. In PL_hints they never have the values indicated in perl.h. So those are actually free bits. It’s the high versions in vmsish.h that are not free. 20 (actually 0x20000000) hasn’t been used for anything since commit 744a34f9085 (Urk -- undo previous removal of vmsish 'exit' change), which change I don’t really understand. In any case, the comment was never updated. This comment in op.h: /* NOTE: OP_NEXTSTATE and OP_DBSTATE (i.e. COPs) carry lower * bits of PL_hints in op_private */ was added by d41ff1b8ad98 (introduce $^U), which was later reverted. op_private does not carry the lower bits of PL_hints, but, rather, certain higher bits of PL_hints, shifted to fit (the NATIVE_HINTS cited above). Due to misleading comments, I ended up breaking the VMS build in com- mit d1718a7cf5, by using its bits for something else. This commit moves the bits around a bit to avoid the clash, and modi- fies the comments to reflect reality.
Diffstat (limited to 'ext')
-rw-r--r--ext/B/B/Concise.pm2
-rw-r--r--ext/B/t/optree_constants.t4
-rw-r--r--ext/B/t/optree_specials.t72
3 files changed, 39 insertions, 39 deletions
diff --git a/ext/B/B/Concise.pm b/ext/B/B/Concise.pm
index 49a4c167b0..6db2e0ce95 100644
--- a/ext/B/B/Concise.pm
+++ b/ext/B/B/Concise.pm
@@ -668,7 +668,7 @@ $priv{$_}{128} = '+1' for qw "caller wantarray runcv";
our %hints; # used to display each COP's op_hints values
# strict refs, subs, vars
-@hints{2,512,1024,2<<28,4<<28,8<<28} = ('$', '&', '*', 'x$', 'x&', 'x*');
+@hints{2,512,1024,32,64,128} = ('$', '&', '*', 'x$', 'x&', 'x*');
# integers, locale, bytes
@hints{1,4,8,16} = ('i', 'l', 'b');
# block scope, localise %^H, $^OPEN (in), $^OPEN (out)
diff --git a/ext/B/t/optree_constants.t b/ext/B/t/optree_constants.t
index 7c04b22f26..ebcf042d10 100644
--- a/ext/B/t/optree_constants.t
+++ b/ext/B/t/optree_constants.t
@@ -181,12 +181,12 @@ EONT_EONT
my ($expect, $expect_nt) = (<<'EOT_EOT', <<'EONT_EONT');
# 3 <1> leavesub[2 refs] K/REFC,1 ->(end)
# - <@> lineseq K ->3
-# 1 <;> nextstate(constant 61 constant.pm:118) v:x*,x&,x$,*,& ->2
+# 1 <;> nextstate(constant 61 constant.pm:118) v:*,&,x*,x&,x$ ->2
# 2 <0> padav[@list:FAKE:m:96] ->3
EOT_EOT
# 3 <1> leavesub[2 refs] K/REFC,1 ->(end)
# - <@> lineseq K ->3
-# 1 <;> nextstate(constant 61 constant.pm:118) v:x*,x&,x$,*,& ->2
+# 1 <;> nextstate(constant 61 constant.pm:118) v:*,&,x*,x&,x$ ->2
# 2 <0> padav[@list:FAKE:m:71] ->3
EONT_EONT
diff --git a/ext/B/t/optree_specials.t b/ext/B/t/optree_specials.t
index 5af6bd2501..567a9054aa 100644
--- a/ext/B/t/optree_specials.t
+++ b/ext/B/t/optree_specials.t
@@ -49,10 +49,10 @@ checkOptree ( name => 'BEGIN',
# BEGIN 1:
# a <1> leavesub[1 ref] K/REFC,1 ->(end)
# - <@> lineseq KP ->a
-# 1 <;> nextstate(B::Concise -275 Concise.pm:356) v:x*,x&,x$,*,&,{,$ ->2
+# 1 <;> nextstate(B::Concise -275 Concise.pm:356) v:*,&,{,x*,x&,x$,$ ->2
# 3 <1> require sK/1 ->4
# 2 <$> const[PV "strict.pm"] s/BARE ->3
-# 4 <;> nextstate(B::Concise -275 Concise.pm:356) v:x*,x&,x$,*,&,{,$ ->5
+# 4 <;> nextstate(B::Concise -275 Concise.pm:356) v:*,&,{,x*,x&,x$,$ ->5
# - <@> lineseq K ->-
# - <0> null ->5
# 9 <1> entersub[t1] KS*/TARG,2 ->a
@@ -63,10 +63,10 @@ checkOptree ( name => 'BEGIN',
# BEGIN 2:
# k <1> leavesub[1 ref] K/REFC,1 ->(end)
# - <@> lineseq K ->k
-# b <;> nextstate(B::Concise -265 Concise.pm:367) v:x*,x&,x$,*,&,$ ->c
+# b <;> nextstate(B::Concise -265 Concise.pm:367) v:*,&,x*,x&,x$,$ ->c
# d <1> require sK/1 ->e
# c <$> const[PV "strict.pm"] s/BARE ->d
-# e <;> nextstate(B::Concise -265 Concise.pm:367) v:x*,x&,x$,*,&,$ ->f
+# e <;> nextstate(B::Concise -265 Concise.pm:367) v:*,&,x*,x&,x$,$ ->f
# - <@> lineseq K ->-
# - <0> null ->f
# j <1> entersub[t1] KS*/TARG,2 ->k
@@ -77,10 +77,10 @@ checkOptree ( name => 'BEGIN',
# BEGIN 3:
# u <1> leavesub[1 ref] K/REFC,1 ->(end)
# - <@> lineseq KP ->u
-# l <;> nextstate(B::Concise -254 Concise.pm:386) v:x*,x&,x$,*,&,{,$ ->m
+# l <;> nextstate(B::Concise -254 Concise.pm:386) v:*,&,{,x*,x&,x$,$ ->m
# n <1> require sK/1 ->o
# m <$> const[PV "warnings.pm"] s/BARE ->n
-# o <;> nextstate(B::Concise -254 Concise.pm:386) v:x*,x&,x$,*,&,{,$ ->p
+# o <;> nextstate(B::Concise -254 Concise.pm:386) v:*,&,{,x*,x&,x$,$ ->p
# - <@> lineseq K ->-
# - <0> null ->p
# t <1> entersub[t1] KS*/TARG,2 ->u
@@ -99,10 +99,10 @@ EOT_EOT
# BEGIN 1:
# a <1> leavesub[1 ref] K/REFC,1 ->(end)
# - <@> lineseq KP ->a
-# 1 <;> nextstate(B::Concise -275 Concise.pm:356) v:x*,x&,x$,*,&,{,$ ->2
+# 1 <;> nextstate(B::Concise -275 Concise.pm:356) v:*,&,{,x*,x&,x$,$ ->2
# 3 <1> require sK/1 ->4
# 2 <$> const(PV "strict.pm") s/BARE ->3
-# 4 <;> nextstate(B::Concise -275 Concise.pm:356) v:x*,x&,x$,*,&,{,$ ->5
+# 4 <;> nextstate(B::Concise -275 Concise.pm:356) v:*,&,{,x*,x&,x$,$ ->5
# - <@> lineseq K ->-
# - <0> null ->5
# 9 <1> entersub[t1] KS*/TARG,2 ->a
@@ -113,10 +113,10 @@ EOT_EOT
# BEGIN 2:
# k <1> leavesub[1 ref] K/REFC,1 ->(end)
# - <@> lineseq K ->k
-# b <;> nextstate(B::Concise -265 Concise.pm:367) v:x*,x&,x$,*,&,$ ->c
+# b <;> nextstate(B::Concise -265 Concise.pm:367) v:*,&,x*,x&,x$,$ ->c
# d <1> require sK/1 ->e
# c <$> const(PV "strict.pm") s/BARE ->d
-# e <;> nextstate(B::Concise -265 Concise.pm:367) v:x*,x&,x$,*,&,$ ->f
+# e <;> nextstate(B::Concise -265 Concise.pm:367) v:*,&,x*,x&,x$,$ ->f
# - <@> lineseq K ->-
# - <0> null ->f
# j <1> entersub[t1] KS*/TARG,2 ->k
@@ -127,10 +127,10 @@ EOT_EOT
# BEGIN 3:
# u <1> leavesub[1 ref] K/REFC,1 ->(end)
# - <@> lineseq KP ->u
-# l <;> nextstate(B::Concise -254 Concise.pm:386) v:x*,x&,x$,*,&,{,$ ->m
+# l <;> nextstate(B::Concise -254 Concise.pm:386) v:*,&,{,x*,x&,x$,$ ->m
# n <1> require sK/1 ->o
# m <$> const(PV "warnings.pm") s/BARE ->n
-# o <;> nextstate(B::Concise -254 Concise.pm:386) v:x*,x&,x$,*,&,{,$ ->p
+# o <;> nextstate(B::Concise -254 Concise.pm:386) v:*,&,{,x*,x&,x$,$ ->p
# - <@> lineseq K ->-
# - <0> null ->p
# t <1> entersub[t1] KS*/TARG,2 ->u
@@ -248,10 +248,10 @@ checkOptree ( name => 'all of BEGIN END INIT CHECK UNITCHECK -exec',
strip_open_hints => 1,
expect => <<'EOT_EOT', expect_nt => <<'EONT_EONT');
# BEGIN 1:
-# 1 <;> nextstate(B::Concise -275 Concise.pm:356) v:x*,x&,x$,*,&,{,$
+# 1 <;> nextstate(B::Concise -275 Concise.pm:356) v:*,&,{,x*,x&,x$,$
# 2 <$> const[PV "strict.pm"] s/BARE
# 3 <1> require sK/1
-# 4 <;> nextstate(B::Concise -275 Concise.pm:356) v:x*,x&,x$,*,&,{,$
+# 4 <;> nextstate(B::Concise -275 Concise.pm:356) v:*,&,{,x*,x&,x$,$
# 5 <0> pushmark s
# 6 <$> const[PV "strict"] sM
# 7 <$> const[PV "refs"] sM
@@ -259,10 +259,10 @@ checkOptree ( name => 'all of BEGIN END INIT CHECK UNITCHECK -exec',
# 9 <1> entersub[t1] KS*/TARG,2
# a <1> leavesub[1 ref] K/REFC,1
# BEGIN 2:
-# b <;> nextstate(B::Concise -265 Concise.pm:367) v:x*,x&,x$,*,&,$
+# b <;> nextstate(B::Concise -265 Concise.pm:367) v:*,&,x*,x&,x$,$
# c <$> const[PV "strict.pm"] s/BARE
# d <1> require sK/1
-# e <;> nextstate(B::Concise -265 Concise.pm:367) v:x*,x&,x$,*,&,$
+# e <;> nextstate(B::Concise -265 Concise.pm:367) v:*,&,x*,x&,x$,$
# f <0> pushmark s
# g <$> const[PV "strict"] sM
# h <$> const[PV "refs"] sM
@@ -270,10 +270,10 @@ checkOptree ( name => 'all of BEGIN END INIT CHECK UNITCHECK -exec',
# j <1> entersub[t1] KS*/TARG,2
# k <1> leavesub[1 ref] K/REFC,1
# BEGIN 3:
-# l <;> nextstate(B::Concise -254 Concise.pm:386) v:x*,x&,x$,*,&,{,$
+# l <;> nextstate(B::Concise -254 Concise.pm:386) v:*,&,{,x*,x&,x$,$
# m <$> const[PV "warnings.pm"] s/BARE
# n <1> require sK/1
-# o <;> nextstate(B::Concise -254 Concise.pm:386) v:x*,x&,x$,*,&,{,$
+# o <;> nextstate(B::Concise -254 Concise.pm:386) v:*,&,{,x*,x&,x$,$
# p <0> pushmark s
# q <$> const[PV "warnings"] sM
# r <$> const[PV "qw"] sM
@@ -307,10 +307,10 @@ checkOptree ( name => 'all of BEGIN END INIT CHECK UNITCHECK -exec',
# 1e <1> leavesub[1 ref] K/REFC,1
EOT_EOT
# BEGIN 1:
-# 1 <;> nextstate(B::Concise -275 Concise.pm:356) v:x*,x&,x$,*,&,{,$
+# 1 <;> nextstate(B::Concise -275 Concise.pm:356) v:*,&,{,x*,x&,x$,$
# 2 <$> const(PV "strict.pm") s/BARE
# 3 <1> require sK/1
-# 4 <;> nextstate(B::Concise -275 Concise.pm:356) v:x*,x&,x$,*,&,{,$
+# 4 <;> nextstate(B::Concise -275 Concise.pm:356) v:*,&,{,x*,x&,x$,$
# 5 <0> pushmark s
# 6 <$> const(PV "strict") sM
# 7 <$> const(PV "refs") sM
@@ -318,10 +318,10 @@ EOT_EOT
# 9 <1> entersub[t1] KS*/TARG,2
# a <1> leavesub[1 ref] K/REFC,1
# BEGIN 2:
-# b <;> nextstate(B::Concise -265 Concise.pm:367) v:x*,x&,x$,*,&,$
+# b <;> nextstate(B::Concise -265 Concise.pm:367) v:*,&,x*,x&,x$,$
# c <$> const(PV "strict.pm") s/BARE
# d <1> require sK/1
-# e <;> nextstate(B::Concise -265 Concise.pm:367) v:x*,x&,x$,*,&,$
+# e <;> nextstate(B::Concise -265 Concise.pm:367) v:*,&,x*,x&,x$,$
# f <0> pushmark s
# g <$> const(PV "strict") sM
# h <$> const(PV "refs") sM
@@ -329,10 +329,10 @@ EOT_EOT
# j <1> entersub[t1] KS*/TARG,2
# k <1> leavesub[1 ref] K/REFC,1
# BEGIN 3:
-# l <;> nextstate(B::Concise -254 Concise.pm:386) v:x*,x&,x$,*,&,{,$
+# l <;> nextstate(B::Concise -254 Concise.pm:386) v:*,&,{,x*,x&,x$,$
# m <$> const(PV "warnings.pm") s/BARE
# n <1> require sK/1
-# o <;> nextstate(B::Concise -254 Concise.pm:386) v:x*,x&,x$,*,&,{,$
+# o <;> nextstate(B::Concise -254 Concise.pm:386) v:*,&,{,x*,x&,x$,$
# p <0> pushmark s
# q <$> const(PV "warnings") sM
# r <$> const(PV "qw") sM
@@ -377,10 +377,10 @@ checkOptree ( name => 'regression test for patch 25352',
@warnings_todo,
expect => <<'EOT_EOT', expect_nt => <<'EONT_EONT');
# BEGIN 1:
-# 1 <;> nextstate(B::Concise -275 Concise.pm:356) v:x*,x&,x$,*,&,{,$
+# 1 <;> nextstate(B::Concise -275 Concise.pm:356) v:*,&,{,x*,x&,x$,$
# 2 <$> const[PV "strict.pm"] s/BARE
# 3 <1> require sK/1
-# 4 <;> nextstate(B::Concise -275 Concise.pm:356) v:x*,x&,x$,*,&,{,$
+# 4 <;> nextstate(B::Concise -275 Concise.pm:356) v:*,&,{,x*,x&,x$,$
# 5 <0> pushmark s
# 6 <$> const[PV "strict"] sM
# 7 <$> const[PV "refs"] sM
@@ -388,10 +388,10 @@ checkOptree ( name => 'regression test for patch 25352',
# 9 <1> entersub[t1] KS*/TARG,2
# a <1> leavesub[1 ref] K/REFC,1
# BEGIN 2:
-# b <;> nextstate(B::Concise -265 Concise.pm:367) v:x*,x&,x$,*,&,$
+# b <;> nextstate(B::Concise -265 Concise.pm:367) v:*,&,x*,x&,x$,$
# c <$> const[PV "strict.pm"] s/BARE
# d <1> require sK/1
-# e <;> nextstate(B::Concise -265 Concise.pm:367) v:x*,x&,x$,*,&,$
+# e <;> nextstate(B::Concise -265 Concise.pm:367) v:*,&,x*,x&,x$,$
# f <0> pushmark s
# g <$> const[PV "strict"] sM
# h <$> const[PV "refs"] sM
@@ -399,10 +399,10 @@ checkOptree ( name => 'regression test for patch 25352',
# j <1> entersub[t1] KS*/TARG,2
# k <1> leavesub[1 ref] K/REFC,1
# BEGIN 3:
-# l <;> nextstate(B::Concise -254 Concise.pm:386) v:x*,x&,x$,*,&,{,$
+# l <;> nextstate(B::Concise -254 Concise.pm:386) v:*,&,{,x*,x&,x$,$
# m <$> const[PV "warnings.pm"] s/BARE
# n <1> require sK/1
-# o <;> nextstate(B::Concise -254 Concise.pm:386) v:x*,x&,x$,*,&,{,$
+# o <;> nextstate(B::Concise -254 Concise.pm:386) v:*,&,{,x*,x&,x$,$
# p <0> pushmark s
# q <$> const[PV "warnings"] sM
# r <$> const[PV "qw"] sM
@@ -411,10 +411,10 @@ checkOptree ( name => 'regression test for patch 25352',
# u <1> leavesub[1 ref] K/REFC,1
EOT_EOT
# BEGIN 1:
-# 1 <;> nextstate(B::Concise -275 Concise.pm:356) v:x*,x&,x$,*,&,{,$
+# 1 <;> nextstate(B::Concise -275 Concise.pm:356) v:*,&,{,x*,x&,x$,$
# 2 <$> const(PV "strict.pm") s/BARE
# 3 <1> require sK/1
-# 4 <;> nextstate(B::Concise -275 Concise.pm:356) v:x*,x&,x$,*,&,{,$
+# 4 <;> nextstate(B::Concise -275 Concise.pm:356) v:*,&,{,x*,x&,x$,$
# 5 <0> pushmark s
# 6 <$> const(PV "strict") sM
# 7 <$> const(PV "refs") sM
@@ -422,10 +422,10 @@ EOT_EOT
# 9 <1> entersub[t1] KS*/TARG,2
# a <1> leavesub[1 ref] K/REFC,1
# BEGIN 2:
-# b <;> nextstate(B::Concise -265 Concise.pm:367) v:x*,x&,x$,*,&,$
+# b <;> nextstate(B::Concise -265 Concise.pm:367) v:*,&,x*,x&,x$,$
# c <$> const(PV "strict.pm") s/BARE
# d <1> require sK/1
-# e <;> nextstate(B::Concise -265 Concise.pm:367) v:x*,x&,x$,*,&,$
+# e <;> nextstate(B::Concise -265 Concise.pm:367) v:*,&,x*,x&,x$,$
# f <0> pushmark s
# g <$> const(PV "strict") sM
# h <$> const(PV "refs") sM
@@ -433,10 +433,10 @@ EOT_EOT
# j <1> entersub[t1] KS*/TARG,2
# k <1> leavesub[1 ref] K/REFC,1
# BEGIN 3:
-# l <;> nextstate(B::Concise -254 Concise.pm:386) v:x*,x&,x$,*,&,{,$
+# l <;> nextstate(B::Concise -254 Concise.pm:386) v:*,&,{,x*,x&,x$,$
# m <$> const(PV "warnings.pm") s/BARE
# n <1> require sK/1
-# o <;> nextstate(B::Concise -254 Concise.pm:386) v:x*,x&,x$,*,&,{,$
+# o <;> nextstate(B::Concise -254 Concise.pm:386) v:*,&,{,x*,x&,x$,$
# p <0> pushmark s
# q <$> const(PV "warnings") sM
# r <$> const(PV "qw") sM