diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 1999-03-10 11:07:46 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 1999-03-10 11:07:46 +0000 |
commit | e3d0d1b96b2c9ea39a8c9ab1faca9d150105b22d (patch) | |
tree | 6132085b898218965c681010ebaf10ea7ab61bbc | |
parent | a63faeb82e1cd769349b7b2ab0ae93c6465d712e (diff) | |
parent | 258f629a78127140b4644bf8cc6ec15b387ab089 (diff) | |
download | perl-e3d0d1b96b2c9ea39a8c9ab1faca9d150105b22d.tar.gz |
Integrate from mainperl.
p4raw-id: //depot/cfgperl@3103
-rw-r--r-- | Changes | 210 | ||||
-rw-r--r-- | embed.h | 65 | ||||
-rwxr-xr-x | embed.pl | 9 | ||||
-rw-r--r-- | embedvar.h | 4 | ||||
-rw-r--r-- | global.sym | 30 | ||||
-rw-r--r-- | objXSUB.h | 60 | ||||
-rw-r--r-- | op.c | 10 | ||||
-rw-r--r-- | perl.c | 3 | ||||
-rw-r--r-- | perl.h | 11 | ||||
-rw-r--r-- | pod/perldelta.pod | 15 | ||||
-rw-r--r-- | pod/pod2man.PL | 4 | ||||
-rwxr-xr-x | t/base/lex.t | 30 | ||||
-rw-r--r-- | t/pragma/warn/1global | 3 | ||||
-rw-r--r-- | toke.c | 36 | ||||
-rw-r--r-- | win32/makedef.pl | 70 |
15 files changed, 315 insertions, 245 deletions
@@ -75,7 +75,215 @@ indicator: ---------------- -Version 5.005_56 Development release working toward 5.006 +Version 5.005_57 Development release working toward 5.006 +---------------- + +____________________________________________________________________________ +[ 3089] By: gsar on 1999/03/06 04:30:40 + Log: tolerate CRs after options + Branch: perl + ! perl.c +____________________________________________________________________________ +[ 3088] By: jhi on 1999/03/05 12:49:01 + Log: Integrate from mainperl. + Branch: cfgperl + +> README.hurd + !> MANIFEST ext/Errno/Errno_pm.PL t/lib/io_sock.t +____________________________________________________________________________ +[ 3087] By: gsar on 1999/03/05 06:41:16 + Log: adjust timeouts to accomodate slow/busy systems + Branch: perl + ! t/lib/io_sock.t +____________________________________________________________________________ +[ 3083] By: gsar on 1999/03/05 01:32:47 + Log: integrate change#3081 from maint-5.005 + Branch: perl + !> ext/Errno/Errno_pm.PL +____________________________________________________________________________ +[ 3082] By: gsar on 1999/03/05 01:31:06 + Log: integrate change#2904 from maint-5.005 + Branch: perl + +> README.hurd + !> MANIFEST +____________________________________________________________________________ +[ 3081] By: gsar on 1999/03/05 00:14:33 + Log: protect against doubled backslashes + Branch: maint-5.005/perl + ! ext/Errno/Errno_pm.PL +____________________________________________________________________________ +[ 3077] By: jhi on 1999/03/04 08:10:13 + Log: Integrate from mainperl. + Branch: cfgperl + +> ext/B/B/Stash.pm + !> MANIFEST README.hpux cc_runtime.h config_h.SH ext/B/B/C.pm + !> ext/B/B/CC.pm gv.c lib/File/Compare.pm lib/Test/Harness.pm + !> op.c pod/perldelta.pod pod/perlfunc.pod pod/pod2man.PL + !> t/lib/bigfloatpm.t t/lib/io_sock.t utils/perlcc.PL +____________________________________________________________________________ +[ 3076] By: jhi on 1999/03/04 08:07:59 + Log: Regen config_h.SH once more because of *size, + noticed by + + From: Hans Mulder <hansm@icgned.icgroup.nl> + To: Jarkko Hietaniemi <jhi@iki.fi> + Cc: perl5-porters@perl.org + Subject: [PATCH for _56] LONGSIZE used before it is set in config.h + Date: Thu, 4 Mar 99 00:10:45 +0100 + Message-Id: <9903032317.AA23021@icgned.icgroup.nl> + Branch: cfgperl + ! Configure config_h.SH +____________________________________________________________________________ +[ 3068] By: gsar on 1999/03/04 05:48:03 + Log: From: Hans Mulder <hansm@icgned.icgroup.nl> + Date: Thu, 4 Mar 99 00:10:45 +0100 + Message-Id: <9903032317.AA23021@icgned.icgroup.nl> + Subject: [PATCH for _56] LONGSIZE used before it is set in config.h + Branch: perl + ! config_h.SH +____________________________________________________________________________ +[ 3067] By: gsar on 1999/03/04 05:44:32 + Log: exempt $foo::a,$foo::b from warnings only if sort() was seen in package foo + From: Graham Barr <gbarr@ti.com> + Date: Wed, 3 Mar 1999 17:23:56 -0600 + Message-ID: <19990303172356.F7442@dal.asp.ti.com> + Subject: Re: 'use strict' doesn't work for one-letter variables + Branch: perl + ! gv.c op.c +____________________________________________________________________________ +[ 3066] By: gsar on 1999/03/04 05:20:50 + Log: updates to compiler modules + From: "Vishal Bhatia" <vishalb@hotmail.com> + Date: Tue, 02 Mar 1999 23:27:25 PST + Message-ID: <19990303072725.779.qmail@hotmail.com> + Subject: PATCH 5.005_56 + Test procedure + Branch: perl + + ext/B/B/Stash.pm + ! MANIFEST cc_runtime.h ext/B/B/C.pm ext/B/B/CC.pm + ! lib/Test/Harness.pm utils/perlcc.PL +____________________________________________________________________________ +[ 3065] By: gsar on 1999/03/04 05:03:30 + Log: more s/s_/s!/ etc. + Branch: perl + ! pod/perldelta.pod pod/perlfunc.pod +____________________________________________________________________________ +[ 3064] By: gsar on 1999/03/04 04:50:45 + Log: integrate cfgperl contents into mainline + Branch: perl + !> Configure README.vms bytecode.h config_h.SH configure.com + !> ext/B/defsubs.h.PL hints/hpux.sh pod/perldelta.pod + !> pod/perldiag.pod pp.c t/lib/ipc_sysv.t t/op/pack.t thread.h + !> vms/ext/vmsish.pm vms/subconfigure.com vms/vms.c vms/vmsish.h +____________________________________________________________________________ +[ 3063] By: gsar on 1999/03/04 04:44:13 + Log: HP-UX has yet another spelling for /NaNQ?/ + Branch: perl + ! t/lib/bigfloatpm.t +____________________________________________________________________________ +[ 3062] By: gsar on 1999/03/04 04:36:08 + Log: error-check for accept() test + Branch: perl + ! t/lib/io_sock.t +____________________________________________________________________________ +[ 3061] By: gsar on 1999/03/04 03:40:25 + Log: allow custom comparison function in File::Compare::compare_text() + From: jan.dubois@ibm.net (Jan Dubois) + Date: Fri, 26 Feb 1999 21:56:09 +0100 + Message-ID: <36db0838.8805651@smtp1.ibm.net> + Subject: Re: PodParser 1.07 (was: RE: C<stuff()> vs stuff()) + Branch: perl + ! lib/File/Compare.pm +____________________________________________________________________________ +[ 3060] By: gsar on 1999/03/04 03:37:38 + Log: better version of change#3038 + From: abigail@fnx.com + Date: Mon, 1 Mar 1999 14:11:36 -0500 (EST) + Message-ID: <19990301191136.5557.qmail@alexandra.wayne.fnx.com> + Subject: Re: [PATCH 5.005_03 TRIAL-5 pod/pod2man.PL] Recognize -> and => inside + Branch: perl + ! pod/pod2man.PL +____________________________________________________________________________ +[ 3058] By: jhi on 1999/03/03 22:30:40 + Log: Configure regen to + (1) match maint-5.005 patches #3056 and #3057 + (2) better version of PHOSTNAME of #3050 + (3) the crosscompile/multiarch config_h.SH trouble solved for now + Branch: cfgperl + ! Configure config_h.SH +____________________________________________________________________________ +[ 3054] By: jhi on 1999/03/03 09:57:59 + Log: Change #3053 missed perldelta. + Branch: cfgperl + ! pod/perldelta.pod +____________________________________________________________________________ +[ 3053] By: jhi on 1999/03/03 08:29:43 + Log: Use '!' to mark native integer packings instead of '_'. + Branch: cfgperl + ! pod/perldiag.pod pp.c t/lib/ipc_sysv.t t/op/pack.t +____________________________________________________________________________ +[ 3052] By: jhi on 1999/03/02 23:12:36 + Log: The HP-UX threads patch (change #3028) is needed also here. + Branch: cfgperl + ! hints/hpux.sh thread.h +____________________________________________________________________________ +[ 3051] By: jhi on 1999/03/02 08:24:52 + Log: From: Dan Sugalski <sugalskd@osshe.edu> + To: perl5-porters@perl.org, vmsperl@perl.org + Subject: [PATCH 5.005_0x and 5.005_5x]Minor update to README.VMS + Date: Mon, 01 Mar 1999 16:10:57 -0800 + Message-Id: <3.0.6.32.19990301161057.03b1fc00@ous.edu> + Branch: cfgperl + ! README.vms + Branch: maint-5.005/perl + ! README.vms +____________________________________________________________________________ +[ 3050] By: jhi on 1999/03/02 08:22:29 + Log: From: Dan Sugalski <sugalskd@osshe.edu> + To: perl5-porters@perl.org, vmsperl@perl.org + Subject: [PATCH5.005_56]Diffs to get 5.005_56 building on VMS + Date: Mon, 01 Mar 1999 16:06:29 -0800 + Message-Id: <3.0.6.32.19990301160629.02e09ec0@ous.edu> + + From: Dan Sugalski <sugalskd@osshe.edu> + To: perl5-porters@perl.org, vmsperl@perl.org + Subject: [PATCH 5.005_56]vmsish.pm patch + Date: Mon, 01 Mar 1999 20:19:04 -0800 + Message-Id: <3.0.6.32.19990301201904.02cff460@ous.edu> + + plus Configure regen containing a "solution" to the + crosscompile/multiarch problem. + Branch: cfgperl + ! Configure config_h.SH configure.com ext/B/defsubs.h.PL + ! vms/ext/vmsish.pm vms/subconfigure.com vms/vms.c vms/vmsish.h +____________________________________________________________________________ +[ 3049] By: jhi on 1999/03/02 07:34:21 + Log: From: Spider Boardman <spider@leggy.zk3.dec.com> + To: perl5-porters@perl.org + Subject: [PATCH] Eliminate (valid) warning in byterun.c + Date: Mon, 01 Mar 1999 17:27:59 -0500 + Message-Id: <199903012227.RAA00181@leggy.zk3.dec.com> + Branch: cfgperl + ! bytecode.h + Branch: maint-5.005/perl + ! bytecode.h +____________________________________________________________________________ +[ 3048] By: gsar on 1999/03/02 06:41:21 + Log: updated HP-UX notes from Jeff Okamoto <okamoto@xfiles.intercon.hp.com> + Branch: perl + ! MANIFEST README.hpux +____________________________________________________________________________ +[ 3047] By: jhi on 1999/03/01 06:34:43 + Log: Integrate from mainperl. + Branch: cfgperl + +> README.hpux lib/File/Spec/Functions.pm + !> (integrate 28 files) +____________________________________________________________________________ +[ 3046] By: gsar on 1999/03/01 05:34:28 + Log: this is 5.005_56 + Branch: perl + ! Changes + +---------------- +Version 5.005_56 ---------------- ____________________________________________________________________________ @@ -49,9 +49,6 @@ #define cast_iv Perl_cast_iv #define cast_ulong Perl_cast_ulong #define cast_uv Perl_cast_uv -#define check_uni Perl_check_uni -#define checkcomma Perl_checkcomma -#define ck_aelem Perl_ck_aelem #define ck_anoncode Perl_ck_anoncode #define ck_bitop Perl_ck_bitop #define ck_concat Perl_ck_concat @@ -152,18 +149,13 @@ #define dump_sub Perl_dump_sub #define fbm_compile Perl_fbm_compile #define fbm_instr Perl_fbm_instr -#define fetch_gv Perl_fetch_gv -#define fetch_io Perl_fetch_io #define filter_add Perl_filter_add #define filter_del Perl_filter_del #define filter_read Perl_filter_read #define find_script Perl_find_script #define find_threadsv Perl_find_threadsv #define fold_constants Perl_fold_constants -#define force_ident Perl_force_ident #define force_list Perl_force_list -#define force_next Perl_force_next -#define force_word Perl_force_word #define form Perl_form #define free_tmps Perl_free_tmps #define gen_constant_list Perl_gen_constant_list @@ -222,7 +214,6 @@ #define init_thread_intern Perl_init_thread_intern #define instr Perl_instr #define intro_my Perl_intro_my -#define intuit_more Perl_intuit_more #define invert Perl_invert #define io_close Perl_io_close #define is_uni_alnum Perl_is_uni_alnum @@ -322,9 +313,7 @@ #define mg_set Perl_mg_set #define mg_size Perl_mg_size #define mod Perl_mod -#define modkids Perl_modkids #define moreswitches Perl_moreswitches -#define mstats Perl_mstats #define my Perl_my #define my_bcopy Perl_my_bcopy #define my_bzero Perl_my_bzero @@ -389,13 +378,10 @@ #define newUNOP Perl_newUNOP #define newWHILEOP Perl_newWHILEOP #define newXS Perl_newXS -#define newXSUB Perl_newXSUB #define new_stackinfo Perl_new_stackinfo #define new_struct_thread Perl_new_struct_thread #define nextargv Perl_nextargv #define ninstr Perl_ninstr -#define no_fh_allowed Perl_no_fh_allowed -#define no_op Perl_no_op #define oopsAV Perl_oopsAV #define oopsCV Perl_oopsCV #define oopsHV Perl_oopsHV @@ -837,20 +823,9 @@ #define scalarseq Perl_scalarseq #define scalarvoid Perl_scalarvoid #define scan_bin Perl_scan_bin -#define scan_const Perl_scan_const -#define scan_formline Perl_scan_formline -#define scan_heredoc Perl_scan_heredoc #define scan_hex Perl_scan_hex -#define scan_ident Perl_scan_ident -#define scan_inputsymbol Perl_scan_inputsymbol #define scan_num Perl_scan_num #define scan_oct Perl_scan_oct -#define scan_pat Perl_scan_pat -#define scan_prefix Perl_scan_prefix -#define scan_str Perl_scan_str -#define scan_subst Perl_scan_subst -#define scan_trans Perl_scan_trans -#define scan_word Perl_scan_word #define scope Perl_scope #define screaminstr Perl_screaminstr #define setdefout Perl_setdefout @@ -858,7 +833,6 @@ #define share_hek Perl_share_hek #define sharepvn Perl_sharepvn #define sighandler Perl_sighandler -#define skipspace Perl_skipspace #define stack_grow Perl_stack_grow #define start_subparse Perl_start_subparse #define sub_crush_depth Perl_sub_crush_depth @@ -916,7 +890,6 @@ #define sv_pv Perl_sv_pv #define sv_pvn Perl_sv_pvn #define sv_pvn_force Perl_sv_pvn_force -#define sv_ref Perl_sv_ref #define sv_reftype Perl_sv_reftype #define sv_replace Perl_sv_replace #define sv_report_used Perl_sv_report_used @@ -925,7 +898,6 @@ #define sv_setiv_mg Perl_sv_setiv_mg #define sv_setnv Perl_sv_setnv #define sv_setnv_mg Perl_sv_setnv_mg -#define sv_setptrobj Perl_sv_setptrobj #define sv_setpv Perl_sv_setpv #define sv_setpv_mg Perl_sv_setpv_mg #define sv_setpvf Perl_sv_setpvf @@ -967,8 +939,6 @@ #define to_utf8_lower Perl_to_utf8_lower #define to_utf8_title Perl_to_utf8_title #define to_utf8_upper Perl_to_utf8_upper -#define too_few_arguments Perl_too_few_arguments -#define too_many_arguments Perl_too_many_arguments #define unlnk Perl_unlnk #define unlock_condpair Perl_unlock_condpair #define unshare_hek Perl_unshare_hek @@ -1046,10 +1016,7 @@ #define cast_ulong CPerlObj::Perl_cast_ulong #define cast_uv CPerlObj::Perl_cast_uv #define check_uni CPerlObj::Perl_check_uni -#define check_uni CPerlObj::Perl_check_uni -#define checkcomma CPerlObj::Perl_checkcomma #define checkcomma CPerlObj::Perl_checkcomma -#define ck_aelem CPerlObj::Perl_ck_aelem #define ck_anoncode CPerlObj::Perl_ck_anoncode #define ck_bitop CPerlObj::Perl_ck_bitop #define ck_concat CPerlObj::Perl_ck_concat @@ -1190,8 +1157,6 @@ #define emulate_eaccess CPerlObj::Perl_emulate_eaccess #define fbm_compile CPerlObj::Perl_fbm_compile #define fbm_instr CPerlObj::Perl_fbm_instr -#define fetch_gv CPerlObj::Perl_fetch_gv -#define fetch_io CPerlObj::Perl_fetch_io #define filter_add CPerlObj::Perl_filter_add #define filter_del CPerlObj::Perl_filter_del #define filter_gets CPerlObj::Perl_filter_gets @@ -1202,13 +1167,10 @@ #define fold_constants CPerlObj::Perl_fold_constants #define forbid_setid CPerlObj::Perl_forbid_setid #define force_ident CPerlObj::Perl_force_ident -#define force_ident CPerlObj::Perl_force_ident #define force_list CPerlObj::Perl_force_list #define force_next CPerlObj::Perl_force_next -#define force_next CPerlObj::Perl_force_next #define force_version CPerlObj::Perl_force_version #define force_word CPerlObj::Perl_force_word -#define force_word CPerlObj::Perl_force_word #define form CPerlObj::Perl_form #define fprintf CPerlObj::Perl_fprintf #define free_tmps CPerlObj::Perl_free_tmps @@ -1286,7 +1248,6 @@ #define intro_my CPerlObj::Perl_intro_my #define intuit_method CPerlObj::Perl_intuit_method #define intuit_more CPerlObj::Perl_intuit_more -#define intuit_more CPerlObj::Perl_intuit_more #define invert CPerlObj::Perl_invert #define io_close CPerlObj::Perl_io_close #define is_an_int CPerlObj::Perl_is_an_int @@ -1397,7 +1358,6 @@ #define missingterm CPerlObj::Perl_missingterm #define mod CPerlObj::Perl_mod #define modkids CPerlObj::Perl_modkids -#define modkids CPerlObj::Perl_modkids #define more_he CPerlObj::Perl_more_he #define more_sv CPerlObj::Perl_more_sv #define more_xiv CPerlObj::Perl_more_xiv @@ -1405,7 +1365,6 @@ #define more_xpv CPerlObj::Perl_more_xpv #define more_xrv CPerlObj::Perl_more_xrv #define moreswitches CPerlObj::Perl_moreswitches -#define mstats CPerlObj::Perl_mstats #define mul128 CPerlObj::Perl_mul128 #define my CPerlObj::Perl_my #define my_bcopy CPerlObj::Perl_my_bcopy @@ -1474,7 +1433,6 @@ #define newUNOP CPerlObj::Perl_newUNOP #define newWHILEOP CPerlObj::Perl_newWHILEOP #define newXS CPerlObj::Perl_newXS -#define newXSUB CPerlObj::Perl_newXSUB #define new_constant CPerlObj::Perl_new_constant #define new_he CPerlObj::Perl_new_he #define new_logop CPerlObj::Perl_new_logop @@ -1488,8 +1446,6 @@ #define nextchar CPerlObj::Perl_nextchar #define ninstr CPerlObj::Perl_ninstr #define no_fh_allowed CPerlObj::Perl_no_fh_allowed -#define no_fh_allowed CPerlObj::Perl_no_fh_allowed -#define no_op CPerlObj::Perl_no_op #define no_op CPerlObj::Perl_no_op #define not_a_number CPerlObj::Perl_not_a_number #define nuke_stacks CPerlObj::Perl_nuke_stacks @@ -2006,28 +1962,17 @@ #define scan_bin CPerlObj::Perl_scan_bin #define scan_commit CPerlObj::Perl_scan_commit #define scan_const CPerlObj::Perl_scan_const -#define scan_const CPerlObj::Perl_scan_const -#define scan_formline CPerlObj::Perl_scan_formline #define scan_formline CPerlObj::Perl_scan_formline #define scan_heredoc CPerlObj::Perl_scan_heredoc -#define scan_heredoc CPerlObj::Perl_scan_heredoc #define scan_hex CPerlObj::Perl_scan_hex #define scan_ident CPerlObj::Perl_scan_ident -#define scan_ident CPerlObj::Perl_scan_ident -#define scan_inputsymbol CPerlObj::Perl_scan_inputsymbol #define scan_inputsymbol CPerlObj::Perl_scan_inputsymbol #define scan_num CPerlObj::Perl_scan_num #define scan_oct CPerlObj::Perl_scan_oct #define scan_pat CPerlObj::Perl_scan_pat -#define scan_pat CPerlObj::Perl_scan_pat -#define scan_prefix CPerlObj::Perl_scan_prefix #define scan_str CPerlObj::Perl_scan_str -#define scan_str CPerlObj::Perl_scan_str -#define scan_subst CPerlObj::Perl_scan_subst #define scan_subst CPerlObj::Perl_scan_subst #define scan_trans CPerlObj::Perl_scan_trans -#define scan_trans CPerlObj::Perl_scan_trans -#define scan_word CPerlObj::Perl_scan_word #define scan_word CPerlObj::Perl_scan_word #define scope CPerlObj::Perl_scope #define screaminstr CPerlObj::Perl_screaminstr @@ -2040,7 +1985,6 @@ #define sighandler CPerlObj::Perl_sighandler #define simplify_sort CPerlObj::Perl_simplify_sort #define skipspace CPerlObj::Perl_skipspace -#define skipspace CPerlObj::Perl_skipspace #define sortcv CPerlObj::Perl_sortcv #define stack_grow CPerlObj::Perl_stack_grow #define start_subparse CPerlObj::Perl_start_subparse @@ -2107,7 +2051,6 @@ #define sv_pv CPerlObj::Perl_sv_pv #define sv_pvn CPerlObj::Perl_sv_pvn #define sv_pvn_force CPerlObj::Perl_sv_pvn_force -#define sv_ref CPerlObj::Perl_sv_ref #define sv_reftype CPerlObj::Perl_sv_reftype #define sv_replace CPerlObj::Perl_sv_replace #define sv_report_used CPerlObj::Perl_sv_report_used @@ -2116,7 +2059,6 @@ #define sv_setiv_mg CPerlObj::Perl_sv_setiv_mg #define sv_setnv CPerlObj::Perl_sv_setnv #define sv_setnv_mg CPerlObj::Perl_sv_setnv_mg -#define sv_setptrobj CPerlObj::Perl_sv_setptrobj #define sv_setpv CPerlObj::Perl_sv_setpv #define sv_setpv_mg CPerlObj::Perl_sv_setpv_mg #define sv_setpvf CPerlObj::Perl_sv_setpvf @@ -2161,8 +2103,6 @@ #define to_utf8_upper CPerlObj::Perl_to_utf8_upper #define tokeq CPerlObj::Perl_tokeq #define too_few_arguments CPerlObj::Perl_too_few_arguments -#define too_few_arguments CPerlObj::Perl_too_few_arguments -#define too_many_arguments CPerlObj::Perl_too_many_arguments #define too_many_arguments CPerlObj::Perl_too_many_arguments #define uni CPerlObj::Perl_uni #define unlnk CPerlObj::Perl_unlnk @@ -2197,3 +2137,8 @@ #endif /* PERL_OBJECT */ +/* compatibility stubs */ + +#define sv_setptrobj(rv,ptr,name) sv_setref_iv(rv,name,(IV)ptr) +#define sv_setptrref(rv,ptr) sv_setref_iv(rv,Nullch,(IV)ptr) + @@ -405,6 +405,11 @@ print EM <<'END'; #endif /* PERL_OBJECT */ +/* compatibility stubs */ + +#define sv_setptrobj(rv,ptr,name) sv_setref_iv(rv,name,(IV)ptr) +#define sv_setptrref(rv,ptr) sv_setref_iv(rv,Nullch,(IV)ptr) + END close(EM); @@ -541,7 +546,7 @@ END print EM <<'END'; -#ifdef PERL_POLLUTE /* unsupported in 5.006 */ +#ifdef PERL_POLLUTE /* disabled by default in 5.006 */ END @@ -551,7 +556,7 @@ for $sym (sort @extvars) { print EM <<'END'; -#endif /* MIN_PERL_DEFINE */ +#endif /* PERL_POLLUTE */ END diff --git a/embedvar.h b/embedvar.h index 8c7c2a7807..63613efa77 100644 --- a/embedvar.h +++ b/embedvar.h @@ -943,7 +943,7 @@ #endif /* PERL_GLOBAL_STRUCT */ -#ifdef PERL_POLLUTE /* unsupported in 5.006 */ +#ifdef PERL_POLLUTE /* disabled by default in 5.006 */ #define DBsingle PL_DBsingle #define DBsub PL_DBsub @@ -972,4 +972,4 @@ #define tainted PL_tainted #define tainting PL_tainting -#endif /* MIN_PERL_DEFINE */ +#endif /* PERL_POLLUTE */ diff --git a/global.sym b/global.sym index e49afc7e2b..89199578f6 100644 --- a/global.sym +++ b/global.sym @@ -40,9 +40,6 @@ cast_ulong cast_i32 cast_iv cast_uv -check_uni -checkcomma -ck_aelem ck_anoncode ck_bitop ck_concat @@ -143,18 +140,13 @@ dump_packsubs dump_sub fbm_compile fbm_instr -fetch_gv -fetch_io filter_add filter_del filter_read find_script find_threadsv fold_constants -force_ident force_list -force_next -force_word form free_tmps gen_constant_list @@ -213,7 +205,6 @@ init_stacks init_thread_intern instr intro_my -intuit_more invert io_close is_uni_alnum @@ -313,9 +304,7 @@ mg_magical mg_set mg_size mod -modkids moreswitches -mstats my my_bcopy my_bzero @@ -382,11 +371,8 @@ newSVsv newUNOP newWHILEOP newXS -newXSUB nextargv ninstr -no_fh_allowed -no_op oopsAV oopsCV oopsHV @@ -484,20 +470,9 @@ scalarkids scalarseq scalarvoid scan_bin -scan_const -scan_formline -scan_heredoc scan_hex -scan_ident -scan_inputsymbol scan_num scan_oct -scan_pat -scan_prefix -scan_str -scan_subst -scan_trans -scan_word scope screaminstr setdefout @@ -505,7 +480,6 @@ setenv_getix share_hek sharepvn sighandler -skipspace stack_grow start_subparse sub_crush_depth @@ -563,7 +537,6 @@ sv_peek sv_pv sv_pvn sv_pvn_force -sv_ref sv_reftype sv_replace sv_report_used @@ -572,7 +545,6 @@ sv_setiv sv_setiv_mg sv_setnv sv_setnv_mg -sv_setptrobj sv_setpv sv_setpv_mg sv_setpvf @@ -614,8 +586,6 @@ to_uni_upper_lc to_utf8_lower to_utf8_title to_utf8_upper -too_few_arguments -too_many_arguments unlnk unlock_condpair unshare_hek @@ -899,14 +899,8 @@ #define cast_uv pPerl->Perl_cast_uv #undef check_uni #define check_uni pPerl->Perl_check_uni -#undef check_uni -#define check_uni pPerl->Perl_check_uni -#undef checkcomma -#define checkcomma pPerl->Perl_checkcomma #undef checkcomma #define checkcomma pPerl->Perl_checkcomma -#undef ck_aelem -#define ck_aelem pPerl->Perl_ck_aelem #undef ck_anoncode #define ck_anoncode pPerl->Perl_ck_anoncode #undef ck_bitop @@ -1187,10 +1181,6 @@ #define fbm_compile pPerl->Perl_fbm_compile #undef fbm_instr #define fbm_instr pPerl->Perl_fbm_instr -#undef fetch_gv -#define fetch_gv pPerl->Perl_fetch_gv -#undef fetch_io -#define fetch_io pPerl->Perl_fetch_io #undef filter_add #define filter_add pPerl->Perl_filter_add #undef filter_del @@ -1211,20 +1201,14 @@ #define forbid_setid pPerl->Perl_forbid_setid #undef force_ident #define force_ident pPerl->Perl_force_ident -#undef force_ident -#define force_ident pPerl->Perl_force_ident #undef force_list #define force_list pPerl->Perl_force_list #undef force_next #define force_next pPerl->Perl_force_next -#undef force_next -#define force_next pPerl->Perl_force_next #undef force_version #define force_version pPerl->Perl_force_version #undef force_word #define force_word pPerl->Perl_force_word -#undef force_word -#define force_word pPerl->Perl_force_word #undef form #define form pPerl->Perl_form #undef fprintf @@ -1379,8 +1363,6 @@ #define intuit_method pPerl->Perl_intuit_method #undef intuit_more #define intuit_more pPerl->Perl_intuit_more -#undef intuit_more -#define intuit_more pPerl->Perl_intuit_more #undef invert #define invert pPerl->Perl_invert #undef io_close @@ -1601,8 +1583,6 @@ #define mod pPerl->Perl_mod #undef modkids #define modkids pPerl->Perl_modkids -#undef modkids -#define modkids pPerl->Perl_modkids #undef more_he #define more_he pPerl->Perl_more_he #undef more_sv @@ -1617,8 +1597,6 @@ #define more_xrv pPerl->Perl_more_xrv #undef moreswitches #define moreswitches pPerl->Perl_moreswitches -#undef mstats -#define mstats pPerl->Perl_mstats #undef mul128 #define mul128 pPerl->Perl_mul128 #undef my @@ -1755,8 +1733,6 @@ #define newWHILEOP pPerl->Perl_newWHILEOP #undef newXS #define newXS pPerl->Perl_newXS -#undef newXSUB -#define newXSUB pPerl->Perl_newXSUB #undef new_constant #define new_constant pPerl->Perl_new_constant #undef new_he @@ -1783,10 +1759,6 @@ #define ninstr pPerl->Perl_ninstr #undef no_fh_allowed #define no_fh_allowed pPerl->Perl_no_fh_allowed -#undef no_fh_allowed -#define no_fh_allowed pPerl->Perl_no_fh_allowed -#undef no_op -#define no_op pPerl->Perl_no_op #undef no_op #define no_op pPerl->Perl_no_op #undef not_a_number @@ -2819,24 +2791,14 @@ #define scan_commit pPerl->Perl_scan_commit #undef scan_const #define scan_const pPerl->Perl_scan_const -#undef scan_const -#define scan_const pPerl->Perl_scan_const -#undef scan_formline -#define scan_formline pPerl->Perl_scan_formline #undef scan_formline #define scan_formline pPerl->Perl_scan_formline #undef scan_heredoc #define scan_heredoc pPerl->Perl_scan_heredoc -#undef scan_heredoc -#define scan_heredoc pPerl->Perl_scan_heredoc #undef scan_hex #define scan_hex pPerl->Perl_scan_hex #undef scan_ident #define scan_ident pPerl->Perl_scan_ident -#undef scan_ident -#define scan_ident pPerl->Perl_scan_ident -#undef scan_inputsymbol -#define scan_inputsymbol pPerl->Perl_scan_inputsymbol #undef scan_inputsymbol #define scan_inputsymbol pPerl->Perl_scan_inputsymbol #undef scan_num @@ -2845,24 +2807,12 @@ #define scan_oct pPerl->Perl_scan_oct #undef scan_pat #define scan_pat pPerl->Perl_scan_pat -#undef scan_pat -#define scan_pat pPerl->Perl_scan_pat -#undef scan_prefix -#define scan_prefix pPerl->Perl_scan_prefix #undef scan_str #define scan_str pPerl->Perl_scan_str -#undef scan_str -#define scan_str pPerl->Perl_scan_str -#undef scan_subst -#define scan_subst pPerl->Perl_scan_subst #undef scan_subst #define scan_subst pPerl->Perl_scan_subst #undef scan_trans #define scan_trans pPerl->Perl_scan_trans -#undef scan_trans -#define scan_trans pPerl->Perl_scan_trans -#undef scan_word -#define scan_word pPerl->Perl_scan_word #undef scan_word #define scan_word pPerl->Perl_scan_word #undef scope @@ -2887,8 +2837,6 @@ #define simplify_sort pPerl->Perl_simplify_sort #undef skipspace #define skipspace pPerl->Perl_skipspace -#undef skipspace -#define skipspace pPerl->Perl_skipspace #undef sortcv #define sortcv pPerl->Perl_sortcv #undef stack_grow @@ -3021,8 +2969,6 @@ #define sv_pvn pPerl->Perl_sv_pvn #undef sv_pvn_force #define sv_pvn_force pPerl->Perl_sv_pvn_force -#undef sv_ref -#define sv_ref pPerl->Perl_sv_ref #undef sv_reftype #define sv_reftype pPerl->Perl_sv_reftype #undef sv_replace @@ -3039,8 +2985,6 @@ #define sv_setnv pPerl->Perl_sv_setnv #undef sv_setnv_mg #define sv_setnv_mg pPerl->Perl_sv_setnv_mg -#undef sv_setptrobj -#define sv_setptrobj pPerl->Perl_sv_setptrobj #undef sv_setpv #define sv_setpv pPerl->Perl_sv_setpv #undef sv_setpv_mg @@ -3129,10 +3073,6 @@ #define tokeq pPerl->Perl_tokeq #undef too_few_arguments #define too_few_arguments pPerl->Perl_too_few_arguments -#undef too_few_arguments -#define too_few_arguments pPerl->Perl_too_few_arguments -#undef too_many_arguments -#define too_many_arguments pPerl->Perl_too_many_arguments #undef too_many_arguments #define too_many_arguments pPerl->Perl_too_many_arguments #undef uni @@ -147,7 +147,7 @@ pad_allocmy(char *name) name[2] = toCTRL(name[1]); name[1] = '^'; } - croak("Can't use global %s in \"my\"",name); + yyerror(form("Can't use global %s in \"my\"",name)); } if (ckWARN(WARN_UNSAFE) && AvFILLp(PL_comppad_name) >= 0) { SV **svp = AvARRAY(PL_comppad_name); @@ -170,7 +170,8 @@ pad_allocmy(char *name) sv_setpv(sv, name); if (PL_in_my_stash) { if (*name != '$') - croak("Can't declare class for non-scalar %s in \"my\"",name); + yyerror(form("Can't declare class for non-scalar %s in \"my\"", + name)); SvOBJECT_on(sv); (void)SvUPGRADE(sv, SVt_PVMG); SvSTASH(sv) = (HV*)SvREFCNT_inc(PL_in_my_stash); @@ -2505,8 +2506,11 @@ pmruntime(OP *o, OP *expr, OP *repl) if (repl) { OP *curop; - if (pm->op_pmflags & PMf_EVAL) + if (pm->op_pmflags & PMf_EVAL) { curop = 0; + if (PL_curcop->cop_line < PL_multi_end) + PL_curcop->cop_line = PL_multi_end; + } #ifdef USE_THREADS else if (repl->op_type == OP_THREADSV && strchr("&`'123456789+", @@ -732,6 +732,9 @@ setuid perl scripts securely.\n"); s = argv[0]+1; reswitch: switch (*s) { +#ifndef PERL_STRICT_CR + case '\r': +#endif case ' ': case '0': case 'F': @@ -1541,6 +1541,8 @@ struct _sublex_info { I32 super_state; /* lexer state to save */ I32 sub_inwhat; /* "lex_inwhat" to use */ OP *sub_op; /* "lex_op" to use */ + char *super_bufptr; /* PL_bufptr that was */ + char *super_bufend; /* PL_bufend that was */ }; typedef struct magic_state MGS; /* struct magic_state defined in mg.c */ @@ -1630,7 +1632,6 @@ typedef I32 CHECKPOINT; #define U_I(what) ((unsigned int)(what)) #define U_L(what) ((U32)(what)) #else -EXTERN_C U32 cast_ulong _((double)); #define U_S(what) ((U16)cast_ulong((double)(what))) #define U_I(what) ((unsigned int)cast_ulong((double)(what))) #define U_L(what) (cast_ulong((double)(what))) @@ -1641,11 +1642,6 @@ EXTERN_C U32 cast_ulong _((double)); #define I_V(what) ((IV)(what)) #define U_V(what) ((UV)(what)) #else -START_EXTERN_C -I32 cast_i32 _((double)); -IV cast_iv _((double)); -UV cast_uv _((double)); -END_EXTERN_C #define I_32(what) (cast_i32((double)(what))) #define I_V(what) (cast_iv((double)(what))) #define U_V(what) (cast_uv((double)(what))) @@ -2348,9 +2344,6 @@ typedef void *Thread; #include "pp.h" #include "proto.h" -#define Perl_sv_setptrobj(rv,ptr,name) Perl_sv_setref_iv(rv,name,(IV)ptr) -#define Perl_sv_setptrref(rv,ptr) Perl_sv_setref_iv(rv,Nullch,(IV)ptr) - /* The following must follow proto.h as #defines mess up syntax */ #if !defined(PERL_FOR_X2P) diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 15e62f4c22..300a3d5998 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -202,6 +202,21 @@ Note that the behavior of: is unchanged (it continues to leave the file empty). +=head2 C<eval '...'> improvements + +Line numbers (as reflected by caller() and most diagnostics) within +C<eval '...'> were often incorrect when here documents were involved. +This has been corrected. + +Lexical lookups for variables appearing in C<eval '...'> within +functions that were themselves called within an C<eval '...'> were +searching the wrong place for lexicals. They now correctly terminate +the lexical search at the subroutine call boundary. + +Parsing of here documents used to be flawed when they appeared as +the replacement expression in C<eval 's/.../.../e'>. This has +been fixed. + =head1 Supported Platforms =over 4 diff --git a/pod/pod2man.PL b/pod/pod2man.PL index 61b6129ed9..7494c26595 100644 --- a/pod/pod2man.PL +++ b/pod/pod2man.PL @@ -679,7 +679,7 @@ $indent = 0; $begun = ""; # Unrolling [^-=A-Z>]|[A-Z](?!<)|[-=](?![A-Z]<)[\x00-\xFF] gives: // MRE pp 165. -my $nonest = '(?x) # Turn on /x mode. +my $nonest = q{(?x) # Turn on /x mode. (?: # Group [^-=A-Z>]* # Anything that isn't a dash, equal sign or # closing hook isn't special. Eat as much as @@ -695,7 +695,7 @@ my $nonest = '(?x) # Turn on /x mode. ) # End of special sequences. [^-=A-Z>]* # Followed by zero or more non-special chars. )* # And we can repeat this as often as we can. - )'; # That's all folks. + )}; # That's all folks. while (<>) { if ($cutting) { diff --git a/t/base/lex.t b/t/base/lex.t index 6bb39d0ae7..d90d404cac 100755 --- a/t/base/lex.t +++ b/t/base/lex.t @@ -1,8 +1,6 @@ #!./perl -# $RCSfile: lex.t,v $$Revision: 4.1 $$Date: 92/08/07 18:27:04 $ - -print "1..41\n"; +print "1..46\n"; $x = 'x'; @@ -155,6 +153,7 @@ print $foo; # These next two tests are trying to make sure that # $^FOO is always global; it doesn't make sense to `my' it. # + eval 'my $^X;'; print "not " unless index ($@, 'Can\'t use global $^X in "my"') > -1; print "ok 37\n"; @@ -181,4 +180,29 @@ print $foo; } +# see if eval '', s///e, and heredocs mix +sub T { + my ($where, $num) = @_; + my ($p,$f,$l) = caller; + print "# $p:$f:$l vs /$where/\nnot " unless "$p:$f:$l" =~ /$where/; + print "ok $num\n"; +} + +my $test = 42; + +{ +# line 42 "plink" + local $_ = "not ok "; + eval q{ + s/^not /<<EOT/e and T '^main:\(eval \d+\):2$', $test++; +# fuggedaboudit +EOT + print $_, $test++, "\n"; + T('^main:\(eval \d+\):6$', $test++); +# line 1 "plunk" + T('^main:plunk:1$', $test++); + }; + print "# $@\nnot ok $test\n" if $@; + T '^main:plink:53$', $test++; +} diff --git a/t/pragma/warn/1global b/t/pragma/warn/1global index dca47e92ce..836b7f513f 100644 --- a/t/pragma/warn/1global +++ b/t/pragma/warn/1global @@ -13,12 +13,14 @@ EXPECT $a =+ 3 ; EXPECT Reversed += operator at - line 3. +Name "main::a" used only once: possible typo at - line 3. ######## #! perl -w # warnable code, warnings enabled via #! line $a =+ 3 ; EXPECT Reversed += operator at - line 3. +Name "main::a" used only once: possible typo at - line 3. ######## # warnable code, warnings enabled via compile time $^W @@ -26,6 +28,7 @@ BEGIN { $^W = 1 } $a =+ 3 ; EXPECT Reversed += operator at - line 4. +Name "main::a" used only once: possible typo at - line 4. ######## # compile-time warnable code, warnings enabled via runtime $^W @@ -1638,7 +1638,7 @@ int yylex(PERL_YYLEX_PARAM_DECL) */ if (PL_in_my) { if (strchr(PL_tokenbuf,':')) - croak(PL_no_myglob,PL_tokenbuf); + yyerror(form(PL_no_myglob,PL_tokenbuf)); yylval.opval = newOP(OP_PADANY, 0); yylval.opval->op_targ = pad_allocmy(PL_tokenbuf); @@ -5352,6 +5352,9 @@ scan_subst(char *start) if (es) { SV *repl; + PL_sublex_info.super_bufptr = s; + PL_sublex_info.super_bufend = PL_bufend; + PL_multi_end = 0; pm->op_pmflags |= PMf_EVAL; repl = newSVpv("",0); while (es-- > 0) @@ -5541,7 +5544,33 @@ scan_heredoc(register char *s) PL_multi_start = PL_curcop->cop_line; PL_multi_open = PL_multi_close = '<'; term = *PL_tokenbuf; - if (!outer) { + if (PL_lex_inwhat == OP_SUBST && PL_in_eval && !PL_rsfp) { + char *bufptr = PL_sublex_info.super_bufptr; + char *bufend = PL_sublex_info.super_bufend; + char *olds = s - SvCUR(herewas); + s = strchr(bufptr, '\n'); + if (!s) + s = bufend; + d = s; + while (s < bufend && + (*s != term || memNE(s,PL_tokenbuf,len)) ) { + if (*s++ == '\n') + PL_curcop->cop_line++; + } + if (s >= bufend) { + PL_curcop->cop_line = PL_multi_start; + missingterm(PL_tokenbuf); + } + sv_setpvn(herewas,bufptr,d-bufptr+1); + sv_setpvn(tmpstr,d+1,s-d); + s += len - 1; + sv_catpvn(herewas,s,bufend-s); + (void)strcpy(bufptr,SvPVX(herewas)); + + s = olds; + goto retval; + } + else if (!outer) { d = s; while (s < PL_bufend && (*s != term || memNE(s,PL_tokenbuf,len)) ) { @@ -5605,8 +5634,9 @@ scan_heredoc(register char *s) sv_catsv(tmpstr,PL_linestr); } } - PL_multi_end = PL_curcop->cop_line; s++; +retval: + PL_multi_end = PL_curcop->cop_line; if (SvCUR(tmpstr) + 5 < SvLEN(tmpstr)) { SvLEN_set(tmpstr, SvCUR(tmpstr) + 1); Renew(SvPVX(tmpstr), SvLEN(tmpstr), char); diff --git a/win32/makedef.pl b/win32/makedef.pl index fa1b58081b..ce1009ba78 100644 --- a/win32/makedef.pl +++ b/win32/makedef.pl @@ -79,94 +79,24 @@ PL_pending_ident PL_sortcxix PL_sublex_info PL_timesbuf -Perl_additem -Perl_cast_ulong -Perl_check_uni -Perl_checkcomma -Perl_chsize -Perl_ck_aelem -Perl_cx_dump Perl_do_ipcctl Perl_do_ipcget Perl_do_msgrcv Perl_do_msgsnd Perl_do_semop Perl_do_shmio -Perl_doeval -Perl_dofindlabel -Perl_dopoptoeval -Perl_dump_eval Perl_dump_fds -Perl_dump_form -Perl_dump_gv Perl_dump_mstats -Perl_dump_op -Perl_dump_packsubs -Perl_dump_pm -Perl_dump_sub -Perl_expectterm -Perl_fetch_gv -Perl_fetch_io -Perl_force_ident -Perl_force_next -Perl_force_word -Perl_hv_stashpv -Perl_intuit_more Perl_init_thread_intern -Perl_know_next -Perl_modkids -Perl_mstats Perl_my_bzero Perl_my_htonl Perl_my_ntohl Perl_my_swap Perl_my_chsize -Perl_newXSUB -Perl_no_fh_allowed -Perl_no_op -Perl_nointrp -Perl_nomem -Perl_pp_cswitch -Perl_pp_entersubr -Perl_pp_evalonce -Perl_pp_interp -Perl_pp_map -Perl_pp_nswitch -Perl_reall_srchlen Perl_same_dirent -Perl_saw_return -Perl_scan_const -Perl_scan_formline -Perl_scan_heredoc -Perl_scan_ident -Perl_scan_inputsymbol -Perl_scan_pat -Perl_scan_prefix -Perl_scan_str -Perl_scan_subst -Perl_scan_trans -Perl_scan_word Perl_setenv_getix -Perl_skipspace -Perl_sort_mutex -Perl_sublex_done -Perl_sublex_start -Perl_sv_ref -Perl_sv_setptrobj -Perl_too_few_arguments -Perl_too_many_arguments Perl_unlnk Perl_watch -Perl_yyname -Perl_yyrule -allgvs -curblock -curcsv -lastretstr -mystack_mark -perl_init_ext -perl_requirepv -stack Perl_safexcalloc Perl_safexmalloc Perl_safexfree |