===== BASIC METRICS -- Number of files: 65 -- Total bytecode bytes: 187060 -- Total instructions: 67960 Duplicate path/name # A tibble: 6 x 3 path code_name n 1 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 94 2 /home/andy/git/oilshell/oil/core/completion.pyc __init__ 14 3 /home/andy/git/oilshell/oil/core/process.pyc __init__ 13 4 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc __init__ 13 5 /home/andy/git/oilshell/oil/frontend/args.pyc __init__ 12 6 /home/andy/git/oilshell/oil/asdl/runtime.pyc __repr__ 11 ===== 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: 119311 ===== FRAMES Frames with many consts # A tibble: 20 x 3 path code_name n 1 /home/andy/git/oilshell/oil/core/id_kind.pyc AddKinds 335 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc 275 3 /home/andy/git/oilshell/oil/_devbuild/gen/osh_help.pyc 226 4 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 188 5 /home/andy/git/oilshell/oil/frontend/lex.pyc 157 6 /home/andy/git/oilshell/oil/osh/builtin.pyc 130 7 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 94 8 /home/andy/git/oilshell/oil/bin/oil.pyc 79 9 /home/andy/git/oilshell/oil/core/completion.pyc Matches 70 10 /home/andy/git/oilshell/oil/pylib/unpickle.pyc 67 11 /home/andy/git/oilshell/oil/_devbuild/gen/types_asdl.pyc 65 12 /home/andy/git/oilshell/oil/osh/state.pyc 63 13 /home/andy/git/oilshell/oil/core/completion.pyc 57 14 /home/andy/git/oilshell/oil/pylib/unpickle.pyc Unpickler 54 15 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc CommandParser 49 16 /home/andy/git/oilshell/oil/bin/oil.pyc ShellMain 43 17 /home/andy/git/oilshell/oil/Python-2.7.13/Lib/stat.pyc 43 18 /home/andy/git/oilshell/oil/Python-2.7.13/Lib/__future__.pyc 42 19 /home/andy/git/oilshell/oil/asdl/format.pyc 41 20 /home/andy/git/oilshell/oil/osh/builtin_comp.pyc __call__ 41 Frames with many ops # A tibble: 20 x 3 path code_name n 1 /home/andy/git/oilshell/oil/core/completion.pyc Matches 1569 2 /home/andy/git/oilshell/oil/frontend/lex.pyc 1469 3 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc 1410 4 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 1382 5 /home/andy/git/oilshell/oil/osh/expr_eval.pyc Eval 1381 6 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch 1377 7 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoCommand 1240 8 /home/andy/git/oilshell/oil/bin/oil.pyc ShellMain 905 9 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 837 10 /home/andy/git/oilshell/oil/osh/word_eval.pyc _EvalBracedVarSub 816 11 /home/andy/git/oilshell/oil/osh/builtin.pyc 724 12 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoWordPart 566 13 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _RunBuiltin 491 14 /home/andy/git/oilshell/oil/osh/builtin_comp.pyc __call__ 457 15 /home/andy/git/oilshell/oil/core/id_kind.pyc AddKinds 437 16 /home/andy/git/oilshell/oil/bin/oil.pyc 431 17 /home/andy/git/oilshell/oil/osh/word_eval.pyc _EvalWordPart 431 18 /home/andy/git/oilshell/oil/frontend/reader.pyc Eval 424 19 /home/andy/git/oilshell/oil/osh/builtin_comp.pyc Build 408 20 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoAssignment 387 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 638 4 /home/andy/git/oilshell/oil/bin/oil.pyc ShellMain 4 61 14 2551 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 33 11 2327 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 61 14 2551 2 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch 3 53 8 3881 3 /home/andy/git/oilshell/oil/tools/osh2oil.pyc DoCommand 4 35 6 3354 4 /home/andy/git/oilshell/oil/core/completion.pyc Matches 2 33 11 2327 5 /home/andy/git/oilshell/oil/osh/word_eval.pyc _EvalBracedVarSub 4 32 6 2370 6 /home/andy/git/oilshell/oil/frontend/reader.pyc Eval 2 30 6 1166 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 13183 2 var 4444 3 cell 2 4 free 2 Common names # A tibble: 20 x 2 name n 1 self 811 2 __name__ 354 3 __module__ 324 4 None 310 5 spids 251 6 __init__ 248 7 tag 201 8 Id 170 9 append 169 10 AssertionError 161 11 ASDL_TYPE 153 12 TYPE_LOOKUP 151 13 __doc__ 150 14 True 132 15 name 126 16 False 124 17 s 124 18 __slots__ 107 19 util 105 20 val 105 -- Total length of all 17631 names: 129671 -- Total length of 2960 unique names: 28896 ===== CONSTS Types of constants # A tibble: 6 x 2 type n 1 str 3776 2 code 1410 3 NoneType 1127 4 int 947 5 tuple 482 6 float 3 ===== FLAGS Common flags # A tibble: 7 x 2 flag n 1 CO_NEWLOCALS 1410 2 CO_OPTIMIZED 1086 3 CO_FUTURE_PRINT_FUNCTION 654 4 CO_GENERATOR 32 5 CO_NESTED 23 6 CO_VARARGS 17 7 CO_VARKEYWORDS 4 ===== OPS Ops Used by Frequency # A tibble: 81 x 2 op_name n 1 LOAD_FAST 11400 2 LOAD_ATTR 8891 3 LOAD_CONST 8494 4 CALL_FUNCTION 5176 5 LOAD_GLOBAL 4479 6 STORE_NAME 3177 7 STORE_FAST 3061 8 LOAD_NAME 2668 9 POP_TOP 2564 10 RETURN_VALUE 2081 11 POP_JUMP_IF_FALSE 2041 12 COMPARE_OP 1691 13 MAKE_FUNCTION 1409 14 JUMP_FORWARD 1222 15 STORE_ATTR 1160 16 JUMP_ABSOLUTE 773 17 BUILD_TUPLE 732 18 POP_BLOCK 517 19 BUILD_LIST 488 20 BINARY_SUBSCR 479 21 RAISE_VARARGS 392 22 SETUP_LOOP 333 23 BUILD_CLASS 324 24 LOAD_LOCALS 324 25 IMPORT_NAME 316 26 IMPORT_FROM 302 27 FOR_ITER 295 28 GET_ITER 295 29 POP_JUMP_IF_TRUE 287 30 STORE_MAP 266 31 BINARY_ADD 241 32 UNPACK_SEQUENCE 237 33 JUMP_IF_TRUE_OR_POP 209 34 END_FINALLY 184 35 DUP_TOP 183 36 BINARY_MODULO 182 37 STORE_SUBSCR 168 38 SETUP_EXCEPT 152 39 SLICE+1 89 40 BREAK_LOOP 84 41 INPLACE_ADD 83 42 BUILD_MAP 73 43 UNARY_NOT 52 44 BINARY_SUBTRACT 51 45 YIELD_VALUE 46 46 SLICE+2 31 47 SLICE+3 27 48 SETUP_FINALLY 26 49 ROT_TWO 24 50 BINARY_MULTIPLY 17 51 LIST_APPEND 16 52 LOAD_DEREF 14 53 BINARY_OR 11 54 DELETE_SLICE+0 11 55 DELETE_SUBSCR 11 56 BINARY_AND 8 57 BINARY_RSHIFT 8 58 CALL_FUNCTION_VAR 8 59 INPLACE_SUBTRACT 7 60 SETUP_WITH 6 61 STORE_GLOBAL 6 62 WITH_CLEANUP 6 63 JUMP_IF_FALSE_OR_POP 5 64 STORE_SLICE+1 5 65 BINARY_LSHIFT 4 66 DELETE_SLICE+1 4 67 PRINT_ITEM 4 68 PRINT_NEWLINE 4 69 ROT_THREE 4 70 CALL_FUNCTION_VAR_KW 3 71 DUP_TOPX 3 72 UNARY_NEGATIVE 3 73 BINARY_DIVIDE 2 74 BINARY_XOR 2 75 INPLACE_MULTIPLY 2 76 LOAD_CLOSURE 2 77 CONTINUE_LOOP 1 78 INPLACE_RSHIFT 1 79 MAKE_CLOSURE 1 80 STORE_DEREF 1 81 UNARY_INVERT 1 -- Total unique opcodes: 81 Unused opcodes: op_name 1 BINARY_FLOOR_DIVIDE 2 BINARY_POWER 3 BINARY_TRUE_DIVIDE 4 BUILD_SET 5 BUILD_SLICE 6 CALL_FUNCTION_KW 7 DELETE_ATTR 8 DELETE_FAST 9 DELETE_GLOBAL 10 DELETE_NAME 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_OR 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 SET_ADD 32 SLICE+0 33 STOP_CODE 34 STORE_SLICE+0 35 STORE_SLICE+2 36 STORE_SLICE+3 37 UNARY_CONVERT 38 UNARY_POSITIVE Memory Operations: # A tibble: 16 x 3 kind op_name n 1 ATTR LOAD_ATTR 8891 2 ATTR STORE_ATTR 1160 3 CLOSURE LOAD_CLOSURE 2 4 CONST LOAD_CONST 8494 5 DEREF LOAD_DEREF 14 6 DEREF STORE_DEREF 1 7 FAST LOAD_FAST 11400 8 FAST STORE_FAST 3061 9 GLOBAL LOAD_GLOBAL 4479 10 GLOBAL STORE_GLOBAL 6 11 LOCALS LOAD_LOCALS 324 12 MAP STORE_MAP 266 13 NAME STORE_NAME 3177 14 NAME LOAD_NAME 2668 15 SLICE STORE_SLICE+1 5 16 SUBSCR STORE_SUBSCR 168 Imports: # A tibble: 2 x 2 op_name n 1 IMPORT_FROM 302 2 IMPORT_NAME 316 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 3871 2 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 3871 3 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 3871 4 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 3871 5 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 3871 6 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 3871 7 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch POP_JUMP_IF_FALSE 3871 8 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch POP_JUMP_IF_FALSE 3871 9 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch JUMP_ABSOLUTE 3871 10 /home/andy/git/oilshell/oil/osh/cmd_exec.pyc _Dispatch POP_JUMP_IF_FALSE 3853 ===== 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/asdl/const.pyc 7 13 /home/andy/git/oilshell/oil/pylib/cgi.pyc 10 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/_devbuild/gen/types_asdl.pyc 15 17 /home/andy/git/oilshell/oil/Python-2.7.13/Lib/__future__.pyc 15 18 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 18 19 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc 18 20 /home/andy/git/oilshell/oil/asdl/pretty.pyc 19 Files with many ops: # A tibble: 10 x 2 # Groups: path [10] path n 1 /home/andy/git/oilshell/oil/core/process.pyc 45 2 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc 45 3 /home/andy/git/oilshell/oil/osh/word_eval.pyc 45 4 /home/andy/git/oilshell/oil/osh/expr_eval.pyc 47 5 /home/andy/git/oilshell/oil/osh/string_ops.pyc 48 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/pylib/unpickle.pyc 50 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/oil_lang/cmd_parse.pyc 32 6 /home/andy/git/oilshell/oil/frontend/lexer.pyc 34 7 /home/andy/git/oilshell/oil/osh/word_parse.pyc 36 8 /home/andy/git/oilshell/oil/frontend/reader.pyc 44 9 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc 45 -- Unique opcodes for parsing: 54