test -d _build/oils-ref && \ build/ref/ovm-actions.sh app-deps oils-ref /home/uke/oil:/home/uke/oil/vendor bin.oil build/ref/ovm-actions.sh make-dotd oils-ref _build/oils-ref/app-deps-c.txt > _build/oils-ref/ovm.d test -d _build/hello && \ build/ref/ovm-actions.sh app-deps hello /home/uke/oil/build/testdata:/home/uke/oil/vendor hello Hello from hello.py sys.path: ['/home/uke/oil/build', '/home/uke/oil/build/testdata', '/home/uke/oil/vendor', '/usr/local/lib/python27.zip', '/home/uke/tmp/Python-2.7.13/Lib', '/home/uke/tmp/Python-2.7.13/Lib/plat-linux2', '/home/uke/tmp/Python-2.7.13/Lib/lib-tk', '/home/uke/tmp/Python-2.7.13/Lib/lib-old', '/home/uke/oil/../oil_DEPS/cpython-full/build/lib.linux-x86_64-2.7'] sys.argv: ['build/dynamic_deps.py', 'both', 'hello', '_build/hello/app-deps'] hello _OVM_IS_BUNDLE None Hello from lib.py build/ref/ovm-actions.sh make-dotd hello _build/hello/app-deps-c.txt > _build/hello/ovm.d build/stamp.sh write-release-date bin/opyc pgen2 opy/py27.grammar _build/opy/py27.grammar.marshal Compiled opy/py27.grammar -> grammar tables in _build/opy/py27.grammar.marshal test -d _build/oils-ref && \ build/ref/ovm-actions.sh py-to-compile /home/uke/oil:/home/uke/oil/vendor bin.oil > _build/oils-ref/py-to-compile.txt sort _build/oils-ref/py-to-compile.txt | uniq > _build/oils-ref/all-deps-py.txt # exclude the pickle cat _build/oils-ref/all-deps-py.txt | opy/build.sh compile-manifest _build/oils-ref/bytecode-opy > _build/oils-ref/opy-app-deps.txt /home/uke/oil/_devbuild/__init__.py Compiled to 4 bytes of top-level bytecode /home/uke/oil/_devbuild/gen/__init__.py Compiled to 4 bytes of top-level bytecode /home/uke/oil/_devbuild/gen/arg_types.py Compiled to 862 bytes of top-level bytecode /home/uke/oil/_devbuild/gen/grammar_nt.py Compiled to 430 bytes of top-level bytecode /home/uke/oil/_devbuild/gen/help_meta.py Compiled to 4598 bytes of top-level bytecode /home/uke/oil/_devbuild/gen/hnode_asdl.py Compiled to 438 bytes of top-level bytecode /home/uke/oil/_devbuild/gen/id_kind.py Compiled to 7536 bytes of top-level bytecode /home/uke/oil/_devbuild/gen/id_kind_asdl.py Compiled to 4199 bytes of top-level bytecode /home/uke/oil/_devbuild/gen/nil8_asdl.py Compiled to 353 bytes of top-level bytecode /home/uke/oil/_devbuild/gen/option_asdl.py Compiled to 1939 bytes of top-level bytecode /home/uke/oil/_devbuild/gen/pretty_asdl.py Compiled to 423 bytes of top-level bytecode /home/uke/oil/_devbuild/gen/runtime_asdl.py Compiled to 2593 bytes of top-level bytecode /home/uke/oil/_devbuild/gen/syntax_asdl.py Compiled to 6328 bytes of top-level bytecode /home/uke/oil/_devbuild/gen/types_asdl.py Compiled to 903 bytes of top-level bytecode /home/uke/oil/_devbuild/gen/value_asdl.py Compiled to 1483 bytes of top-level bytecode /home/uke/oil/asdl/__init__.py Compiled to 4 bytes of top-level bytecode /home/uke/oil/asdl/format.py Compiled to 248 bytes of top-level bytecode /home/uke/oil/asdl/pybase.py Compiled to 143 bytes of top-level bytecode /home/uke/oil/asdl/runtime.py Compiled to 132 bytes of top-level bytecode /home/uke/oil/bin/__init__.py Compiled to 4 bytes of top-level bytecode /home/uke/oil/bin/oil.py Compiled to 410 bytes of top-level bytecode /home/uke/oil/bin/oils_for_unix.py Compiled to 358 bytes of top-level bytecode /home/uke/oil/builtin/__init__.py Compiled to 4 bytes of top-level bytecode /home/uke/oil/builtin/assign_osh.py Compiled to 600 bytes of top-level bytecode /home/uke/oil/builtin/bracket_osh.py Compiled to 506 bytes of top-level bytecode /home/uke/oil/builtin/completion_osh.py Compiled to 638 bytes of top-level bytecode /home/uke/oil/builtin/completion_ysh.py Compiled to 262 bytes of top-level bytecode /home/uke/oil/builtin/dirs_osh.py Compiled to 506 bytes of top-level bytecode /home/uke/oil/builtin/error_ysh.py Compiled to 572 bytes of top-level bytecode /home/uke/oil/builtin/func_eggex.py Compiled to 379 bytes of top-level bytecode /home/uke/oil/builtin/func_hay.py Compiled to 421 bytes of top-level bytecode /home/uke/oil/builtin/func_misc.py Compiled to 944 bytes of top-level bytecode /home/uke/oil/builtin/func_reflect.py Compiled to 648 bytes of top-level bytecode /home/uke/oil/builtin/hay_ysh.py Compiled to 545 bytes of top-level bytecode /home/uke/oil/builtin/io_osh.py Compiled to 403 bytes of top-level bytecode /home/uke/oil/builtin/io_ysh.py Compiled to 473 bytes of top-level bytecode /home/uke/oil/builtin/json_ysh.py Compiled to 394 bytes of top-level bytecode /home/uke/oil/builtin/meta_oils.py Compiled to 896 bytes of top-level bytecode /home/uke/oil/builtin/method_dict.py Compiled to 274 bytes of top-level bytecode /home/uke/oil/builtin/method_io.py Compiled to 537 bytes of top-level bytecode /home/uke/oil/builtin/method_list.py Compiled to 375 bytes of top-level bytecode /home/uke/oil/builtin/method_other.py Compiled to 320 bytes of top-level bytecode /home/uke/oil/builtin/method_str.py Compiled to 597 bytes of top-level bytecode /home/uke/oil/builtin/method_type.py Compiled to 241 bytes of top-level bytecode /home/uke/oil/builtin/misc_osh.py Compiled to 289 bytes of top-level bytecode /home/uke/oil/builtin/module_ysh.py Compiled to 336 bytes of top-level bytecode /home/uke/oil/builtin/printf_osh.py Compiled to 652 bytes of top-level bytecode /home/uke/oil/builtin/private_ysh.py Compiled to 420 bytes of top-level bytecode /home/uke/oil/builtin/process_osh.py Compiled to 787 bytes of top-level bytecode /home/uke/oil/builtin/pure_osh.py Compiled to 671 bytes of top-level bytecode /home/uke/oil/builtin/pure_ysh.py Compiled to 451 bytes of top-level bytecode /home/uke/oil/builtin/read_osh.py Compiled to 584 bytes of top-level bytecode /home/uke/oil/builtin/readline_osh.py Compiled to 501 bytes of top-level bytecode /home/uke/oil/builtin/trap_osh.py Compiled to 520 bytes of top-level bytecode /home/uke/oil/core/__init__.py Compiled to 4 bytes of top-level bytecode /home/uke/oil/core/alloc.py Compiled to 214 bytes of top-level bytecode /home/uke/oil/core/bash_impl.py Compiled to 659 bytes of top-level bytecode /home/uke/oil/core/comp_ui.py Compiled to 375 bytes of top-level bytecode /home/uke/oil/core/completion.py Compiled to 1305 bytes of top-level bytecode /home/uke/oil/core/dev.py Compiled to 774 bytes of top-level bytecode /home/uke/oil/core/error.py Compiled to 629 bytes of top-level bytecode /home/uke/oil/core/executor.py Compiled to 752 bytes of top-level bytecode /home/uke/oil/core/main_loop.py Compiled to 548 bytes of top-level bytecode /home/uke/oil/core/num.py Compiled to 76 bytes of top-level bytecode /home/uke/oil/core/optview.py Compiled to 162 bytes of top-level bytecode /home/uke/oil/core/process.py Compiled to 1483 bytes of top-level bytecode /home/uke/oil/core/pyos.py Compiled to 545 bytes of top-level bytecode /home/uke/oil/core/pyutil.py Compiled to 318 bytes of top-level bytecode /home/uke/oil/core/sh_init.py Compiled to 419 bytes of top-level bytecode /home/uke/oil/core/shell.py Compiled to 1494 bytes of top-level bytecode /home/uke/oil/core/state.py Compiled to 1547 bytes of top-level bytecode /home/uke/oil/core/util.py Compiled to 281 bytes of top-level bytecode /home/uke/oil/core/vm.py Compiled to 821 bytes of top-level bytecode /home/uke/oil/data_lang/__init__.py Compiled to 4 bytes of top-level bytecode /home/uke/oil/data_lang/j8.py Compiled to 670 bytes of top-level bytecode /home/uke/oil/data_lang/j8_lite.py Compiled to 73 bytes of top-level bytecode /home/uke/oil/data_lang/pyj8.py Compiled to 98 bytes of top-level bytecode /home/uke/oil/display/__init__.py Compiled to 4 bytes of top-level bytecode /home/uke/oil/display/ansi.py Compiled to 92 bytes of top-level bytecode /home/uke/oil/display/pp_hnode.py Compiled to 326 bytes of top-level bytecode /home/uke/oil/display/pp_value.py Compiled to 395 bytes of top-level bytecode /home/uke/oil/display/pretty.py Compiled to 258 bytes of top-level bytecode /home/uke/oil/display/ui.py Compiled to 611 bytes of top-level bytecode /home/uke/oil/frontend/__init__.py Compiled to 4 bytes of top-level bytecode /home/uke/oil/frontend/args.py Compiled to 576 bytes of top-level bytecode /home/uke/oil/frontend/builtin_def.py Compiled to 358 bytes of top-level bytecode /home/uke/oil/frontend/consts.py Compiled to 2465 bytes of top-level bytecode /home/uke/oil/frontend/flag_def.py Compiled to 3252 bytes of top-level bytecode /home/uke/oil/frontend/flag_spec.py Compiled to 299 bytes of top-level bytecode /home/uke/oil/frontend/flag_util.py Compiled to 212 bytes of top-level bytecode /home/uke/oil/frontend/id_kind_def.py Compiled to 234 bytes of top-level bytecode /home/uke/oil/frontend/lexer.py Compiled to 344 bytes of top-level bytecode /home/uke/oil/frontend/lexer_def.py Compiled to 7526 bytes of top-level bytecode /home/uke/oil/frontend/location.py Compiled to 424 bytes of top-level bytecode /home/uke/oil/frontend/match.py Compiled to 941 bytes of top-level bytecode /home/uke/oil/frontend/option_def.py Compiled to 1030 bytes of top-level bytecode /home/uke/oil/frontend/parse_lib.py Compiled to 670 bytes of top-level bytecode /home/uke/oil/frontend/py_readline.py Compiled to 275 bytes of top-level bytecode /home/uke/oil/frontend/reader.py Compiled to 391 bytes of top-level bytecode /home/uke/oil/frontend/signal_def.py Compiled to 221 bytes of top-level bytecode /home/uke/oil/frontend/syntax_abbrev.py Compiled to 294 bytes of top-level bytecode /home/uke/oil/frontend/typed_args.py Compiled to 373 bytes of top-level bytecode /home/uke/oil/mycpp/__init__.py Compiled to 4 bytes of top-level bytecode /home/uke/oil/mycpp/iolib.py Compiled to 128 bytes of top-level bytecode /home/uke/oil/mycpp/mops.py Compiled to 367 bytes of top-level bytecode /home/uke/oil/mycpp/mylib.py Compiled to 775 bytes of top-level bytecode /home/uke/oil/osh/__init__.py Compiled to 4 bytes of top-level bytecode /home/uke/oil/osh/arith_parse.py Compiled to 294 bytes of top-level bytecode /home/uke/oil/osh/bool_parse.py Compiled to 267 bytes of top-level bytecode /home/uke/oil/osh/bool_stat.py Compiled to 181 bytes of top-level bytecode /home/uke/oil/osh/braces.py Compiled to 426 bytes of top-level bytecode /home/uke/oil/osh/cmd_eval.py Compiled to 1362 bytes of top-level bytecode /home/uke/oil/osh/cmd_parse.py Compiled to 1006 bytes of top-level bytecode /home/uke/oil/osh/glob_.py Compiled to 382 bytes of top-level bytecode /home/uke/oil/osh/history.py Compiled to 229 bytes of top-level bytecode /home/uke/oil/osh/prompt.py Compiled to 591 bytes of top-level bytecode /home/uke/oil/osh/sh_expr_eval.py Compiled to 828 bytes of top-level bytecode /home/uke/oil/osh/split.py Compiled to 342 bytes of top-level bytecode /home/uke/oil/osh/string_ops.py Compiled to 443 bytes of top-level bytecode /home/uke/oil/osh/tdop.py Compiled to 515 bytes of top-level bytecode /home/uke/oil/osh/word_.py Compiled to 569 bytes of top-level bytecode /home/uke/oil/osh/word_compile.py Compiled to 288 bytes of top-level bytecode /home/uke/oil/osh/word_eval.py Compiled to 1161 bytes of top-level bytecode /home/uke/oil/osh/word_parse.py Compiled to 784 bytes of top-level bytecode /home/uke/oil/pgen2/__init__.py Compiled to 10 bytes of top-level bytecode /home/uke/oil/pgen2/grammar.py Compiled to 197 bytes of top-level bytecode /home/uke/oil/pgen2/parse.py Compiled to 201 bytes of top-level bytecode /home/uke/oil/pgen2/pnode.py Compiled to 123 bytes of top-level bytecode /home/uke/oil/pylib/__init__.py Compiled to 4 bytes of top-level bytecode /home/uke/oil/pylib/collections_.py Compiled to 48 bytes of top-level bytecode /home/uke/oil/pylib/os_path.py Compiled to 174 bytes of top-level bytecode /home/uke/oil/pylib/path_stat.py Compiled to 52 bytes of top-level bytecode /home/uke/oil/tools/__init__.py Compiled to 4 bytes of top-level bytecode /home/uke/oil/tools/deps.py Compiled to 177 bytes of top-level bytecode /home/uke/oil/tools/fmt.py Compiled to 122 bytes of top-level bytecode /home/uke/oil/tools/readlink.py Compiled to 137 bytes of top-level bytecode /home/uke/oil/tools/ysh_ify.py Compiled to 578 bytes of top-level bytecode /home/uke/oil/vendor/typing.py Compiled to 3113 bytes of top-level bytecode /home/uke/oil/ysh/__init__.py Compiled to 4 bytes of top-level bytecode /home/uke/oil/ysh/expr_eval.py Compiled to 841 bytes of top-level bytecode /home/uke/oil/ysh/expr_parse.py Compiled to 615 bytes of top-level bytecode /home/uke/oil/ysh/expr_to_ast.py Compiled to 786 bytes of top-level bytecode /home/uke/oil/ysh/func_proc.py Compiled to 573 bytes of top-level bytecode /home/uke/oil/ysh/regex_translate.py Compiled to 444 bytes of top-level bytecode /home/uke/oil/ysh/val_ops.py Compiled to 603 bytes of top-level bytecode /home/uke/tmp/Python-2.7.13/Lib/UserDict.py Compiled to 98 bytes of top-level bytecode /home/uke/tmp/Python-2.7.13/Lib/__future__.py Compiled to 447 bytes of top-level bytecode /home/uke/tmp/Python-2.7.13/Lib/_abcoll.py Compiled to 660 bytes of top-level bytecode /home/uke/tmp/Python-2.7.13/Lib/_weakrefset.py Compiled to 73 bytes of top-level bytecode /home/uke/tmp/Python-2.7.13/Lib/abc.py Compiled to 125 bytes of top-level bytecode /home/uke/tmp/Python-2.7.13/Lib/collections.py Compiled to 675 bytes of top-level bytecode /home/uke/tmp/Python-2.7.13/Lib/copy.py Compiled to 946 bytes of top-level bytecode /home/uke/tmp/Python-2.7.13/Lib/copy_reg.py Compiled to 218 bytes of top-level bytecode /home/uke/tmp/Python-2.7.13/Lib/functools.py Compiled to 104 bytes of top-level bytecode /home/uke/tmp/Python-2.7.13/Lib/heapq.py Compiled to 484 bytes of top-level bytecode /home/uke/tmp/Python-2.7.13/Lib/keyword.py Compiled to 167 bytes of top-level bytecode /home/uke/tmp/Python-2.7.13/Lib/re.py Compiled to 593 bytes of top-level bytecode /home/uke/tmp/Python-2.7.13/Lib/sre_compile.py Compiled to 582 bytes of top-level bytecode /home/uke/tmp/Python-2.7.13/Lib/sre_constants.py Compiled to 1369 bytes of top-level bytecode /home/uke/tmp/Python-2.7.13/Lib/sre_parse.py Compiled to 778 bytes of top-level bytecode /home/uke/tmp/Python-2.7.13/Lib/stat.py Compiled to 379 bytes of top-level bytecode /home/uke/tmp/Python-2.7.13/Lib/types.py Compiled to 584 bytes of top-level bytecode /home/uke/tmp/Python-2.7.13/Lib/weakref.py Compiled to 238 bytes of top-level bytecode { echo '_build/release-date.txt release-date.txt'; \ cat build/ref/oils-manifest.txt \ _build/oils-ref/opy-app-deps.txt; \ build/ref/ovm-actions.sh help-manifest _devbuild/help; \ build/ref/ovm-actions.sh ysh-stdlib-manifest; \ build/ref/ovm-actions.sh pyc-version-manifest _build/oils-ref/bytecode-opy-manifest.txt; \ } > _build/oils-ref/bytecode-opy-manifest.txt build/ref/make_zip.py _build/oils-ref/bytecode-opy.zip < _build/oils-ref/bytecode-opy-manifest.txt build/ref/ovm-actions.sh join-modules build/ref/static-c-modules.txt _build/oils-ref/app-deps-c.txt > _build/oils-ref/all-deps-c.txt # NOTE: Using xargs < input.txt style because it will fail if input.txt # doesn't exist! 'cat' errors will be swallowed. xargs build/ref/ovm-actions.sh gen-module-init < _build/oils-ref/all-deps-c.txt > _build/oils-ref/module_init.c build/ref/ovm-actions.sh main-name bin.oil oils-ref.ovm > _build/oils-ref/main_name.c build/ref/ovm-actions.sh c-module-toc > _build/c-module-toc.txt build/ref/c_module_srcs.py _build/c-module-toc.txt _build/oils-ref/app-deps-c.txt > _build/oils-ref/c-module-srcs.txt build/ref/ovm-compile.sh make-tar oils-ref bytecode-opy.zip _release/oils-ref.tar Creating oils-ref version 0.32.0 tar: Removing leading `Python-2.7.13/../' from member names tar: Removing leading `Python-2.7.13/../' from hard link targets -rw-r--r-- 1 uke uke 10045440 Jun 25 14:59 _release/oils-ref.tar real 0m0.333s user 0m0.328s sys 0m0.005s -rw-r--r-- 1 uke uke 2371403 Jun 25 14:59 _release/oils-ref-0.32.0.tar.gz ~/oil/_tmp/oils-ref-tar-test ~/oil ./configure: Wrote _build/detected-cpp-config.h ./configure: Wrote _build/detected-config.sh ./configure: Wrote _build/detected-config.h build/ref/ovm-compile.sh build-opt _build/oils-ref/ovm-opt _build/oils-ref/module_init.c _build/oils-ref/main_name.c _build/oils-ref/c-module-srcs.txt ~/oil/_tmp/oils-ref-tar-test/oils-ref-0.32.0/Python-2.7.13 ~/oil/_tmp/oils-ref-tar-test/oils-ref-0.32.0 In file included from Include/Python.h:78, from Objects/listobject.c:3: Objects/listobject.c: In function ‘list_resize’: Include/pymem.h:110:41: warning: ‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context] 110 | (type *) PyMem_REALLOC((p), (n) * sizeof(type)) ) | ^ Include/pymem.h:77:49: note: in definition of macro ‘PyMem_REALLOC’ 77 | : realloc((p), (n) ? (n) : 1)) | ^ Objects/listobject.c:62:9: note: in expansion of macro ‘PyMem_RESIZE’ 62 | PyMem_RESIZE(items, PyObject *, new_allocated); | ^~~~~~~~~~~~ Objects/listobject.c: In function ‘list_ass_subscript’: Objects/listobject.c:2647:41: warning: ‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context] 2647 | PyMem_MALLOC(slicelength*sizeof(PyObject*)); Include/pymem.h:75:43: note: in definition of macro ‘PyMem_MALLOC’ 75 | : malloc((n) ? (n) : 1)) | ^ Objects/listobject.c:2728:41: warning: ‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context] 2728 | PyMem_MALLOC(slicelength*sizeof(PyObject*)); Include/pymem.h:75:43: note: in definition of macro ‘PyMem_MALLOC’ 75 | : malloc((n) ? (n) : 1)) | ^ In file included from Include/Python.h:78, from Objects/dictobject.c:10: Objects/dictobject.c: In function ‘dictresize’: Include/pymem.h:97:37: warning: ‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context] 97 | ( (type *) PyMem_MALLOC((n) * sizeof(type)) ) ) | ^ Include/pymem.h:75:43: note: in definition of macro ‘PyMem_MALLOC’ 75 | : malloc((n) ? (n) : 1)) | ^ Objects/dictobject.c:643:20: note: in expansion of macro ‘PyMem_NEW’ 643 | newtable = PyMem_NEW(PyDictEntry, newsize); | ^~~~~~~~~ In file included from Include/Python.h:78, from Objects/setobject.c:7: Objects/setobject.c: In function ‘set_table_resize’: Include/pymem.h:97:37: warning: ‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context] 97 | ( (type *) PyMem_MALLOC((n) * sizeof(type)) ) ) | ^ Include/pymem.h:75:43: note: in definition of macro ‘PyMem_MALLOC’ 75 | : malloc((n) ? (n) : 1)) | ^ Objects/setobject.c:316:20: note: in expansion of macro ‘PyMem_NEW’ 316 | newtable = PyMem_NEW(setentry, newsize); | ^~~~~~~~~ In file included from Include/Python.h:78, from Objects/structseq.c:4: Objects/structseq.c: In function ‘PyStructSequence_InitType’: Include/pymem.h:97:37: warning: ‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context] 97 | ( (type *) PyMem_MALLOC((n) * sizeof(type)) ) ) | ^ Include/pymem.h:75:43: note: in definition of macro ‘PyMem_MALLOC’ 75 | : malloc((n) ? (n) : 1)) | ^ Objects/structseq.c:504:15: note: in expansion of macro ‘PyMem_NEW’ 504 | members = PyMem_NEW(PyMemberDef, n_members-n_unnamed_members+1); | ^~~~~~~~~ Objects/structseq.c: In function ‘structseq_repr’: Objects/structseq.c:257:5: warning: ‘strncpy’ specified bound depends on the length of the source argument [-Wstringop-truncation] 257 | strncpy(pbuf, typ->tp_name, len); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Objects/structseq.c:255:11: note: length computed here 255 | len = strlen(typ->tp_name) > TYPE_MAXSIZE ? TYPE_MAXSIZE : | ^~~~~~~~~~~~~~~~~~~~ In file included from Include/Python.h:78, from Objects/typeobject.c:3: Objects/typeobject.c: In function ‘pmerge’: Objects/typeobject.c:1519:44: warning: ‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context] 1519 | remain = (int *)PyMem_MALLOC(SIZEOF_INT*to_merge_size); Include/pymem.h:75:43: note: in definition of macro ‘PyMem_MALLOC’ 75 | : malloc((n) ? (n) : 1)) | ^ In file included from Include/Python.h:78, from Python/bltinmodule.c:3: Python/bltinmodule.c: In function ‘builtin_map’: Include/pymem.h:97:37: warning: ‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context] 97 | ( (type *) PyMem_MALLOC((n) * sizeof(type)) ) ) | ^ Include/pymem.h:75:43: note: in definition of macro ‘PyMem_MALLOC’ 75 | : malloc((n) ? (n) : 1)) | ^ Python/bltinmodule.c:980:17: note: in expansion of macro ‘PyMem_NEW’ 980 | if ((seqs = PyMem_NEW(sequence, n)) == NULL) { | ^~~~~~~~~ In file included from Include/Python.h:78, from Python/getargs.c:4: Python/getargs.c: In function ‘convertsimple’: Include/pymem.h:97:37: warning: ‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context] 97 | ( (type *) PyMem_MALLOC((n) * sizeof(type)) ) ) | ^ Include/pymem.h:75:43: note: in definition of macro ‘PyMem_MALLOC’ 75 | : malloc((n) ? (n) : 1)) | ^ Python/getargs.c:1133:27: note: in expansion of macro ‘PyMem_NEW’ 1133 | *buffer = PyMem_NEW(char, size + 1); | ^~~~~~~~~ Include/pymem.h:97:37: warning: ‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context] 97 | ( (type *) PyMem_MALLOC((n) * sizeof(type)) ) ) | ^ Include/pymem.h:75:43: note: in definition of macro ‘PyMem_MALLOC’ 75 | : malloc((n) ? (n) : 1)) | ^ Python/getargs.c:1181:23: note: in expansion of macro ‘PyMem_NEW’ 1181 | *buffer = PyMem_NEW(char, size + 1); | ^~~~~~~~~ Python/getargs.c:1034:21: warning: variable ‘encoding’ set but not used [-Wunused-but-set-variable] 1034 | const char *encoding; | ^~~~~~~~ In file included from Include/Python.h:78, from Python/import.c:4: Python/import.c: In function ‘_PyImport_Init’: Include/pymem.h:97:37: warning: ‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context] 97 | ( (type *) PyMem_MALLOC((n) * sizeof(type)) ) ) | ^ Include/pymem.h:75:43: note: in definition of macro ‘PyMem_MALLOC’ 75 | : malloc((n) ? (n) : 1)) | ^ Python/import.c:168:15: note: in expansion of macro ‘PyMem_NEW’ 168 | filetab = PyMem_NEW(struct filedescr, countD + countS + 1); | ^~~~~~~~~ Python/import.c: In function ‘PyImport_ExtendInittab’: Include/pymem.h:110:41: warning: ‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context] 110 | (type *) PyMem_REALLOC((p), (n) * sizeof(type)) ) | ^ Include/pymem.h:77:49: note: in definition of macro ‘PyMem_REALLOC’ 77 | : realloc((p), (n) ? (n) : 1)) | ^ Python/import.c:3517:5: note: in expansion of macro ‘PyMem_RESIZE’ 3517 | PyMem_RESIZE(p, struct _inittab, i+n+1); | ^~~~~~~~~~~~ Python/marshal.c: In function ‘PyMarshal_WriteLongToFile’: Python/marshal.c:70:35: warning: ‘wf.ptr’ may be used uninitialized [-Wmaybe-uninitialized] 70 | else if ((p)->ptr != (p)->end) *(p)->ptr++ = (c); \ | ^~ Python/marshal.c:466:11: note: ‘wf’ declared here 466 | WFILE wf; | ^~ Python/marshal.c:70:47: warning: ‘wf.end’ may be used uninitialized [-Wmaybe-uninitialized] 70 | else if ((p)->ptr != (p)->end) *(p)->ptr++ = (c); \ | ^~ Python/marshal.c:466:11: note: ‘wf’ declared here 466 | WFILE wf; | ^~ In function ‘w_more’, inlined from ‘w_long’ at Python/marshal.c:119:5, inlined from ‘PyMarshal_WriteLongToFile’ at Python/marshal.c:472:5: Python/marshal.c:77:10: warning: ‘wf.str’ may be used uninitialized [-Wmaybe-uninitialized] 77 | if (p->str == NULL) | ~^~~~~ Python/marshal.c: In function ‘PyMarshal_WriteLongToFile’: Python/marshal.c:466:11: note: ‘wf’ declared here 466 | WFILE wf; | ^~ Modules/_sre.c: In function ‘scanner_search’: Modules/_sre.c:3913:13: warning: ‘status’ may be used uninitialized [-Wmaybe-uninitialized] 3913 | match = pattern_new_match((PatternObject*) self->pattern, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3914 | state, status); | ~~~~~~~~~~~~~~ Modules/_sre.c:3894:9: note: ‘status’ was declared here 3894 | int status; | ^~~~~~ In function ‘pattern_error’, inlined from ‘pattern_findall’ at Modules/_sre.c:2166:13: Modules/_sre.c:1856:5: warning: ‘status’ may be used uninitialized [-Wmaybe-uninitialized] 1856 | switch (status) { | ^~~~~~ Modules/_sre.c: In function ‘pattern_findall’: Modules/_sre.c:2116:9: note: ‘status’ was declared here 2116 | int status; | ^~~~~~ In function ‘pattern_error’, inlined from ‘pattern_split’ at Modules/_sre.c:2303:13: Modules/_sre.c:1856:5: warning: ‘status’ may be used uninitialized [-Wmaybe-uninitialized] 1856 | switch (status) { | ^~~~~~ Modules/_sre.c: In function ‘pattern_split’: Modules/_sre.c:2251:9: note: ‘status’ was declared here 2251 | int status; | ^~~~~~ Modules/_sre.c: In function ‘pattern_search’: Modules/_sre.c:2014:12: warning: ‘status’ may be used uninitialized [-Wmaybe-uninitialized] 2014 | return pattern_new_match(self, &state, status); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Modules/_sre.c:1976:9: note: ‘status’ was declared here 1976 | int status; | ^~~~~~ Modules/_sre.c: In function ‘pattern_subx’: Modules/_sre.c:2404:12: warning: ‘literal’ may be used uninitialized [-Wmaybe-uninitialized] 2404 | if (literal) { | ^ Modules/_sre.c:2389:13: note: ‘literal’ was declared here 2389 | int literal; | ^~~~~~~ In function ‘pattern_error’, inlined from ‘pattern_subx’ at Modules/_sre.c:2455:13: Modules/_sre.c:1856:5: warning: ‘status’ may be used uninitialized [-Wmaybe-uninitialized] 1856 | switch (status) { | ^~~~~~ Modules/_sre.c: In function ‘pattern_subx’: Modules/_sre.c:2376:9: note: ‘status’ was declared here 2376 | int status; | ^~~~~~ Modules/_sre.c: In function ‘scanner_match’: Modules/_sre.c:3873:13: warning: ‘status’ may be used uninitialized [-Wmaybe-uninitialized] 3873 | match = pattern_new_match((PatternObject*) self->pattern, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3874 | state, status); | ~~~~~~~~~~~~~~ Modules/_sre.c:3854:9: note: ‘status’ was declared here 3854 | int status; | ^~~~~~ Modules/_sre.c: In function ‘pattern_match’: Modules/_sre.c:1969:12: warning: ‘status’ may be used uninitialized [-Wmaybe-uninitialized] 1969 | return pattern_new_match(self, &state, status); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Modules/_sre.c:1930:9: note: ‘status’ was declared here 1930 | int status; | ^~~~~~ In function ‘read_directory’, inlined from ‘zipimporter_init’ at Modules/zipimport.c:133:21: Modules/zipimport.c:845:9: warning: ‘strncpy’ output may be truncated copying between 0 and 4095 bytes from a string of length 4100 [-Wstringop-truncation] 845 | strncpy(path + length + 1, name, MAXPATHLEN - length - 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Modules/signalmodule.c: In function ‘signal_siginterrupt’: Modules/signalmodule.c:393:5: warning: ‘siginterrupt’ is deprecated: Use sigaction with SA_RESTART instead [-Wdeprecated-declarations] 393 | if (siginterrupt(sig_num, flag)<0) { | ^~ In file included from Modules/signalmodule.c:17: /usr/include/signal.h:324:12: note: declared here 324 | extern int siginterrupt (int __sig, int __interrupt) __THROW | ^~~~~~~~~~~~ ../pyext/fastfunc.c: In function ‘func_J8EncodeString’: ../pyext/fastfunc.c:37:49: warning: pointer targets in passing argument 1 of ‘PyString_FromStringAndSize’ differ in signedness [-Wpointer-sign] 37 | PyObject *ret = PyString_FromStringAndSize(out.data, out.len); | ~~~^~~~~ | | | unsigned char * In file included from Include/Python.h:99, from ../pyext/fastfunc.c:12: Include/stringobject.h:62:51: note: expected ‘const char *’ but argument is of type ‘unsigned char *’ 62 | PyAPI_FUNC(PyObject *) PyString_FromStringAndSize(const char *, Py_ssize_t); | ^~~~~~~~~~~~ ../pyext/fastfunc.c: In function ‘func_ShellEncodeString’: ../pyext/fastfunc.c:53:49: warning: pointer targets in passing argument 1 of ‘PyString_FromStringAndSize’ differ in signedness [-Wpointer-sign] 53 | PyObject *ret = PyString_FromStringAndSize(out.data, out.len); | ~~~^~~~~ | | | unsigned char * Include/stringobject.h:62:51: note: expected ‘const char *’ but argument is of type ‘unsigned char *’ 62 | PyAPI_FUNC(PyObject *) PyString_FromStringAndSize(const char *, Py_ssize_t); | ^~~~~~~~~~~~ ../pyext/fastfunc.c: In function ‘func_Utf8DecodeOne’: ../pyext/fastfunc.c:97:22: warning: pointer targets in passing argument 1 of ‘utf8_decode’ differ in signedness [-Wpointer-sign] 97 | utf8_decode(string + start, &decode_result); | ~~~~~~~^~~~~~~ | | | char * In file included from ../data_lang/j8.h:7, from ../pyext/fastfunc.c:8: ../data_lang/utf8.h:98:53: note: expected ‘const unsigned char *’ but argument is of type ‘char *’ 98 | static inline void utf8_decode(const unsigned char *input, | ~~~~~~~~~~~~~~~~~~~~~^~~~~ ../pyext/line_input.c: In function ‘on_bind_shell_command_hook’: ../pyext/line_input.c:1121:1: warning: label ‘done’ defined but not used [-Wunused-label] 1121 | done: | ^~~~ ../pyext/line_input.c: In function ‘bind_shell_command’: ../pyext/line_input.c:1150:14: warning: passing argument 1 of ‘free’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 1150 | free(cmd); | ^~~ In file included from Include/Python.h:42, from ../pyext/line_input.c:8: /usr/include/stdlib.h:568:25: note: expected ‘void *’ but argument is of type ‘const char *’ 568 | extern void free (void *__ptr) __THROW; | ~~~~~~^~~~~ ../pyext/line_input.c: In function ‘setup_readline’: ../pyext/line_input.c:1564:37: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 1564 | completer_word_break_characters = | ^ Modules/operator.c: In function ‘compare_digest’: Modules/operator.c:312:44: warning: implicit declaration of function ‘PyUnicode_AS_DATA’ [-Wimplicit-function-declaration] 312 | rc = _tscmp((const unsigned char *)PyUnicode_AS_DATA(a), | ^~~~~~~~~~~~~~~~~ Modules/operator.c:312:21: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 312 | rc = _tscmp((const unsigned char *)PyUnicode_AS_DATA(a), | ^ Modules/operator.c:313:21: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 313 | (const unsigned char *)PyUnicode_AS_DATA(b), | ^ Modules/operator.c:314:21: warning: implicit declaration of function ‘PyUnicode_GET_DATA_SIZE’ [-Wimplicit-function-declaration] 314 | PyUnicode_GET_DATA_SIZE(a), | ^~~~~~~~~~~~~~~~~~~~~~~ In file included from Include/Python.h:78, from ../pyext/posixmodule.c:6: ../pyext/posixmodule.c: In function ‘posix_execv’: Include/pymem.h:97:37: warning: ‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context] 97 | ( (type *) PyMem_MALLOC((n) * sizeof(type)) ) ) | ^ Include/pymem.h:75:43: note: in definition of macro ‘PyMem_MALLOC’ 75 | : malloc((n) ? (n) : 1)) | ^ ../pyext/posixmodule.c:1102:16: note: in expansion of macro ‘PyMem_NEW’ 1102 | argvlist = PyMem_NEW(char *, argc+1); | ^~~~~~~~~ ../pyext/posixmodule.c: In function ‘posix_execve’: Include/pymem.h:97:37: warning: ‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context] 97 | ( (type *) PyMem_MALLOC((n) * sizeof(type)) ) ) | ^ Include/pymem.h:75:43: note: in definition of macro ‘PyMem_MALLOC’ 75 | : malloc((n) ? (n) : 1)) | ^ ../pyext/posixmodule.c:1178:16: note: in expansion of macro ‘PyMem_NEW’ 1178 | argvlist = PyMem_NEW(char *, argc+1); | ^~~~~~~~~ Include/pymem.h:97:37: warning: ‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context] 97 | ( (type *) PyMem_MALLOC((n) * sizeof(type)) ) ) | ^ Include/pymem.h:75:43: note: in definition of macro ‘PyMem_MALLOC’ 75 | : malloc((n) ? (n) : 1)) | ^ ../pyext/posixmodule.c:1199:15: note: in expansion of macro ‘PyMem_NEW’ 1199 | envlist = PyMem_NEW(char *, i + 1); | ^~~~~~~~~ Include/pymem.h:97:37: warning: ‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context] 97 | ( (type *) PyMem_MALLOC((n) * sizeof(type)) ) ) | ^ Include/pymem.h:75:43: note: in definition of macro ‘PyMem_MALLOC’ 75 | : malloc((n) ? (n) : 1)) | ^ ../pyext/posixmodule.c:1237:13: note: in expansion of macro ‘PyMem_NEW’ 1237 | p = PyMem_NEW(char, len); | ^~~~~~~~~ In file included from Include/Python.h:78, from Modules/selectmodule.c:9: Modules/selectmodule.c: In function ‘update_ufd_array’: Include/pymem.h:110:41: warning: ‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context] 110 | (type *) PyMem_REALLOC((p), (n) * sizeof(type)) ) | ^ Include/pymem.h:77:49: note: in definition of macro ‘PyMem_REALLOC’ 77 | : realloc((p), (n) ? (n) : 1)) | ^ Modules/selectmodule.c:337:5: note: in expansion of macro ‘PyMem_RESIZE’ 337 | PyMem_RESIZE(self->ufds, struct pollfd, self->ufd_len); | ^~~~~~~~~~~~ real 0m27.773s user 0m26.085s sys 0m1.684s objcopy --only-keep-debug _build/oils-ref/ovm-opt _build/oils-ref/ovm-opt.symbols strip -o _build/oils-ref/ovm-opt.stripped _build/oils-ref/ovm-opt # What's the difference with debug symbols? # We need a relative path since it will be _bin/oils-ref.ovm objcopy --add-gnu-debuglink=_build/oils-ref/ovm-opt.symbols _build/oils-ref/ovm-opt.stripped cat _build/oils-ref/ovm-opt.stripped _build/oils-ref/bytecode-opy.zip > _bin/oils-ref.ovm chmod +x _bin/oils-ref.ovm real 0m27.805s user 0m26.093s sys 0m1.707s Oils 0.32.0 https://oils.pub/ Release Date: 2025-06-25 14:59:27+00:00 Arch: x86_64 OS: Linux Platform: #34~22.04.1-Ubuntu SMP Thu May 1 02:51:54 UTC 2025 Compiler: GCC 12.2.0 Interpreter: OVM Interpreter version: 2.7.13 Bytecode: bytecode-opy.zip ~/oil