===== BASIC METRICS -- Number of files: 69 -- Total bytecode bytes: 234478 -- Total instructions: 84698 Duplicate path/name # A tibble: 6 x 3 path code_name n 1 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc AbbreviatedTree 99 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 99 3 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 99 4 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc PrettyTree 99 5 /home/andy/git/oilshell/oil/core/completion.pyc __init__ 14 6 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc AbbreviatedTree 14 ===== BIG STRINGS path code_name type len_or_val 1 /home/andy/git/oilshell/oil/frontend/lex.pyc str 3101 2 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc ParseSimpleCommand str 2301 3 /home/andy/git/oilshell/oil/osh/word_parse.pyc _ReadBracedBracedVarSub str 2248 4 /home/andy/git/oilshell/oil/frontend/args.pyc str 1669 5 /home/andy/git/oilshell/oil/Python-2.7.13/Lib/__future__.pyc str 1638 6 /home/andy/git/oilshell/oil/osh/word_parse.pyc str 1289 7 /home/andy/git/oilshell/oil/tools/osh2oil.pyc _GetRhsStyle str 1209 8 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc _MaybeExpandAliases str 1163 9 /home/andy/git/oilshell/oil/frontend/args.pyc OilFlags str 1141 10 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoWordInCommand str 1139 11 /home/andy/git/oilshell/oil/osh/braces.pyc _BraceDetect str 943 12 /home/andy/git/oilshell/oil/core/completion.pyc str 886 13 /home/andy/git/oilshell/oil/core/dev.pyc CrashDumper str 812 14 /home/andy/git/oilshell/oil/osh/builtin.pyc Wait str 807 15 /home/andy/git/oilshell/oil/oil_lang/cmd_parse.pyc ParseWord str 801 16 /home/andy/git/oilshell/oil/core/process.pyc Waiter str 743 17 /home/andy/git/oilshell/oil/oil_lang/cmd_parse.pyc _ParseCommandLine str 689 18 /home/andy/git/oilshell/oil/core/main_loop.pyc Batch str 635 19 /home/andy/git/oilshell/oil/osh/builtin.pyc str 634 20 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc _ParseCommandLine str 629 -- total string bytes: 127896 ===== 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 Id 604 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc PrettyTree 492 3 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 398 4 /home/andy/git/oilshell/oil/core/id_kind.pyc AddKinds 335 5 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc 314 6 /home/andy/git/oilshell/oil/_devbuild/gen/osh_help.pyc 226 7 /home/andy/git/oilshell/oil/frontend/lex.pyc 157 8 /home/andy/git/oilshell/oil/osh/builtin.pyc 131 9 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 104 10 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc AbbreviatedTree 99 11 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 99 12 /home/andy/git/oilshell/oil/bin/oil.pyc 82 13 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc builtin_e 82 14 /home/andy/git/oilshell/oil/core/completion.pyc Matches 69 15 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc PrettyTree 68 16 /home/andy/git/oilshell/oil/osh/state.pyc 63 17 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind_asdl.pyc Kind 62 18 /home/andy/git/oilshell/oil/core/completion.pyc 59 19 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc _AbbreviatedTree 55 20 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc CommandParser 49 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 8172 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 5070 3 /home/andy/git/oilshell/oil/core/completion.pyc Matches 1699 4 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind_asdl.pyc Id 1514 5 /home/andy/git/oilshell/oil/frontend/lex.pyc 1469 6 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 1392 7 /home/andy/git/oilshell/oil/osh/expr_eval.pyc Eval 1383 8 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch 1373 9 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc 1306 10 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoCommand 1240 11 /home/andy/git/oilshell/oil/bin/oil.pyc ShellMain 987 12 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc PrettyTree 962 13 /home/andy/git/oilshell/oil/osh/word_eval.pyc _EvalBracedVarSub 816 14 /home/andy/git/oilshell/oil/osh/builtin.pyc 730 15 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoWordPart 566 16 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc _AbbreviatedTree 533 17 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _RunBuiltin 491 18 /home/andy/git/oilshell/oil/bin/oil.pyc 462 19 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc AbbreviatedTree 460 20 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 459 Frames with large stacksize path code_name argcount nlocals stacksize bytecode_bytes 1 /home/andy/git/oilshell/oil/core/id_kind.pyc AddKinds 1 1 46 1251 2 /home/andy/git/oilshell/oil/frontend/lex.pyc 0 0 33 4265 3 /home/andy/git/oilshell/oil/osh/state.pyc 0 0 19 650 4 /home/andy/git/oilshell/oil/bin/oil.pyc ShellMain 4 63 14 2779 5 /home/andy/git/oilshell/oil/osh/arith_parse.pyc MakeShellSpec 0 1 14 835 6 /home/andy/git/oilshell/oil/core/completion.pyc Matches 2 36 11 2720 7 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc ParseCommand 1 2 11 453 8 /home/andy/git/oilshell/oil/osh/word_parse.pyc _ReadWord 2 3 11 582 9 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Execute 3 7 10 336 10 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc CommandParser 0 0 10 533 Frames with many locals path code_name argcount nlocals stacksize bytecode_bytes 1 /home/andy/git/oilshell/oil/bin/oil.pyc ShellMain 4 63 14 2779 2 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch 3 53 7 3869 3 /home/andy/git/oilshell/oil/core/completion.pyc Matches 2 36 11 2720 4 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoCommand 4 35 6 3354 5 /home/andy/git/oilshell/oil/osh/word_eval.pyc _EvalBracedVarSub 4 32 6 2370 6 /home/andy/git/oilshell/oil/osh/history.pyc Eval 2 30 6 1169 7 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc _MakeAssignPair 2 28 5 826 8 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc _MaybeExpandAliases 2 27 6 786 9 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc ParseSimpleCommand 1 20 6 814 10 /home/andy/git/oilshell/oil/osh/builtin_comp.pyc Build 4 18 9 1174 ===== NAMES Common types # A tibble: 4 x 2 kind n 1 name 16242 2 var 5959 3 cell 3 4 free 3 Common names # A tibble: 20 x 2 name n 1 self 1107 2 None 452 3 __name__ 383 4 append 358 5 spids 358 6 __module__ 352 7 AssertionError 296 8 __init__ 252 9 PrettyNode 240 10 fields 230 11 _AbbreviatedTree 227 12 L 226 13 out_node 226 14 x0 214 15 AbbreviatedTree 204 16 tag 201 17 PrettyTree 200 18 children 189 19 name 179 20 x1 177 -- Total length of all 22207 names: 165936 -- Total length of 2962 unique names: 29316 ===== CONSTS Types of constants # A tibble: 6 x 2 type n 1 str 4740 2 code 1741 3 NoneType 1431 4 int 1295 5 tuple 502 6 float 3 ===== FLAGS Common flags # A tibble: 7 x 2 flag n 1 CO_NEWLOCALS 1741 2 CO_OPTIMIZED 1389 3 CO_FUTURE_PRINT_FUNCTION 688 4 CO_GENERATOR 31 5 CO_NESTED 26 6 CO_VARARGS 22 7 CO_VARKEYWORDS 4 ===== OPS Ops Used by Frequency # A tibble: 79 x 2 op_name n 1 LOAD_FAST 14409 2 LOAD_ATTR 11555 3 LOAD_CONST 10341 4 CALL_FUNCTION 7465 5 LOAD_GLOBAL 5697 6 STORE_FAST 4254 7 STORE_NAME 3947 8 POP_TOP 3341 9 LOAD_NAME 2554 10 RETURN_VALUE 2404 11 POP_JUMP_IF_FALSE 2290 12 COMPARE_OP 1898 13 MAKE_FUNCTION 1738 14 JUMP_FORWARD 1479 15 BUILD_TUPLE 1296 16 JUMP_ABSOLUTE 985 17 STORE_ATTR 967 18 POP_BLOCK 732 19 RAISE_VARARGS 575 20 SETUP_LOOP 551 21 FOR_ITER 515 22 GET_ITER 515 23 BUILD_LIST 483 24 POP_JUMP_IF_TRUE 475 25 BUILD_CLASS 352 26 LOAD_LOCALS 352 27 IMPORT_NAME 336 28 IMPORT_FROM 332 29 BINARY_SUBSCR 322 30 BINARY_ADD 264 31 STORE_MAP 256 32 UNPACK_SEQUENCE 230 33 JUMP_IF_TRUE_OR_POP 210 34 BINARY_MODULO 191 35 DUP_TOP 181 36 END_FINALLY 181 37 SETUP_EXCEPT 148 38 STORE_SUBSCR 113 39 INPLACE_ADD 94 40 BREAK_LOOP 92 41 SLICE+1 89 42 BUILD_MAP 70 43 BINARY_SUBTRACT 58 44 UNARY_NOT 49 45 YIELD_VALUE 44 46 SETUP_FINALLY 27 47 ROT_TWO 25 48 SLICE+3 25 49 SLICE+2 22 50 BINARY_MULTIPLY 18 51 LIST_APPEND 16 52 BINARY_OR 11 53 DELETE_SLICE+0 11 54 DELETE_SUBSCR 10 55 BINARY_AND 8 56 BINARY_RSHIFT 8 57 CALL_FUNCTION_VAR 8 58 LOAD_DEREF 8 59 INPLACE_SUBTRACT 7 60 SETUP_WITH 6 61 WITH_CLEANUP 6 62 BINARY_LSHIFT 4 63 DUP_TOPX 4 64 JUMP_IF_FALSE_OR_POP 4 65 PRINT_ITEM 4 66 PRINT_NEWLINE 4 67 ROT_THREE 4 68 STORE_DEREF 4 69 STORE_GLOBAL 4 70 CALL_FUNCTION_VAR_KW 3 71 LOAD_CLOSURE 3 72 MAKE_CLOSURE 3 73 BINARY_DIVIDE 2 74 BINARY_XOR 2 75 INPLACE_MULTIPLY 2 76 UNARY_NEGATIVE 2 77 BINARY_FLOOR_DIVIDE 1 78 INPLACE_RSHIFT 1 79 UNARY_INVERT 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 CONTINUE_LOOP 7 DELETE_ATTR 8 DELETE_FAST 9 DELETE_GLOBAL 10 DELETE_NAME 11 DELETE_SLICE+1 12 DELETE_SLICE+2 13 DELETE_SLICE+3 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_OR 23 INPLACE_POWER 24 INPLACE_TRUE_DIVIDE 25 INPLACE_XOR 26 MAP_ADD 27 NOP 28 PRINT_EXPR 29 PRINT_ITEM_TO 30 PRINT_NEWLINE_TO 31 ROT_FOUR 32 SET_ADD 33 SLICE+0 34 STOP_CODE 35 STORE_SLICE+0 36 STORE_SLICE+1 37 STORE_SLICE+2 38 STORE_SLICE+3 39 UNARY_CONVERT 40 UNARY_POSITIVE Memory Operations: # A tibble: 15 x 3 kind op_name n 1 ATTR LOAD_ATTR 11555 2 ATTR STORE_ATTR 967 3 CLOSURE LOAD_CLOSURE 3 4 CONST LOAD_CONST 10341 5 DEREF LOAD_DEREF 8 6 DEREF STORE_DEREF 4 7 FAST LOAD_FAST 14409 8 FAST STORE_FAST 4254 9 GLOBAL LOAD_GLOBAL 5697 10 GLOBAL STORE_GLOBAL 4 11 LOCALS LOAD_LOCALS 352 12 MAP STORE_MAP 256 13 NAME STORE_NAME 3947 14 NAME LOAD_NAME 2554 15 SUBSCR STORE_SUBSCR 113 Imports: # A tibble: 2 x 2 op_name n 1 IMPORT_FROM 332 2 IMPORT_NAME 336 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 3859 2 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 3859 3 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 3859 4 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 3859 5 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 3859 6 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 3859 7 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch POP_JUMP_IF_FALSE 3859 8 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch POP_JUMP_IF_FALSE 3859 9 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 3859 10 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch POP_JUMP_IF_FALSE 3841 ===== 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/oil_lang/__init__.pyc 2 8 /home/andy/git/oilshell/oil/osh/__init__.pyc 2 9 /home/andy/git/oilshell/oil/pylib/__init__.pyc 2 10 /home/andy/git/oilshell/oil/tools/__init__.pyc 2 11 /home/andy/git/oilshell/oil/_devbuild/gen/osh_help.pyc 5 12 /home/andy/git/oilshell/oil/vendor/typing.pyc 6 13 /home/andy/git/oilshell/oil/asdl/const.pyc 7 14 /home/andy/git/oilshell/oil/Python-2.7.13/Lib/stat.pyc 10 15 /home/andy/git/oilshell/oil/oil_lang/cmd_exec.pyc 11 16 /home/andy/git/oilshell/oil/pylib/cgi.pyc 11 17 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind_asdl.pyc 13 18 /home/andy/git/oilshell/oil/_devbuild/gen/types_asdl.pyc 13 19 /home/andy/git/oilshell/oil/Python-2.7.13/Lib/__future__.pyc 15 20 /home/andy/git/oilshell/oil/pylib/path_stat.pyc 18 Files with many ops: # A tibble: 10 x 2 # Groups: path [10] path n 1 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc 45 2 /home/andy/git/oilshell/oil/osh/word_eval.pyc 45 3 /home/andy/git/oilshell/oil/osh/expr_eval.pyc 47 4 /home/andy/git/oilshell/oil/osh/string_ops.pyc 48 5 /home/andy/git/oilshell/oil/bin/oil.pyc 49 6 /home/andy/git/oilshell/oil/osh/state.pyc 49 7 /home/andy/git/oilshell/oil/osh/builtin.pyc 50 8 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc 50 9 /home/andy/git/oilshell/oil/core/comp_ui.pyc 51 10 /home/andy/git/oilshell/oil/core/completion.pyc 56 Unique ops for files that just parse: # A tibble: 9 x 2 # Groups: path [9] path n 1 /home/andy/git/oilshell/oil/frontend/lex.pyc 22 2 /home/andy/git/oilshell/oil/osh/arith_parse.pyc 22 3 /home/andy/git/oilshell/oil/frontend/parse_lib.pyc 28 4 /home/andy/git/oilshell/oil/osh/bool_parse.pyc 30 5 /home/andy/git/oilshell/oil/frontend/reader.pyc 32 6 /home/andy/git/oilshell/oil/oil_lang/cmd_parse.pyc 32 7 /home/andy/git/oilshell/oil/frontend/lexer.pyc 34 8 /home/andy/git/oilshell/oil/osh/word_parse.pyc 36 9 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc 45 -- Unique opcodes for parsing: 52