===== BASIC METRICS -- Number of files: 102 -- Total bytecode bytes: 366694 -- Total instructions: 132374 Duplicate path/name # A tibble: 6 x 3 path code_name n 1 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc AbbreviatedTree 157 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 157 3 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 157 4 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc PrettyTree 157 5 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc AbbreviatedTree 26 6 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc _AbbreviatedTree 26 ===== 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/osh/word_parse.pyc _ReadBracedVarSub str 2248 4 /home/andy/git/oilshell/oil/frontend/args.pyc str 1669 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/osh/word_parse.pyc str 1297 8 /home/andy/git/oilshell/oil/tools/osh2oil.pyc _GetRhsStyle str 1209 9 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc _MaybeExpandAliases str 1168 10 /home/andy/git/oilshell/oil/frontend/args.pyc OilFlags str 1141 11 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoWordInCommand str 1139 12 /home/andy/git/oilshell/oil/pgen2/parse.pyc Parser str 1076 13 /home/andy/git/oilshell/oil/core/completion.pyc str 886 14 /home/andy/git/oilshell/oil/osh/braces.pyc _BraceDetect str 824 15 /home/andy/git/oilshell/oil/core/dev.pyc CrashDumper str 812 16 /home/andy/git/oilshell/oil/pgen2/grammar.pyc dump str 771 17 /home/andy/git/oilshell/oil/pgen2/parse.pyc __init__ str 744 18 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc ParseCompoundCommand str 735 19 /home/andy/git/oilshell/oil/oil_lang/expr_to_ast.pyc Transformer str 734 20 /home/andy/git/oilshell/oil/core/main_loop.pyc Batch str 685 -- total string bytes: 170511 ===== 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 723 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc 711 3 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc PrettyTree 706 4 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 634 5 /home/andy/git/oilshell/oil/frontend/id_kind_def.pyc AddKinds 362 6 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind_asdl.pyc Id 340 7 /home/andy/git/oilshell/oil/_devbuild/gen/option_asdl.pyc 230 8 /home/andy/git/oilshell/oil/frontend/lexer_def.pyc 220 9 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 218 10 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc AbbreviatedTree 157 11 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 157 12 /home/andy/git/oilshell/oil/bin/oil.pyc 108 13 /home/andy/git/oilshell/oil/frontend/option_def.pyc 107 14 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc PrettyTree 105 15 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc _AbbreviatedTree 100 16 /home/andy/git/oilshell/oil/_devbuild/gen/option_asdl.pyc option_i 84 17 /home/andy/git/oilshell/oil/osh/builtin_pure.pyc 71 18 /home/andy/git/oilshell/oil/core/completion.pyc Matches 69 19 /home/andy/git/oilshell/oil/_devbuild/gen/grammar_nt.pyc 68 20 /home/andy/git/oilshell/oil/_devbuild/gen/types_asdl.pyc 68 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 11262 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 8526 3 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc 2602 4 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch 2567 5 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind.pyc 2134 6 /home/andy/git/oilshell/oil/frontend/lexer_def.pyc 2019 7 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 1822 8 /home/andy/git/oilshell/oil/core/completion.pyc Matches 1701 9 /home/andy/git/oilshell/oil/bin/oil.pyc ShellMain 1572 10 /home/andy/git/oilshell/oil/osh/sh_expr_eval.pyc Eval 1438 11 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc PrettyTree 1327 12 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoCommand 1244 13 /home/andy/git/oilshell/oil/oil_lang/expr_eval.pyc EvalExpr 1189 14 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind_asdl.pyc 1164 15 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc _AbbreviatedTree 1137 16 /home/andy/git/oilshell/oil/osh/builtin_misc.pyc Run 1127 17 /home/andy/git/oilshell/oil/osh/word_eval.pyc _EvalBracedVarSub 1045 18 /home/andy/git/oilshell/oil/osh/builtin_pure.pyc Run 992 19 /home/andy/git/oilshell/oil/osh/builtin_printf.pyc Run 845 20 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 839 Frames with large stacksize path code_name argcount nlocals stacksize bytecode_bytes 1 /home/andy/git/oilshell/oil/frontend/lexer_def.pyc 0 0 53 5839 2 /home/andy/git/oilshell/oil/frontend/id_kind_def.pyc AddKinds 1 1 46 1407 3 /home/andy/git/oilshell/oil/frontend/option_def.pyc 0 0 43 733 4 /home/andy/git/oilshell/oil/_devbuild/gen/help_.pyc 0 0 41 133 5 /home/andy/git/oilshell/oil/frontend/builtin_def.pyc 0 0 36 295 6 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Execute 3 11 18 566 7 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc ParseCommand 1 7 17 904 8 /home/andy/git/oilshell/oil/osh/word_eval.pyc _EvalBracedVarSub 4 46 15 3023 9 /home/andy/git/oilshell/oil/bin/oil.pyc ShellMain 4 76 14 4392 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/osh/cmd_exec.pyc _Dispatch 3 89 13 7265 2 /home/andy/git/oilshell/oil/bin/oil.pyc ShellMain 4 76 14 4392 3 /home/andy/git/oilshell/oil/osh/word_eval.pyc _EvalBracedVarSub 4 46 15 3023 4 /home/andy/git/oilshell/oil/osh/builtin_printf.pyc Run 2 38 7 2381 5 /home/andy/git/oilshell/oil/core/completion.pyc Matches 2 37 11 2728 6 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoCommand 4 37 6 3366 7 /home/andy/git/oilshell/oil/osh/builtin_assign.pyc _PrintVariables 6 33 10 1707 8 /home/andy/git/oilshell/oil/oil_lang/expr_eval.pyc EvalExpr 2 32 8 3347 9 /home/andy/git/oilshell/oil/oil_lang/expr_parse.pyc _PushOilTokens 4 32 5 1581 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 26899 2 var 8929 3 free 13 4 cell 12 Common names # A tibble: 20 x 2 name n 1 self 1724 2 None 678 3 __name__ 557 4 append 541 5 __module__ 535 6 AssertionError 419 7 __init__ 392 8 NewRecord 380 9 fields 370 10 _AbbreviatedTree 367 11 L 366 12 out_node 366 13 field 354 14 x0 348 15 AbbreviatedTree 311 16 spids 310 17 PrettyTree 307 18 tag 296 19 children 260 20 name 260 -- Total length of all 35853 names: 265979 -- Total length of 4120 unique names: 40682 ===== CONSTS Types of constants # A tibble: 6 x 2 type n 1 str 6524 2 code 2639 3 int 2463 4 NoneType 2181 5 tuple 1126 6 float 3 ===== FLAGS Common flags # A tibble: 7 x 2 flag n 1 CO_NEWLOCALS 2639 2 CO_OPTIMIZED 2105 3 CO_FUTURE_PRINT_FUNCTION 1083 4 CO_GENERATOR 32 5 CO_VARARGS 30 6 CO_NESTED 28 7 CO_VARKEYWORDS 11 ===== OPS Ops Used by Frequency # A tibble: 82 x 2 op_name n 1 LOAD_FAST 21467 2 LOAD_ATTR 18094 3 LOAD_CONST 16681 4 CALL_FUNCTION 11919 5 LOAD_GLOBAL 9854 6 STORE_NAME 6846 7 STORE_FAST 6701 8 POP_TOP 4809 9 LOAD_NAME 3687 10 RETURN_VALUE 3675 11 POP_JUMP_IF_FALSE 3501 12 MAKE_FUNCTION 2630 13 COMPARE_OP 2629 14 JUMP_FORWARD 2170 15 IMPORT_FROM 1603 16 STORE_MAP 1370 17 STORE_ATTR 1348 18 JUMP_ABSOLUTE 1267 19 BUILD_TUPLE 1000 20 POP_BLOCK 935 21 IMPORT_NAME 891 22 BUILD_LIST 885 23 RAISE_VARARGS 851 24 BINARY_SUBSCR 717 25 SETUP_LOOP 657 26 POP_JUMP_IF_TRUE 640 27 FOR_ITER 632 28 GET_ITER 632 29 BUILD_CLASS 534 30 LOAD_LOCALS 534 31 BINARY_ADD 301 32 UNPACK_SEQUENCE 295 33 END_FINALLY 278 34 BINARY_MODULO 236 35 DUP_TOP 224 36 JUMP_IF_TRUE_OR_POP 222 37 SETUP_EXCEPT 171 38 LOAD_DEREF 163 39 STORE_SUBSCR 147 40 BUILD_MAP 144 41 BREAK_LOOP 111 42 SLICE+1 111 43 INPLACE_ADD 101 44 UNARY_NOT 74 45 BINARY_SUBTRACT 67 46 SETUP_WITH 65 47 WITH_CLEANUP 65 48 YIELD_VALUE 44 49 LIST_APPEND 43 50 SETUP_FINALLY 42 51 SLICE+2 31 52 SLICE+3 29 53 ROT_TWO 27 54 BINARY_AND 24 55 BINARY_MULTIPLY 24 56 BINARY_OR 14 57 INPLACE_SUBTRACT 14 58 LOAD_CLOSURE 13 59 BINARY_LSHIFT 11 60 BINARY_RSHIFT 11 61 CALL_FUNCTION_VAR_KW 10 62 DELETE_SLICE+0 10 63 DELETE_SUBSCR 9 64 MAKE_CLOSURE 9 65 STORE_DEREF 9 66 JUMP_IF_FALSE_OR_POP 8 67 BINARY_DIVIDE 7 68 INPLACE_OR 6 69 PRINT_ITEM 6 70 PRINT_NEWLINE 6 71 CALL_FUNCTION_VAR 5 72 DUP_TOPX 4 73 ROT_THREE 4 74 STORE_GLOBAL 4 75 BINARY_XOR 3 76 UNARY_INVERT 3 77 UNARY_NEGATIVE 3 78 BINARY_FLOOR_DIVIDE 2 79 INPLACE_MULTIPLY 2 80 BINARY_POWER 1 81 INPLACE_AND 1 82 INPLACE_RSHIFT 1 -- Total unique opcodes: 82 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_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+0 33 STORE_SLICE+1 34 STORE_SLICE+2 35 STORE_SLICE+3 36 UNARY_CONVERT 37 UNARY_POSITIVE Memory Operations: # A tibble: 15 x 3 kind op_name n 1 ATTR LOAD_ATTR 18094 2 ATTR STORE_ATTR 1348 3 CLOSURE LOAD_CLOSURE 13 4 CONST LOAD_CONST 16681 5 DEREF LOAD_DEREF 163 6 DEREF STORE_DEREF 9 7 FAST LOAD_FAST 21467 8 FAST STORE_FAST 6701 9 GLOBAL LOAD_GLOBAL 9854 10 GLOBAL STORE_GLOBAL 4 11 LOCALS LOAD_LOCALS 534 12 MAP STORE_MAP 1370 13 NAME STORE_NAME 6846 14 NAME LOAD_NAME 3687 15 SUBSCR STORE_SUBSCR 147 Imports: # A tibble: 2 x 2 op_name n 1 IMPORT_FROM 1603 2 IMPORT_NAME 891 Large op_arg (jump targets): path code_name op_name op_arg 1 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 7249 2 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 7249 3 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 7249 4 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 7249 5 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch POP_JUMP_IF_FALSE 7249 6 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 7249 7 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 7249 8 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 7249 9 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 7249 10 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch POP_JUMP_IF_FALSE 7249 ===== 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/tools/__init__.pyc 2 12 /home/andy/git/oilshell/oil/_devbuild/gen/grammar_nt.pyc 3 13 /home/andy/git/oilshell/oil/pgen2/__init__.pyc 3 14 /home/andy/git/oilshell/oil/_devbuild/gen/help_index.pyc 4 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/string_ops.pyc 49 2 /home/andy/git/oilshell/oil/bin/oil.pyc 51 3 /home/andy/git/oilshell/oil/core/comp_ui.pyc 51 4 /home/andy/git/oilshell/oil/osh/word_eval.pyc 51 5 /home/andy/git/oilshell/oil/core/process.pyc 52 6 /home/andy/git/oilshell/oil/core/state.pyc 53 7 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc 53 8 /home/andy/git/oilshell/oil/osh/builtin_misc.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 25 3 /home/andy/git/oilshell/oil/frontend/py_reader.pyc 26 4 /home/andy/git/oilshell/oil/frontend/reader.pyc 26 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 39 10 /home/andy/git/oilshell/oil/oil_lang/expr_parse.pyc 41 11 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc 44 -- Unique opcodes for parsing: 52