===== BASIC METRICS -- Number of files: 65 -- Total bytecode bytes: 178334 -- Total instructions: 64780 Duplicate path/name # A tibble: 6 x 3 path code_name n 1 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 92 2 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc __init__ 13 3 /home/andy/git/oilshell/oil/core/completion.pyc __init__ 12 4 /home/andy/git/oilshell/oil/core/process.pyc __init__ 12 5 /home/andy/git/oilshell/oil/frontend/args.pyc __init__ 12 6 /home/andy/git/oilshell/oil/asdl/runtime.pyc __repr__ 11 ===== BIG STRINGS path code_name type len_or_val 1 /home/andy/git/oilshell/oil/frontend/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/frontend/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 1289 7 /home/andy/git/oilshell/oil/tools/osh2oil.pyc _GetRhsStyle str 1209 8 /home/andy/git/oilshell/oil/frontend/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/osh/braces.pyc _BraceDetect str 943 12 /home/andy/git/oilshell/oil/core/dev.pyc CrashDumper str 812 13 /home/andy/git/oilshell/oil/osh/builtin.pyc Wait str 807 14 /home/andy/git/oilshell/oil/oil_lang/cmd_parse.pyc ParseWord str 801 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/oil_lang/cmd_parse.pyc _ParseCommandLine str 689 18 /home/andy/git/oilshell/oil/core/main_loop.pyc Batch str 635 19 /home/andy/git/oilshell/oil/osh/builtin.pyc str 634 20 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc _ParseCommandLine str 629 -- total string bytes: 115271 ===== 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 331 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc 271 3 /home/andy/git/oilshell/oil/_devbuild/gen/osh_help.pyc 194 4 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 184 5 /home/andy/git/oilshell/oil/frontend/lex.pyc 150 6 /home/andy/git/oilshell/oil/osh/builtin.pyc 125 7 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 92 8 /home/andy/git/oilshell/oil/bin/oil.pyc 74 9 /home/andy/git/oilshell/oil/pylib/unpickle.pyc 67 10 /home/andy/git/oilshell/oil/_devbuild/gen/types_asdl.pyc 63 11 /home/andy/git/oilshell/oil/osh/state.pyc 61 12 /home/andy/git/oilshell/oil/core/completion.pyc Matches 60 13 /home/andy/git/oilshell/oil/pylib/unpickle.pyc Unpickler 54 14 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc CommandParser 49 15 /home/andy/git/oilshell/oil/core/completion.pyc 46 16 /home/andy/git/oilshell/oil/Python-2.7.13/Lib/stat.pyc 43 17 /home/andy/git/oilshell/oil/Python-2.7.13/Lib/__future__.pyc 42 18 /home/andy/git/oilshell/oil/asdl/format.pyc 41 19 /home/andy/git/oilshell/oil/frontend/args.pyc 38 20 /home/andy/git/oilshell/oil/asdl/runtime.pyc 37 Frames with many ops # A tibble: 20 x 3 path code_name n 1 /home/andy/git/oilshell/oil/frontend/lex.pyc 1393 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc 1388 3 /home/andy/git/oilshell/oil/osh/expr_eval.pyc Eval 1369 4 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch 1356 5 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 1349 6 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoCommand 1240 7 /home/andy/git/oilshell/oil/core/completion.pyc Matches 1226 8 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 825 9 /home/andy/git/oilshell/oil/osh/word_eval.pyc _EvalBracedVarSub 792 10 /home/andy/git/oilshell/oil/osh/builtin.pyc 694 11 /home/andy/git/oilshell/oil/bin/oil.pyc ShellMain 617 12 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoWordPart 566 13 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _RunBuiltin 519 14 /home/andy/git/oilshell/oil/osh/word_eval.pyc _EvalWordPart 431 15 /home/andy/git/oilshell/oil/core/id_kind.pyc AddKinds 418 16 /home/andy/git/oilshell/oil/bin/oil.pyc 389 17 /home/andy/git/oilshell/oil/frontend/args.pyc Parse 385 18 /home/andy/git/oilshell/oil/osh/split.pyc 364 19 /home/andy/git/oilshell/oil/pylib/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 1198 2 /home/andy/git/oilshell/oil/frontend/lex.pyc 0 0 33 4039 3 /home/andy/git/oilshell/oil/osh/state.pyc 0 0 19 626 4 /home/andy/git/oilshell/oil/bin/oil.pyc ShellMain 4 41 14 1721 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/osh/cmd_exec.pyc _Execute 3 7 10 336 8 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc CommandParser 0 0 10 536 9 /home/andy/git/oilshell/oil/osh/word_parse.pyc _ReadWord 2 3 10 576 10 /home/andy/git/oilshell/oil/core/dev.pyc MaybeDump 2 6 9 165 Frames with many locals path code_name argcount nlocals stacksize bytecode_bytes 1 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch 3 54 8 3824 2 /home/andy/git/oilshell/oil/bin/oil.pyc ShellMain 4 41 14 1721 3 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoCommand 4 35 6 3354 4 /home/andy/git/oilshell/oil/core/completion.pyc Matches 2 30 8 2034 5 /home/andy/git/oilshell/oil/osh/word_eval.pyc _EvalBracedVarSub 4 30 6 2298 6 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc _MaybeExpandAliases 3 27 5 731 7 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc _MakeAssignPair 2 23 5 587 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/osh/builtin_bracket.pyc Test 2 17 5 577 ===== NAMES Common types # A tibble: 4 x 2 kind n 1 name 12755 2 var 4233 3 free 4 4 cell 3 Common names # A tibble: 20 x 2 name n 1 self 777 2 __name__ 340 3 __module__ 312 4 None 308 5 spids 247 6 __init__ 235 7 tag 198 8 Id 167 9 append 165 10 AssertionError 159 11 ASDL_TYPE 151 12 TYPE_LOOKUP 149 13 __doc__ 142 14 True 131 15 s 123 16 False 121 17 name 121 18 __slots__ 105 19 val 101 20 len 100 -- Total length of all 16995 names: 124333 -- Total length of 2839 unique names: 27610 ===== CONSTS Types of constants # A tibble: 6 x 2 type n 1 str 3582 2 code 1365 3 NoneType 1089 4 int 917 5 tuple 469 6 float 3 ===== FLAGS Common flags # A tibble: 7 x 2 flag n 1 CO_NEWLOCALS 1365 2 CO_OPTIMIZED 1053 3 CO_FUTURE_PRINT_FUNCTION 630 4 CO_GENERATOR 28 5 CO_NESTED 22 6 CO_VARARGS 16 7 CO_VARKEYWORDS 4 ===== OPS Ops Used by Frequency # A tibble: 80 x 2 op_name n 1 LOAD_FAST 10786 2 LOAD_ATTR 8481 3 LOAD_CONST 8097 4 CALL_FUNCTION 4941 5 LOAD_GLOBAL 4343 6 STORE_NAME 3085 7 STORE_FAST 2862 8 LOAD_NAME 2551 9 POP_TOP 2432 10 RETURN_VALUE 2032 11 POP_JUMP_IF_FALSE 1930 12 COMPARE_OP 1624 13 MAKE_FUNCTION 1363 14 JUMP_FORWARD 1131 15 STORE_ATTR 1084 16 JUMP_ABSOLUTE 734 17 BUILD_TUPLE 700 18 POP_BLOCK 479 19 BUILD_LIST 463 20 BINARY_SUBSCR 459 21 RAISE_VARARGS 373 22 SETUP_LOOP 316 23 BUILD_CLASS 312 24 IMPORT_NAME 312 25 LOAD_LOCALS 312 26 IMPORT_FROM 297 27 POP_JUMP_IF_TRUE 284 28 FOR_ITER 277 29 GET_ITER 277 30 STORE_MAP 237 31 BINARY_ADD 233 32 UNPACK_SEQUENCE 226 33 JUMP_IF_TRUE_OR_POP 205 34 DUP_TOP 168 35 STORE_SUBSCR 165 36 BINARY_MODULO 163 37 END_FINALLY 163 38 SETUP_EXCEPT 136 39 SLICE+1 84 40 BREAK_LOOP 81 41 INPLACE_ADD 80 42 BUILD_MAP 68 43 BINARY_SUBTRACT 48 44 UNARY_NOT 48 45 YIELD_VALUE 38 46 LOAD_DEREF 34 47 SLICE+2 31 48 ROT_TWO 26 49 SLICE+3 24 50 SETUP_FINALLY 21 51 BINARY_MULTIPLY 17 52 LIST_APPEND 16 53 BINARY_OR 11 54 DELETE_SUBSCR 9 55 BINARY_AND 8 56 BINARY_RSHIFT 8 57 DELETE_SLICE+0 8 58 INPLACE_SUBTRACT 8 59 CALL_FUNCTION_VAR 7 60 SETUP_WITH 6 61 STORE_GLOBAL 6 62 WITH_CLEANUP 6 63 STORE_SLICE+1 5 64 BINARY_LSHIFT 4 65 DELETE_SLICE+1 4 66 JUMP_IF_FALSE_OR_POP 4 67 LOAD_CLOSURE 4 68 PRINT_ITEM 4 69 PRINT_NEWLINE 4 70 ROT_THREE 4 71 CALL_FUNCTION_VAR_KW 3 72 DUP_TOPX 3 73 UNARY_NEGATIVE 3 74 BINARY_DIVIDE 2 75 BINARY_XOR 2 76 INPLACE_MULTIPLY 2 77 MAKE_CLOSURE 2 78 STORE_DEREF 2 79 INPLACE_RSHIFT 1 80 UNARY_INVERT 1 -- Total unique opcodes: 80 Unused opcodes: op_name 1 BINARY_FLOOR_DIVIDE 2 BINARY_POWER 3 BINARY_TRUE_DIVIDE 4 BUILD_SET 5 BUILD_SLICE 6 CALL_FUNCTION_KW 7 CONTINUE_LOOP 8 DELETE_ATTR 9 DELETE_FAST 10 DELETE_GLOBAL 11 DELETE_NAME 12 DELETE_SLICE+2 13 DELETE_SLICE+3 14 EXEC_STMT 15 EXTENDED_ARG 16 IMPORT_STAR 17 INPLACE_AND 18 INPLACE_DIVIDE 19 INPLACE_FLOOR_DIVIDE 20 INPLACE_LSHIFT 21 INPLACE_MODULO 22 INPLACE_OR 23 INPLACE_POWER 24 INPLACE_TRUE_DIVIDE 25 INPLACE_XOR 26 MAP_ADD 27 NOP 28 PRINT_EXPR 29 PRINT_ITEM_TO 30 PRINT_NEWLINE_TO 31 ROT_FOUR 32 SET_ADD 33 SLICE+0 34 STOP_CODE 35 STORE_SLICE+0 36 STORE_SLICE+2 37 STORE_SLICE+3 38 UNARY_CONVERT 39 UNARY_POSITIVE Memory Operations: # A tibble: 16 x 3 kind op_name n 1 ATTR LOAD_ATTR 8481 2 ATTR STORE_ATTR 1084 3 CLOSURE LOAD_CLOSURE 4 4 CONST LOAD_CONST 8097 5 DEREF LOAD_DEREF 34 6 DEREF STORE_DEREF 2 7 FAST LOAD_FAST 10786 8 FAST STORE_FAST 2862 9 GLOBAL LOAD_GLOBAL 4343 10 GLOBAL STORE_GLOBAL 6 11 LOCALS LOAD_LOCALS 312 12 MAP STORE_MAP 237 13 NAME STORE_NAME 3085 14 NAME LOAD_NAME 2551 15 SLICE STORE_SLICE+1 5 16 SUBSCR STORE_SUBSCR 165 Imports: # A tibble: 2 x 2 op_name n 1 IMPORT_FROM 297 2 IMPORT_NAME 312 Large op_arg (jump targets): path code_name op_name op_arg 1 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 3814 2 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 3814 3 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 3814 4 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 3814 5 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch POP_JUMP_IF_FALSE 3814 6 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch POP_JUMP_IF_FALSE 3814 7 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 3814 8 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch POP_JUMP_IF_FALSE 3796 9 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch POP_JUMP_IF_FALSE 3636 10 /home/andy/git/oilshell/oil/osh/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/frontend/__init__.pyc 2 7 /home/andy/git/oilshell/oil/oil_lang/__init__.pyc 2 8 /home/andy/git/oilshell/oil/osh/__init__.pyc 2 9 /home/andy/git/oilshell/oil/pylib/__init__.pyc 2 10 /home/andy/git/oilshell/oil/tools/__init__.pyc 2 11 /home/andy/git/oilshell/oil/_devbuild/gen/osh_help.pyc 5 12 /home/andy/git/oilshell/oil/asdl/const.pyc 7 13 /home/andy/git/oilshell/oil/pylib/cgi.pyc 10 14 /home/andy/git/oilshell/oil/Python-2.7.13/Lib/stat.pyc 10 15 /home/andy/git/oilshell/oil/oil_lang/cmd_exec.pyc 11 16 /home/andy/git/oilshell/oil/_devbuild/gen/types_asdl.pyc 15 17 /home/andy/git/oilshell/oil/Python-2.7.13/Lib/__future__.pyc 15 18 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 18 19 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc 18 20 /home/andy/git/oilshell/oil/asdl/pretty.pyc 19 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/osh/word_eval.pyc 45 4 /home/andy/git/oilshell/oil/osh/expr_eval.pyc 47 5 /home/andy/git/oilshell/oil/osh/string_ops.pyc 48 6 /home/andy/git/oilshell/oil/osh/state.pyc 49 7 /home/andy/git/oilshell/oil/osh/builtin.pyc 50 8 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc 50 9 /home/andy/git/oilshell/oil/pylib/unpickle.pyc 50 10 /home/andy/git/oilshell/oil/core/completion.pyc 54 Unique ops for files that just parse: # A tibble: 9 x 2 # Groups: path [9] path n 1 /home/andy/git/oilshell/oil/frontend/parse_lib.pyc 21 2 /home/andy/git/oilshell/oil/frontend/lex.pyc 22 3 /home/andy/git/oilshell/oil/osh/arith_parse.pyc 22 4 /home/andy/git/oilshell/oil/osh/bool_parse.pyc 30 5 /home/andy/git/oilshell/oil/frontend/reader.pyc 32 6 /home/andy/git/oilshell/oil/oil_lang/cmd_parse.pyc 32 7 /home/andy/git/oilshell/oil/osh/word_parse.pyc 33 8 /home/andy/git/oilshell/oil/frontend/lexer.pyc 34 9 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc 45 -- Unique opcodes for parsing: 52