===== BASIC METRICS -- Number of files: 131 -- Total bytecode bytes: 580901 -- Total instructions: 208737 Duplicate path/name path code_name n 1 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 179 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 179 3 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc AbbreviatedTree 179 4 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc PrettyTree 179 5 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc CreateNull 167 6 /home/andy/git/oilshell/oil/_devbuild/gen/value_asdl.pyc __init__ 35 ===== 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/Python-2.7.13/Lib/__future__.pyc str 1638 5 /home/andy/git/oilshell/oil/core/executor.pyc RunProcessSub str 1531 6 /home/andy/git/oilshell/oil/frontend/args.pyc str 1527 7 /home/andy/git/oilshell/oil/core/process.pyc WaitForOne str 1386 8 /home/andy/git/oilshell/oil/osh/word_parse.pyc str 1326 9 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc _ScanSimpleCommand str 1313 10 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc _MaybeExpandAliases str 1280 11 /home/andy/git/oilshell/oil/tools/ysh_ify.pyc _GetRhsStyle str 1254 12 /home/andy/git/oilshell/oil/pgen2/parse.pyc Parser str 1076 13 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc CommandParser str 994 14 /home/andy/git/oilshell/oil/data_lang/j8.pyc str 978 15 /home/andy/git/oilshell/oil/mycpp/mylib.pyc UniqueObjects str 912 16 /home/andy/git/oilshell/oil/core/completion.pyc str 886 17 /home/andy/git/oilshell/oil/osh/braces.pyc BraceDetect str 854 18 /home/andy/git/oilshell/oil/core/dev.pyc CrashDumper str 850 19 /home/andy/git/oilshell/oil/osh/cmd_parse.pyc ParseCommand str 844 20 /home/andy/git/oilshell/oil/frontend/typed_args.pyc Reader str 809 -- total string bytes: 238523 ===== FRAMES Frames with many consts path code_name n 1 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 994 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc PrettyTree 994 3 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind_asdl.pyc 840 4 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc 509 5 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind_asdl.pyc Id 397 6 /home/andy/git/oilshell/oil/frontend/id_kind_def.pyc AddKinds 397 7 /home/andy/git/oilshell/oil/_devbuild/gen/help_meta.pyc 378 8 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc AbbreviatedTree 358 9 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc CreateNull 335 10 /home/andy/git/oilshell/oil/_devbuild/gen/option_asdl.pyc 287 11 /home/andy/git/oilshell/oil/frontend/lexer_def.pyc 256 12 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc 207 13 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 179 14 /home/andy/git/oilshell/oil/frontend/flag_def.pyc 173 15 /home/andy/git/oilshell/oil/_devbuild/gen/value_asdl.pyc _AbbreviatedTree 167 16 /home/andy/git/oilshell/oil/_devbuild/gen/value_asdl.pyc PrettyTree 167 17 /home/andy/git/oilshell/oil/_devbuild/gen/arg_types.pyc __init__ 161 18 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc _AbbreviatedTree 135 19 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc PrettyTree 135 20 /home/andy/git/oilshell/oil/_devbuild/gen/value_asdl.pyc 120 Frames with many ops path code_name n 1 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc _AbbreviatedTree 16458 2 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc PrettyTree 16458 3 /home/andy/git/oilshell/oil/_devbuild/gen/value_asdl.pyc _AbbreviatedTree 2938 4 /home/andy/git/oilshell/oil/_devbuild/gen/value_asdl.pyc PrettyTree 2938 5 /home/andy/git/oilshell/oil/core/shell.pyc Main 2755 6 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind.pyc 2419 7 /home/andy/git/oilshell/oil/frontend/lexer_def.pyc 2419 8 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc CreateNull 2345 9 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc _AbbreviatedTree 2341 10 /home/andy/git/oilshell/oil/_devbuild/gen/runtime_asdl.pyc PrettyTree 2341 11 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc 2068 12 /home/andy/git/oilshell/oil/_devbuild/gen/arg_types.pyc __init__ 1775 13 /home/andy/git/oilshell/oil/core/completion.pyc Matches 1663 14 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc __init__ 1600 15 /home/andy/git/oilshell/oil/tools/ysh_ify.pyc DoCommand 1347 16 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind_asdl.pyc 1344 17 /home/andy/git/oilshell/oil/_devbuild/gen/syntax_asdl.pyc AbbreviatedTree 1122 18 /home/andy/git/oilshell/oil/_devbuild/gen/help_meta.pyc 1090 19 /home/andy/git/oilshell/oil/frontend/flag_def.pyc 1014 20 /home/andy/git/oilshell/oil/builtin/func_misc.pyc Call 972 Frames with large stacksize path code_name argcount nlocals stacksize bytecode_bytes 1 /home/andy/git/oilshell/oil/frontend/lexer_def.pyc 0 0 62 7005 2 /home/andy/git/oilshell/oil/frontend/id_kind_def.pyc AddKinds 1 1 48 1626 3 /home/andy/git/oilshell/oil/frontend/builtin_def.pyc 0 0 47 328 4 /home/andy/git/oilshell/oil/frontend/option_def.pyc 0 0 40 907 5 /home/andy/git/oilshell/oil/frontend/signal_def.pyc 0 0 26 220 6 /home/andy/git/oilshell/oil/builtin/meta_osh.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 112 16 7629 9 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc RunPendingTraps 1 3 15 157 10 /home/andy/git/oilshell/oil/builtin/meta_osh.pyc Run 2 11 14 344 Frames with many locals path code_name argcount nlocals stacksize bytecode_bytes 1 /home/andy/git/oilshell/oil/core/shell.pyc Main 6 112 16 7629 2 /home/andy/git/oilshell/oil/builtin/assign_osh.pyc _PrintVariables 5 42 10 2081 3 /home/andy/git/oilshell/oil/builtin/printf_osh.pyc _Format 5 39 6 2187 4 /home/andy/git/oilshell/oil/tools/ysh_ify.pyc DoCommand 4 39 20 3715 5 /home/andy/git/oilshell/oil/core/completion.pyc Matches 2 38 9 2821 6 /home/andy/git/oilshell/oil/builtin/method_str.pyc Call 2 36 14 1266 7 /home/andy/git/oilshell/oil/ysh/expr_parse.pyc _PushOilTokens 5 34 10 1908 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 26 9 2175 10 /home/andy/git/oilshell/oil/builtin/io_ysh.pyc Run 2 25 6 1027 ===== NAMES Common types kind n 1 name 43037 2 var 14619 3 cell 1 4 free 1 Common names name n 1 self 2657 2 None 1266 3 __name__ 809 4 __module__ 798 5 True 764 6 trav 735 7 append 679 8 __init__ 676 9 id 629 10 AssertionError 592 11 cast 517 12 NewRecord 502 13 hnode 500 14 fields 499 15 heap_id 494 16 TraversalState 494 17 ObjectCycle 492 18 L 490 19 _AbbreviatedTree 489 20 seen 489 -- Total length of all 57658 names: 414315 -- Total length of 5353 unique names: 52107 ===== CONSTS Types of constants type n 1 str 9951 2 code 4203 3 NoneType 3533 4 int 3311 5 tuple 1774 6 float 14 ===== FLAGS Common flags flag n 1 CO_NEWLOCALS 4203 2 CO_OPTIMIZED 3406 3 CO_FUTURE_PRINT_FUNCTION 1888 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 35734 2 LOAD_ATTR 27469 3 LOAD_CONST 27155 4 CALL_FUNCTION 20023 5 LOAD_GLOBAL 17662 6 STORE_FAST 10432 7 STORE_NAME 10006 8 POP_TOP 6687 9 RETURN_VALUE 6248 10 POP_JUMP_IF_FALSE 5603 11 LOAD_NAME 4928 12 COMPARE_OP 4532 13 MAKE_FUNCTION 4202 14 JUMP_FORWARD 3200 15 IMPORT_FROM 2533 16 STORE_ATTR 2040 17 STORE_MAP 1943 18 JUMP_ABSOLUTE 1479 19 IMPORT_NAME 1477 20 BUILD_TUPLE 1411 21 RAISE_VARARGS 1235 22 POP_BLOCK 1188 23 POP_JUMP_IF_TRUE 961 24 BUILD_LIST 928 25 BUILD_CLASS 797 26 LOAD_LOCALS 797 27 BINARY_SUBSCR 769 28 STORE_SUBSCR 758 29 SETUP_LOOP 745 30 FOR_ITER 707 31 GET_ITER 707 32 BINARY_MODULO 601 33 JUMP_IF_TRUE_OR_POP 500 34 END_FINALLY 443 35 UNPACK_SEQUENCE 395 36 BINARY_ADD 315 37 SETUP_WITH 268 38 WITH_CLEANUP 268 39 DUP_TOP 234 40 BUILD_MAP 185 41 SETUP_EXCEPT 174 42 BREAK_LOOP 129 43 INPLACE_ADD 110 44 UNARY_NOT 102 45 SLICE+1 96 46 BINARY_SUBTRACT 84 47 LIST_APPEND 66 48 SLICE+3 54 49 BINARY_AND 50 50 BINARY_MULTIPLY 40 51 YIELD_VALUE 34 52 ROT_TWO 31 53 SLICE+2 28 54 BINARY_LSHIFT 21 55 BINARY_OR 19 56 INPLACE_OR 19 57 INPLACE_SUBTRACT 15 58 JUMP_IF_FALSE_OR_POP 14 59 DELETE_SLICE+0 13 60 BINARY_DIVIDE 11 61 BINARY_RSHIFT 10 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 27469 2 ATTR STORE_ATTR 2040 3 CLOSURE LOAD_CLOSURE 1 4 CONST LOAD_CONST 27155 5 DEREF LOAD_DEREF 2 6 FAST LOAD_FAST 35734 7 FAST STORE_FAST 10432 8 GLOBAL LOAD_GLOBAL 17662 9 GLOBAL STORE_GLOBAL 6 10 LOCALS LOAD_LOCALS 797 11 MAP STORE_MAP 1943 12 NAME STORE_NAME 10006 13 NAME LOAD_NAME 4928 14 SLICE STORE_SLICE+0 2 15 SUBSCR STORE_SUBSCR 758 Imports: op_name n 1 IMPORT_FROM 2533 2 IMPORT_NAME 1477 Large op_arg (jump targets): path code_name op_name op_arg 1 /home/andy/git/oilshell/oil/core/shell.pyc Main POP_JUMP_IF_FALSE 7590 2 /home/andy/git/oilshell/oil/core/shell.pyc Main POP_TOP 7590 3 /home/andy/git/oilshell/oil/core/shell.pyc Main POP_JUMP_IF_FALSE 7504 4 /home/andy/git/oilshell/oil/core/shell.pyc Main POP_JUMP_IF_FALSE 7500 5 /home/andy/git/oilshell/oil/core/shell.pyc Main JUMP_ABSOLUTE 7500 6 /home/andy/git/oilshell/oil/core/shell.pyc Main POP_JUMP_IF_FALSE 7488 7 /home/andy/git/oilshell/oil/core/shell.pyc Main POP_JUMP_IF_FALSE 7448 8 /home/andy/git/oilshell/oil/core/shell.pyc Main POP_JUMP_IF_FALSE 7417 9 /home/andy/git/oilshell/oil/core/shell.pyc Main POP_JUMP_IF_FALSE 7389 10 /home/andy/git/oilshell/oil/core/shell.pyc Main POP_JUMP_IF_FALSE 7361 ===== 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/builtin/__init__.pyc 2 6 /home/andy/git/oilshell/oil/core/__init__.pyc 2 7 /home/andy/git/oilshell/oil/data_lang/__init__.pyc 2 8 /home/andy/git/oilshell/oil/frontend/__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/tools/__init__.pyc 2 13 /home/andy/git/oilshell/oil/ysh/__init__.pyc 2 14 /home/andy/git/oilshell/oil/_devbuild/gen/grammar_nt.pyc 3 15 /home/andy/git/oilshell/oil/pgen2/__init__.pyc 3 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/help_meta.pyc 10 20 /home/andy/git/oilshell/oil/_devbuild/gen/id_kind.pyc 10 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/data_lang/j8.pyc 47 3 /home/andy/git/oilshell/oil/core/process.pyc 48 4 /home/andy/git/oilshell/oil/osh/cmd_eval.pyc 50 5 /home/andy/git/oilshell/oil/osh/string_ops.pyc 50 6 /home/andy/git/oilshell/oil/osh/sh_expr_eval.pyc 51 7 /home/andy/git/oilshell/oil/osh/word_eval.pyc 51 8 /home/andy/git/oilshell/oil/core/completion.pyc 53 9 /home/andy/git/oilshell/oil/core/state.pyc 53 10 /home/andy/git/oilshell/oil/ysh/expr_eval.pyc 56 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 23 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/frontend/reader.pyc 32 6 /home/andy/git/oilshell/oil/pgen2/parse.pyc 32 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 46 -- Unique opcodes for parsing: 55