regen/opcode.pl should only generate prototypes for pp_* functions that exist.
authorNicholas Clark <nick@ccl4.org>
Sun, 9 Jan 2011 11:27:19 +0000 (11:27 +0000)
committerNicholas Clark <nick@ccl4.org>
Sun, 9 Jan 2011 11:59:14 +0000 (11:59 +0000)
It now generates prototypes for all functions that implement OPs. Hence
Perl_unimplemented_op no longer needs a special-case prototype. As it is now
generating a prototype for Perl_do_kv, no need for regen/embed.pl to duplicate
this. Convert the last two users of the macro do_kv() to Perl_do_kv(aTHX).

embed.fnc
embed.h
opcode.h
pp.c
pp_hot.c
pp_proto.h
proto.h
regen/opcode.pl

index 7529a8d..e309acc 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -338,8 +338,8 @@ p   |I32    |do_semop       |NN SV** mark|NN SV** sp
 p      |I32    |do_shmio       |I32 optype|NN SV** mark|NN SV** sp
 #endif
 Ap     |void   |do_join        |NN SV *sv|NN SV *delim|NN SV **mark|NN SV **sp
-: Used in pp.c and pp_hot.c
-p      |OP*    |do_kv
+: Used in pp.c and pp_hot.c, prototype generated by regen/opcode.pl
+: p    |OP*    |do_kv
 Apmb   |bool   |do_open        |NN GV* gv|NN const char* name|I32 len|int as_raw \
                                |int rawmode|int rawperm|NULLOK PerlIO* supplied_fp
 Ap     |bool   |do_open9       |NN GV *gv|NN const char *name|I32 len|int as_raw \
diff --git a/embed.h b/embed.h
index 54e92ef..48eb8bb 100644 (file)
--- a/embed.h
+++ b/embed.h
 #define do_dump_pad(a,b,c,d)   Perl_do_dump_pad(aTHX_ a,b,c,d)
 #define do_eof(a)              Perl_do_eof(aTHX_ a)
 #define do_execfree()          Perl_do_execfree(aTHX)
-#define do_kv()                        Perl_do_kv(aTHX)
 #define do_print(a,b)          Perl_do_print(aTHX_ a,b)
 #define do_readline()          Perl_do_readline(aTHX)
 #define do_seek(a,b,c)         Perl_do_seek(aTHX_ a,b,c)
index be869cb..841e64d 100644 (file)
--- a/opcode.h
+++ b/opcode.h
 #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)
-
 START_EXTERN_C
 
 #ifndef DOINIT
