test -d _build/oil && \ build/ovm-actions.sh app-deps oil /home/uke/oil:/home/uke/oil/vendor bin.oil build/ovm-actions.sh make-dotd oil _build/oil/app-deps-c.txt > _build/oil/ovm.d test -d _build/hello && \ build/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/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/oil && \ build/ovm-actions.sh py-to-compile /home/uke/oil:/home/uke/oil/vendor bin.oil > _build/oil/py-to-compile.txt sort _build/oil/py-to-compile.txt | uniq > _build/oil/all-deps-py.txt # exclude the pickle cat _build/oil/all-deps-py.txt | opy/build.sh compile-manifest _build/oil/bytecode-opy > _build/oil/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 774 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 3860 bytes of top-level bytecode /home/uke/oil/_devbuild/gen/hnode_asdl.py Compiled to 441 bytes of top-level bytecode /home/uke/oil/_devbuild/gen/id_kind.py Compiled to 7341 bytes of top-level bytecode /home/uke/oil/_devbuild/gen/id_kind_asdl.py Compiled to 4085 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 1780 bytes of top-level bytecode /home/uke/oil/_devbuild/gen/pretty_asdl.py Compiled to 397 bytes of top-level bytecode /home/uke/oil/_devbuild/gen/runtime_asdl.py Compiled to 2452 bytes of top-level bytecode /home/uke/oil/_devbuild/gen/syntax_asdl.py Compiled to 6061 bytes of top-level bytecode /home/uke/oil/_devbuild/gen/types_asdl.py Compiled to 894 bytes of top-level bytecode /home/uke/oil/_devbuild/gen/value_asdl.py Compiled to 1273 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 365 bytes of top-level bytecode /home/uke/oil/asdl/pybase.py Compiled to 165 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 588 bytes of top-level bytecode /home/uke/oil/builtin/bracket_osh.py Compiled to 490 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 588 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 999 bytes of top-level bytecode /home/uke/oil/builtin/hay_ysh.py Compiled to 543 bytes of top-level bytecode /home/uke/oil/builtin/io_osh.py Compiled to 460 bytes of top-level bytecode /home/uke/oil/builtin/io_ysh.py Compiled to 491 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_osh.py Compiled to 745 bytes of top-level bytecode /home/uke/oil/builtin/method_dict.py Compiled to 209 bytes of top-level bytecode /home/uke/oil/builtin/method_io.py Compiled to 328 bytes of top-level bytecode /home/uke/oil/builtin/method_list.py Compiled to 275 bytes of top-level bytecode /home/uke/oil/builtin/method_other.py Compiled to 143 bytes of top-level bytecode /home/uke/oil/builtin/method_str.py Compiled to 613 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 664 bytes of top-level bytecode /home/uke/oil/builtin/process_osh.py Compiled to 749 bytes of top-level bytecode /home/uke/oil/builtin/pure_osh.py Compiled to 627 bytes of top-level bytecode /home/uke/oil/builtin/pure_ysh.py Compiled to 469 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 299 bytes of top-level bytecode /home/uke/oil/builtin/trap_osh.py Compiled to 489 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 223 bytes of top-level bytecode /home/uke/oil/core/comp_ui.py Compiled to 354 bytes of top-level bytecode /home/uke/oil/core/completion.py Compiled to 1283 bytes of top-level bytecode /home/uke/oil/core/dev.py Compiled to 742 bytes of top-level bytecode /home/uke/oil/core/error.py Compiled to 585 bytes of top-level bytecode /home/uke/oil/core/executor.py Compiled to 638 bytes of top-level bytecode /home/uke/oil/core/main_loop.py Compiled to 467 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 1424 bytes of top-level bytecode /home/uke/oil/core/pyos.py Compiled to 560 bytes of top-level bytecode /home/uke/oil/core/pyutil.py Compiled to 318 bytes of top-level bytecode /home/uke/oil/core/shell.py Compiled to 1466 bytes of top-level bytecode /home/uke/oil/core/state.py Compiled to 1422 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 659 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 678 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_value.py Compiled to 361 bytes of top-level bytecode /home/uke/oil/display/pretty.py Compiled to 243 bytes of top-level bytecode /home/uke/oil/display/ui.py Compiled to 578 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 578 bytes of top-level bytecode /home/uke/oil/frontend/builtin_def.py Compiled to 337 bytes of top-level bytecode /home/uke/oil/frontend/consts.py Compiled to 2462 bytes of top-level bytecode /home/uke/oil/frontend/flag_def.py Compiled to 2873 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 222 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 7341 bytes of top-level bytecode /home/uke/oil/frontend/location.py Compiled to 409 bytes of top-level bytecode /home/uke/oil/frontend/match.py Compiled to 871 bytes of top-level bytecode /home/uke/oil/frontend/option_def.py Compiled to 976 bytes of top-level bytecode /home/uke/oil/frontend/parse_lib.py Compiled to 646 bytes of top-level bytecode /home/uke/oil/frontend/py_readline.py Compiled to 146 bytes of top-level bytecode /home/uke/oil/frontend/reader.py Compiled to 375 bytes of top-level bytecode /home/uke/oil/frontend/signal_def.py Compiled to 221 bytes of top-level bytecode /home/uke/oil/frontend/typed_args.py Compiled to 316 bytes of top-level bytecode /home/uke/oil/mycpp/__init__.py Compiled to 4 bytes of top-level bytecode /home/uke/oil/mycpp/mops.py Compiled to 342 bytes of top-level bytecode /home/uke/oil/mycpp/mylib.py Compiled to 766 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 1152 bytes of top-level bytecode /home/uke/oil/osh/cmd_parse.py Compiled to 954 bytes of top-level bytecode /home/uke/oil/osh/glob_.py Compiled to 366 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 585 bytes of top-level bytecode /home/uke/oil/osh/sh_expr_eval.py Compiled to 794 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 551 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 1145 bytes of top-level bytecode /home/uke/oil/osh/word_parse.py Compiled to 741 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/cgi.py Compiled to 19 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 175 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 525 bytes of top-level bytecode /home/uke/oil/vendor/typing.py Compiled to 115 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 829 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 780 bytes of top-level bytecode /home/uke/oil/ysh/func_proc.py Compiled to 561 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 575 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/stat.py Compiled to 379 bytes of top-level bytecode { echo '_build/release-date.txt release-date.txt'; \ cat build/oil-manifest.txt \ _build/oil/opy-app-deps.txt; \ build/ovm-actions.sh help-manifest _devbuild/help; \ build/ovm-actions.sh ysh-stdlib-manifest; \ build/ovm-actions.sh pyc-version-manifest _build/oil/bytecode-opy-manifest.txt; \ } > _build/oil/bytecode-opy-manifest.txt build/make_zip.py _build/oil/bytecode-opy.zip < _build/oil/bytecode-opy-manifest.txt build/ovm-actions.sh join-modules build/static-c-modules.txt _build/oil/app-deps-c.txt > _build/oil/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/ovm-actions.sh gen-module-init < _build/oil/all-deps-c.txt > _build/oil/module_init.c build/ovm-actions.sh main-name bin.oil oil.ovm > _build/oil/main_name.c build/ovm-actions.sh c-module-toc > _build/c-module-toc.txt build/c_module_srcs.py _build/c-module-toc.txt _build/oil/app-deps-c.txt > _build/oil/c-module-srcs.txt build/ovm-compile.sh make-tar oil bytecode-opy.zip _release/oil.tar Creating oil version 0.22.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 9062400 Aug 3 19:09 _release/oil.tar real 0m0.269s user 0m0.261s sys 0m0.008s -rw-r--r-- 1 uke uke 2045252 Aug 3 19:09 _release/oil-0.22.0.tar.gz ~/oil/_tmp/oil-tar-test ~/oil ./configure: Wrote _build/detected-cpp-config.h ./configure: Wrote _build/detected-config.sh ./configure: Wrote _build/detected-config.h build/ovm-compile.sh build-opt _build/oil/ovm-opt _build/oil/module_init.c _build/oil/main_name.c _build/oil/c-module-srcs.txt ~/oil/_tmp/oil-tar-test/oil-0.22.0/Python-2.7.13 ~/oil/_tmp/oil-tar-test/oil-0.22.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:34: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context] (type *) PyMem_REALLOC((p), (n) * sizeof(type)) ) ^ Include/pymem.h:77:21: note: in definition of macro 'PyMem_REALLOC' : realloc((p), (n) ? (n) : 1)) ^ Objects/listobject.c:62:9: note: in expansion of macro 'PyMem_RESIZE' PyMem_RESIZE(items, PyObject *, new_allocated); ^~~~~~~~~~~~ Objects/listobject.c: In function 'list_ass_subscript': Objects/listobject.c:2651:41: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context] PyMem_MALLOC(slicelength*sizeof(PyObject*)); Include/pymem.h:75:15: note: in definition of macro 'PyMem_MALLOC' : malloc((n) ? (n) : 1)) ^ Objects/listobject.c:2732:41: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context] PyMem_MALLOC(slicelength*sizeof(PyObject*)); Include/pymem.h:75:15: note: in definition of macro 'PyMem_MALLOC' : 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:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context] ( (type *) PyMem_MALLOC((n) * sizeof(type)) ) ) ^ Include/pymem.h:75:15: note: in definition of macro 'PyMem_MALLOC' : malloc((n) ? (n) : 1)) ^ Objects/dictobject.c:643:20: note: in expansion of macro 'PyMem_NEW' 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:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context] ( (type *) PyMem_MALLOC((n) * sizeof(type)) ) ) ^ Include/pymem.h:75:15: note: in definition of macro 'PyMem_MALLOC' : malloc((n) ? (n) : 1)) ^ Objects/setobject.c:316:20: note: in expansion of macro 'PyMem_NEW' 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:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context] ( (type *) PyMem_MALLOC((n) * sizeof(type)) ) ) ^ Include/pymem.h:75:15: note: in definition of macro 'PyMem_MALLOC' : malloc((n) ? (n) : 1)) ^ Objects/structseq.c:508:15: note: in expansion of macro 'PyMem_NEW' 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-overflow=] strncpy(pbuf, typ->tp_name, len); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Objects/structseq.c:255:11: note: length computed here 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] remain = (int *)PyMem_MALLOC(SIZEOF_INT*to_merge_size); Include/pymem.h:75:15: note: in definition of macro 'PyMem_MALLOC' : 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:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context] ( (type *) PyMem_MALLOC((n) * sizeof(type)) ) ) ^ Include/pymem.h:75:15: note: in definition of macro 'PyMem_MALLOC' : malloc((n) ? (n) : 1)) ^ Python/bltinmodule.c:980:17: note: in expansion of macro 'PyMem_NEW' 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:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context] ( (type *) PyMem_MALLOC((n) * sizeof(type)) ) ) ^ Include/pymem.h:75:15: note: in definition of macro 'PyMem_MALLOC' : malloc((n) ? (n) : 1)) ^ Python/getargs.c:1133:27: note: in expansion of macro 'PyMem_NEW' *buffer = PyMem_NEW(char, size + 1); ^~~~~~~~~ Include/pymem.h:97:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context] ( (type *) PyMem_MALLOC((n) * sizeof(type)) ) ) ^ Include/pymem.h:75:15: note: in definition of macro 'PyMem_MALLOC' : malloc((n) ? (n) : 1)) ^ Python/getargs.c:1181:23: note: in expansion of macro 'PyMem_NEW' *buffer = PyMem_NEW(char, size + 1); ^~~~~~~~~ Python/getargs.c:1034:21: warning: variable 'encoding' set but not used [-Wunused-but-set-variable] 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:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context] ( (type *) PyMem_MALLOC((n) * sizeof(type)) ) ) ^ Include/pymem.h:75:15: note: in definition of macro 'PyMem_MALLOC' : malloc((n) ? (n) : 1)) ^ Python/import.c:168:15: note: in expansion of macro 'PyMem_NEW' filetab = PyMem_NEW(struct filedescr, countD + countS + 1); ^~~~~~~~~ Python/import.c: In function 'PyImport_ExtendInittab': Include/pymem.h:110:34: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context] (type *) PyMem_REALLOC((p), (n) * sizeof(type)) ) ^ Include/pymem.h:77:21: note: in definition of macro 'PyMem_REALLOC' : realloc((p), (n) ? (n) : 1)) ^ Python/import.c:3525:5: note: in expansion of macro 'PyMem_RESIZE' 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 in this function [-Wmaybe-uninitialized] else if ((p)->ptr != (p)->end) *(p)->ptr++ = (c); \ ^~ Python/marshal.c:70:47: warning: 'wf.end' may be used uninitialized in this function [-Wmaybe-uninitialized] else if ((p)->ptr != (p)->end) *(p)->ptr++ = (c); \ ^~ Python/marshal.c:77:10: warning: 'wf.str' may be used uninitialized in this function [-Wmaybe-uninitialized] if (p->str == NULL) ~^~~~~ Python/pystrtod.c: In function 'format_float_short': Python/pystrtod.c:1007:13: warning: 'strncpy' output truncated before terminating nul copying 3 bytes from a string of the same length [-Wstringop-truncation] strncpy(p, "ERR", 3); ^~~~~~~~~~~~~~~~~~~~ In function 'read_directory', inlined from 'zipimporter_init' at Modules/zipimport.c:133:21: Modules/zipimport.c:849:9: warning: 'strncpy' output may be truncated copying between 0 and 4095 bytes from a string of length 4100 [-Wstringop-truncation] strncpy(path + length + 1, name, MAXPATHLEN - length - 1); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../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] PyObject *ret = PyString_FromStringAndSize(out.data, out.len); ~~~^~~~~ In file included from Include/Python.h:99, from ../pyext/fastfunc.c:12: Include/stringobject.h:62:24: note: expected 'const char *' but argument is of type 'unsigned char *' 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] PyObject *ret = PyString_FromStringAndSize(out.data, out.len); ~~~^~~~~ In file included from Include/Python.h:99, from ../pyext/fastfunc.c:12: Include/stringobject.h:62:24: note: expected 'const char *' but argument is of type 'unsigned char *' 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] utf8_decode(string + start, &decode_result); ~~~~~~~^~~~~~~ In file included from ../data_lang/j8.h:7, from ../pyext/fastfunc.c:8: ../data_lang/utf8.h:98:20: note: expected 'const unsigned char *' but argument is of type 'char *' static inline void utf8_decode(const unsigned char *input, ^~~~~~~~~~~ ../pyext/line_input.c: In function 'call_readline': ../pyext/line_input.c:1206:9: warning: 'strncpy' output truncated before terminating nul copying as many bytes from a string as its length [-Wstringop-truncation] strncpy(p, q, n); ^~~~~~~~~~~~~~~~ ../pyext/line_input.c:1200:9: note: length computed here n = strlen(p); ^~~~~~~~~ In file included from Include/Python.h:78, from ../pyext/posixmodule.c:6: ../pyext/posixmodule.c: In function 'posix_execv': Include/pymem.h:97:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context] ( (type *) PyMem_MALLOC((n) * sizeof(type)) ) ) ^ Include/pymem.h:75:15: note: in definition of macro 'PyMem_MALLOC' : malloc((n) ? (n) : 1)) ^ ../pyext/posixmodule.c:1102:16: note: in expansion of macro 'PyMem_NEW' argvlist = PyMem_NEW(char *, argc+1); ^~~~~~~~~ ../pyext/posixmodule.c: In function 'posix_execve': Include/pymem.h:97:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context] ( (type *) PyMem_MALLOC((n) * sizeof(type)) ) ) ^ Include/pymem.h:75:15: note: in definition of macro 'PyMem_MALLOC' : malloc((n) ? (n) : 1)) ^ ../pyext/posixmodule.c:1178:16: note: in expansion of macro 'PyMem_NEW' argvlist = PyMem_NEW(char *, argc+1); ^~~~~~~~~ Include/pymem.h:97:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context] ( (type *) PyMem_MALLOC((n) * sizeof(type)) ) ) ^ Include/pymem.h:75:15: note: in definition of macro 'PyMem_MALLOC' : malloc((n) ? (n) : 1)) ^ ../pyext/posixmodule.c:1199:15: note: in expansion of macro 'PyMem_NEW' envlist = PyMem_NEW(char *, i + 1); ^~~~~~~~~ Include/pymem.h:97:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context] ( (type *) PyMem_MALLOC((n) * sizeof(type)) ) ) ^ Include/pymem.h:75:15: note: in definition of macro 'PyMem_MALLOC' : malloc((n) ? (n) : 1)) ^ ../pyext/posixmodule.c:1237:13: note: in expansion of macro 'PyMem_NEW' 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:34: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context] (type *) PyMem_REALLOC((p), (n) * sizeof(type)) ) ^ Include/pymem.h:77:21: note: in definition of macro 'PyMem_REALLOC' : realloc((p), (n) ? (n) : 1)) ^ Modules/selectmodule.c:337:5: note: in expansion of macro 'PyMem_RESIZE' PyMem_RESIZE(self->ufds, struct pollfd, self->ufd_len); ^~~~~~~~~~~~ real 0m18.617s user 0m16.244s sys 0m2.356s objcopy --only-keep-debug _build/oil/ovm-opt _build/oil/ovm-opt.symbols strip -o _build/oil/ovm-opt.stripped _build/oil/ovm-opt # What's the difference with debug symbols? # We need a relative path since it will be _bin/oil.ovm objcopy --add-gnu-debuglink=_build/oil/ovm-opt.symbols _build/oil/ovm-opt.stripped cat _build/oil/ovm-opt.stripped _build/oil/bytecode-opy.zip > _bin/oil.ovm chmod +x _bin/oil.ovm real 0m18.648s user 0m16.259s sys 0m2.372s Oils 0.22.0 https://www.oilshell.org/ Release Date: 2024-08-03 19:08:44+00:00 Arch: x86_64 OS: Linux Platform: #26~22.04.1-Ubuntu SMP Thu Jul 11 22:33:04 UTC 2024 Compiler: GCC 8.3.0 Interpreter: OVM Interpreter version: 2.7.13 Bytecode: bytecode-opy.zip ~/oil