===== BASIC METRICS -- Number of files: 109 -- Total bytecode bytes: 412011 -- Total instructions: 148499 Duplicate path/name # A tibble: 6 x 3 path code_name n 1 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc AbbreviatedTree 165 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 165 3 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 165 4 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc PrettyTree 165 5 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc AbbreviatedTree 32 6 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc _AbbreviatedTree 32 ===== 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/qsn_/qsn.pyc str 2295 4 /home/andy/git/oilshell/oil/osh/word_parse.pyc _ReadBracedVarSub str 2248 5 /home/andy/git/oilshell/oil/frontend/args.pyc str 1726 6 /home/andy/git/oilshell/oil/oil_lang/objects.pyc Regex str 1646 7 /home/andy/git/oilshell/oil/Python-2.7.13/Lib/__future__.pyc str 1638 8 /home/andy/git/oilshell/oil/core/executor.pyc RunProcessSub str 1423 9 /home/andy/git/oilshell/oil/osh/word_parse.pyc str 1297 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/frontend/flag_spec.pyc _OilFlagSpec str 1141 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/pgen2/parse.pyc __init__ str 744 20 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc ParseCompoundCommand str 735 -- total string bytes: 187790 ===== 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 766 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc 761 3 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc PrettyTree 742 4 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 668 5 /home/andy/git/oilshell/oil/frontend/id_kind_def.pyc AddKinds 381 6 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind_asdl.pyc Id 361 7 /home/andy/git/oilshell/oil/_devbuild/gen/option_asdl.pyc 254 8 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 239 9 /home/andy/git/oilshell/oil/frontend/lexer_def.pyc 230 10 /home/andy/git/oilshell/oil/_devbuild/gen/help_.pyc 182 11 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc AbbreviatedTree 165 12 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 165 13 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc PrettyTree 130 14 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc _AbbreviatedTree 125 15 /home/andy/git/oilshell/oil/frontend/option_def.pyc 110 16 /home/andy/git/oilshell/oil/_devbuild/gen/arg_types.pyc __init__ 97 17 /home/andy/git/oilshell/oil/frontend/flag_def.pyc 96 18 /home/andy/git/oilshell/oil/_devbuild/gen/option_asdl.pyc option_i 94 19 /home/andy/git/oilshell/oil/_devbuild/gen/grammar_nt.pyc 89 20 /home/andy/git/oilshell/oil/core/state.pyc 80 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 11626 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 8814 3 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc 2790 4 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 2711 5 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch 2490 6 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind.pyc 2239 7 /home/andy/git/oilshell/oil/frontend/lexer_def.pyc 2133 8 /home/andy/git/oilshell/oil/core/completion.pyc Matches 1714 9 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc PrettyTree 1610 10 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc _AbbreviatedTree 1420 11 /home/andy/git/oilshell/oil/core/shell.pyc Main 1381 12 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoCommand 1266 13 /home/andy/git/oilshell/oil/oil_lang/expr_eval.pyc EvalExpr 1245 14 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind_asdl.pyc 1230 15 /home/andy/git/oilshell/oil/osh/builtin_printf.pyc Run 942 16 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 929 17 /home/andy/git/oilshell/oil/_devbuild/gen/arg_types.pyc __init__ 926 18 /home/andy/git/oilshell/oil/core/pure.pyc Main 887 19 /home/andy/git/oilshell/oil/osh/builtin_misc.pyc Run 883 20 /home/andy/git/oilshell/oil/osh/sh_expr_eval.pyc Eval 878 Frames with large stacksize path code_name argcount nlocals stacksize bytecode_bytes 1 /home/andy/git/oilshell/oil/_devbuild/gen/help_.pyc 0 0 181 553 2 /home/andy/git/oilshell/oil/frontend/lexer_def.pyc 0 0 58 6173 3 /home/andy/git/oilshell/oil/frontend/id_kind_def.pyc AddKinds 1 1 46 1486 4 /home/andy/git/oilshell/oil/frontend/option_def.pyc 0 0 42 910 5 /home/andy/git/oilshell/oil/frontend/builtin_def.pyc 0 0 39 304 6 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc ParseCommand 1 12 17 1218 7 /home/andy/git/oilshell/oil/osh/arith_parse.pyc MakeShellSpec 0 1 14 810 8 /home/andy/git/oilshell/oil/core/state.pyc SetVar 5 23 13 1541 9 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch 3 86 13 7042 10 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc _MaybeExpandAliases 2 26 13 754 Frames with many locals path code_name argcount nlocals stacksize bytecode_bytes 1 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch 3 86 13 7042 2 /home/andy/git/oilshell/oil/core/shell.pyc Main 6 85 12 3889 3 /home/andy/git/oilshell/oil/core/pure.pyc Main 6 69 12 2517 4 /home/andy/git/oilshell/oil/osh/builtin_printf.pyc Run 2 49 10 2652 5 /home/andy/git/oilshell/oil/osh/builtin_assign.pyc _PrintVariables 5 42 10 2057 6 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoCommand 4 38 6 3432 7 /home/andy/git/oilshell/oil/core/completion.pyc Matches 2 37 11 2740 8 /home/andy/git/oilshell/oil/oil_lang/expr_eval.pyc EvalExpr 2 33 8 3505 9 /home/andy/git/oilshell/oil/oil_lang/expr_parse.pyc _PushOilTokens 4 32 5 1614 10 /home/andy/git/oilshell/oil/osh/history.pyc Eval 2 31 6 1199 ===== NAMES Common types # A tibble: 4 x 2 kind n 1 name 30449 2 var 10145 3 free 13 4 cell 12 Common names # A tibble: 20 x 2 name n 1 self 1946 2 None 823 3 __name__ 628 4 __module__ 607 5 append 594 6 __init__ 474 7 AssertionError 430 8 fields 409 9 NewRecord 408 10 L 396 11 _AbbreviatedTree 395 12 out_node 394 13 field 380 14 x0 374 15 AbbreviatedTree 336 16 PrettyTree 333 17 spids 325 18 tag 306 19 children 292 20 name 286 -- Total length of all 40619 names: 300191 -- Total length of 4532 unique names: 44507 ===== CONSTS Types of constants # A tibble: 6 x 2 type n 1 str 7334 2 code 2995 3 int 2764 4 NoneType 2451 5 tuple 1370 6 float 6 ===== FLAGS Common flags # A tibble: 7 x 2 flag n 1 CO_NEWLOCALS 2995 2 CO_OPTIMIZED 2389 3 CO_FUTURE_PRINT_FUNCTION 1294 4 CO_VARARGS 31 5 CO_GENERATOR 25 6 CO_NESTED 24 7 CO_VARKEYWORDS 11 ===== OPS Ops Used by Frequency # A tibble: 81 x 2 op_name n 1 LOAD_FAST 24204 2 LOAD_ATTR 19713 3 LOAD_CONST 19181 4 CALL_FUNCTION 13344 5 LOAD_GLOBAL 11134 6 STORE_NAME 7837 7 STORE_FAST 7501 8 POP_TOP 5351 9 POP_JUMP_IF_FALSE 4171 10 RETURN_VALUE 4116 11 LOAD_NAME 3976 12 COMPARE_OP 3129 13 MAKE_FUNCTION 2986 14 JUMP_FORWARD 2667 15 IMPORT_FROM 1973 16 STORE_ATTR 1539 17 STORE_MAP 1393 18 JUMP_ABSOLUTE 1349 19 IMPORT_NAME 1125 20 BUILD_TUPLE 1086 21 POP_BLOCK 978 22 BUILD_LIST 959 23 BINARY_SUBSCR 828 24 RAISE_VARARGS 818 25 SETUP_LOOP 692 26 FOR_ITER 664 27 GET_ITER 664 28 POP_JUMP_IF_TRUE 628 29 BUILD_CLASS 606 30 LOAD_LOCALS 606 31 UNPACK_SEQUENCE 323 32 BINARY_ADD 306 33 END_FINALLY 286 34 BINARY_MODULO 275 35 STORE_SUBSCR 223 36 DUP_TOP 211 37 LOAD_DEREF 170 38 SETUP_EXCEPT 160 39 BUILD_MAP 159 40 BREAK_LOOP 118 41 SETUP_WITH 104 42 WITH_CLEANUP 104 43 SLICE+1 102 44 INPLACE_ADD 101 45 UNARY_NOT 80 46 BINARY_SUBTRACT 71 47 LIST_APPEND 54 48 BINARY_AND 41 49 YIELD_VALUE 37 50 SLICE+2 31 51 SLICE+3 31 52 BINARY_MULTIPLY 27 53 JUMP_IF_TRUE_OR_POP 24 54 ROT_TWO 24 55 SETUP_FINALLY 22 56 BINARY_LSHIFT 20 57 BINARY_OR 15 58 BINARY_RSHIFT 15 59 INPLACE_OR 15 60 JUMP_IF_FALSE_OR_POP 14 61 LOAD_CLOSURE 13 62 INPLACE_SUBTRACT 12 63 DELETE_SLICE+0 11 64 CALL_FUNCTION_VAR_KW 10 65 DELETE_SUBSCR 9 66 MAKE_CLOSURE 9 67 STORE_DEREF 9 68 BINARY_DIVIDE 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: # A tibble: 15 x 3 kind op_name n 1 ATTR LOAD_ATTR 19713 2 ATTR STORE_ATTR 1539 3 CLOSURE LOAD_CLOSURE 13 4 CONST LOAD_CONST 19181 5 DEREF LOAD_DEREF 170 6 DEREF STORE_DEREF 9 7 FAST LOAD_FAST 24204 8 FAST STORE_FAST 7501 9 GLOBAL LOAD_GLOBAL 11134 10 GLOBAL STORE_GLOBAL 4 11 LOCALS LOAD_LOCALS 606 12 MAP STORE_MAP 1393 13 NAME STORE_NAME 7837 14 NAME LOAD_NAME 3976 15 SUBSCR STORE_SUBSCR 223 Imports: # A tibble: 2 x 2 op_name n 1 IMPORT_FROM 1973 2 IMPORT_NAME 1125 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 7026 2 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7026 3 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7026 4 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch POP_JUMP_IF_FALSE 7026 5 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7026 6 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7026 7 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch POP_JUMP_IF_FALSE 7026 8 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7026 9 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7026 10 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc _Dispatch JUMP_ABSOLUTE 7026 ===== 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/qsn_/__init__.pyc 2 12 /home/andy/git/oilshell/oil/tools/__init__.pyc 2 13 /home/andy/git/oilshell/oil/_devbuild/gen/grammar_nt.pyc 3 14 /home/andy/git/oilshell/oil/pgen2/__init__.pyc 3 15 /home/andy/git/oilshell/oil/_devbuild/gen/help_.pyc 4 16 /home/andy/git/oilshell/oil/core/ansi.pyc 6 17 /home/andy/git/oilshell/oil/vendor/typing.pyc 6 18 /home/andy/git/oilshell/oil/pylib/cgi.pyc 8 19 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind.pyc 10 20 /home/andy/git/oilshell/oil/Python-2.7.13/Lib/stat.pyc 10 Files with many ops: # A tibble: 10 x 2 # Groups: path [10] path n 1 /home/andy/git/oilshell/oil/osh/builtin_pure.pyc 47 2 /home/andy/git/oilshell/oil/core/process.pyc 48 3 /home/andy/git/oilshell/oil/osh/string_ops.pyc 49 4 /home/andy/git/oilshell/oil/osh/sh_expr_eval.pyc 50 5 /home/andy/git/oilshell/oil/osh/word_eval.pyc 51 6 /home/andy/git/oilshell/oil/core/comp_ui.pyc 54 7 /home/andy/git/oilshell/oil/core/state.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 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/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/lexer.pyc 35 8 /home/andy/git/oilshell/oil/frontend/parse_lib.pyc 36 9 /home/andy/git/oilshell/oil/osh/word_parse.pyc 40 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: 55