===== BASIC METRICS -- Number of files: 122 -- Total bytecode bytes: 507788 -- Total instructions: 182940 Duplicate path/name path code_name n 1 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 189 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 189 3 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc AbbreviatedTree 189 4 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc PrettyTree 189 5 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc CreateNull 174 6 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc __init__ 55 ===== BIG STRINGS path code_name type len_or_val 1 /home/andy/git/oilshell/oil/osh/word_parse.pyc _ReadBracedVarSub str 2832 2 /home/andy/git/oilshell/oil/pgen2/grammar.pyc Grammar str 2600 3 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc ParseSimpleCommand str 2479 4 /home/andy/git/oilshell/oil/data_lang/qsn.pyc str 2264 5 /home/andy/git/oilshell/oil/Python-2.7.13/Lib/__future__.pyc str 1638 6 /home/andy/git/oilshell/oil/core/executor.pyc RunProcessSub str 1531 7 /home/andy/git/oilshell/oil/frontend/args.pyc str 1527 8 /home/andy/git/oilshell/oil/data_lang/j8_str.pyc Encode str 1412 9 /home/andy/git/oilshell/oil/core/process.pyc WaitForOne str 1386 10 /home/andy/git/oilshell/oil/osh/word_parse.pyc str 1305 11 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc _MaybeExpandAliases str 1280 12 /home/andy/git/oilshell/oil/tools/ysh_ify.pyc _GetRhsStyle str 1254 13 /home/andy/git/oilshell/oil/pgen2/parse.pyc Parser str 1076 14 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc CommandParser str 994 15 /home/andy/git/oilshell/oil/data_lang/qsn.pyc EncodeRunes str 923 16 /home/andy/git/oilshell/oil/mycpp/mylib.pyc UniqueObjects str 912 17 /home/andy/git/oilshell/oil/core/completion.pyc str 886 18 /home/andy/git/oilshell/oil/osh/braces.pyc BraceDetect str 854 19 /home/andy/git/oilshell/oil/core/dev.pyc CrashDumper str 850 20 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc ParseCommand str 844 -- total string bytes: 237004 ===== FRAMES Frames with many consts path code_name n 1 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 816 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc PrettyTree 816 3 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind_asdl.pyc 814 4 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc 593 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/syntax_asdl.pyc CreateNull 349 8 /home/andy/git/oilshell/oil/_devbuild/gen/help_meta.pyc 294 9 /home/andy/git/oilshell/oil/_devbuild/gen/option_asdl.pyc 287 10 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 265 11 /home/andy/git/oilshell/oil/frontend/lexer_def.pyc 246 12 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc _AbbreviatedTree 211 13 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc PrettyTree 211 14 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 189 15 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc AbbreviatedTree 189 16 /home/andy/git/oilshell/oil/frontend/flag_def.pyc 171 17 /home/andy/git/oilshell/oil/_devbuild/gen/arg_types.pyc __init__ 157 18 /home/andy/git/oilshell/oil/frontend/option_def.pyc 121 19 /home/andy/git/oilshell/oil/osh/builtin_pure.pyc Run 116 20 /home/andy/git/oilshell/oil/core/state.pyc 106 Frames with many ops path code_name n 1 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 11122 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc PrettyTree 11122 3 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch 2683 4 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc CreateNull 2476 5 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc _AbbreviatedTree 2451 6 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc PrettyTree 2451 7 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind.pyc 2354 8 /home/andy/git/oilshell/oil/frontend/lexer_def.pyc 2256 9 /home/andy/git/oilshell/oil/core/shell.pyc Main 2122 10 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc 2095 11 /home/andy/git/oilshell/oil/_devbuild/gen/arg_types.pyc __init__ 1735 12 /home/andy/git/oilshell/oil/osh/builtin_pure.pyc Run 1728 13 /home/andy/git/oilshell/oil/core/completion.pyc Matches 1663 14 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 1650 15 /home/andy/git/oilshell/oil/tools/ysh_ify.pyc DoCommand 1347 16 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind_asdl.pyc 1305 17 /home/andy/git/oilshell/oil/osh/builtin_meta.pyc Run 1072 18 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 1000 19 /home/andy/git/oilshell/oil/frontend/flag_def.pyc 982 20 /home/andy/git/oilshell/oil/library/func_misc.pyc Call 949 Frames with large stacksize path code_name argcount nlocals stacksize bytecode_bytes 1 /home/andy/git/oilshell/oil/frontend/lexer_def.pyc 0 0 60 6524 2 /home/andy/git/oilshell/oil/frontend/builtin_def.pyc 0 0 47 328 3 /home/andy/git/oilshell/oil/frontend/id_kind_def.pyc AddKinds 1 1 47 1587 4 /home/andy/git/oilshell/oil/frontend/option_def.pyc 0 0 41 913 5 /home/andy/git/oilshell/oil/frontend/signal_def.pyc 0 0 26 220 6 /home/andy/git/oilshell/oil/osh/builtin_meta.pyc _Exec 5 10 22 263 7 /home/andy/git/oilshell/oil/tools/ysh_ify.pyc DoCommand 4 39 20 3715 8 /home/andy/git/oilshell/oil/core/shell.pyc Main 6 108 16 5910 9 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch 3 86 15 7643 10 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc RunPendingTraps 1 3 15 157 Frames with many locals path code_name argcount nlocals stacksize bytecode_bytes 1 /home/andy/git/oilshell/oil/core/shell.pyc Main 6 108 16 5910 2 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch 3 86 15 7643 3 /home/andy/git/oilshell/oil/osh/builtin_assign.pyc _PrintVariables 5 42 10 2090 4 /home/andy/git/oilshell/oil/osh/builtin_printf.pyc _Format 5 39 6 2187 5 /home/andy/git/oilshell/oil/tools/ysh_ify.pyc DoCommand 4 39 20 3715 6 /home/andy/git/oilshell/oil/core/completion.pyc Matches 2 38 9 2821 7 /home/andy/git/oilshell/oil/ysh/expr_parse.pyc _PushOilTokens 5 34 8 1842 8 /home/andy/git/oilshell/oil/osh/history.pyc Eval 2 30 6 1211 9 /home/andy/git/oilshell/oil/ysh/expr_eval.pyc _EvalExpr 2 25 9 2065 10 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc _MaybeExpandAliases 2 24 13 617 ===== NAMES Common types kind n 1 name 37863 2 var 12668 3 cell 1 4 free 1 Common names name n 1 self 2556 2 None 981 3 __name__ 785 4 __module__ 773 5 append 676 6 __init__ 660 7 AssertionError 575 8 fields 501 9 NewRecord 501 10 cast 492 11 L 490 12 _AbbreviatedTree 489 13 out_node 488 14 False 458 15 Field 444 16 x0 440 17 AbbreviatedTree 434 18 PrettyTree 433 19 value 306 20 name 305 -- Total length of all 50533 names: 368029 -- Total length of 5166 unique names: 50128 ===== CONSTS Types of constants type n 1 str 8922 2 code 4062 3 int 3246 4 NoneType 3165 5 tuple 1601 6 float 14 ===== FLAGS Common flags flag n 1 CO_NEWLOCALS 4062 2 CO_OPTIMIZED 3290 3 CO_FUTURE_PRINT_FUNCTION 1784 4 CO_GENERATOR 22 5 CO_VARARGS 12 6 CO_NESTED 6 7 CO_VARKEYWORDS 3 ===== OPS Ops Used by Frequency op_name n 1 LOAD_FAST 29306 2 LOAD_ATTR 24301 3 LOAD_CONST 23841 4 CALL_FUNCTION 17558 5 LOAD_GLOBAL 14781 6 STORE_NAME 9551 7 STORE_FAST 8940 8 POP_TOP 6324 9 RETURN_VALUE 5472 10 POP_JUMP_IF_FALSE 4745 11 LOAD_NAME 4709 12 MAKE_FUNCTION 4061 13 COMPARE_OP 3788 14 JUMP_FORWARD 2930 15 IMPORT_FROM 2276 16 STORE_ATTR 1960 17 STORE_MAP 1806 18 JUMP_ABSOLUTE 1472 19 BUILD_TUPLE 1381 20 IMPORT_NAME 1311 21 RAISE_VARARGS 1155 22 POP_BLOCK 1135 23 POP_JUMP_IF_TRUE 939 24 BUILD_LIST 918 25 BUILD_CLASS 772 26 LOAD_LOCALS 772 27 BINARY_SUBSCR 739 28 SETUP_LOOP 717 29 FOR_ITER 687 30 GET_ITER 687 31 BINARY_MODULO 515 32 END_FINALLY 418 33 UNPACK_SEQUENCE 392 34 BINARY_ADD 294 35 STORE_SUBSCR 252 36 SETUP_WITH 246 37 WITH_CLEANUP 246 38 DUP_TOP 226 39 BUILD_MAP 172 40 SETUP_EXCEPT 171 41 BREAK_LOOP 124 42 INPLACE_ADD 101 43 SLICE+1 101 44 UNARY_NOT 100 45 BINARY_SUBTRACT 73 46 LIST_APPEND 68 47 BINARY_AND 54 48 SLICE+3 40 49 YIELD_VALUE 34 50 BINARY_MULTIPLY 30 51 ROT_TWO 29 52 SLICE+2 25 53 BINARY_LSHIFT 24 54 INPLACE_OR 22 55 BINARY_OR 18 56 BINARY_RSHIFT 15 57 JUMP_IF_FALSE_OR_POP 15 58 JUMP_IF_TRUE_OR_POP 15 59 DELETE_SLICE+0 13 60 INPLACE_SUBTRACT 13 61 BINARY_DIVIDE 8 62 STORE_GLOBAL 6 63 UNARY_NEGATIVE 6 64 DELETE_SUBSCR 5 65 PRINT_ITEM 5 66 PRINT_NEWLINE 5 67 BINARY_XOR 3 68 CONTINUE_LOOP 3 69 UNARY_INVERT 3 70 BINARY_FLOOR_DIVIDE 2 71 CALL_FUNCTION_VAR 2 72 CALL_FUNCTION_VAR_KW 2 73 INPLACE_MULTIPLY 2 74 LOAD_DEREF 2 75 STORE_SLICE+0 2 76 INPLACE_RSHIFT 1 77 LOAD_CLOSURE 1 78 MAKE_CLOSURE 1 79 SETUP_FINALLY 1 -- Total unique opcodes: 79 Unused opcodes: op_name 1 BINARY_POWER 2 BINARY_TRUE_DIVIDE 3 BUILD_SET 4 BUILD_SLICE 5 CALL_FUNCTION_KW 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 DUP_TOPX 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_POWER 23 INPLACE_TRUE_DIVIDE 24 INPLACE_XOR 25 MAP_ADD 26 NOP 27 PRINT_EXPR 28 PRINT_ITEM_TO 29 PRINT_NEWLINE_TO 30 ROT_FOUR 31 ROT_THREE 32 SET_ADD 33 SLICE+0 34 STOP_CODE 35 STORE_DEREF 36 STORE_SLICE+1 37 STORE_SLICE+2 38 STORE_SLICE+3 39 UNARY_CONVERT 40 UNARY_POSITIVE Memory Operations: kind op_name n 1 ATTR LOAD_ATTR 24301 2 ATTR STORE_ATTR 1960 3 CLOSURE LOAD_CLOSURE 1 4 CONST LOAD_CONST 23841 5 DEREF LOAD_DEREF 2 6 FAST LOAD_FAST 29306 7 FAST STORE_FAST 8940 8 GLOBAL LOAD_GLOBAL 14781 9 GLOBAL STORE_GLOBAL 6 10 LOCALS LOAD_LOCALS 772 11 MAP STORE_MAP 1806 12 NAME STORE_NAME 9551 13 NAME LOAD_NAME 4709 14 SLICE STORE_SLICE+0 2 15 SUBSCR STORE_SUBSCR 252 Imports: op_name n 1 IMPORT_FROM 2276 2 IMPORT_NAME 1311 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 7633 2 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7633 3 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7633 4 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7633 5 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7633 6 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7633 7 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7633 8 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch POP_JUMP_IF_FALSE 7633 9 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch POP_JUMP_IF_FALSE 7633 10 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7633 ===== 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/data_lang/__init__.pyc 2 7 /home/andy/git/oilshell/oil/frontend/__init__.pyc 2 8 /home/andy/git/oilshell/oil/library/__init__.pyc 2 9 /home/andy/git/oilshell/oil/mycpp/__init__.pyc 2 10 /home/andy/git/oilshell/oil/osh/__init__.pyc 2 11 /home/andy/git/oilshell/oil/pylib/__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/ysh/__init__.pyc 2 15 /home/andy/git/oilshell/oil/_devbuild/gen/grammar_nt.pyc 3 16 /home/andy/git/oilshell/oil/pgen2/__init__.pyc 3 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/data_lang/j8_str.pyc 8 20 /home/andy/git/oilshell/oil/pylib/cgi.pyc 8 Files with many ops: # A tibble: 10 x 2 # Groups: path [10] path n 1 /home/andy/git/oilshell/oil/core/dev.pyc 47 2 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc 47 3 /home/andy/git/oilshell/oil/core/process.pyc 48 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 53 8 /home/andy/git/oilshell/oil/core/state.pyc 53 9 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc 53 10 /home/andy/git/oilshell/oil/ysh/expr_eval.pyc 54 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/frontend/parse_lib.pyc 32 5 /home/andy/git/oilshell/oil/pgen2/parse.pyc 32 6 /home/andy/git/oilshell/oil/frontend/reader.pyc 33 7 /home/andy/git/oilshell/oil/frontend/lexer.pyc 36 8 /home/andy/git/oilshell/oil/ysh/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