Move the boolkeys op to the group of hash ops.
Nicholas Clark [Thu, 15 Oct 2009 14:12:49 +0000 (15:12 +0100)]
This breaks binary compatibility.

opcode.h
opcode.pl
opnames.h
pp.sym
pp_proto.h

index 7bacf19..741d641 100644 (file)
--- 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
 
index 2de2bf4..1b9add7 100755 (executable)
--- 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
index f719633..d63e548 100644 (file)
--- 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 (file)
--- 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:
index 16c5c8c..d7da453 100644 (file)
@@ -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: */