Permalink
Browse files

release 1.04_22

       * C.pm, CC.pm: fixed illegal pad in ASSERT_CURPAD_ACTIVE("pad_sv") with DEBUGGING.
       Simply forgot to set PL_comppad



git-svn-id: http://perl-compiler.googlecode.com/svn/trunk@41 ed534f1a-1453-0410-ab30-dfc593a8b23c
  • Loading branch information...
1 parent 4214a77 commit 211c20842ba8daea60dede331bd078d3c95cf4d0 @rurban committed Nov 16, 2009
Showing with 23 additions and 18 deletions.
  1. +4 −0 Changes
  2. +8 −7 STATUS
  3. +1 −1 Todo
  4. +1 −2 lib/B/C.pm
  5. +1 −1 lib/B/CC.pm
  6. +8 −7 t/testc.sh
View
4 Changes
@@ -2,6 +2,10 @@
Started on CPAN with B-C-1.04_12. The perl compiler was in CORE from alpha4
until Perl 5.9.4.
+1.04_22 2009-11-16 rurban
+ * C.pm, CC.pm: fixed illegal pad in ASSERT_CURPAD_ACTIVE("pad_sv") with DEBUGGING.
+ Simply forgot to set PL_comppad
+
1.04_21 2009-11-07 rurban
* yapc_bratislava08.pod: added
* C.pm: fixed CALLREGCOMP >=5.10 by using dynamic newSVpvn as in ByteLoader
View
15 STATUS
@@ -11,9 +11,9 @@ Same ok and failures as with 5.8 and 5.9.4
In 5.8.8 and 5.8.9 we have the exact same errors in the
testsuite for the new CPAN compiler and the CORE compiler.
Minor B::CC bugs fixed.
+Invalid pad in pad_sv, pad_new, save_clearsv - fixed with 1.04_22
+ forgot resetting PL_comppad
B:C Problems:
- invalid pad in pad_sv, pad_new, save_clearsv -
- cause: setting PL_curpad at save_context
Modification of a read-only value attempted - save_context ?
5.11 regex pad fixed
@@ -101,11 +101,11 @@ t/bytecode.t (Wstat: 0 Tests: 19 Failed: 9)
Assertion (((PMOP*)(*Perl_Iop_ptr(my_perl))))->op_pmflags & 0x0002
Modification of a read-only value attempted
11 Assertion ((((shplep)->sv_flags & (0x00004000|0x00008000)) == 0x00008000) && (((svtype)((shplep)->sv_flags & 0xff)) == SVt_PVGV || ((svtype)((shplep)->sv_flags & 0xff)) == SVt_PVLV)) failed
-t/c.t (Wstat: 0 Tests: 19 Failed: 11)
- Failed tests: 5-12, 17-19
+t/c.t (Wstat: 0 Tests: 19 Failed: 6)
+ Failed tests: 6-11
Assertion ((svtype)((_svi)->sv_flags & 0xff)) != SVt_PVCV failed
-t/cc.t (Wstat: 0 Tests: 19 Failed: 9)
- Failed tests: 5-12, 17 (was: 2-4, 6, 11-12, 17-19)
+t/cc.t (Wstat: 0 Tests: 19 Failed: 7)
+ Failed tests: 6-12 (was: 5-12, 17)
5.10.0-nt (not threaded):
t/bytecode.t (Wstat: 0 Tests: 19 Failed: 2)
@@ -142,7 +142,8 @@ t/cc.t (Wstat: 0 Tests: 19 Failed: 11)
5.10, 5.11 status
-----------------
panic: illegal pad in pad_new: 0x18c4368[0x18cf6e8] with DEBUGGING only
- CvPADLIST: curpad<=>comppad
+ CvPADLIST: curpad<=>comppad
+ fixed with 1.04_22
pvx: seems to be fixed now in bc, and c
With the move of the pvx field from xpv to the sv, we have to solve
View
2 Todo
@@ -1,6 +1,5 @@
* Fixes
-pad panics
ByteLoader compatibility: version, platform. eventually Bytecode version portability
CC backend: goto, sort with non-default comparison. last for non-loop blocks.
improve XSUB handling (both static and dynamic)
@@ -34,6 +33,7 @@ Disassembler should print the header
* Optimisations
+proper static init of PMOP SV's (only works dynamic >= 5.10)
collapse LISTOPs to UNOPs or BASEOPs
compile-time qw(), constant subs
global analysis of variables, type hints etc.
View
3 lib/B/C.pm
@@ -2179,12 +2179,11 @@ sub save_context
my $inc_hv = svref_2object(\%INC)->save;
my $inc_av = svref_2object(\@INC)->save;
my $amagic_generate = amagic_generation;
- # causes PL_curpad assertions
$init->add("/* save context */",
"GvHV(PL_incgv) = $inc_hv;",
"GvAV(PL_incgv) = $inc_av;",
- # panic: illegal pad
"PL_curpad = AvARRAY($curpad_sym);",
+ "PL_comppad = $curpad_sym;", # fixed "panic: illegal pad"
"av_store(CvPADLIST(PL_main_cv), 0, SvREFCNT_inc($curpad_nam));",
"av_store(CvPADLIST(PL_main_cv), 1, SvREFCNT_inc($curpad_sym));",
"PL_amagic_generation = $amagic_generate;" );
View
2 lib/B/CC.pm
@@ -1710,8 +1710,8 @@ sub cc_main {
$init->add(sprintf("PL_main_root = s\\_%x;", ${main_root()}),
"PL_main_start = $start;",
"/* save context */",
- # panic: illegal pad
"PL_curpad = AvARRAY($curpad_sym);",
+ "PL_comppad = $curpad_sym;", # fixed "panic: illegal pad"
"av_store(CvPADLIST(PL_main_cv), 0, SvREFCNT_inc($curpad_nam));",
"av_store(CvPADLIST(PL_main_cv), 1, SvREFCNT_inc($curpad_sym));",
"PL_initav = (AV *) $init_av;",
View
15 t/testc.sh
@@ -18,6 +18,11 @@ LCMD=
#CCMD="gcc -pipe -DDEBUGGING -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -fno-strict-aliasing -I/usr/lib/perl5/5.11/i686-cygwin/CORE -O0 -g"
#LCMD=" -Wl,--enable-auto-import -Wl,--export-all-symbols -L/usr/lib/perl5/5.11/i686-cygwin/CORE -lperl -ldl -lcrypt -lgdbm_compat"
+function vcmd {
+ echo $*
+ $*
+}
+
function ctest {
n=$1
str=$2
@@ -34,12 +39,9 @@ function ctest {
else
echo "$str" > ${o}.pl
fi
- echo ${OCMD}-o$o.c $o.pl
- ${OCMD}-o$o.c $o.pl
- echo $CCMD $o.c -c -E -o $o.cee
- $CCMD $o.c -c -E -o $o.cee
- echo $CCMD $o.c $LCMD -o $o
- $CCMD $o.c $LCMD -o $o
+ vcmd ${OCMD}-o$o.c $o.pl
+ vcmd $CCMD $o.c -c -E -o ${o}_E.c
+ vcmd $CCMD $o.c $LCMD -o $o
test -x $o || exit
#echo "./$o"
res=$(./$o) || exit
@@ -106,7 +108,6 @@ if [ -n "$1" ]; then
done
else
for b in $(seq -f"%02.0f" 19); do
- #for b in $(seq 19); do
ctest $b
done
fi

0 comments on commit 211c208

Please sign in to comment.