summaryrefslogtreecommitdiff
path: root/perly.c.diff
diff options
context:
space:
mode:
authorPerl 5 Porters <perl5-porters@africa.nicoh.com>1996-12-23 12:58:58 +1200
committerChip Salzenberg <chip@atlantic.net>1996-12-23 12:58:58 +1200
commit71be2cbc73608e37e1a2ab7e459a02111137d1b0 (patch)
tree86679f00907a9abdfd1ff5104cec60d9a9fb0ef9 /perly.c.diff
parentb133f4ec823b00faf9bd083e0eb8e7a53ba7bfca (diff)
downloadperl-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.diff54
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");