===== BASIC METRICS -- Number of files: 89 -- Total bytecode bytes: 337877 -- Total instructions: 122117 Duplicate path/name # A tibble: 6 x 3 path code_name n 1 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc AbbreviatedTree 157 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 157 3 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 157 4 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc PrettyTree 157 5 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc AbbreviatedTree 22 6 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc _AbbreviatedTree 22 ===== BIG STRINGS path code_name type len_or_val 1 /home/andy/git/oilshell/oil/pgen2/grammar.pyc Grammar str 2600 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/oil_lang/objects.pyc Regex str 1646 6 /home/andy/git/oilshell/oil/Python-2.7.13/Lib/__future__.pyc str 1638 7 /home/andy/git/oilshell/oil/osh/word_parse.pyc str 1297 8 /home/andy/git/oilshell/oil/tools/osh2oil.pyc _GetRhsStyle str 1209 9 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc _MaybeExpandAliases str 1168 10 /home/andy/git/oilshell/oil/frontend/args.pyc OilFlags str 1141 11 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoWordInCommand str 1139 12 /home/andy/git/oilshell/oil/pgen2/parse.pyc Parser str 1076 13 /home/andy/git/oilshell/oil/core/completion.pyc str 886 14 /home/andy/git/oilshell/oil/osh/braces.pyc _BraceDetect str 824 15 /home/andy/git/oilshell/oil/core/dev.pyc CrashDumper str 812 16 /home/andy/git/oilshell/oil/pgen2/grammar.pyc dump str 771 17 /home/andy/git/oilshell/oil/pgen2/parse.pyc __init__ str 744 18 /home/andy/git/oilshell/oil/oil_lang/expr_to_ast.pyc Transformer str 734 19 /home/andy/git/oilshell/oil/core/main_loop.pyc Batch str 685 20 /home/andy/git/oilshell/oil/frontend/lex.pyc str 658 -- total string bytes: 162616 ===== FRAMES Frames with many consts # A tibble: 20 x 3 path code_name n 1 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind_asdl.pyc 719 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc PrettyTree 715 3 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc 702 4 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 637 5 /home/andy/git/oilshell/oil/frontend/id_kind.pyc AddKinds 359 6 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind_asdl.pyc Id 337 7 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 305 8 /home/andy/git/oilshell/oil/frontend/lex.pyc 221 9 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc AbbreviatedTree 157 10 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 157 11 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc PrettyTree 98 12 /home/andy/git/oilshell/oil/osh/builtin.pyc 98 13 /home/andy/git/oilshell/oil/bin/oil.pyc 96 14 /home/andy/git/oilshell/oil/osh/state.pyc 94 15 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc _AbbreviatedTree 93 16 /home/andy/git/oilshell/oil/core/completion.pyc Matches 69 17 /home/andy/git/oilshell/oil/_devbuild/gen/grammar_nt.pyc 68 18 /home/andy/git/oilshell/oil/_devbuild/gen/types_asdl.pyc 68 19 /home/andy/git/oilshell/oil/osh/builtin_pure.pyc 67 20 /home/andy/git/oilshell/oil/core/completion.pyc 63 Frames with many ops # A tibble: 20 x 3 path code_name n 1 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc PrettyTree 11553 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 8589 3 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc 2565 4 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch 2239 5 /home/andy/git/oilshell/oil/_devbuild/gen/id_tables.pyc 2217 6 /home/andy/git/oilshell/oil/frontend/lex.pyc 1972 7 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 1865 8 /home/andy/git/oilshell/oil/core/completion.pyc Matches 1699 9 /home/andy/git/oilshell/oil/osh/expr_eval.pyc Eval 1602 10 /home/andy/git/oilshell/oil/bin/oil.pyc ShellMain 1467 11 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc PrettyTree 1367 12 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoCommand 1244 13 /home/andy/git/oilshell/oil/oil_lang/expr_eval.pyc EvalExpr 1190 14 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc _AbbreviatedTree 1177 15 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind_asdl.pyc 1161 16 /home/andy/git/oilshell/oil/osh/builtin_pure.pyc __call__ 1041 17 /home/andy/git/oilshell/oil/osh/builtin.pyc __call__ 998 18 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 964 19 /home/andy/git/oilshell/oil/osh/word_eval.pyc _EvalBracedVarSub 799 20 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc AbbreviatedTree 716 Frames with large stacksize path code_name argcount nlocals stacksize bytecode_bytes 1 /home/andy/git/oilshell/oil/frontend/lex.pyc 0 0 53 5744 2 /home/andy/git/oilshell/oil/frontend/id_kind.pyc AddKinds 1 1 46 1388 3 /home/andy/git/oilshell/oil/_devbuild/gen/help_.pyc 0 0 39 127 4 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Execute 3 12 16 540 5 /home/andy/git/oilshell/oil/bin/oil.pyc ShellMain 4 71 14 4105 6 /home/andy/git/oilshell/oil/osh/arith_parse.pyc MakeShellSpec 0 1 14 810 7 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc ParseCommand 1 7 13 1061 8 /home/andy/git/oilshell/oil/osh/state.pyc 0 0 13 883 9 /home/andy/git/oilshell/oil/_devbuild/gen/help_index.pyc 0 0 12 46 10 /home/andy/git/oilshell/oil/oil_lang/expr_to_ast.pyc 0 0 12 542 Frames with many locals path code_name argcount nlocals stacksize bytecode_bytes 1 /home/andy/git/oilshell/oil/bin/oil.pyc ShellMain 4 71 14 4105 2 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch 3 66 8 6299 3 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoCommand 4 37 6 3366 4 /home/andy/git/oilshell/oil/core/completion.pyc Matches 2 36 11 2720 5 /home/andy/git/oilshell/oil/oil_lang/expr_eval.pyc EvalExpr 2 32 8 3350 6 /home/andy/git/oilshell/oil/oil_lang/expr_parse.pyc _PushOilTokens 4 32 5 1569 7 /home/andy/git/oilshell/oil/osh/history.pyc Eval 2 31 6 1199 8 /home/andy/git/oilshell/oil/osh/word_eval.pyc _EvalBracedVarSub 4 31 6 2333 9 /home/andy/git/oilshell/oil/osh/builtin_printf.pyc __call__ 2 29 7 1303 10 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc _MakeAssignPair 3 27 4 856 ===== NAMES Common types # A tibble: 4 x 2 kind n 1 name 24533 2 var 8330 3 free 12 4 cell 11 Common names # A tibble: 20 x 2 name n 1 self 1641 2 None 645 3 __name__ 540 4 append 517 5 __module__ 505 6 AssertionError 408 7 __init__ 373 8 NewRecord 373 9 fields 362 10 _AbbreviatedTree 359 11 L 358 12 out_node 358 13 spids 355 14 field 349 15 x0 343 16 tag 331 17 AbbreviatedTree 308 18 PrettyTree 304 19 children 265 20 x1 252 -- Total length of all 32886 names: 241393 -- Total length of 3800 unique names: 37586 ===== CONSTS Types of constants # A tibble: 6 x 2 type n 1 str 6220 2 code 2492 3 int 2249 4 NoneType 2058 5 tuple 877 6 float 3 ===== FLAGS Common flags # A tibble: 7 x 2 flag n 1 CO_NEWLOCALS 2492 2 CO_OPTIMIZED 1987 3 CO_FUTURE_PRINT_FUNCTION 961 4 CO_NESTED 46 5 CO_GENERATOR 44 6 CO_VARARGS 23 7 CO_VARKEYWORDS 7 ===== OPS Ops Used by Frequency # A tibble: 81 x 2 op_name n 1 LOAD_FAST 20145 2 LOAD_ATTR 17523 3 LOAD_CONST 15127 4 CALL_FUNCTION 10798 5 LOAD_GLOBAL 8864 6 STORE_FAST 5938 7 STORE_NAME 5898 8 POP_TOP 4445 9 LOAD_NAME 3582 10 RETURN_VALUE 3480 11 POP_JUMP_IF_FALSE 3156 12 COMPARE_OP 2570 13 MAKE_FUNCTION 2484 14 JUMP_FORWARD 1936 15 STORE_ATTR 1342 16 STORE_MAP 1327 17 JUMP_ABSOLUTE 1202 18 IMPORT_FROM 1027 19 BUILD_TUPLE 969 20 POP_BLOCK 866 21 BUILD_LIST 837 22 RAISE_VARARGS 823 23 BINARY_SUBSCR 674 24 POP_JUMP_IF_TRUE 652 25 SETUP_LOOP 641 26 IMPORT_NAME 622 27 FOR_ITER 611 28 GET_ITER 611 29 BUILD_CLASS 505 30 LOAD_LOCALS 505 31 BINARY_ADD 296 32 UNPACK_SEQUENCE 286 33 BINARY_MODULO 240 34 JUMP_IF_TRUE_OR_POP 237 35 END_FINALLY 225 36 DUP_TOP 223 37 SETUP_EXCEPT 177 38 LOAD_DEREF 161 39 BUILD_MAP 144 40 STORE_SUBSCR 138 41 SLICE+1 108 42 BREAK_LOOP 104 43 INPLACE_ADD 103 44 BINARY_SUBTRACT 65 45 YIELD_VALUE 56 46 UNARY_NOT 55 47 SETUP_FINALLY 42 48 LIST_APPEND 26 49 ROT_TWO 26 50 SLICE+2 26 51 SLICE+3 25 52 BINARY_MULTIPLY 22 53 BINARY_OR 12 54 INPLACE_SUBTRACT 12 55 LOAD_CLOSURE 12 56 DELETE_SLICE+0 11 57 BINARY_RSHIFT 10 58 DELETE_SUBSCR 10 59 BINARY_AND 9 60 MAKE_CLOSURE 8 61 STORE_DEREF 8 62 PRINT_ITEM 7 63 PRINT_NEWLINE 7 64 CALL_FUNCTION_VAR_KW 6 65 JUMP_IF_FALSE_OR_POP 6 66 SETUP_WITH 6 67 WITH_CLEANUP 6 68 CALL_FUNCTION_VAR 5 69 DUP_TOPX 5 70 ROT_THREE 5 71 BINARY_LSHIFT 4 72 STORE_GLOBAL 4 73 BINARY_DIVIDE 3 74 BINARY_XOR 3 75 UNARY_INVERT 3 76 UNARY_NEGATIVE 3 77 BINARY_FLOOR_DIVIDE 2 78 INPLACE_MULTIPLY 2 79 BINARY_POWER 1 80 INPLACE_AND 1 81 INPLACE_RSHIFT 1 -- Total unique opcodes: 81 Unused opcodes: op_name 1 BINARY_TRUE_DIVIDE 2 BUILD_SET 3 BUILD_SLICE 4 CALL_FUNCTION_KW 5 CONTINUE_LOOP 6 DELETE_ATTR 7 DELETE_FAST 8 DELETE_GLOBAL 9 DELETE_NAME 10 DELETE_SLICE+1 11 DELETE_SLICE+2 12 DELETE_SLICE+3 13 EXEC_STMT 14 EXTENDED_ARG 15 IMPORT_STAR 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 MAP_ADD 25 NOP 26 PRINT_EXPR 27 PRINT_ITEM_TO 28 PRINT_NEWLINE_TO 29 ROT_FOUR 30 SET_ADD 31 SLICE+0 32 STOP_CODE 33 STORE_SLICE+0 34 STORE_SLICE+1 35 STORE_SLICE+2 36 STORE_SLICE+3 37 UNARY_CONVERT 38 UNARY_POSITIVE Memory Operations: # A tibble: 15 x 3 kind op_name n 1 ATTR LOAD_ATTR 17523 2 ATTR STORE_ATTR 1342 3 CLOSURE LOAD_CLOSURE 12 4 CONST LOAD_CONST 15127 5 DEREF LOAD_DEREF 161 6 DEREF STORE_DEREF 8 7 FAST LOAD_FAST 20145 8 FAST STORE_FAST 5938 9 GLOBAL LOAD_GLOBAL 8864 10 GLOBAL STORE_GLOBAL 4 11 LOCALS LOAD_LOCALS 505 12 MAP STORE_MAP 1327 13 NAME STORE_NAME 5898 14 NAME LOAD_NAME 3582 15 SUBSCR STORE_SUBSCR 138 Imports: # A tibble: 2 x 2 op_name n 1 IMPORT_FROM 1027 2 IMPORT_NAME 622 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 6289 2 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 6289 3 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 6289 4 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 6289 5 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 6289 6 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 6289 7 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 6289 8 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch POP_JUMP_IF_FALSE 6289 9 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch POP_JUMP_IF_FALSE 6289 10 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 6289 ===== 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/mycpp/__init__.pyc 2 8 /home/andy/git/oilshell/oil/oil_lang/__init__.pyc 2 9 /home/andy/git/oilshell/oil/osh/__init__.pyc 2 10 /home/andy/git/oilshell/oil/pylib/__init__.pyc 2 11 /home/andy/git/oilshell/oil/tools/__init__.pyc 2 12 /home/andy/git/oilshell/oil/_devbuild/gen/grammar_nt.pyc 3 13 /home/andy/git/oilshell/oil/pgen2/__init__.pyc 3 14 /home/andy/git/oilshell/oil/_devbuild/gen/help_index.pyc 4 15 /home/andy/git/oilshell/oil/_devbuild/gen/help_.pyc 4 16 /home/andy/git/oilshell/oil/vendor/typing.pyc 6 17 /home/andy/git/oilshell/oil/pylib/cgi.pyc 8 18 /home/andy/git/oilshell/oil/_devbuild/gen/id_tables.pyc 10 19 /home/andy/git/oilshell/oil/Python-2.7.13/Lib/stat.pyc 10 20 /home/andy/git/oilshell/oil/asdl/runtime.pyc 14 Files with many ops: # A tibble: 10 x 2 # Groups: path [10] path n 1 /home/andy/git/oilshell/oil/osh/expr_eval.pyc 48 2 /home/andy/git/oilshell/oil/osh/state.pyc 48 3 /home/andy/git/oilshell/oil/bin/oil.pyc 49 4 /home/andy/git/oilshell/oil/osh/string_ops.pyc 49 5 /home/andy/git/oilshell/oil/core/process.pyc 50 6 /home/andy/git/oilshell/oil/core/comp_ui.pyc 51 7 /home/andy/git/oilshell/oil/osh/word_eval.pyc 51 8 /home/andy/git/oilshell/oil/core/completion.pyc 56 9 /home/andy/git/oilshell/oil/osh/builtin.pyc 56 10 /home/andy/git/oilshell/oil/oil_lang/expr_eval.pyc 60 Unique ops for files that just parse: # A tibble: 11 x 2 # Groups: path [11] path n 1 /home/andy/git/oilshell/oil/osh/arith_parse.pyc 19 2 /home/andy/git/oilshell/oil/frontend/lex.pyc 25 3 /home/andy/git/oilshell/oil/frontend/py_reader.pyc 26 4 /home/andy/git/oilshell/oil/frontend/reader.pyc 27 5 /home/andy/git/oilshell/oil/osh/bool_parse.pyc 30 6 /home/andy/git/oilshell/oil/pgen2/parse.pyc 33 7 /home/andy/git/oilshell/oil/frontend/lexer.pyc 34 8 /home/andy/git/oilshell/oil/frontend/parse_lib.pyc 37 9 /home/andy/git/oilshell/oil/osh/word_parse.pyc 39 10 /home/andy/git/oilshell/oil/oil_lang/expr_parse.pyc 41 11 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc 45 -- Unique opcodes for parsing: 52