===== BASIC METRICS -- Number of files: 118 -- Total bytecode bytes: 467343 -- Total instructions: 168543 Duplicate path/name path code_name n 1 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 182 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 182 3 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc AbbreviatedTree 182 4 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc PrettyTree 182 5 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc Create 171 6 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc __init__ 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/core/process.pyc WaitForOne str 1282 11 /home/andy/git/oilshell/oil/tools/osh2oil.pyc _GetRhsStyle str 1209 12 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc _MaybeExpandAliases str 1168 13 /home/andy/git/oilshell/oil/pgen2/parse.pyc Parser str 1076 14 /home/andy/git/oilshell/oil/core/completion.pyc str 886 15 /home/andy/git/oilshell/oil/osh/braces.pyc _BraceDetect str 824 16 /home/andy/git/oilshell/oil/core/dev.pyc CrashDumper str 820 17 /home/andy/git/oilshell/oil/pgen2/grammar.pyc dump str 771 18 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc ParseCommand str 764 19 /home/andy/git/oilshell/oil/pgen2/parse.pyc __init__ str 744 20 /home/andy/git/oilshell/oil/oil_lang/expr_to_ast.pyc Transformer str 734 -- total string bytes: 210452 ===== FRAMES Frames with many consts path code_name n 1 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc 842 2 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind_asdl.pyc 814 3 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc PrettyTree 799 4 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 754 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 384 7 /home/andy/git/oilshell/oil/_devbuild/gen/option_asdl.pyc 289 8 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 286 9 /home/andy/git/oilshell/oil/frontend/lexer_def.pyc 245 10 /home/andy/git/oilshell/oil/_devbuild/gen/help_.pyc 226 11 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc Create 226 12 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc _AbbreviatedTree 182 13 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc PrettyTree 182 14 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 182 15 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc AbbreviatedTree 182 16 /home/andy/git/oilshell/oil/frontend/flag_def.pyc 139 17 /home/andy/git/oilshell/oil/_devbuild/gen/arg_types.pyc __init__ 133 18 /home/andy/git/oilshell/oil/frontend/option_def.pyc 122 19 /home/andy/git/oilshell/oil/osh/builtin_pure.pyc Run 121 20 /home/andy/git/oilshell/oil/_devbuild/gen/option_asdl.pyc option_i 107 Frames with many ops path code_name n 1 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc PrettyTree 11941 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 10141 3 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc 3104 4 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch 2805 5 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind.pyc 2354 6 /home/andy/git/oilshell/oil/frontend/lexer_def.pyc 2247 7 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc _AbbreviatedTree 2112 8 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc PrettyTree 2112 9 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 1891 10 /home/andy/git/oilshell/oil/osh/builtin_pure.pyc Run 1789 11 /home/andy/git/oilshell/oil/core/completion.pyc Matches 1774 12 /home/andy/git/oilshell/oil/core/shell.pyc Main 1657 13 /home/andy/git/oilshell/oil/oil_lang/expr_eval.pyc _EvalExpr 1563 14 /home/andy/git/oilshell/oil/_devbuild/gen/arg_types.pyc __init__ 1346 15 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoCommand 1325 16 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind_asdl.pyc 1305 17 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 1119 18 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc Create 937 19 /home/andy/git/oilshell/oil/osh/sh_expr_eval.pyc Eval 909 20 /home/andy/git/oilshell/oil/osh/builtin_meta.pyc Run 908 Frames with large stacksize path code_name argcount nlocals stacksize bytecode_bytes 1 /home/andy/git/oilshell/oil/_devbuild/gen/help_.pyc 0 0 225 685 2 /home/andy/git/oilshell/oil/frontend/lexer_def.pyc 0 0 60 6497 3 /home/andy/git/oilshell/oil/frontend/id_kind_def.pyc AddKinds 1 1 47 1587 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 928 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 91 15 7929 8 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc RunPendingTraps 1 3 15 157 9 /home/andy/git/oilshell/oil/core/shell.pyc Main 6 97 14 4639 10 /home/andy/git/oilshell/oil/osh/arith_parse.pyc MakeShellSpec 0 1 14 810 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 4639 2 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch 3 91 15 7929 3 /home/andy/git/oilshell/oil/oil_lang/expr_eval.pyc _EvalExpr 2 42 10 4389 4 /home/andy/git/oilshell/oil/osh/builtin_assign.pyc _PrintVariables 5 42 10 2060 5 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoCommand 4 42 12 3597 6 /home/andy/git/oilshell/oil/core/completion.pyc Matches 2 40 7 2918 7 /home/andy/git/oilshell/oil/osh/builtin_printf.pyc _Format 5 39 6 2196 8 /home/andy/git/oilshell/oil/oil_lang/expr_parse.pyc _PushOilTokens 5 34 8 1708 9 /home/andy/git/oilshell/oil/osh/history.pyc Eval 2 33 6 1255 10 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc _MaybeExpandAliases 2 26 13 653 ===== NAMES Common types kind n 1 name 35329 2 var 11543 3 cell 4 4 free 4 Common names name n 1 self 2287 2 None 913 3 __name__ 706 4 __module__ 690 5 append 655 6 __init__ 570 7 AssertionError 493 8 fields 469 9 NewRecord 469 10 L 461 11 _AbbreviatedTree 457 12 out_node 456 13 field 421 14 x0 415 15 AbbreviatedTree 393 16 PrettyTree 390 17 name 307 18 children 297 19 x1 288 20 __doc__ 282 -- Total length of all 46880 names: 352579 -- Total length of 5036 unique names: 49852 ===== CONSTS Types of constants type n 1 str 8182 2 code 3669 3 int 3135 4 NoneType 2879 5 tuple 1566 6 float 10 ===== FLAGS Common flags flag n 1 CO_NEWLOCALS 3669 2 CO_OPTIMIZED 2980 3 CO_FUTURE_PRINT_FUNCTION 1529 4 CO_GENERATOR 23 5 CO_VARARGS 20 6 CO_NESTED 11 7 CO_VARKEYWORDS 3 ===== OPS Ops Used by Frequency op_name n 1 LOAD_FAST 27019 2 LOAD_ATTR 21825 3 LOAD_CONST 21801 4 CALL_FUNCTION 15678 5 LOAD_GLOBAL 13141 6 STORE_NAME 9274 7 STORE_FAST 8388 8 POP_TOP 6035 9 RETURN_VALUE 4909 10 LOAD_NAME 4477 11 POP_JUMP_IF_FALSE 4434 12 MAKE_FUNCTION 3665 13 COMPARE_OP 3525 14 JUMP_FORWARD 2793 15 IMPORT_FROM 2400 16 STORE_ATTR 1781 17 STORE_MAP 1500 18 JUMP_ABSOLUTE 1447 19 IMPORT_NAME 1295 20 BUILD_TUPLE 1230 21 POP_BLOCK 1073 22 BUILD_LIST 1033 23 RAISE_VARARGS 964 24 BINARY_SUBSCR 929 25 POP_JUMP_IF_TRUE 779 26 SETUP_LOOP 723 27 FOR_ITER 693 28 GET_ITER 693 29 BUILD_CLASS 689 30 LOAD_LOCALS 689 31 BINARY_MODULO 470 32 UNPACK_SEQUENCE 355 33 END_FINALLY 350 34 BINARY_ADD 332 35 STORE_SUBSCR 241 36 DUP_TOP 220 37 SETUP_WITH 177 38 WITH_CLEANUP 177 39 SETUP_EXCEPT 168 40 BUILD_MAP 156 41 BREAK_LOOP 121 42 SLICE+1 100 43 UNARY_NOT 100 44 INPLACE_ADD 93 45 BINARY_SUBTRACT 73 46 LOAD_DEREF 63 47 LIST_APPEND 59 48 BINARY_AND 54 49 SLICE+3 39 50 YIELD_VALUE 35 51 BINARY_LSHIFT 27 52 BINARY_MULTIPLY 27 53 ROT_TWO 25 54 SLICE+2 25 55 INPLACE_OR 22 56 BINARY_OR 15 57 BINARY_RSHIFT 15 58 JUMP_IF_TRUE_OR_POP 15 59 JUMP_IF_FALSE_OR_POP 14 60 DELETE_SLICE+0 13 61 INPLACE_SUBTRACT 12 62 BINARY_DIVIDE 7 63 STORE_GLOBAL 6 64 CALL_FUNCTION_VAR_KW 5 65 DELETE_SUBSCR 5 66 PRINT_ITEM 5 67 PRINT_NEWLINE 5 68 SETUP_FINALLY 5 69 UNARY_NEGATIVE 5 70 LOAD_CLOSURE 4 71 MAKE_CLOSURE 4 72 BINARY_XOR 3 73 UNARY_INVERT 3 74 BINARY_FLOOR_DIVIDE 2 75 CALL_FUNCTION_VAR 2 76 CONTINUE_LOOP 2 77 STORE_SLICE+0 2 78 BINARY_POWER 1 79 INPLACE_MULTIPLY 1 80 INPLACE_RSHIFT 1 -- Total unique opcodes: 80 Unused opcodes: op_name 1 BINARY_TRUE_DIVIDE 2 BUILD_SET 3 BUILD_SLICE 4 CALL_FUNCTION_KW 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 DUP_TOPX 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 ROT_THREE 31 SET_ADD 32 SLICE+0 33 STOP_CODE 34 STORE_DEREF 35 STORE_SLICE+1 36 STORE_SLICE+2 37 STORE_SLICE+3 38 UNARY_CONVERT 39 UNARY_POSITIVE Memory Operations: kind op_name n 1 ATTR LOAD_ATTR 21825 2 ATTR STORE_ATTR 1781 3 CLOSURE LOAD_CLOSURE 4 4 CONST LOAD_CONST 21801 5 DEREF LOAD_DEREF 63 6 FAST LOAD_FAST 27019 7 FAST STORE_FAST 8388 8 GLOBAL LOAD_GLOBAL 13141 9 GLOBAL STORE_GLOBAL 6 10 LOCALS LOAD_LOCALS 689 11 MAP STORE_MAP 1500 12 NAME STORE_NAME 9274 13 NAME LOAD_NAME 4477 14 SLICE STORE_SLICE+0 2 15 SUBSCR STORE_SUBSCR 241 Imports: op_name n 1 IMPORT_FROM 2400 2 IMPORT_NAME 1295 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 7919 2 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7919 3 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7919 4 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7919 5 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7919 6 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7919 7 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7919 8 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch POP_JUMP_IF_FALSE 7919 9 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch POP_JUMP_IF_FALSE 7919 10 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7919 ===== 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/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 x 2 # Groups: path [10] path n 1 /home/andy/git/oilshell/oil/core/comp_ui.pyc 47 2 /home/andy/git/oilshell/oil/core/process.pyc 47 3 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc 47 4 /home/andy/git/oilshell/oil/osh/string_ops.pyc 50 5 /home/andy/git/oilshell/oil/osh/sh_expr_eval.pyc 51 6 /home/andy/git/oilshell/oil/osh/word_eval.pyc 51 7 /home/andy/git/oilshell/oil/core/completion.pyc 52 8 /home/andy/git/oilshell/oil/core/state.pyc 52 9 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc 53 10 /home/andy/git/oilshell/oil/oil_lang/expr_eval.pyc 63 Unique ops for files that just parse: # A tibble: 10 x 2 # Groups: path [10] 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/osh/bool_parse.pyc 30 4 /home/andy/git/oilshell/oil/pgen2/parse.pyc 32 5 /home/andy/git/oilshell/oil/frontend/reader.pyc 33 6 /home/andy/git/oilshell/oil/frontend/parse_lib.pyc 34 7 /home/andy/git/oilshell/oil/frontend/lexer.pyc 36 8 /home/andy/git/oilshell/oil/oil_lang/expr_parse.pyc 43 9 /home/andy/git/oilshell/oil/osh/word_parse.pyc 44 10 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc 47 -- Unique opcodes for parsing: 55