From: Nicholas Clark Date: Thu, 15 Oct 2009 14:12:49 +0000 (+0100) Subject: Move the boolkeys op to the group of hash ops. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=2e0eeeaafce11cb0128a6d1e245f1a5b806e3a87;p=p5sagit%2Fp5-mst-13.2.git Move the boolkeys op to the group of hash ops. This breaks binary compatibility. --- diff --git a/opcode.h b/opcode.h index 7bacf19..741d641 100644 --- a/opcode.h +++ b/opcode.h @@ -174,6 +174,7 @@ EXTCONST char* const PL_op_name[] = { "rv2hv", "helem", "hslice", + "boolkeys", "unpack", "pack", "split", @@ -398,7 +399,6 @@ EXTCONST char* const PL_op_name[] = { "lock", "once", "custom", - "boolkeys", }; #endif @@ -547,6 +547,7 @@ EXTCONST char* const PL_op_desc[] = { "hash dereference", "hash element", "hash slice", + "boolkeys", "unpack", "pack", "split", @@ -771,7 +772,6 @@ EXTCONST char* const PL_op_desc[] = { "lock", "once", "unknown custom operator", - "boolkeys", }; #endif @@ -934,6 +934,7 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */ MEMBER_TO_FPTR(Perl_pp_rv2av), /* Perl_pp_rv2hv */ MEMBER_TO_FPTR(Perl_pp_helem), MEMBER_TO_FPTR(Perl_pp_hslice), + MEMBER_TO_FPTR(Perl_pp_boolkeys), MEMBER_TO_FPTR(Perl_pp_unpack), MEMBER_TO_FPTR(Perl_pp_pack), MEMBER_TO_FPTR(Perl_pp_split), @@ -1158,7 +1159,6 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */ MEMBER_TO_FPTR(Perl_pp_lock), MEMBER_TO_FPTR(Perl_pp_once), MEMBER_TO_FPTR(Perl_unimplemented_op), /* Perl_pp_custom */ - MEMBER_TO_FPTR(Perl_pp_boolkeys), } #endif #ifdef PERL_PPADDR_INITED @@ -1318,6 +1318,7 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */ MEMBER_TO_FPTR(Perl_ck_rvconst), /* rv2hv */ MEMBER_TO_FPTR(Perl_ck_null), /* helem */ MEMBER_TO_FPTR(Perl_ck_null), /* hslice */ + MEMBER_TO_FPTR(Perl_ck_fun), /* boolkeys */ MEMBER_TO_FPTR(Perl_ck_unpack), /* unpack */ MEMBER_TO_FPTR(Perl_ck_fun), /* pack */ MEMBER_TO_FPTR(Perl_ck_split), /* split */ @@ -1542,7 +1543,6 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */ MEMBER_TO_FPTR(Perl_ck_rfun), /* lock */ MEMBER_TO_FPTR(Perl_ck_null), /* once */ MEMBER_TO_FPTR(Perl_ck_null), /* custom */ - MEMBER_TO_FPTR(Perl_ck_fun), /* boolkeys */ } #endif #ifdef PERL_CHECK_INITED @@ -1696,6 +1696,7 @@ EXTCONST U32 PL_opargs[] = { 0x00000248, /* rv2hv */ 0x00028404, /* helem */ 0x00048801, /* hslice */ + 0x00009600, /* boolkeys */ 0x00122800, /* unpack */ 0x0004280d, /* pack */ 0x00222808, /* split */ @@ -1920,7 +1921,6 @@ EXTCONST U32 PL_opargs[] = { 0x0000f604, /* lock */ 0x00000600, /* once */ 0x00000000, /* custom */ - 0x00009600, /* boolkeys */ }; #endif diff --git a/opcode.pl b/opcode.pl index 2de2bf4..1b9add7 100755 --- a/opcode.pl +++ b/opcode.pl @@ -810,6 +810,7 @@ exists exists ck_exists is% S rv2hv hash dereference ck_rvconst dt1 helem hash element ck_null s2 H S hslice hash slice ck_null m@ H L +boolkeys boolkeys ck_fun % H # Explosives and implosives. @@ -1116,5 +1117,3 @@ lock lock ck_rfun s% R once once ck_null | custom unknown custom operator ck_null 0 - -boolkeys boolkeys ck_fun % H diff --git a/opnames.h b/opnames.h index f719633..d63e548 100644 --- a/opnames.h +++ b/opnames.h @@ -156,231 +156,231 @@ typedef enum opcode { OP_RV2HV = 138, OP_HELEM = 139, OP_HSLICE = 140, - OP_UNPACK = 141, - OP_PACK = 142, - OP_SPLIT = 143, - OP_JOIN = 144, - OP_LIST = 145, - OP_LSLICE = 146, - OP_ANONLIST = 147, - OP_ANONHASH = 148, - OP_SPLICE = 149, - OP_PUSH = 150, - OP_POP = 151, - OP_SHIFT = 152, - OP_UNSHIFT = 153, - OP_SORT = 154, - OP_REVERSE = 155, - OP_GREPSTART = 156, - OP_GREPWHILE = 157, - OP_MAPSTART = 158, - OP_MAPWHILE = 159, - OP_RANGE = 160, - OP_FLIP = 161, - OP_FLOP = 162, - OP_AND = 163, - OP_OR = 164, - OP_XOR = 165, - OP_DOR = 166, - OP_COND_EXPR = 167, - OP_ANDASSIGN = 168, - OP_ORASSIGN = 169, - OP_DORASSIGN = 170, - OP_METHOD = 171, - OP_ENTERSUB = 172, - OP_LEAVESUB = 173, - OP_LEAVESUBLV = 174, - OP_CALLER = 175, - OP_WARN = 176, - OP_DIE = 177, - OP_RESET = 178, - OP_LINESEQ = 179, - OP_NEXTSTATE = 180, - OP_DBSTATE = 181, - OP_UNSTACK = 182, - OP_ENTER = 183, - OP_LEAVE = 184, - OP_SCOPE = 185, - OP_ENTERITER = 186, - OP_ITER = 187, - OP_ENTERLOOP = 188, - OP_LEAVELOOP = 189, - OP_RETURN = 190, - OP_LAST = 191, - OP_NEXT = 192, - OP_REDO = 193, - OP_DUMP = 194, - OP_GOTO = 195, - OP_EXIT = 196, - OP_METHOD_NAMED = 197, - OP_ENTERGIVEN = 198, - OP_LEAVEGIVEN = 199, - OP_ENTERWHEN = 200, - OP_LEAVEWHEN = 201, - OP_BREAK = 202, - OP_CONTINUE = 203, - OP_OPEN = 204, - OP_CLOSE = 205, - OP_PIPE_OP = 206, - OP_FILENO = 207, - OP_UMASK = 208, - OP_BINMODE = 209, - OP_TIE = 210, - OP_UNTIE = 211, - OP_TIED = 212, - OP_DBMOPEN = 213, - OP_DBMCLOSE = 214, - OP_SSELECT = 215, - OP_SELECT = 216, - OP_GETC = 217, - OP_READ = 218, - OP_ENTERWRITE = 219, - OP_LEAVEWRITE = 220, - OP_PRTF = 221, - OP_PRINT = 222, - OP_SAY = 223, - OP_SYSOPEN = 224, - OP_SYSSEEK = 225, - OP_SYSREAD = 226, - OP_SYSWRITE = 227, - OP_EOF = 228, - OP_TELL = 229, - OP_SEEK = 230, - OP_TRUNCATE = 231, - OP_FCNTL = 232, - OP_IOCTL = 233, - OP_FLOCK = 234, - OP_SEND = 235, - OP_RECV = 236, - OP_SOCKET = 237, - OP_SOCKPAIR = 238, - OP_BIND = 239, - OP_CONNECT = 240, - OP_LISTEN = 241, - OP_ACCEPT = 242, - OP_SHUTDOWN = 243, - OP_GSOCKOPT = 244, - OP_SSOCKOPT = 245, - OP_GETSOCKNAME = 246, - OP_GETPEERNAME = 247, - OP_LSTAT = 248, - OP_STAT = 249, - OP_FTRREAD = 250, - OP_FTRWRITE = 251, - OP_FTREXEC = 252, - OP_FTEREAD = 253, - OP_FTEWRITE = 254, - OP_FTEEXEC = 255, - OP_FTIS = 256, - OP_FTSIZE = 257, - OP_FTMTIME = 258, - OP_FTATIME = 259, - OP_FTCTIME = 260, - OP_FTROWNED = 261, - OP_FTEOWNED = 262, - OP_FTZERO = 263, - OP_FTSOCK = 264, - OP_FTCHR = 265, - OP_FTBLK = 266, - OP_FTFILE = 267, - OP_FTDIR = 268, - OP_FTPIPE = 269, - OP_FTSUID = 270, - OP_FTSGID = 271, - OP_FTSVTX = 272, - OP_FTLINK = 273, - OP_FTTTY = 274, - OP_FTTEXT = 275, - OP_FTBINARY = 276, - OP_CHDIR = 277, - OP_CHOWN = 278, - OP_CHROOT = 279, - OP_UNLINK = 280, - OP_CHMOD = 281, - OP_UTIME = 282, - OP_RENAME = 283, - OP_LINK = 284, - OP_SYMLINK = 285, - OP_READLINK = 286, - OP_MKDIR = 287, - OP_RMDIR = 288, - OP_OPEN_DIR = 289, - OP_READDIR = 290, - OP_TELLDIR = 291, - OP_SEEKDIR = 292, - OP_REWINDDIR = 293, - OP_CLOSEDIR = 294, - OP_FORK = 295, - OP_WAIT = 296, - OP_WAITPID = 297, - OP_SYSTEM = 298, - OP_EXEC = 299, - OP_KILL = 300, - OP_GETPPID = 301, - OP_GETPGRP = 302, - OP_SETPGRP = 303, - OP_GETPRIORITY = 304, - OP_SETPRIORITY = 305, - OP_TIME = 306, - OP_TMS = 307, - OP_LOCALTIME = 308, - OP_GMTIME = 309, - OP_ALARM = 310, - OP_SLEEP = 311, - OP_SHMGET = 312, - OP_SHMCTL = 313, - OP_SHMREAD = 314, - OP_SHMWRITE = 315, - OP_MSGGET = 316, - OP_MSGCTL = 317, - OP_MSGSND = 318, - OP_MSGRCV = 319, - OP_SEMOP = 320, - OP_SEMGET = 321, - OP_SEMCTL = 322, - OP_REQUIRE = 323, - OP_DOFILE = 324, - OP_HINTSEVAL = 325, - OP_ENTEREVAL = 326, - OP_LEAVEEVAL = 327, - OP_ENTERTRY = 328, - OP_LEAVETRY = 329, - OP_GHBYNAME = 330, - OP_GHBYADDR = 331, - OP_GHOSTENT = 332, - OP_GNBYNAME = 333, - OP_GNBYADDR = 334, - OP_GNETENT = 335, - OP_GPBYNAME = 336, - OP_GPBYNUMBER = 337, - OP_GPROTOENT = 338, - OP_GSBYNAME = 339, - OP_GSBYPORT = 340, - OP_GSERVENT = 341, - OP_SHOSTENT = 342, - OP_SNETENT = 343, - OP_SPROTOENT = 344, - OP_SSERVENT = 345, - OP_EHOSTENT = 346, - OP_ENETENT = 347, - OP_EPROTOENT = 348, - OP_ESERVENT = 349, - OP_GPWNAM = 350, - OP_GPWUID = 351, - OP_GPWENT = 352, - OP_SPWENT = 353, - OP_EPWENT = 354, - OP_GGRNAM = 355, - OP_GGRGID = 356, - OP_GGRENT = 357, - OP_SGRENT = 358, - OP_EGRENT = 359, - OP_GETLOGIN = 360, - OP_SYSCALL = 361, - OP_LOCK = 362, - OP_ONCE = 363, - OP_CUSTOM = 364, - OP_BOOLKEYS = 365, + OP_BOOLKEYS = 141, + OP_UNPACK = 142, + OP_PACK = 143, + OP_SPLIT = 144, + OP_JOIN = 145, + OP_LIST = 146, + OP_LSLICE = 147, + OP_ANONLIST = 148, + OP_ANONHASH = 149, + OP_SPLICE = 150, + OP_PUSH = 151, + OP_POP = 152, + OP_SHIFT = 153, + OP_UNSHIFT = 154, + OP_SORT = 155, + OP_REVERSE = 156, + OP_GREPSTART = 157, + OP_GREPWHILE = 158, + OP_MAPSTART = 159, + OP_MAPWHILE = 160, + OP_RANGE = 161, + OP_FLIP = 162, + OP_FLOP = 163, + OP_AND = 164, + OP_OR = 165, + OP_XOR = 166, + OP_DOR = 167, + OP_COND_EXPR = 168, + OP_ANDASSIGN = 169, + OP_ORASSIGN = 170, + OP_DORASSIGN = 171, + OP_METHOD = 172, + OP_ENTERSUB = 173, + OP_LEAVESUB = 174, + OP_LEAVESUBLV = 175, + OP_CALLER = 176, + OP_WARN = 177, + OP_DIE = 178, + OP_RESET = 179, + OP_LINESEQ = 180, + OP_NEXTSTATE = 181, + OP_DBSTATE = 182, + OP_UNSTACK = 183, + OP_ENTER = 184, + OP_LEAVE = 185, + OP_SCOPE = 186, + OP_ENTERITER = 187, + OP_ITER = 188, + OP_ENTERLOOP = 189, + OP_LEAVELOOP = 190, + OP_RETURN = 191, + OP_LAST = 192, + OP_NEXT = 193, + OP_REDO = 194, + OP_DUMP = 195, + OP_GOTO = 196, + OP_EXIT = 197, + OP_METHOD_NAMED = 198, + OP_ENTERGIVEN = 199, + OP_LEAVEGIVEN = 200, + OP_ENTERWHEN = 201, + OP_LEAVEWHEN = 202, + OP_BREAK = 203, + OP_CONTINUE = 204, + OP_OPEN = 205, + OP_CLOSE = 206, + OP_PIPE_OP = 207, + OP_FILENO = 208, + OP_UMASK = 209, + OP_BINMODE = 210, + OP_TIE = 211, + OP_UNTIE = 212, + OP_TIED = 213, + OP_DBMOPEN = 214, + OP_DBMCLOSE = 215, + OP_SSELECT = 216, + OP_SELECT = 217, + OP_GETC = 218, + OP_READ = 219, + OP_ENTERWRITE = 220, + OP_LEAVEWRITE = 221, + OP_PRTF = 222, + OP_PRINT = 223, + OP_SAY = 224, + OP_SYSOPEN = 225, + OP_SYSSEEK = 226, + OP_SYSREAD = 227, + OP_SYSWRITE = 228, + OP_EOF = 229, + OP_TELL = 230, + OP_SEEK = 231, + OP_TRUNCATE = 232, + OP_FCNTL = 233, + OP_IOCTL = 234, + OP_FLOCK = 235, + OP_SEND = 236, + OP_RECV = 237, + OP_SOCKET = 238, + OP_SOCKPAIR = 239, + OP_BIND = 240, + OP_CONNECT = 241, + OP_LISTEN = 242, + OP_ACCEPT = 243, + OP_SHUTDOWN = 244, + OP_GSOCKOPT = 245, + OP_SSOCKOPT = 246, + OP_GETSOCKNAME = 247, + OP_GETPEERNAME = 248, + OP_LSTAT = 249, + OP_STAT = 250, + OP_FTRREAD = 251, + OP_FTRWRITE = 252, + OP_FTREXEC = 253, + OP_FTEREAD = 254, + OP_FTEWRITE = 255, + OP_FTEEXEC = 256, + OP_FTIS = 257, + OP_FTSIZE = 258, + OP_FTMTIME = 259, + OP_FTATIME = 260, + OP_FTCTIME = 261, + OP_FTROWNED = 262, + OP_FTEOWNED = 263, + OP_FTZERO = 264, + OP_FTSOCK = 265, + OP_FTCHR = 266, + OP_FTBLK = 267, + OP_FTFILE = 268, + OP_FTDIR = 269, + OP_FTPIPE = 270, + OP_FTSUID = 271, + OP_FTSGID = 272, + OP_FTSVTX = 273, + OP_FTLINK = 274, + OP_FTTTY = 275, + OP_FTTEXT = 276, + OP_FTBINARY = 277, + OP_CHDIR = 278, + OP_CHOWN = 279, + OP_CHROOT = 280, + OP_UNLINK = 281, + OP_CHMOD = 282, + OP_UTIME = 283, + OP_RENAME = 284, + OP_LINK = 285, + OP_SYMLINK = 286, + OP_READLINK = 287, + OP_MKDIR = 288, + OP_RMDIR = 289, + OP_OPEN_DIR = 290, + OP_READDIR = 291, + OP_TELLDIR = 292, + OP_SEEKDIR = 293, + OP_REWINDDIR = 294, + OP_CLOSEDIR = 295, + OP_FORK = 296, + OP_WAIT = 297, + OP_WAITPID = 298, + OP_SYSTEM = 299, + OP_EXEC = 300, + OP_KILL = 301, + OP_GETPPID = 302, + OP_GETPGRP = 303, + OP_SETPGRP = 304, + OP_GETPRIORITY = 305, + OP_SETPRIORITY = 306, + OP_TIME = 307, + OP_TMS = 308, + OP_LOCALTIME = 309, + OP_GMTIME = 310, + OP_ALARM = 311, + OP_SLEEP = 312, + OP_SHMGET = 313, + OP_SHMCTL = 314, + OP_SHMREAD = 315, + OP_SHMWRITE = 316, + OP_MSGGET = 317, + OP_MSGCTL = 318, + OP_MSGSND = 319, + OP_MSGRCV = 320, + OP_SEMOP = 321, + OP_SEMGET = 322, + OP_SEMCTL = 323, + OP_REQUIRE = 324, + OP_DOFILE = 325, + OP_HINTSEVAL = 326, + OP_ENTEREVAL = 327, + OP_LEAVEEVAL = 328, + OP_ENTERTRY = 329, + OP_LEAVETRY = 330, + OP_GHBYNAME = 331, + OP_GHBYADDR = 332, + OP_GHOSTENT = 333, + OP_GNBYNAME = 334, + OP_GNBYADDR = 335, + OP_GNETENT = 336, + OP_GPBYNAME = 337, + OP_GPBYNUMBER = 338, + OP_GPROTOENT = 339, + OP_GSBYNAME = 340, + OP_GSBYPORT = 341, + OP_GSERVENT = 342, + OP_SHOSTENT = 343, + OP_SNETENT = 344, + OP_SPROTOENT = 345, + OP_SSERVENT = 346, + OP_EHOSTENT = 347, + OP_ENETENT = 348, + OP_EPROTOENT = 349, + OP_ESERVENT = 350, + OP_GPWNAM = 351, + OP_GPWUID = 352, + OP_GPWENT = 353, + OP_SPWENT = 354, + OP_EPWENT = 355, + OP_GGRNAM = 356, + OP_GGRGID = 357, + OP_GGRENT = 358, + OP_SGRENT = 359, + OP_EGRENT = 360, + OP_GETLOGIN = 361, + OP_SYSCALL = 362, + OP_LOCK = 363, + OP_ONCE = 364, + OP_CUSTOM = 365, OP_max } opcode; diff --git a/pp.sym b/pp.sym index d6eb7f5..9d4d754 100644 --- a/pp.sym +++ b/pp.sym @@ -185,6 +185,7 @@ Perl_pp_exists Perl_pp_rv2hv Perl_pp_helem Perl_pp_hslice +Perl_pp_boolkeys Perl_pp_unpack Perl_pp_pack Perl_pp_split @@ -408,6 +409,5 @@ Perl_pp_getlogin Perl_pp_syscall Perl_pp_lock Perl_pp_once -Perl_pp_boolkeys # ex: set ro: diff --git a/pp_proto.h b/pp_proto.h index 16c5c8c..d7da453 100644 --- a/pp_proto.h +++ b/pp_proto.h @@ -186,6 +186,7 @@ PERL_PPDEF(Perl_pp_exists) PERL_PPDEF(Perl_pp_rv2hv) PERL_PPDEF(Perl_pp_helem) PERL_PPDEF(Perl_pp_hslice) +PERL_PPDEF(Perl_pp_boolkeys) PERL_PPDEF(Perl_pp_unpack) PERL_PPDEF(Perl_pp_pack) PERL_PPDEF(Perl_pp_split) @@ -409,6 +410,5 @@ PERL_PPDEF(Perl_pp_getlogin) PERL_PPDEF(Perl_pp_syscall) PERL_PPDEF(Perl_pp_lock) PERL_PPDEF(Perl_pp_once) -PERL_PPDEF(Perl_pp_boolkeys) /* ex: set ro: */