Replace OP stubs in mathoms.c with #define aliases in opcode.h
authorNicholas Clark <nick@ccl4.org>
Sun, 2 Jan 2011 19:13:12 +0000 (19:13 +0000)
committerNicholas Clark <nick@ccl4.org>
Sun, 9 Jan 2011 09:04:40 +0000 (09:04 +0000)
External code that references OPs by name will still link (and work).
Unlike the other compatibility functions in mathoms.c, the OP stubs were simply
making calls onwards to their replacements, so simply taking up space without
adding anything.

mathoms.c
opcode.h
regen/opcode.pl

index f9c2ad3..ceab0c5 100644 (file)
--- a/mathoms.c
+++ b/mathoms.c
@@ -700,444 +700,6 @@ Perl_init_i18nl14n(pTHX_ int printwarn)
     return init_i18nl10n(printwarn);
 }
 
-PP(pp_padany)
-{
-    DIE(aTHX_ "NOT IMPL LINE %d",__LINE__);
-}
-
-PP(pp_mapstart)
-{
-    DIE(aTHX_ "panic: mapstart");      /* uses grepstart */
-}
-
-/* These ops all have the same body as pp_null.  */
-PP(pp_scalar)
-{
-    dVAR;
-    return NORMAL;
-}
-
-PP(pp_regcmaybe)
-{
-    dVAR;
-    return NORMAL;
-}
-
-PP(pp_lineseq)
-{
-    dVAR;
-    return NORMAL;
-}
-
-PP(pp_scope)
-{
-    dVAR;
-    return NORMAL;
-}
-
-/* Ops that are calls to do_kv.  */
-PP(pp_values)
-{
-    return do_kv();
-}
-
-PP(pp_keys)
-{
-    return do_kv();
-}
-
-/* Ops that are simply calls to other ops.  */
-PP(pp_dump)
-{
-    return pp_goto();
-    /*NOTREACHED*/
-}
-
-PP(pp_dofile)
-{
-    return pp_require();
-}
-
-PP(pp_dbmclose)
-{
-    return pp_untie();
-}
-
-PP(pp_read)
-{
-    return pp_sysread();
-}
-
-PP(pp_recv)
-{
-    return pp_sysread();
-}
-
-PP(pp_seek)
-{
-    return pp_sysseek();
-}
-
-PP(pp_fcntl)
-{
-    return pp_ioctl();
-}
-
-PP(pp_gsockopt)
-{
-    return pp_ssockopt();
-}
-
-PP(pp_getsockname)
-{
-    return pp_getpeername();
-}
-
-PP(pp_lstat)
-{
-    return pp_stat();
-}
-
-PP(pp_fteowned)
-{
-    return pp_ftrowned();
-}
-
-PP(pp_ftbinary)
-{
-    return pp_fttext();
-}
-
-PP(pp_localtime)
-{
-    return pp_gmtime();
-}
-
-PP(pp_shmget)
-{
-    return pp_semget();
-}
-
-PP(pp_shmctl)
-{
-    return pp_semctl();
-}
-
-PP(pp_shmread)
-{
-    return pp_shmwrite();
-}
-
-PP(pp_msgget)
-{
-    return pp_semget();
-}
-
-PP(pp_msgctl)
-{
-    return pp_semctl();
-}
-
-PP(pp_ghbyname)
-{
-    return pp_ghostent();
-}
-
-PP(pp_ghbyaddr)
-{
-    return pp_ghostent();
-}
-
-PP(pp_gnbyname)
-{
-    return pp_gnetent();
-}
-
-PP(pp_gnbyaddr)
-{
-    return pp_gnetent();
-}
-
-PP(pp_gpbyname)
-{
-    return pp_gprotoent();
-}
-
-PP(pp_gpbynumber)
-{
-    return pp_gprotoent();
-}
-
-PP(pp_gsbyname)
-{
-    return pp_gservent();
-}
-
-PP(pp_gsbyport)
-{
-    return pp_gservent();
-}
-
-PP(pp_gpwnam)
-{
-    return pp_gpwent();
-}
-
-PP(pp_gpwuid)
-{
-    return pp_gpwent();
-}
-
-PP(pp_ggrnam)
-{
-    return pp_ggrent();
-}
-
-PP(pp_ggrgid)
-{
-    return pp_ggrent();
-}
-
-PP(pp_ftsize)
-{
-    return pp_ftis();
-}
-
-PP(pp_ftmtime)
-{
-    return pp_ftis();
-}
-
-PP(pp_ftatime)
-{
-    return pp_ftis();
-}
-
-PP(pp_ftctime)
-{
-    return pp_ftis();
-}
-
-PP(pp_ftzero)
-{
-    return pp_ftrowned();
-}
-
-PP(pp_ftsock)
-{
-    return pp_ftrowned();
-}
-
-PP(pp_ftchr)
-{
-    return pp_ftrowned();
-}
-
-PP(pp_ftblk)
-{
-    return pp_ftrowned();
-}
-
-PP(pp_ftfile)
-{
-    return pp_ftrowned();
-}
-
-PP(pp_ftdir)
-{
-    return pp_ftrowned();
-}
-
-PP(pp_ftpipe)
-{
-    return pp_ftrowned();
-}
-
-PP(pp_ftsuid)
-{
-    return pp_ftrowned();
-}
-
-PP(pp_ftsgid)
-{
-    return pp_ftrowned();
-}
-
-PP(pp_ftsvtx)
-{
-    return pp_ftrowned();
-}
-
-PP(pp_unlink)
-{
-    return pp_chown();
-}
-
-PP(pp_chmod)
-{
-    return pp_chown();
-}
-
-PP(pp_utime)
-{
-    return pp_chown();
-}
-
-PP(pp_kill)
-{
-    return pp_chown();
-}
-
-PP(pp_symlink)
-{
-    return pp_link();
-}
-
-PP(pp_ftrwrite)
-{
-    return pp_ftrread();
-}
-
-PP(pp_ftrexec)
-{
-    return pp_ftrread();
-}
-
-PP(pp_fteread)
-{
-    return pp_ftrread();
-}
-
-PP(pp_ftewrite)
-{
-    return pp_ftrread();
-}
-
-PP(pp_fteexec)
-{
-    return pp_ftrread();
-}
-
-PP(pp_msgsnd)
-{
-    return pp_shmwrite();
-}
-
-PP(pp_msgrcv)
-{
-    return pp_shmwrite();
-}
-
-PP(pp_syswrite)
-{
-    return pp_send();
-}
-
-PP(pp_semop)
-{
-    return pp_shmwrite();
-}
-
-PP(pp_dor)
-{
-    return pp_defined();
-}
-
-PP(pp_andassign)
-{
-    return pp_and();
-}
-
-PP(pp_orassign)
-{
-    return pp_or();
-}
-
-PP(pp_dorassign)
-{
-    return pp_defined();
-} 
-
-PP(pp_lcfirst)
-{
-    return pp_ucfirst();
-}
-
-PP(pp_slt)
-{
-    return pp_sle();
-}
-
-PP(pp_sgt)
-{
-    return pp_sle();
-}
-
-PP(pp_sge)
-{
-    return pp_sle();
-}
-
-PP(pp_rindex)
-{
-    return pp_index();
-}
-
-PP(pp_hex)
-{
-    return pp_oct();
-}
-
-PP(pp_pop)
-{
-    return pp_shift();
-}
-
-PP(pp_cos)
-{
-    return pp_sin();
-}
-
-PP(pp_exp)
-{
-    return pp_sin();
-}
-
-PP(pp_log)
-{
-    return pp_sin();
-}
-
-PP(pp_sqrt)
-{
-    return pp_sin();
-}
-
-PP(pp_bit_xor)
-{
-    return pp_bit_or();
-}
-
-PP(pp_rv2hv)
-{
-    return Perl_pp_rv2av(aTHX);
-}
-
-PP(pp_schomp)
-{
-    return Perl_pp_chomp(aTHX);
-}
-
-PP(pp_chomp)
-{
-    return Perl_pp_chop(aTHX);
-}
-
-PP(pp_connect)
-{
-    return Perl_pp_bind(aTHX);
-}
-
 U8 *
 Perl_uvuni_to_utf8(pTHX_ U8 *d, UV uv)
 {
index ac9886b..be869cb 100644 (file)
--- a/opcode.h
+++ b/opcode.h
 
 #ifndef PERL_GLOBAL_STRUCT_INIT
 
+#define Perl_pp_scalar Perl_pp_null
+#define Perl_pp_padany Perl_unimplemented_op
+#define Perl_pp_regcmaybe Perl_pp_null
+#define Perl_pp_chomp Perl_pp_chop
+#define Perl_pp_schomp Perl_pp_schop
 #define Perl_pp_i_preinc Perl_pp_preinc
 #define Perl_pp_i_predec Perl_pp_predec
 #define Perl_pp_i_postinc Perl_pp_postinc
 #define Perl_pp_i_postdec Perl_pp_postdec
+#define Perl_pp_slt Perl_pp_sle
+#define Perl_pp_sgt Perl_pp_sle
+#define Perl_pp_sge Perl_pp_sle
+#define Perl_pp_bit_xor Perl_pp_bit_or
+#define Perl_pp_cos Perl_pp_sin
+#define Perl_pp_exp Perl_pp_sin
+#define Perl_pp_log Perl_pp_sin
+#define Perl_pp_sqrt Perl_pp_sin
+#define Perl_pp_hex Perl_pp_oct
+#define Perl_pp_rindex Perl_pp_index
+#define Perl_pp_lcfirst Perl_pp_ucfirst
+#define Perl_pp_avalues Perl_pp_akeys
+#define Perl_pp_values Perl_do_kv
+#define Perl_pp_keys Perl_do_kv
+#define Perl_pp_rv2hv Perl_pp_rv2av
+#define Perl_pp_pop Perl_pp_shift
+#define Perl_pp_mapstart Perl_unimplemented_op
+#define Perl_pp_dor Perl_pp_defined
+#define Perl_pp_andassign Perl_pp_and
+#define Perl_pp_orassign Perl_pp_or
+#define Perl_pp_dorassign Perl_pp_defined
+#define Perl_pp_lineseq Perl_pp_null
+#define Perl_pp_scope Perl_pp_null
+#define Perl_pp_dump Perl_pp_goto
+#define Perl_pp_dbmclose Perl_pp_untie
+#define Perl_pp_read Perl_pp_sysread
+#define Perl_pp_say Perl_pp_print
+#define Perl_pp_syswrite Perl_pp_send
+#define Perl_pp_seek Perl_pp_sysseek
+#define Perl_pp_fcntl Perl_pp_ioctl
+#define Perl_pp_recv Perl_pp_sysread
+#define Perl_pp_connect Perl_pp_bind
+#define Perl_pp_gsockopt Perl_pp_ssockopt
+#define Perl_pp_getsockname Perl_pp_getpeername
+#define Perl_pp_lstat Perl_pp_stat
+#define Perl_pp_ftrwrite Perl_pp_ftrread
+#define Perl_pp_ftrexec Perl_pp_ftrread
+#define Perl_pp_fteread Perl_pp_ftrread
+#define Perl_pp_ftewrite Perl_pp_ftrread
+#define Perl_pp_fteexec Perl_pp_ftrread
+#define Perl_pp_ftsize Perl_pp_ftis
+#define Perl_pp_ftmtime Perl_pp_ftis
+#define Perl_pp_ftatime Perl_pp_ftis
+#define Perl_pp_ftctime Perl_pp_ftis
+#define Perl_pp_fteowned Perl_pp_ftrowned
+#define Perl_pp_ftzero Perl_pp_ftrowned
+#define Perl_pp_ftsock Perl_pp_ftrowned
+#define Perl_pp_ftchr Perl_pp_ftrowned
+#define Perl_pp_ftblk Perl_pp_ftrowned
+#define Perl_pp_ftfile Perl_pp_ftrowned
+#define Perl_pp_ftdir Perl_pp_ftrowned
+#define Perl_pp_ftpipe Perl_pp_ftrowned
+#define Perl_pp_ftsuid Perl_pp_ftrowned
+#define Perl_pp_ftsgid Perl_pp_ftrowned
+#define Perl_pp_ftsvtx Perl_pp_ftrowned
+#define Perl_pp_ftbinary Perl_pp_fttext
+#define Perl_pp_unlink Perl_pp_chown
+#define Perl_pp_chmod Perl_pp_chown
+#define Perl_pp_utime Perl_pp_chown
+#define Perl_pp_symlink Perl_pp_link
+#define Perl_pp_kill Perl_pp_chown
+#define Perl_pp_localtime Perl_pp_gmtime
+#define Perl_pp_shmget Perl_pp_semget
+#define Perl_pp_shmctl Perl_pp_semctl
+#define Perl_pp_shmread Perl_pp_shmwrite
+#define Perl_pp_msgget Perl_pp_semget
+#define Perl_pp_msgctl Perl_pp_semctl
+#define Perl_pp_msgsnd Perl_pp_shmwrite
+#define Perl_pp_msgrcv Perl_pp_shmwrite
+#define Perl_pp_semop Perl_pp_shmwrite
+#define Perl_pp_dofile Perl_pp_require
+#define Perl_pp_ghbyname Perl_pp_ghostent
+#define Perl_pp_ghbyaddr Perl_pp_ghostent
+#define Perl_pp_gnbyname Perl_pp_gnetent
+#define Perl_pp_gnbyaddr Perl_pp_gnetent
+#define Perl_pp_gpbyname Perl_pp_gprotoent
+#define Perl_pp_gpbynumber Perl_pp_gprotoent
+#define Perl_pp_gsbyname Perl_pp_gservent
+#define Perl_pp_gsbyport Perl_pp_gservent
+#define Perl_pp_gpwnam Perl_pp_gpwent
+#define Perl_pp_gpwuid Perl_pp_gpwent
+#define Perl_pp_ggrnam Perl_pp_ggrent
+#define Perl_pp_ggrgid Perl_pp_ggrent
+#define Perl_pp_custom Perl_unimplemented_op
+#define Perl_pp_reach Perl_pp_rkeys
+#define Perl_pp_rvalues Perl_pp_rkeys
+#define Perl_pp_transr Perl_pp_trans
 
 PERL_PPDEF(Perl_unimplemented_op)
 
@@ -831,11 +923,11 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
        Perl_pp_qr,
        Perl_pp_subst,
        Perl_pp_substcont,
-       Perl_pp_trans,  /* Perl_pp_trans */
+       Perl_pp_trans,
        Perl_pp_sassign,
        Perl_pp_aassign,
-       Perl_pp_chop,   /* Perl_pp_chop */
-       Perl_pp_schop,  /* Perl_pp_schop */
+       Perl_pp_chop,
+       Perl_pp_schop,
        Perl_pp_chop,   /* Perl_pp_chomp */
        Perl_pp_schop,  /* Perl_pp_schomp */
        Perl_pp_defined,
@@ -843,13 +935,13 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
        Perl_pp_study,
        Perl_pp_pos,
        Perl_pp_preinc,
-       Perl_pp_i_preinc,
+       Perl_pp_preinc, /* Perl_pp_i_preinc */
        Perl_pp_predec,
-       Perl_pp_i_predec,
+       Perl_pp_predec, /* Perl_pp_i_predec */
        Perl_pp_postinc,
-       Perl_pp_i_postinc,
+       Perl_pp_postinc,        /* Perl_pp_i_postinc */
        Perl_pp_postdec,
-       Perl_pp_i_postdec,
+       Perl_pp_postdec,        /* Perl_pp_i_postdec */
        Perl_pp_pow,
        Perl_pp_multiply,
        Perl_pp_i_multiply,
index 6501380..5b7aee7 100755 (executable)
@@ -107,10 +107,14 @@ my @raw_alias = (
                 Perl_pp_rv2av => ['rv2hv'],
                 Perl_pp_akeys => ['avalues'],
                 Perl_pp_rkeys => [qw(rvalues reach)],
-                Perl_pp_trans => [qw(trans transr)],
-                Perl_pp_chop => [qw(chop chomp)],
-                Perl_pp_schop => [qw(schop schomp)],
+                Perl_pp_trans => ['transr'],
+                Perl_pp_chop => ['chomp'],
+                Perl_pp_schop => ['schomp'],
                 Perl_pp_bind => ['connect'],
+                Perl_pp_preinc => ['i_preinc'],
+                Perl_pp_predec => ['i_predec'],
+                Perl_pp_postinc => ['i_postinc'],
+                Perl_pp_postdec => ['i_postdec'],
                );
 
 while (my ($func, $names) = splice @raw_alias, 0, 2) {
@@ -139,10 +143,13 @@ print <<"END";
 
 #ifndef PERL_GLOBAL_STRUCT_INIT
 
-#define Perl_pp_i_preinc Perl_pp_preinc
-#define Perl_pp_i_predec Perl_pp_predec
-#define Perl_pp_i_postinc Perl_pp_postinc
-#define Perl_pp_i_postdec Perl_pp_postdec
+END
+
+for (@ops) {
+    print "#define Perl_pp_$_ $alias{$_}\n" if $alias{$_};
+}
+
+print <<'END';
 
 PERL_PPDEF(Perl_unimplemented_op)