===== BASIC METRICS -- Number of files: 119 -- Total bytecode bytes: 461201 -- Total instructions: 166253 Duplicate path/name path code_name n 1 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 174 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 174 3 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc AbbreviatedTree 174 4 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc PrettyTree 174 5 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc __init__ 46 6 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc _AbbreviatedTree 46 ===== BIG STRINGS path code_name type len_or_val 1 /home/andy/git/oilshell/oil/osh/word_parse.pyc _ReadBracedVarSub str 2628 2 /home/andy/git/oilshell/oil/pgen2/grammar.pyc Grammar str 2600 3 /home/andy/git/oilshell/oil/qsn_/qsn.pyc str 2307 4 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc ParseSimpleCommand str 2301 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/frontend/args.pyc str 1527 8 /home/andy/git/oilshell/oil/core/executor.pyc RunProcessSub str 1423 9 /home/andy/git/oilshell/oil/osh/word_parse.pyc str 1305 10 /home/andy/git/oilshell/oil/tools/osh2oil.pyc _GetRhsStyle str 1209 11 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc _MaybeExpandAliases str 1168 12 /home/andy/git/oilshell/oil/core/process.pyc WaitForOne str 1166 13 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoWordInCommand str 1139 14 /home/andy/git/oilshell/oil/pgen2/parse.pyc Parser str 1076 15 /home/andy/git/oilshell/oil/core/completion.pyc str 886 16 /home/andy/git/oilshell/oil/osh/braces.pyc _BraceDetect str 824 17 /home/andy/git/oilshell/oil/core/dev.pyc CrashDumper str 820 18 /home/andy/git/oilshell/oil/pgen2/grammar.pyc dump str 771 19 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc ParseCommand str 764 20 /home/andy/git/oilshell/oil/pgen2/parse.pyc __init__ str 744 -- total string bytes: 209650 ===== FRAMES Frames with many consts path code_name n 1 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind_asdl.pyc 812 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc 805 3 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc PrettyTree 791 4 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 712 5 /home/andy/git/oilshell/oil/frontend/id_kind_def.pyc AddKinds 396 6 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind_asdl.pyc Id 383 7 /home/andy/git/oilshell/oil/_devbuild/gen/option_asdl.pyc 287 8 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 278 9 /home/andy/git/oilshell/oil/frontend/lexer_def.pyc 243 10 /home/andy/git/oilshell/oil/_devbuild/gen/help_.pyc 221 11 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc PrettyTree 184 12 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc _AbbreviatedTree 179 13 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 174 14 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc AbbreviatedTree 174 15 /home/andy/git/oilshell/oil/frontend/flag_def.pyc 128 16 /home/andy/git/oilshell/oil/osh/builtin_pure.pyc Run 124 17 /home/andy/git/oilshell/oil/frontend/option_def.pyc 122 18 /home/andy/git/oilshell/oil/_devbuild/gen/arg_types.pyc __init__ 118 19 /home/andy/git/oilshell/oil/_devbuild/gen/option_asdl.pyc option_i 106 20 /home/andy/git/oilshell/oil/core/state.pyc 102 Frames with many ops path code_name n 1 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc PrettyTree 12352 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 9350 3 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc 2955 4 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 2894 5 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch 2755 6 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind.pyc 2349 7 /home/andy/git/oilshell/oil/frontend/lexer_def.pyc 2253 8 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc PrettyTree 2214 9 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc _AbbreviatedTree 2024 10 /home/andy/git/oilshell/oil/osh/builtin_pure.pyc Run 1836 11 /home/andy/git/oilshell/oil/core/completion.pyc Matches 1712 12 /home/andy/git/oilshell/oil/core/shell.pyc Main 1642 13 /home/andy/git/oilshell/oil/oil_lang/expr_eval.pyc _EvalExpr 1572 14 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind_asdl.pyc 1302 15 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoCommand 1254 16 /home/andy/git/oilshell/oil/_devbuild/gen/arg_types.pyc __init__ 1133 17 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 1090 18 /home/andy/git/oilshell/oil/core/shell_native.pyc Main 1029 19 /home/andy/git/oilshell/oil/osh/sh_expr_eval.pyc Eval 904 20 /home/andy/git/oilshell/oil/osh/builtin_meta.pyc Run 902 Frames with large stacksize path code_name argcount nlocals stacksize bytecode_bytes 1 /home/andy/git/oilshell/oil/_devbuild/gen/help_.pyc 0 0 220 670 2 /home/andy/git/oilshell/oil/frontend/lexer_def.pyc 0 0 60 6515 3 /home/andy/git/oilshell/oil/frontend/id_kind_def.pyc AddKinds 1 1 47 1584 4 /home/andy/git/oilshell/oil/frontend/builtin_def.pyc 0 0 46 325 5 /home/andy/git/oilshell/oil/frontend/option_def.pyc 0 0 41 1048 6 /home/andy/git/oilshell/oil/osh/builtin_meta.pyc Run 2 14 22 535 7 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch 3 90 15 7787 8 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc RunPendingTraps 1 3 15 167 9 /home/andy/git/oilshell/oil/core/shell_native.pyc Main 6 76 14 2915 10 /home/andy/git/oilshell/oil/core/shell.pyc Main 6 97 14 4600 Frames with many locals path code_name argcount nlocals stacksize bytecode_bytes 1 /home/andy/git/oilshell/oil/core/shell.pyc Main 6 97 14 4600 2 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch 3 90 15 7787 3 /home/andy/git/oilshell/oil/core/shell_native.pyc Main 6 76 14 2915 4 /home/andy/git/oilshell/oil/oil_lang/expr_eval.pyc _EvalExpr 2 42 10 4416 5 /home/andy/git/oilshell/oil/osh/builtin_assign.pyc _PrintVariables 5 42 10 2060 6 /home/andy/git/oilshell/oil/osh/builtin_printf.pyc _Format 5 39 7 2165 7 /home/andy/git/oilshell/oil/core/completion.pyc Matches 2 37 11 2740 8 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoCommand 4 37 6 3402 9 /home/andy/git/oilshell/oil/oil_lang/expr_parse.pyc _PushOilTokens 5 33 7 1665 10 /home/andy/git/oilshell/oil/osh/history.pyc Eval 2 31 6 1218 ===== NAMES Common types kind n 1 name 33970 2 var 11437 3 cell 6 4 free 6 Common names name n 1 self 2211 2 None 913 3 __name__ 690 4 __module__ 670 5 append 649 6 __init__ 536 7 AssertionError 470 8 NewRecord 454 9 fields 453 10 L 445 11 _AbbreviatedTree 441 12 out_node 440 13 field 408 14 x0 402 15 AbbreviatedTree 374 16 PrettyTree 371 17 spids 347 18 tag 326 19 children 320 20 name 306 -- Total length of all 45419 names: 337027 -- Total length of 4967 unique names: 49089 ===== CONSTS Types of constants type n 1 str 8251 2 code 3355 3 int 3092 4 NoneType 2748 5 tuple 1518 6 float 7 ===== FLAGS Common flags flag n 1 CO_NEWLOCALS 3355 2 CO_OPTIMIZED 2686 3 CO_FUTURE_PRINT_FUNCTION 1460 4 CO_VARARGS 32 5 CO_GENERATOR 24 6 CO_NESTED 17 7 CO_VARKEYWORDS 10 ===== OPS Ops Used by Frequency op_name n 1 LOAD_FAST 27358 2 LOAD_ATTR 21833 3 LOAD_CONST 21653 4 CALL_FUNCTION 15039 5 LOAD_GLOBAL 12532 6 STORE_NAME 8764 7 STORE_FAST 8354 8 POP_TOP 6080 9 POP_JUMP_IF_FALSE 4653 10 RETURN_VALUE 4581 11 LOAD_NAME 4254 12 COMPARE_OP 3443 13 MAKE_FUNCTION 3349 14 JUMP_FORWARD 3030 15 IMPORT_FROM 2262 16 STORE_ATTR 1777 17 STORE_MAP 1491 18 JUMP_ABSOLUTE 1470 19 IMPORT_NAME 1262 20 BUILD_TUPLE 1203 21 POP_BLOCK 1097 22 BUILD_LIST 1059 23 BINARY_SUBSCR 951 24 RAISE_VARARGS 912 25 SETUP_LOOP 752 26 FOR_ITER 721 27 GET_ITER 721 28 POP_JUMP_IF_TRUE 714 29 BUILD_CLASS 669 30 LOAD_LOCALS 669 31 UNPACK_SEQUENCE 371 32 END_FINALLY 345 33 BINARY_MODULO 343 34 BINARY_ADD 327 35 STORE_SUBSCR 256 36 DUP_TOP 225 37 SETUP_EXCEPT 175 38 SETUP_WITH 163 39 WITH_CLEANUP 163 40 BUILD_MAP 159 41 BREAK_LOOP 123 42 SLICE+1 106 43 INPLACE_ADD 100 44 UNARY_NOT 100 45 LOAD_DEREF 75 46 BINARY_SUBTRACT 74 47 LIST_APPEND 58 48 BINARY_AND 55 49 SLICE+3 36 50 YIELD_VALUE 36 51 SLICE+2 31 52 BINARY_LSHIFT 27 53 BINARY_MULTIPLY 26 54 JUMP_IF_TRUE_OR_POP 24 55 ROT_TWO 23 56 INPLACE_OR 22 57 BINARY_OR 15 58 BINARY_RSHIFT 15 59 JUMP_IF_FALSE_OR_POP 15 60 DELETE_SLICE+0 12 61 DELETE_SUBSCR 12 62 CALL_FUNCTION_VAR_KW 10 63 INPLACE_SUBTRACT 10 64 BINARY_DIVIDE 7 65 SETUP_FINALLY 7 66 LOAD_CLOSURE 6 67 MAKE_CLOSURE 6 68 PRINT_ITEM 6 69 PRINT_NEWLINE 6 70 UNARY_NEGATIVE 5 71 CALL_FUNCTION_VAR 4 72 STORE_GLOBAL 4 73 BINARY_XOR 3 74 UNARY_INVERT 3 75 BINARY_FLOOR_DIVIDE 2 76 STORE_SLICE+0 2 77 BINARY_POWER 1 78 CALL_FUNCTION_KW 1 79 DUP_TOPX 1 80 INPLACE_MULTIPLY 1 81 INPLACE_RSHIFT 1 82 ROT_THREE 1 83 STORE_DEREF 1 -- Total unique opcodes: 83 Unused opcodes: op_name 1 BINARY_TRUE_DIVIDE 2 BUILD_SET 3 BUILD_SLICE 4 CONTINUE_LOOP 5 DELETE_ATTR 6 DELETE_FAST 7 DELETE_GLOBAL 8 DELETE_NAME 9 DELETE_SLICE+1 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_POWER 21 INPLACE_TRUE_DIVIDE 22 INPLACE_XOR 23 MAP_ADD 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_SLICE+1 33 STORE_SLICE+2 34 STORE_SLICE+3 35 UNARY_CONVERT 36 UNARY_POSITIVE Memory Operations: kind op_name n 1 ATTR LOAD_ATTR 21833 2 ATTR STORE_ATTR 1777 3 CLOSURE LOAD_CLOSURE 6 4 CONST LOAD_CONST 21653 5 DEREF LOAD_DEREF 75 6 DEREF STORE_DEREF 1 7 FAST LOAD_FAST 27358 8 FAST STORE_FAST 8354 9 GLOBAL LOAD_GLOBAL 12532 10 GLOBAL STORE_GLOBAL 4 11 LOCALS LOAD_LOCALS 669 12 MAP STORE_MAP 1491 13 NAME STORE_NAME 8764 14 NAME LOAD_NAME 4254 15 SLICE STORE_SLICE+0 2 16 SUBSCR STORE_SUBSCR 256 Imports: op_name n 1 IMPORT_FROM 2262 2 IMPORT_NAME 1262 Large op_arg (jump targets): path code_name op_name op_arg 1 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7777 2 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7777 3 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7777 4 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7777 5 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7777 6 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7777 7 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7777 8 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch POP_JUMP_IF_FALSE 7777 9 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch POP_JUMP_IF_FALSE 7777 10 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7777 ===== UNIQUE OPS Files with few ops: # A tibble: 20 x 2 # Groups: path [20] path n    1 /home/andy/git/oilshell/oil/_devbuild/__init__.pyc 2  2 /home/andy/git/oilshell/oil/_devbuild/gen/__init__.pyc 2  3 /home/andy/git/oilshell/oil/_gen/__init__.pyc 2  4 /home/andy/git/oilshell/oil/_gen/oil_lang/__init__.pyc 2  5 /home/andy/git/oilshell/oil/asdl/__init__.pyc 2  6 /home/andy/git/oilshell/oil/bin/__init__.pyc 2  7 /home/andy/git/oilshell/oil/core/__init__.pyc 2  8 /home/andy/git/oilshell/oil/frontend/__init__.pyc 2  9 /home/andy/git/oilshell/oil/mycpp/__init__.pyc 2 10 /home/andy/git/oilshell/oil/oil_lang/__init__.pyc 2 11 /home/andy/git/oilshell/oil/osh/__init__.pyc 2 12 /home/andy/git/oilshell/oil/pylib/__init__.pyc 2 13 /home/andy/git/oilshell/oil/qsn_/__init__.pyc 2 14 /home/andy/git/oilshell/oil/tea/__init__.pyc 2 15 /home/andy/git/oilshell/oil/tools/__init__.pyc 2 16 /home/andy/git/oilshell/oil/_gen/oil_lang/grammar_nt.pyc 3 17 /home/andy/git/oilshell/oil/pgen2/__init__.pyc 3 18 /home/andy/git/oilshell/oil/_devbuild/gen/help_.pyc 4 19 /home/andy/git/oilshell/oil/core/ansi.pyc 6 20 /home/andy/git/oilshell/oil/vendor/typing.pyc 6 Files with many ops: # A tibble: 10 x 2 # Groups: path [10] path n    1 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc 47  2 /home/andy/git/oilshell/oil/core/process.pyc 48  3 /home/andy/git/oilshell/oil/osh/string_ops.pyc 50  4 /home/andy/git/oilshell/oil/osh/sh_expr_eval.pyc 51  5 /home/andy/git/oilshell/oil/osh/word_eval.pyc 52  6 /home/andy/git/oilshell/oil/core/state.pyc 53  7 /home/andy/git/oilshell/oil/core/comp_ui.pyc 54  8 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc 55  9 /home/andy/git/oilshell/oil/core/completion.pyc 56 10 /home/andy/git/oilshell/oil/oil_lang/expr_eval.pyc 63 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/lexer_def.pyc 24  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 29  6 /home/andy/git/oilshell/oil/pgen2/parse.pyc 32  7 /home/andy/git/oilshell/oil/frontend/parse_lib.pyc 34  8 /home/andy/git/oilshell/oil/frontend/lexer.pyc 35  9 /home/andy/git/oilshell/oil/oil_lang/expr_parse.pyc 41 10 /home/andy/git/oilshell/oil/osh/word_parse.pyc 44 11 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc 47 -- Unique opcodes for parsing: 54