diff --git a/pp.c b/pp.c
index 37b388c..ba12f6c 100644 (file)
--- a/pp.c
+++ b/pp.c
@@ -121,7 +121,7 @@ PP(pp_padhv)
     }
     gimme = GIMME_V;
     if (gimme == G_ARRAY) {
-       RETURNOP(do_kv());
+       RETURNOP(Perl_do_kv(aTHX));
     }
     else if (gimme == G_SCALAR) {
        SV* const sv = Perl_hv_scalar(aTHX_ MUTABLE_HV(TARG));
index bd0402a..4c7b8a1 100644 (file)
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -908,7 +908,7 @@ PP(pp_rv2av)
        /* The guts of pp_rv2hv  */
        if (gimme == G_ARRAY) { /* array wanted */
            *PL_stack_sp = sv;
-           return do_kv();
+           return Perl_do_kv(aTHX);
        }
        else if (gimme == G_SCALAR) {
            dTARGET;
index 5d7c76e..dfba483 100644 (file)
@@ -4,6 +4,7 @@
    will be lost!
 */
 
+PERL_CALLCONV OP *Perl_do_kv(pTHX);
 PERL_CALLCONV OP *Perl_pp_aassign(pTHX);
 PERL_CALLCONV OP *Perl_pp_abs(pTHX);
 PERL_CALLCONV OP *Perl_pp_accept(pTHX);
@@ -14,27 +15,22 @@ PERL_CALLCONV OP *Perl_pp_aelemfast(pTHX);
 PERL_CALLCONV OP *Perl_pp_akeys(pTHX);
 PERL_CALLCONV OP *Perl_pp_alarm(pTHX);
 PERL_CALLCONV OP *Perl_pp_and(pTHX);
-PERL_CALLCONV OP *Perl_pp_andassign(pTHX);
 PERL_CALLCONV OP *Perl_pp_anoncode(pTHX);
 PERL_CALLCONV OP *Perl_pp_anonhash(pTHX);
 PERL_CALLCONV OP *Perl_pp_anonlist(pTHX);
 PERL_CALLCONV OP *Perl_pp_aslice(pTHX);
 PERL_CALLCONV OP *Perl_pp_atan2(pTHX);
 PERL_CALLCONV OP *Perl_pp_av2arylen(pTHX);
-PERL_CALLCONV OP *Perl_pp_avalues(pTHX);
 PERL_CALLCONV OP *Perl_pp_backtick(pTHX);
 PERL_CALLCONV OP *Perl_pp_bind(pTHX);
 PERL_CALLCONV OP *Perl_pp_binmode(pTHX);
 PERL_CALLCONV OP *Perl_pp_bit_and(pTHX);
 PERL_CALLCONV OP *Perl_pp_bit_or(pTHX);
-PERL_CALLCONV OP *Perl_pp_bit_xor(pTHX);
 PERL_CALLCONV OP *Perl_pp_bless(pTHX);
 PERL_CALLCONV OP *Perl_pp_boolkeys(pTHX);
 PERL_CALLCONV OP *Perl_pp_break(pTHX);
 PERL_CALLCONV OP *Perl_pp_caller(pTHX);
 PERL_CALLCONV OP *Perl_pp_chdir(pTHX);
-PERL_CALLCONV OP *Perl_pp_chmod(pTHX);
-PERL_CALLCONV OP *Perl_pp_chomp(pTHX);
 PERL_CALLCONV OP *Perl_pp_chop(pTHX);
 PERL_CALLCONV OP *Perl_pp_chown(pTHX);
 PERL_CALLCONV OP *Perl_pp_chr(pTHX);
@@ -44,22 +40,15 @@ PERL_CALLCONV OP *Perl_pp_closedir(pTHX);
 PERL_CALLCONV OP *Perl_pp_complement(pTHX);
 PERL_CALLCONV OP *Perl_pp_concat(pTHX);
 PERL_CALLCONV OP *Perl_pp_cond_expr(pTHX);
-PERL_CALLCONV OP *Perl_pp_connect(pTHX);
 PERL_CALLCONV OP *Perl_pp_const(pTHX);
 PERL_CALLCONV OP *Perl_pp_continue(pTHX);
-PERL_CALLCONV OP *Perl_pp_cos(pTHX);
 PERL_CALLCONV OP *Perl_pp_crypt(pTHX);
-PERL_CALLCONV OP *Perl_pp_dbmclose(pTHX);
 PERL_CALLCONV OP *Perl_pp_dbmopen(pTHX);
 PERL_CALLCONV OP *Perl_pp_dbstate(pTHX);
 PERL_CALLCONV OP *Perl_pp_defined(pTHX);
 PERL_CALLCONV OP *Perl_pp_delete(pTHX);
 PERL_CALLCONV OP *Perl_pp_die(pTHX);
 PERL_CALLCONV OP *Perl_pp_divide(pTHX);
-PERL_CALLCONV OP *Perl_pp_dofile(pTHX);
-PERL_CALLCONV OP *Perl_pp_dor(pTHX);
-PERL_CALLCONV OP *Perl_pp_dorassign(pTHX);
-PERL_CALLCONV OP *Perl_pp_dump(pTHX);
 PERL_CALLCONV OP *Perl_pp_each(pTHX);
 PERL_CALLCONV OP *Perl_pp_egrent(pTHX);
 PERL_CALLCONV OP *Perl_pp_ehostent(pTHX);
@@ -81,41 +70,18 @@ PERL_CALLCONV OP *Perl_pp_eservent(pTHX);
 PERL_CALLCONV OP *Perl_pp_exec(pTHX);
 PERL_CALLCONV OP *Perl_pp_exists(pTHX);
 PERL_CALLCONV OP *Perl_pp_exit(pTHX);
-PERL_CALLCONV OP *Perl_pp_exp(pTHX);
-PERL_CALLCONV OP *Perl_pp_fcntl(pTHX);
 PERL_CALLCONV OP *Perl_pp_fileno(pTHX);
 PERL_CALLCONV OP *Perl_pp_flip(pTHX);
 PERL_CALLCONV OP *Perl_pp_flock(pTHX);
 PERL_CALLCONV OP *Perl_pp_flop(pTHX);
 PERL_CALLCONV OP *Perl_pp_fork(pTHX);
 PERL_CALLCONV OP *Perl_pp_formline(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftatime(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftbinary(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftblk(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftchr(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftctime(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftdir(pTHX);
-PERL_CALLCONV OP *Perl_pp_fteexec(pTHX);
-PERL_CALLCONV OP *Perl_pp_fteowned(pTHX);
-PERL_CALLCONV OP *Perl_pp_fteread(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftewrite(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftfile(pTHX);
 PERL_CALLCONV OP *Perl_pp_ftis(pTHX);
 PERL_CALLCONV OP *Perl_pp_ftlink(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftmtime(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftpipe(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftrexec(pTHX);
 PERL_CALLCONV OP *Perl_pp_ftrowned(pTHX);
 PERL_CALLCONV OP *Perl_pp_ftrread(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftrwrite(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftsgid(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftsize(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftsock(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftsuid(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftsvtx(pTHX);
 PERL_CALLCONV OP *Perl_pp_fttext(pTHX);
 PERL_CALLCONV OP *Perl_pp_fttty(pTHX);
-PERL_CALLCONV OP *Perl_pp_ftzero(pTHX);
 PERL_CALLCONV OP *Perl_pp_ge(pTHX);
 PERL_CALLCONV OP *Perl_pp_gelem(pTHX);
 PERL_CALLCONV OP *Perl_pp_getc(pTHX);
@@ -124,36 +90,21 @@ PERL_CALLCONV OP *Perl_pp_getpeername(pTHX);
 PERL_CALLCONV OP *Perl_pp_getpgrp(pTHX);
 PERL_CALLCONV OP *Perl_pp_getppid(pTHX);
 PERL_CALLCONV OP *Perl_pp_getpriority(pTHX);
-PERL_CALLCONV OP *Perl_pp_getsockname(pTHX);
 PERL_CALLCONV OP *Perl_pp_ggrent(pTHX);
-PERL_CALLCONV OP *Perl_pp_ggrgid(pTHX);
-PERL_CALLCONV OP *Perl_pp_ggrnam(pTHX);
-PERL_CALLCONV OP *Perl_pp_ghbyaddr(pTHX);
-PERL_CALLCONV OP *Perl_pp_ghbyname(pTHX);
 PERL_CALLCONV OP *Perl_pp_ghostent(pTHX);
 PERL_CALLCONV OP *Perl_pp_glob(pTHX);
 PERL_CALLCONV OP *Perl_pp_gmtime(pTHX);
-PERL_CALLCONV OP *Perl_pp_gnbyaddr(pTHX);
-PERL_CALLCONV OP *Perl_pp_gnbyname(pTHX);
 PERL_CALLCONV OP *Perl_pp_gnetent(pTHX);
 PERL_CALLCONV OP *Perl_pp_goto(pTHX);
-PERL_CALLCONV OP *Perl_pp_gpbyname(pTHX);
-PERL_CALLCONV OP *Perl_pp_gpbynumber(pTHX);
 PERL_CALLCONV OP *Perl_pp_gprotoent(pTHX);
 PERL_CALLCONV OP *Perl_pp_gpwent(pTHX);
-PERL_CALLCONV OP *Perl_pp_gpwnam(pTHX);
-PERL_CALLCONV OP *Perl_pp_gpwuid(pTHX);
 PERL_CALLCONV OP *Perl_pp_grepstart(pTHX);
 PERL_CALLCONV OP *Perl_pp_grepwhile(pTHX);
-PERL_CALLCONV OP *Perl_pp_gsbyname(pTHX);
-PERL_CALLCONV OP *Perl_pp_gsbyport(pTHX);
 PERL_CALLCONV OP *Perl_pp_gservent(pTHX);
-PERL_CALLCONV OP *Perl_pp_gsockopt(pTHX);
 PERL_CALLCONV OP *Perl_pp_gt(pTHX);
 PERL_CALLCONV OP *Perl_pp_gv(pTHX);
 PERL_CALLCONV OP *Perl_pp_gvsv(pTHX);
 PERL_CALLCONV OP *Perl_pp_helem(pTHX);
-PERL_CALLCONV OP *Perl_pp_hex(pTHX);
 PERL_CALLCONV OP *Perl_pp_hintseval(pTHX);
 PERL_CALLCONV OP *Perl_pp_hslice(pTHX);
 PERL_CALLCONV OP *Perl_pp_i_add(pTHX);
@@ -174,11 +125,8 @@ PERL_CALLCONV OP *Perl_pp_int(pTHX);
 PERL_CALLCONV OP *Perl_pp_ioctl(pTHX);
 PERL_CALLCONV OP *Perl_pp_iter(pTHX);
 PERL_CALLCONV OP *Perl_pp_join(pTHX);
-PERL_CALLCONV OP *Perl_pp_keys(pTHX);
-PERL_CALLCONV OP *Perl_pp_kill(pTHX);
 PERL_CALLCONV OP *Perl_pp_last(pTHX);
 PERL_CALLCONV OP *Perl_pp_lc(pTHX);
-PERL_CALLCONV OP *Perl_pp_lcfirst(pTHX);
 PERL_CALLCONV OP *Perl_pp_le(pTHX);
 PERL_CALLCONV OP *Perl_pp_leave(pTHX);
 PERL_CALLCONV OP *Perl_pp_leaveeval(pTHX);
@@ -191,27 +139,18 @@ PERL_CALLCONV OP *Perl_pp_leavewhen(pTHX);
 PERL_CALLCONV OP *Perl_pp_leavewrite(pTHX);
 PERL_CALLCONV OP *Perl_pp_left_shift(pTHX);
 PERL_CALLCONV OP *Perl_pp_length(pTHX);
-PERL_CALLCONV OP *Perl_pp_lineseq(pTHX);
 PERL_CALLCONV OP *Perl_pp_link(pTHX);
 PERL_CALLCONV OP *Perl_pp_list(pTHX);
 PERL_CALLCONV OP *Perl_pp_listen(pTHX);
-PERL_CALLCONV OP *Perl_pp_localtime(pTHX);
 PERL_CALLCONV OP *Perl_pp_lock(pTHX);
-PERL_CALLCONV OP *Perl_pp_log(pTHX);
 PERL_CALLCONV OP *Perl_pp_lslice(pTHX);
-PERL_CALLCONV OP *Perl_pp_lstat(pTHX);
 PERL_CALLCONV OP *Perl_pp_lt(pTHX);
-PERL_CALLCONV OP *Perl_pp_mapstart(pTHX);
 PERL_CALLCONV OP *Perl_pp_mapwhile(pTHX);
 PERL_CALLCONV OP *Perl_pp_match(pTHX);
 PERL_CALLCONV OP *Perl_pp_method(pTHX);
 PERL_CALLCONV OP *Perl_pp_method_named(pTHX);
 PERL_CALLCONV OP *Perl_pp_mkdir(pTHX);
 PERL_CALLCONV OP *Perl_pp_modulo(pTHX);
-PERL_CALLCONV OP *Perl_pp_msgctl(pTHX);
-PERL_CALLCONV OP *Perl_pp_msgget(pTHX);
-PERL_CALLCONV OP *Perl_pp_msgrcv(pTHX);
-PERL_CALLCONV OP *Perl_pp_msgsnd(pTHX);
 PERL_CALLCONV OP *Perl_pp_multiply(pTHX);
 PERL_CALLCONV OP *Perl_pp_ncmp(pTHX);
 PERL_CALLCONV OP *Perl_pp_ne(pTHX);
@@ -225,15 +164,12 @@ PERL_CALLCONV OP *Perl_pp_once(pTHX);
 PERL_CALLCONV OP *Perl_pp_open(pTHX);
 PERL_CALLCONV OP *Perl_pp_open_dir(pTHX);
 PERL_CALLCONV OP *Perl_pp_or(pTHX);
-PERL_CALLCONV OP *Perl_pp_orassign(pTHX);
 PERL_CALLCONV OP *Perl_pp_ord(pTHX);
 PERL_CALLCONV OP *Perl_pp_pack(pTHX);
-PERL_CALLCONV OP *Perl_pp_padany(pTHX);
 PERL_CALLCONV OP *Perl_pp_padav(pTHX);
 PERL_CALLCONV OP *Perl_pp_padhv(pTHX);
 PERL_CALLCONV OP *Perl_pp_padsv(pTHX);
 PERL_CALLCONV OP *Perl_pp_pipe_op(pTHX);
-PERL_CALLCONV OP *Perl_pp_pop(pTHX);
 PERL_CALLCONV OP *Perl_pp_pos(pTHX);
 PERL_CALLCONV OP *Perl_pp_postdec(pTHX);
 PERL_CALLCONV OP *Perl_pp_postinc(pTHX);
@@ -251,16 +187,12 @@ PERL_CALLCONV OP *Perl_pp_quotemeta(pTHX);
 PERL_CALLCONV OP *Perl_pp_rand(pTHX);
 PERL_CALLCONV OP *Perl_pp_range(pTHX);
 PERL_CALLCONV OP *Perl_pp_rcatline(pTHX);
-PERL_CALLCONV OP *Perl_pp_reach(pTHX);
-PERL_CALLCONV OP *Perl_pp_read(pTHX);
 PERL_CALLCONV OP *Perl_pp_readdir(pTHX);
 PERL_CALLCONV OP *Perl_pp_readline(pTHX);
 PERL_CALLCONV OP *Perl_pp_readlink(pTHX);
-PERL_CALLCONV OP *Perl_pp_recv(pTHX);
 PERL_CALLCONV OP *Perl_pp_redo(pTHX);
 PERL_CALLCONV OP *Perl_pp_ref(pTHX);
 PERL_CALLCONV OP *Perl_pp_refgen(pTHX);
-PERL_CALLCONV OP *Perl_pp_regcmaybe(pTHX);
 PERL_CALLCONV OP *Perl_pp_regcomp(pTHX);
 PERL_CALLCONV OP *Perl_pp_regcreset(pTHX);
 PERL_CALLCONV OP *Perl_pp_rename(pTHX);
@@ -271,46 +203,31 @@ PERL_CALLCONV OP *Perl_pp_return(pTHX);
 PERL_CALLCONV OP *Perl_pp_reverse(pTHX);
 PERL_CALLCONV OP *Perl_pp_rewinddir(pTHX);
 PERL_CALLCONV OP *Perl_pp_right_shift(pTHX);
-PERL_CALLCONV OP *Perl_pp_rindex(pTHX);
 PERL_CALLCONV OP *Perl_pp_rkeys(pTHX);
 PERL_CALLCONV OP *Perl_pp_rmdir(pTHX);
 PERL_CALLCONV OP *Perl_pp_rv2av(pTHX);
 PERL_CALLCONV OP *Perl_pp_rv2cv(pTHX);
 PERL_CALLCONV OP *Perl_pp_rv2gv(pTHX);
-PERL_CALLCONV OP *Perl_pp_rv2hv(pTHX);
 PERL_CALLCONV OP *Perl_pp_rv2sv(pTHX);
-PERL_CALLCONV OP *Perl_pp_rvalues(pTHX);
 PERL_CALLCONV OP *Perl_pp_sassign(pTHX);
-PERL_CALLCONV OP *Perl_pp_say(pTHX);
-PERL_CALLCONV OP *Perl_pp_scalar(pTHX);
-PERL_CALLCONV OP *Perl_pp_schomp(pTHX);
 PERL_CALLCONV OP *Perl_pp_schop(pTHX);
 PERL_CALLCONV OP *Perl_pp_scmp(pTHX);
-PERL_CALLCONV OP *Perl_pp_scope(pTHX);
-PERL_CALLCONV OP *Perl_pp_seek(pTHX);
 PERL_CALLCONV OP *Perl_pp_seekdir(pTHX);
 PERL_CALLCONV OP *Perl_pp_select(pTHX);
 PERL_CALLCONV OP *Perl_pp_semctl(pTHX);
 PERL_CALLCONV OP *Perl_pp_semget(pTHX);
-PERL_CALLCONV OP *Perl_pp_semop(pTHX);
 PERL_CALLCONV OP *Perl_pp_send(pTHX);
 PERL_CALLCONV OP *Perl_pp_seq(pTHX);
 PERL_CALLCONV OP *Perl_pp_setpgrp(pTHX);
 PERL_CALLCONV OP *Perl_pp_setpriority(pTHX);
-PERL_CALLCONV OP *Perl_pp_sge(pTHX);
 PERL_CALLCONV OP *Perl_pp_sgrent(pTHX);
-PERL_CALLCONV OP *Perl_pp_sgt(pTHX);
 PERL_CALLCONV OP *Perl_pp_shift(pTHX);
-PERL_CALLCONV OP *Perl_pp_shmctl(pTHX);
-PERL_CALLCONV OP *Perl_pp_shmget(pTHX);
-PERL_CALLCONV OP *Perl_pp_shmread(pTHX);
 PERL_CALLCONV OP *Perl_pp_shmwrite(pTHX);
 PERL_CALLCONV OP *Perl_pp_shostent(pTHX);
 PERL_CALLCONV OP *Perl_pp_shutdown(pTHX);
 PERL_CALLCONV OP *Perl_pp_sin(pTHX);
 PERL_CALLCONV OP *Perl_pp_sle(pTHX);
 PERL_CALLCONV OP *Perl_pp_sleep(pTHX);
-PERL_CALLCONV OP *Perl_pp_slt(pTHX);
 PERL_CALLCONV OP *Perl_pp_smartmatch(pTHX);
 PERL_CALLCONV OP *Perl_pp_sne(pTHX);
 PERL_CALLCONV OP *Perl_pp_snetent(pTHX);
@@ -322,7 +239,6 @@ PERL_CALLCONV OP *Perl_pp_split(pTHX);
 PERL_CALLCONV OP *Perl_pp_sprintf(pTHX);
 PERL_CALLCONV OP *Perl_pp_sprotoent(pTHX);
 PERL_CALLCONV OP *Perl_pp_spwent(pTHX);
-PERL_CALLCONV OP *Perl_pp_sqrt(pTHX);
 PERL_CALLCONV OP *Perl_pp_srand(pTHX);
 PERL_CALLCONV OP *Perl_pp_srefgen(pTHX);
 PERL_CALLCONV OP *Perl_pp_sselect(pTHX);
@@ -336,13 +252,11 @@ PERL_CALLCONV OP *Perl_pp_subst(pTHX);
 PERL_CALLCONV OP *Perl_pp_substcont(pTHX);
 PERL_CALLCONV OP *Perl_pp_substr(pTHX);
 PERL_CALLCONV OP *Perl_pp_subtract(pTHX);
-PERL_CALLCONV OP *Perl_pp_symlink(pTHX);
 PERL_CALLCONV OP *Perl_pp_syscall(pTHX);
 PERL_CALLCONV OP *Perl_pp_sysopen(pTHX);
 PERL_CALLCONV OP *Perl_pp_sysread(pTHX);
 PERL_CALLCONV OP *Perl_pp_sysseek(pTHX);
 PERL_CALLCONV OP *Perl_pp_system(pTHX);
-PERL_CALLCONV OP *Perl_pp_syswrite(pTHX);
 PERL_CALLCONV OP *Perl_pp_tell(pTHX);
 PERL_CALLCONV OP *Perl_pp_telldir(pTHX);
 PERL_CALLCONV OP *Perl_pp_tie(pTHX);
@@ -350,24 +264,21 @@ PERL_CALLCONV OP *Perl_pp_tied(pTHX);
 PERL_CALLCONV OP *Perl_pp_time(pTHX);
 PERL_CALLCONV OP *Perl_pp_tms(pTHX);
 PERL_CALLCONV OP *Perl_pp_trans(pTHX);
-PERL_CALLCONV OP *Perl_pp_transr(pTHX);
 PERL_CALLCONV OP *Perl_pp_truncate(pTHX);
 PERL_CALLCONV OP *Perl_pp_uc(pTHX);
 PERL_CALLCONV OP *Perl_pp_ucfirst(pTHX);
 PERL_CALLCONV OP *Perl_pp_umask(pTHX);
 PERL_CALLCONV OP *Perl_pp_undef(pTHX);
-PERL_CALLCONV OP *Perl_pp_unlink(pTHX);
 PERL_CALLCONV OP *Perl_pp_unpack(pTHX);
 PERL_CALLCONV OP *Perl_pp_unshift(pTHX);
 PERL_CALLCONV OP *Perl_pp_unstack(pTHX);
 PERL_CALLCONV OP *Perl_pp_untie(pTHX);
-PERL_CALLCONV OP *Perl_pp_utime(pTHX);
-PERL_CALLCONV OP *Perl_pp_values(pTHX);
 PERL_CALLCONV OP *Perl_pp_vec(pTHX);
 PERL_CALLCONV OP *Perl_pp_wait(pTHX);
 PERL_CALLCONV OP *Perl_pp_waitpid(pTHX);
 PERL_CALLCONV OP *Perl_pp_wantarray(pTHX);
 PERL_CALLCONV OP *Perl_pp_warn(pTHX);
 PERL_CALLCONV OP *Perl_pp_xor(pTHX);
+PERL_CALLCONV OP *Perl_unimplemented_op(pTHX);
 
 /* ex: set ro: */
diff --git a/proto.h b/proto.h
index 10016a9..5a32973 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -745,7 +745,6 @@ PERL_CALLCONV void  Perl_do_join(pTHX_ SV *sv, SV *delim, SV **mark, SV **sp)
 #define PERL_ARGS_ASSERT_DO_JOIN       \
        assert(sv); assert(delim); assert(mark); assert(sp)
 
-PERL_CALLCONV OP*      Perl_do_kv(pTHX);
 PERL_CALLCONV void     Perl_do_magic_dump(pTHX_ I32 level, PerlIO *file, const MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim)
                        __attribute__nonnull__(pTHX_2)
                        __attribute__nonnull__(pTHX_3);
index dd53aec..6e1ad22 100755 (executable)
@@ -151,12 +151,6 @@ for (@ops) {
     print "#define Perl_pp_$_ $alias{$_}\n" if $alias{$_};
 }
 
-print <<'END';
-
-PERL_PPDEF(Perl_unimplemented_op)
-
-END
-
 print $on <<"END";
 /* -*- buffer-read-only: t -*-
  *
@@ -481,10 +475,13 @@ print $pp <<"END";
 
 END
 
-for (sort @ops) {
-    next if /^i_(pre|post)(inc|dec)$/;
-    next if /^custom$/;
-    print $pp "PERL_CALLCONV OP *Perl_pp_$_(pTHX);\n";
+{
+    my %funcs;
+    for (@ops) {
+       my $name = $alias{$_} || "Perl_pp_$_";
+       ++$funcs{$name};
+    }
+    print $pp "PERL_CALLCONV OP *$_(pTHX);\n" foreach sort keys %funcs;
 }
 print $pp "\n/* ex: set ro: */\n";