===== BASIC METRICS -- Number of files: 114 -- Total bytecode bytes: 448917 -- Total instructions: 161801 Duplicate path/name path code_name n 1 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 171 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 171 3 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc AbbreviatedTree 171 4 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc PrettyTree 171 5 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc __init__ 45 6 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc _AbbreviatedTree 45 ===== 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/osh/cmd_parse.pyc ParseSimpleCommand str 2301 4 /home/andy/git/oilshell/oil/qsn_/qsn.pyc str 2295 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/tools/osh2oil.pyc DoWordInCommand str 1139 13 /home/andy/git/oilshell/oil/pgen2/parse.pyc Parser str 1076 14 /home/andy/git/oilshell/oil/core/process.pyc WaitForOne str 1046 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/osh/cmd_parse.pyc ParseCompoundCommand str 808 19 /home/andy/git/oilshell/oil/pgen2/grammar.pyc dump str 771 20 /home/andy/git/oilshell/oil/pgen2/parse.pyc __init__ str 744 -- total string bytes: 201277 ===== FRAMES Frames with many consts path code_name n 1 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind_asdl.pyc 810 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc PrettyTree 784 3 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc 779 4 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 703 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 382 7 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 275 8 /home/andy/git/oilshell/oil/_devbuild/gen/option_asdl.pyc 273 9 /home/andy/git/oilshell/oil/frontend/lexer_def.pyc 240 10 /home/andy/git/oilshell/oil/_devbuild/gen/help_.pyc 209 11 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc PrettyTree 175 12 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 171 13 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc AbbreviatedTree 171 14 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc _AbbreviatedTree 170 15 /home/andy/git/oilshell/oil/frontend/flag_def.pyc 120 16 /home/andy/git/oilshell/oil/frontend/option_def.pyc 118 17 /home/andy/git/oilshell/oil/_devbuild/gen/arg_types.pyc __init__ 112 18 /home/andy/git/oilshell/oil/_devbuild/gen/option_asdl.pyc option_i 101 19 /home/andy/git/oilshell/oil/core/state.pyc 91 20 /home/andy/git/oilshell/oil/_devbuild/gen/grammar_nt.pyc 89 Frames with many ops path code_name n 1 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc PrettyTree 12362 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 9284 3 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 2903 4 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc 2848 5 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch 2660 6 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind.pyc 2344 7 /home/andy/git/oilshell/oil/frontend/lexer_def.pyc 2231 8 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc PrettyTree 2052 9 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc _AbbreviatedTree 1862 10 /home/andy/git/oilshell/oil/core/completion.pyc Matches 1713 11 /home/andy/git/oilshell/oil/core/shell.pyc Main 1581 12 /home/andy/git/oilshell/oil/oil_lang/expr_eval.pyc EvalExpr 1399 13 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind_asdl.pyc 1299 14 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoCommand 1264 15 /home/andy/git/oilshell/oil/osh/builtin_pure.pyc Run 1144 16 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 1075 17 /home/andy/git/oilshell/oil/_devbuild/gen/arg_types.pyc __init__ 1066 18 /home/andy/git/oilshell/oil/core/shell_native.pyc Main 963 19 /home/andy/git/oilshell/oil/core/oven.pyc Main 954 20 /home/andy/git/oilshell/oil/osh/builtin_misc.pyc Run 945 Frames with large stacksize path code_name argcount nlocals stacksize bytecode_bytes 1 /home/andy/git/oilshell/oil/_devbuild/gen/help_.pyc 0 0 208 634 2 /home/andy/git/oilshell/oil/frontend/lexer_def.pyc 0 0 60 6461 3 /home/andy/git/oilshell/oil/frontend/id_kind_def.pyc AddKinds 1 1 47 1581 4 /home/andy/git/oilshell/oil/frontend/builtin_def.pyc 0 0 42 313 5 /home/andy/git/oilshell/oil/frontend/option_def.pyc 0 0 41 1024 6 /home/andy/git/oilshell/oil/osh/builtin_meta.pyc Run 2 14 22 528 7 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc ParseCommand 1 12 16 1099 8 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc RunPendingTraps 1 3 15 167 9 /home/andy/git/oilshell/oil/osh/arith_parse.pyc MakeShellSpec 0 1 14 810 10 /home/andy/git/oilshell/oil/osh/builtin_meta.pyc Run 2 9 14 276 Frames with many locals path code_name argcount nlocals stacksize bytecode_bytes 1 /home/andy/git/oilshell/oil/core/shell.pyc Main 6 91 13 4411 2 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch 3 89 13 7508 3 /home/andy/git/oilshell/oil/core/oven.pyc Main 6 73 10 2698 4 /home/andy/git/oilshell/oil/core/shell_native.pyc Main 6 73 13 2725 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/tools/osh2oil.pyc DoCommand 4 38 6 3428 8 /home/andy/git/oilshell/oil/core/completion.pyc Matches 2 37 11 2740 9 /home/andy/git/oilshell/oil/oil_lang/expr_eval.pyc EvalExpr 2 37 8 3937 10 /home/andy/git/oilshell/oil/oil_lang/expr_parse.pyc _PushOilTokens 4 32 7 1656 ===== NAMES Common types kind n 1 name 33093 2 var 11116 3 free 12 4 cell 11 Common names name n 1 self 2126 2 None 895 3 __name__ 670 4 __module__ 648 5 append 635 6 __init__ 520 7 AssertionError 453 8 NewRecord 446 9 fields 445 10 L 437 11 _AbbreviatedTree 433 12 out_node 432 13 field 402 14 x0 396 15 AbbreviatedTree 367 16 PrettyTree 364 17 spids 351 18 tag 325 19 children 311 20 name 304 -- Total length of all 44232 names: 327282 -- Total length of 4785 unique names: 47149 ===== CONSTS Types of constants type n 1 str 7996 2 code 3249 3 int 3002 4 NoneType 2667 5 tuple 1499 6 float 7 ===== FLAGS Common flags flag n 1 CO_NEWLOCALS 3249 2 CO_OPTIMIZED 2602 3 CO_FUTURE_PRINT_FUNCTION 1410 4 CO_VARARGS 36 5 CO_GENERATOR 25 6 CO_NESTED 23 7 CO_VARKEYWORDS 11 ===== OPS Ops Used by Frequency op_name n 1 LOAD_FAST 26578 2 LOAD_ATTR 21419 3 LOAD_CONST 21038 4 CALL_FUNCTION 14598 5 LOAD_GLOBAL 12161 6 STORE_NAME 8465 7 STORE_FAST 8103 8 POP_TOP 5943 9 POP_JUMP_IF_FALSE 4543 10 RETURN_VALUE 4466 11 LOAD_NAME 4176 12 COMPARE_OP 3421 13 MAKE_FUNCTION 3241 14 JUMP_FORWARD 2918 15 IMPORT_FROM 2165 16 STORE_ATTR 1701 17 STORE_MAP 1468 18 JUMP_ABSOLUTE 1449 19 IMPORT_NAME 1245 20 BUILD_TUPLE 1166 21 POP_BLOCK 1055 22 BUILD_LIST 1037 23 BINARY_SUBSCR 890 24 RAISE_VARARGS 862 25 SETUP_LOOP 735 26 FOR_ITER 707 27 GET_ITER 707 28 POP_JUMP_IF_TRUE 686 29 BUILD_CLASS 647 30 LOAD_LOCALS 647 31 UNPACK_SEQUENCE 353 32 END_FINALLY 320 33 BINARY_ADD 316 34 BINARY_MODULO 314 35 STORE_SUBSCR 269 36 DUP_TOP 222 37 SETUP_EXCEPT 169 38 BUILD_MAP 166 39 LOAD_DEREF 164 40 SETUP_WITH 137 41 WITH_CLEANUP 137 42 BREAK_LOOP 120 43 SLICE+1 105 44 INPLACE_ADD 99 45 UNARY_NOT 94 46 BINARY_SUBTRACT 74 47 LIST_APPEND 55 48 BINARY_AND 51 49 YIELD_VALUE 37 50 SLICE+3 35 51 SLICE+2 30 52 BINARY_LSHIFT 27 53 ROT_TWO 27 54 BINARY_MULTIPLY 26 55 JUMP_IF_TRUE_OR_POP 25 56 INPLACE_OR 18 57 BINARY_OR 15 58 BINARY_RSHIFT 15 59 JUMP_IF_FALSE_OR_POP 15 60 SETUP_FINALLY 14 61 DELETE_SLICE+0 12 62 INPLACE_SUBTRACT 12 63 LOAD_CLOSURE 12 64 CALL_FUNCTION_VAR_KW 10 65 DELETE_SUBSCR 9 66 MAKE_CLOSURE 8 67 BINARY_DIVIDE 7 68 STORE_DEREF 7 69 PRINT_ITEM 6 70 PRINT_NEWLINE 6 71 UNARY_NEGATIVE 5 72 CALL_FUNCTION_VAR 4 73 STORE_GLOBAL 4 74 BINARY_XOR 3 75 UNARY_INVERT 3 76 BINARY_FLOOR_DIVIDE 2 77 BINARY_POWER 1 78 DUP_TOPX 1 79 INPLACE_MULTIPLY 1 80 INPLACE_RSHIFT 1 81 ROT_THREE 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_AND 17 INPLACE_DIVIDE 18 INPLACE_FLOOR_DIVIDE 19 INPLACE_LSHIFT 20 INPLACE_MODULO 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: kind op_name n 1 ATTR LOAD_ATTR 21419 2 ATTR STORE_ATTR 1701 3 CLOSURE LOAD_CLOSURE 12 4 CONST LOAD_CONST 21038 5 DEREF LOAD_DEREF 164 6 DEREF STORE_DEREF 7 7 FAST LOAD_FAST 26578 8 FAST STORE_FAST 8103 9 GLOBAL LOAD_GLOBAL 12161 10 GLOBAL STORE_GLOBAL 4 11 LOCALS LOAD_LOCALS 647 12 MAP STORE_MAP 1468 13 NAME STORE_NAME 8465 14 NAME LOAD_NAME 4176 15 SUBSCR STORE_SUBSCR 269 Imports: op_name n 1 IMPORT_FROM 2165 2 IMPORT_NAME 1245 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 7492 2 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7492 3 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7492 4 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch POP_JUMP_IF_FALSE 7492 5 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7492 6 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7492 7 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7492 8 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7492 9 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch POP_JUMP_IF_FALSE 7492 10 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7492 ===== UNIQUE OPS Files with few ops: # A tibble: 20 × 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/asdl/__init__.pyc 2  4 /home/andy/git/oilshell/oil/bin/__init__.pyc 2  5 /home/andy/git/oilshell/oil/core/__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/qsn_/__init__.pyc 2 12 /home/andy/git/oilshell/oil/tea/__init__.pyc 2 13 /home/andy/git/oilshell/oil/tools/__init__.pyc 2 14 /home/andy/git/oilshell/oil/_devbuild/gen/grammar_nt.pyc 3 15 /home/andy/git/oilshell/oil/pgen2/__init__.pyc 3 16 /home/andy/git/oilshell/oil/_devbuild/gen/help_.pyc 4 17 /home/andy/git/oilshell/oil/core/ansi.pyc 6 18 /home/andy/git/oilshell/oil/vendor/typing.pyc 6 19 /home/andy/git/oilshell/oil/pylib/cgi.pyc 8 20 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind.pyc 10 Files with many ops: # A tibble: 10 × 2 # Groups: path [10] path n    1 /home/andy/git/oilshell/oil/osh/builtin_pure.pyc 47  2 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc 47  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/core/comp_ui.pyc 54  6 /home/andy/git/oilshell/oil/core/state.pyc 54  7 /home/andy/git/oilshell/oil/osh/word_eval.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 61 Unique ops for files that just parse: # A tibble: 11 × 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