diff options
author | Perl 5 Porters <perl5-porters@africa.nicoh.com> | 1996-12-23 12:58:58 +1200 |
---|---|---|
committer | Chip Salzenberg <chip@atlantic.net> | 1996-12-23 12:58:58 +1200 |
commit | 71be2cbc73608e37e1a2ab7e459a02111137d1b0 (patch) | |
tree | 86679f00907a9abdfd1ff5104cec60d9a9fb0ef9 /perly.c.diff | |
parent | b133f4ec823b00faf9bd083e0eb8e7a53ba7bfca (diff) | |
download | perl-71be2cbc73608e37e1a2ab7e459a02111137d1b0.tar.gz |
[inseparable changes from patch from perl5.003_13 to perl5.003_14]
CORE LANGUAGE CHANGES
Subject: Eliminate support for {if,unless,while,until} BLOCK BLOCK
From: Chip Salzenberg <chip@atlantic.net>
Files: perly.c perly.c.diff perly.y toke.c
Subject: Taint $x after $x =~ s/pat/xyz/ if pat or xyz is tainted by locale
From: Chip Salzenberg <chip@atlantic.net>
Files: cop.h mg.c pp_ctl.c pp_hot.c
Subject: Complete support for modifying undefined array members in foreach
From: Chip Salzenberg <chip@atlantic.net>
Files: global.sym mg.c perl.h pp.c pp_hot.c proto.h sv.c
DOCUMENTATION
Subject: Update pod/Makefile; s/perli18n/perllocale/
From: Chip Salzenberg <chip@atlantic.net>
Files: ext/POSIX/POSIX.pod lib/I18N/Collate.pm pod/Makefile pod/perl.pod pod/perlmod.pod pod/perlnews.pod pod/roffitall
OTHER CORE CHANGES
Subject: Bug in debugger with import manipulations
Date: Mon, 23 Dec 1996 05:37:48 -0500 (EST)
From: Ilya Zakharevich <ilya@math.ohio-state.edu>
Files: pp_hot.c
Finally I traced why MakeMaker runs wrongly under debugger: debugger
function calling sequence was assuming that
GvCV(CvGV(cv)) == cv
for non-anonymous subs (ne END). MakeMaker managed to break it by
*A::B = \&C::D;
eval 'sub C::D {new one}';
After this CvGV(\&A::B) is *C::D, but &{*C::D} is the "new one".
Patch follows (note that in this case we do not sacrifice having a
subroutine name in debugger output ;-).
Enjoy,
p5p-msgid: <199612231037.FAA08617@monk.mps.ohio-state.edu>
Subject: Import and dynamic methods
Date: Mon, 23 Dec 1996 01:45:37 -0500 (EST)
From: Ilya Zakharevich <ilya@math.ohio-state.edu>
Files: gv.c hv.c sv.c
Here is the patch which corrects bad things which happens when you
import subroutines and otherwise manipulate the symbol tree.
I put forward the only chunk which may be controversal, since it may
have a minor performance penalty. It is independent of the others, so
it can be freely deleted.
The manipulations which correctly propagate to method calls:
a) Pruning globs: delete $B::{method}
b) Undefing subroutines: undef &B::method;
c) Importing: *B::method = \&mymethod;
Enjoy,
p5p-msgid: <199612230645.BAA08378@monk.mps.ohio-state.edu>
Subject: sv_gets patch
Date: Sun, 22 Dec 1996 03:24:04 -0500 (EST)
From: Ilya Zakharevich <ilya@math.ohio-state.edu>
Files: pp_hot.c
I sent this patch before as a part of
pos $str =
$str = /failing/g
patch. Now I separate it in the case it was tainted by environment:
Synopsis:
$a = <FH>;
does not work as expected if $a is magic (say, tied).
Enjoy,
p5p-msgid: <199612220824.DAA07235@monk.mps.ohio-state.edu>
Subject: pos $str patch
Date: Sun, 22 Dec 1996 03:31:21 -0500 (EST)
From: Ilya Zakharevich <ilya@math.ohio-state.edu>
Files: mg.c pp_hot.c t/op/pat.t
This patch was (mostly) posted already.
It fixes the bug:
pos $str
is reset to undef if
$str =~ /failing/g
fails.
Additionally, if fixes the hidded bit (=MGf_MINMATCH) surviving
setting
pos $str = ...
Enjoy,
p5p-msgid: <199612220831.DAA07247@monk.mps.ohio-state.edu>
PORTABILITY
Subject: Fix bugs in bincompat3 usage
From: Chip Salzenberg <chip@atlantic.net>
Files: perl.h perl_exp.SH
Subject: VMS patches to 5.003_13
Date: Mon, 23 Dec 1996 01:26:47 -0500 (EST)
From: Charles Bailey <bailey@HMIVAX.HUMGEN.UPENN.EDU>
Files: deb.c ext/POSIX/POSIX.xs gv.c lib/File/Copy.pm mg.c perl.c perl.h proto.h sv.c t/lib/filecopy.t taint.c toke.c util.c vms/Makefile vms/config.vms vms/descrip.mms vms/gen_shrfls.pl vms/genconfig.pl vms/genopt.com vms/perly_c.vms vms/perly_h.vms vms/test.com vms/vms.c vms/vms_yfix.pl
private-msgid: <01IDBYYFYPIS002ASE@hmivax.humgen.upenn.edu>
UTILITIES, LIBRARY, AND EXTENSIONS
Subject: Remove libnet
From: Chip Salzenberg <chip@atlantic.net>
Files: MANIFEST pod/perlmod.pod
Subject: Update IO->VERSION() to 1.1201 for CPAN's sake
From: Chip Salzenberg <chip@atlantic.net>
Files: ext/IO/lib/IO/Handle.pm lib/IO/Handle.pm
Subject: Remodel File::Copy.
From: Chip Salzenberg <chip@atlantic.net>
Files: lib/File/Copy.pm
Diffstat (limited to 'perly.c.diff')
-rw-r--r-- | perly.c.diff | 54 |
1 files changed, 27 insertions, 27 deletions
diff --git a/perly.c.diff b/perly.c.diff index a3472508b8..dae42d3774 100644 --- a/perly.c.diff +++ b/perly.c.diff @@ -78,7 +78,7 @@ Index: perly.c #define YYERRCODE 256 short yylhs[] = { -1, *************** -*** 1337,1347 **** +*** 1296,1306 **** int yyerrflag; int yychar; - short *yyssp; @@ -88,12 +88,12 @@ Index: perly.c - short yyss[YYSTACKSIZE]; - YYSTYPE yyvs[YYSTACKSIZE]; - #define yystacksize YYSTACKSIZE - #line 624 "perly.y" + #line 602 "perly.y" /* PROGRAM */ ---- 1272,1277 ---- +--- 1231,1236 ---- *************** -*** 1350,1361 **** ---- 1280,1336 ---- +*** 1309,1320 **** +--- 1239,1295 ---- #define YYACCEPT goto yyaccept #define YYERROR goto yyerrlab + @@ -152,8 +152,8 @@ Index: perly.c if (yys = getenv("YYDEBUG")) { *************** -*** 1370,1373 **** ---- 1345,1356 ---- +*** 1329,1332 **** +--- 1304,1315 ---- yychar = (-1); + /* @@ -167,20 +167,20 @@ Index: perly.c yyssp = yyss; yyvsp = yyvs; *************** -*** 1385,1389 **** +*** 1344,1348 **** if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; ! printf("yydebug: state %d, reading %d (%s)\n", yystate, yychar, yys); } ---- 1368,1372 ---- +--- 1327,1331 ---- if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; ! fprintf(stderr, "yydebug: state %d, reading %d (%s)\n", yystate, yychar, yys); } *************** -*** 1395,1404 **** +*** 1354,1363 **** #if YYDEBUG if (yydebug) ! printf("yydebug: state %d, shifting to state %d\n", @@ -191,7 +191,7 @@ Index: perly.c ! goto yyoverflow; } *++yyssp = yystate = yytable[yyn]; ---- 1378,1401 ---- +--- 1337,1360 ---- #if YYDEBUG if (yydebug) ! fprintf(stderr, "yydebug: state %d, shifting to state %d\n", @@ -217,7 +217,7 @@ Index: perly.c } *++yyssp = yystate = yytable[yyn]; *************** -*** 1436,1445 **** +*** 1395,1404 **** #if YYDEBUG if (yydebug) ! printf("yydebug: state %d, error recovery shifting\ @@ -228,7 +228,7 @@ Index: perly.c ! goto yyoverflow; } *++yyssp = yystate = yytable[yyn]; ---- 1433,1457 ---- +--- 1392,1416 ---- #if YYDEBUG if (yydebug) ! fprintf(stderr, @@ -255,14 +255,14 @@ Index: perly.c } *++yyssp = yystate = yytable[yyn]; *************** -*** 1451,1456 **** +*** 1410,1415 **** #if YYDEBUG if (yydebug) ! printf("yydebug: error recovery discarding state %d\n", ! *yyssp); #endif if (yyssp <= yyss) goto yyabort; ---- 1463,1469 ---- +--- 1422,1428 ---- #if YYDEBUG if (yydebug) ! fprintf(stderr, @@ -271,14 +271,14 @@ Index: perly.c #endif if (yyssp <= yyss) goto yyabort; *************** -*** 1469,1474 **** +*** 1428,1433 **** if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; ! printf("yydebug: state %d, error recovery discards token %d (%s)\n", ! yystate, yychar, yys); } #endif ---- 1482,1488 ---- +--- 1441,1447 ---- if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; ! fprintf(stderr, @@ -287,27 +287,27 @@ Index: perly.c } #endif *************** -*** 1479,1483 **** +*** 1438,1442 **** #if YYDEBUG if (yydebug) ! printf("yydebug: state %d, reducing by rule %d (%s)\n", yystate, yyn, yyrule[yyn]); #endif ---- 1493,1497 ---- +--- 1452,1456 ---- #if YYDEBUG if (yydebug) ! fprintf(stderr, "yydebug: state %d, reducing by rule %d (%s)\n", yystate, yyn, yyrule[yyn]); #endif *************** -*** 2256,2261 **** +*** 2185,2190 **** #if YYDEBUG if (yydebug) ! printf("yydebug: after reduction, shifting from state 0 to\ ! state %d\n", YYFINAL); #endif yystate = YYFINAL; ---- 2270,2276 ---- +--- 2199,2205 ---- #if YYDEBUG if (yydebug) ! fprintf(stderr, @@ -316,20 +316,20 @@ Index: perly.c #endif yystate = YYFINAL; *************** -*** 2271,2275 **** +*** 2200,2204 **** if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; ! printf("yydebug: state %d, reading %d (%s)\n", YYFINAL, yychar, yys); } ---- 2286,2290 ---- +--- 2215,2219 ---- if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; ! fprintf(stderr, "yydebug: state %d, reading %d (%s)\n", YYFINAL, yychar, yys); } *************** -*** 2286,2295 **** +*** 2215,2224 **** #if YYDEBUG if (yydebug) ! printf("yydebug: after reduction, shifting from state %d \ @@ -340,7 +340,7 @@ Index: perly.c ! goto yyoverflow; } *++yyssp = yystate; ---- 2301,2325 ---- +--- 2230,2254 ---- #if YYDEBUG if (yydebug) ! fprintf(stderr, @@ -367,7 +367,7 @@ Index: perly.c } *++yyssp = yystate; *************** -*** 2297,2304 **** +*** 2226,2233 **** goto yyloop; yyoverflow: ! yyerror("yacc stack overflow"); @@ -376,7 +376,7 @@ Index: perly.c yyaccept: ! return (0); } ---- 2327,2334 ---- +--- 2256,2263 ---- goto yyloop; yyoverflow: ! yyerror("Out of memory for yacc stack"); |