===== BASIC METRICS -- Number of files: 62 -- Total bytecode bytes: 173851 -- Total instructions: 63207 Duplicate path/name # A tibble: 6 x 3 path code_name n 1 /home/andy/git/oilshell/oil/_devbuild/gen/osh_asdl.pyc __init__ 74 2 /home/andy/git/oilshell/oil/core/completion.pyc __init__ 13 3 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc __init__ 13 4 /home/andy/git/oilshell/oil/asdl/asdl_.pyc __init__ 12 5 /home/andy/git/oilshell/oil/core/args.pyc __init__ 12 6 /home/andy/git/oilshell/oil/core/process.pyc __init__ 12 ===== BIG STRINGS path code_name type len_or_val 1 /home/andy/git/oilshell/oil/osh/lex.pyc str 3101 2 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc ParseSimpleCommand str 2301 3 /home/andy/git/oilshell/oil/osh/word_parse.pyc _ReadBracedBracedVarSub str 2248 4 /home/andy/git/oilshell/oil/core/args.pyc str 1669 5 /home/andy/git/oilshell/oil/Python-2.7.13/Lib/__future__.pyc str 1638 6 /home/andy/git/oilshell/oil/osh/word_parse.pyc str 1286 7 /home/andy/git/oilshell/oil/tools/osh2oil.pyc _GetRhsStyle str 1209 8 /home/andy/git/oilshell/oil/core/args.pyc OilFlags str 1144 9 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoWordInCommand str 1139 10 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc _MaybeExpandAliases str 1080 11 /home/andy/git/oilshell/oil/core/braces.pyc _BraceDetect str 943 12 /home/andy/git/oilshell/oil/asdl/py_meta.pyc str 912 13 /home/andy/git/oilshell/oil/core/dev.pyc CrashDumper str 812 14 /home/andy/git/oilshell/oil/core/builtin.pyc Wait str 807 15 /home/andy/git/oilshell/oil/core/process.pyc Waiter str 743 16 /home/andy/git/oilshell/oil/core/completion.pyc str 735 17 /home/andy/git/oilshell/oil/core/main_loop.pyc Batch str 635 18 /home/andy/git/oilshell/oil/core/builtin.pyc str 634 19 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc _ParseCommandLine str 629 20 /home/andy/git/oilshell/oil/core/legacy.pyc str 613 -- total string bytes: 110663 ===== FRAMES Frames with many consts # A tibble: 20 x 3 path code_name n 1 /home/andy/git/oilshell/oil/core/id_kind.pyc AddKinds 314 2 /home/andy/git/oilshell/oil/_devbuild/gen/osh_asdl.pyc 216 3 /home/andy/git/oilshell/oil/_devbuild/gen/osh_help.pyc 194 4 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 189 5 /home/andy/git/oilshell/oil/osh/lex.pyc 135 6 /home/andy/git/oilshell/oil/core/builtin.pyc 122 7 /home/andy/git/oilshell/oil/_devbuild/gen/osh_asdl.pyc __init__ 74 8 /home/andy/git/oilshell/oil/bin/oil.pyc 73 9 /home/andy/git/oilshell/oil/asdl/unpickle.pyc 67 10 /home/andy/git/oilshell/oil/core/state.pyc 61 11 /home/andy/git/oilshell/oil/asdl/unpickle.pyc Unpickler 54 12 /home/andy/git/oilshell/oil/_devbuild/gen/types_asdl.pyc 51 13 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc CommandParser 50 14 /home/andy/git/oilshell/oil/core/completion.pyc 49 15 /home/andy/git/oilshell/oil/core/completion.pyc Matches 46 16 /home/andy/git/oilshell/oil/asdl/asdl_.pyc 44 17 /home/andy/git/oilshell/oil/Python-2.7.13/Lib/stat.pyc 43 18 /home/andy/git/oilshell/oil/Python-2.7.13/Lib/__future__.pyc 42 19 /home/andy/git/oilshell/oil/asdl/asdl_.pyc Print 41 20 /home/andy/git/oilshell/oil/asdl/format.pyc 41 Frames with many ops # A tibble: 20 x 3 path code_name n 1 /home/andy/git/oilshell/oil/core/expr_eval.pyc Eval 1369 2 /home/andy/git/oilshell/oil/core/cmd_exec.pyc _Dispatch 1356 3 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoCommand 1240 4 /home/andy/git/oilshell/oil/osh/lex.pyc 1110 5 /home/andy/git/oilshell/oil/_devbuild/gen/osh_asdl.pyc __init__ 1094 6 /home/andy/git/oilshell/oil/_devbuild/gen/osh_asdl.pyc 896 7 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 831 8 /home/andy/git/oilshell/oil/core/word_eval.pyc _EvalBracedVarSub 789 9 /home/andy/git/oilshell/oil/core/builtin.pyc 671 10 /home/andy/git/oilshell/oil/bin/oil.pyc OshMain 660 11 /home/andy/git/oilshell/oil/core/completion.pyc Matches 650 12 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoWordPart 566 13 /home/andy/git/oilshell/oil/core/cmd_exec.pyc _RunBuiltin 506 14 /home/andy/git/oilshell/oil/core/word_eval.pyc _EvalWordPart 431 15 /home/andy/git/oilshell/oil/core/id_kind.pyc AddKinds 388 16 /home/andy/git/oilshell/oil/core/args.pyc Parse 385 17 /home/andy/git/oilshell/oil/bin/oil.pyc 383 18 /home/andy/git/oilshell/oil/core/legacy.pyc 364 19 /home/andy/git/oilshell/oil/asdl/unpickle.pyc Unpickler 357 20 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoAssignment 324 Frames with large stacksize path code_name argcount nlocals stacksize bytecode_bytes 1 /home/andy/git/oilshell/oil/core/id_kind.pyc AddKinds 1 1 46 1110 2 /home/andy/git/oilshell/oil/osh/lex.pyc 0 0 33 3206 3 /home/andy/git/oilshell/oil/core/state.pyc 0 0 19 608 4 /home/andy/git/oilshell/oil/bin/oil.pyc OshMain 3 48 15 1826 5 /home/andy/git/oilshell/oil/osh/arith_parse.pyc MakeShellSpec 0 1 14 835 6 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc ParseCommand 2 3 11 471 7 /home/andy/git/oilshell/oil/core/cmd_exec.pyc _Execute 3 7 10 336 8 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc CommandParser 0 0 10 545 9 /home/andy/git/oilshell/oil/osh/word_parse.pyc _ReadWord 2 3 10 576 10 /home/andy/git/oilshell/oil/core/cmd_exec.pyc _CheckStatus 4 5 9 233 Frames with many locals path code_name argcount nlocals stacksize bytecode_bytes 1 /home/andy/git/oilshell/oil/core/cmd_exec.pyc _Dispatch 3 54 8 3824 2 /home/andy/git/oilshell/oil/bin/oil.pyc OshMain 3 48 15 1826 3 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoCommand 4 35 6 3354 4 /home/andy/git/oilshell/oil/core/word_eval.pyc _EvalBracedVarSub 4 30 6 2289 5 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc _MaybeExpandAliases 3 27 5 731 6 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc _MakeAssignPair 2 23 5 587 7 /home/andy/git/oilshell/oil/asdl/py_meta.pyc MakeTypes 3 19 6 550 8 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc ParseSimpleCommand 2 19 6 801 9 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc _MakeAssignment 3 18 6 467 10 /home/andy/git/oilshell/oil/core/completion.pyc _GetCompletionType 4 17 6 376 ===== NAMES Common types # A tibble: 4 x 2 kind n 1 name 12252 2 var 4244 3 cell 2 4 free 2 Common names # A tibble: 20 x 2 name n 1 self 765 2 __name__ 325 3 __module__ 297 4 None 286 5 __init__ 228 6 spids 211 7 tag 180 8 AssertionError 164 9 append 162 10 Id 154 11 __doc__ 143 12 name 135 13 ASDL_TYPE 133 14 True 128 15 TYPE_LOOKUP 126 16 s 123 17 False 117 18 ast 112 19 len 106 20 util 97 -- Total length of all 16500 names: 118496 -- Total length of 2725 unique names: 25316 ===== CONSTS Types of constants # A tibble: 6 x 2 type n 1 str 3447 2 code 1340 3 NoneType 1063 4 int 891 5 tuple 454 6 float 2 ===== FLAGS Common flags # A tibble: 7 x 2 flag n 1 CO_NEWLOCALS 1340 2 CO_OPTIMIZED 1043 3 CO_FUTURE_PRINT_FUNCTION 617 4 CO_GENERATOR 32 5 CO_NESTED 23 6 CO_VARARGS 18 7 CO_VARKEYWORDS 6 ===== OPS Common: # A tibble: 20 x 2 op_name n 1 LOAD_FAST 10755 2 LOAD_ATTR 8307 3 LOAD_CONST 7812 4 CALL_FUNCTION 4897 5 LOAD_GLOBAL 4353 6 STORE_NAME 2896 7 STORE_FAST 2885 8 POP_TOP 2417 9 LOAD_NAME 2143 10 RETURN_VALUE 1982 11 POP_JUMP_IF_FALSE 1898 12 COMPARE_OP 1577 13 MAKE_FUNCTION 1338 14 JUMP_FORWARD 1122 15 STORE_ATTR 932 16 JUMP_ABSOLUTE 728 17 BUILD_TUPLE 691 18 POP_BLOCK 477 19 BINARY_SUBSCR 429 20 BUILD_LIST 420 Rare: # A tibble: 20 x 2 op_name n 1 CALL_FUNCTION_VAR_KW 4 2 DELETE_SLICE+1 4 3 PRINT_ITEM 4 4 PRINT_NEWLINE 4 5 ROT_THREE 4 6 STORE_GLOBAL 4 7 DUP_TOPX 3 8 INPLACE_RSHIFT 3 9 JUMP_IF_FALSE_OR_POP 3 10 UNARY_NEGATIVE 3 11 BINARY_DIVIDE 2 12 BINARY_XOR 2 13 INPLACE_MULTIPLY 2 14 LOAD_CLOSURE 2 15 MAKE_CLOSURE 2 16 BINARY_FLOOR_DIVIDE 1 17 DELETE_FAST 1 18 MAP_ADD 1 19 STORE_SLICE+0 1 20 UNARY_INVERT 1 Imports: # A tibble: 2 x 2 op_name n 1 IMPORT_FROM 289 2 IMPORT_NAME 313 Large op_arg (jump targets): path code_name op_name op_arg 1 /home/andy/git/oilshell/oil/core/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 3814 2 /home/andy/git/oilshell/oil/core/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 3814 3 /home/andy/git/oilshell/oil/core/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 3814 4 /home/andy/git/oilshell/oil/core/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 3814 5 /home/andy/git/oilshell/oil/core/cmd_exec.pyc _Dispatch POP_JUMP_IF_FALSE 3814 6 /home/andy/git/oilshell/oil/core/cmd_exec.pyc _Dispatch POP_JUMP_IF_FALSE 3814 7 /home/andy/git/oilshell/oil/core/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 3814 8 /home/andy/git/oilshell/oil/core/cmd_exec.pyc _Dispatch POP_JUMP_IF_FALSE 3796 9 /home/andy/git/oilshell/oil/core/cmd_exec.pyc _Dispatch POP_JUMP_IF_FALSE 3636 10 /home/andy/git/oilshell/oil/core/cmd_exec.pyc _Dispatch POP_JUMP_IF_FALSE 3536 ===== UNIQUE OPS Files with few ops: # A tibble: 20 x 2 # Groups: path [20] path n 1 /home/andy/git/oilshell/oil/asdl/__init__.pyc 2 2 /home/andy/git/oilshell/oil/bin/__init__.pyc 2 3 /home/andy/git/oilshell/oil/core/__init__.pyc 2 4 /home/andy/git/oilshell/oil/_devbuild/gen/__init__.pyc 2 5 /home/andy/git/oilshell/oil/_devbuild/__init__.pyc 2 6 /home/andy/git/oilshell/oil/osh/__init__.pyc 2 7 /home/andy/git/oilshell/oil/tools/__init__.pyc 2 8 /home/andy/git/oilshell/oil/_devbuild/gen/osh_help.pyc 5 9 /home/andy/git/oilshell/oil/asdl/const.pyc 7 10 /home/andy/git/oilshell/oil/asdl/cgi.pyc 10 11 /home/andy/git/oilshell/oil/Python-2.7.13/Lib/stat.pyc 10 12 /home/andy/git/oilshell/oil/_devbuild/gen/types_asdl.pyc 15 13 /home/andy/git/oilshell/oil/Python-2.7.13/Lib/__future__.pyc 15 14 /home/andy/git/oilshell/oil/osh/parse_lib.pyc 17 15 /home/andy/git/oilshell/oil/_devbuild/gen/osh_asdl.pyc 18 16 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 18 17 /home/andy/git/oilshell/oil/asdl/pretty.pyc 19 18 /home/andy/git/oilshell/oil/osh/arith_parse.pyc 22 19 /home/andy/git/oilshell/oil/osh/lex.pyc 23 20 /home/andy/git/oilshell/oil/tools/readlink.pyc 23 Files with many ops: # A tibble: 10 x 2 # Groups: path [10] path n 1 /home/andy/git/oilshell/oil/core/process.pyc 45 2 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc 45 3 /home/andy/git/oilshell/oil/core/args.pyc 46 4 /home/andy/git/oilshell/oil/core/expr_eval.pyc 47 5 /home/andy/git/oilshell/oil/core/completion.pyc 48 6 /home/andy/git/oilshell/oil/core/libstr.pyc 48 7 /home/andy/git/oilshell/oil/core/state.pyc 49 8 /home/andy/git/oilshell/oil/asdl/unpickle.pyc 50 9 /home/andy/git/oilshell/oil/core/cmd_exec.pyc 50 10 /home/andy/git/oilshell/oil/core/builtin.pyc 54 Unique ops for files that just parse: # A tibble: 8 x 2 # Groups: path [8] path n 1 /home/andy/git/oilshell/oil/osh/parse_lib.pyc 17 2 /home/andy/git/oilshell/oil/osh/arith_parse.pyc 22 3 /home/andy/git/oilshell/oil/osh/lex.pyc 23 4 /home/andy/git/oilshell/oil/core/reader.pyc 30 5 /home/andy/git/oilshell/oil/osh/bool_parse.pyc 30 6 /home/andy/git/oilshell/oil/osh/word_parse.pyc 33 7 /home/andy/git/oilshell/oil/core/lexer.pyc 34 8 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc 45 -- Unique opcodes for parsing: 51 Ops Used by Frequency # A tibble: 83 x 2 op_name n 1 LOAD_FAST 10755 2 LOAD_ATTR 8307 3 LOAD_CONST 7812 4 CALL_FUNCTION 4897 5 LOAD_GLOBAL 4353 6 STORE_NAME 2896 7 STORE_FAST 2885 8 POP_TOP 2417 9 LOAD_NAME 2143 10 RETURN_VALUE 1982 11 POP_JUMP_IF_FALSE 1898 12 COMPARE_OP 1577 13 MAKE_FUNCTION 1338 14 JUMP_FORWARD 1122 15 STORE_ATTR 932 16 JUMP_ABSOLUTE 728 17 BUILD_TUPLE 691 18 POP_BLOCK 477 19 BINARY_SUBSCR 429 20 BUILD_LIST 420 21 RAISE_VARARGS 390 22 SETUP_LOOP 317 23 IMPORT_NAME 313 24 BUILD_CLASS 297 25 LOAD_LOCALS 297 26 IMPORT_FROM 289 27 POP_JUMP_IF_TRUE 289 28 FOR_ITER 286 29 GET_ITER 286 30 STORE_MAP 241 31 UNPACK_SEQUENCE 231 32 BINARY_ADD 221 33 BINARY_MODULO 181 34 JUMP_IF_TRUE_OR_POP 174 35 STORE_SUBSCR 168 36 DUP_TOP 166 37 END_FINALLY 160 38 SETUP_EXCEPT 133 39 SLICE+1 81 40 BREAK_LOOP 75 41 BUILD_MAP 74 42 INPLACE_ADD 73 43 BINARY_SUBTRACT 49 44 UNARY_NOT 48 45 YIELD_VALUE 35 46 SLICE+2 30 47 ROT_TWO 26 48 BINARY_MULTIPLY 25 49 SETUP_FINALLY 21 50 SLICE+3 21 51 LIST_APPEND 12 52 BINARY_AND 11 53 BINARY_OR 11 54 DELETE_SUBSCR 9 55 BINARY_RSHIFT 8 56 BINARY_LSHIFT 7 57 CALL_FUNCTION_VAR 7 58 INPLACE_SUBTRACT 7 59 LOAD_DEREF 6 60 SETUP_WITH 6 61 WITH_CLEANUP 6 62 DELETE_SLICE+0 5 63 STORE_SLICE+1 5 64 CALL_FUNCTION_VAR_KW 4 65 DELETE_SLICE+1 4 66 PRINT_ITEM 4 67 PRINT_NEWLINE 4 68 ROT_THREE 4 69 STORE_GLOBAL 4 70 DUP_TOPX 3 71 INPLACE_RSHIFT 3 72 JUMP_IF_FALSE_OR_POP 3 73 UNARY_NEGATIVE 3 74 BINARY_DIVIDE 2 75 BINARY_XOR 2 76 INPLACE_MULTIPLY 2 77 LOAD_CLOSURE 2 78 MAKE_CLOSURE 2 79 BINARY_FLOOR_DIVIDE 1 80 DELETE_FAST 1 81 MAP_ADD 1 82 STORE_SLICE+0 1 83 UNARY_INVERT 1 -- Total unique opcodes: 83 Unused opcodes: op_name 1 BINARY_POWER 2 BINARY_TRUE_DIVIDE 3 BUILD_SET 4 BUILD_SLICE 5 CALL_FUNCTION_KW 6 CONTINUE_LOOP 7 DELETE_ATTR 8 DELETE_GLOBAL 9 DELETE_NAME 10 DELETE_SLICE+2 11 DELETE_SLICE+3 12 EXEC_STMT 13 EXTENDED_ARG 14 IMPORT_STAR 15 INPLACE_AND 16 INPLACE_DIVIDE 17 INPLACE_FLOOR_DIVIDE 18 INPLACE_LSHIFT 19 INPLACE_MODULO 20 INPLACE_OR 21 INPLACE_POWER 22 INPLACE_TRUE_DIVIDE 23 INPLACE_XOR 24 NOP 25 PRINT_EXPR 26 PRINT_ITEM_TO 27 PRINT_NEWLINE_TO 28 ROT_FOUR 29 SET_ADD 30 SLICE+0 31 STOP_CODE 32 STORE_DEREF 33 STORE_SLICE+2 34 STORE_SLICE+3 35 UNARY_CONVERT 36 UNARY_POSITIVE