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 840 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 4463 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 1876 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 6120 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 1477 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 561 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 479 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 862 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 512 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 274 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/process_osh.py
Compiled to 781 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 365 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 223 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 725 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 1440 bytes of top-level bytecode
     /home/uke/oil/core/pyos.py
Compiled to 518 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 407 bytes of top-level bytecode
     /home/uke/oil/core/shell.py
Compiled to 1478 bytes of top-level bytecode
     /home/uke/oil/core/state.py
Compiled to 1582 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 596 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 343 bytes of top-level bytecode
     /home/uke/oil/frontend/consts.py
Compiled to 2456 bytes of top-level bytecode
     /home/uke/oil/frontend/flag_def.py
Compiled to 3124 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 415 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 1000 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 263 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 1294 bytes of top-level bytecode
     /home/uke/oil/osh/cmd_parse.py
Compiled to 988 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 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 1161 bytes of top-level bytecode
     /home/uke/oil/osh/word_parse.py
Compiled to 757 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 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 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 780 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/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.28.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 9943040 Mar 25 17:15 _release/oil.tar

real	0m0.306s
user	0m0.304s
sys	0m0.002s
-rw-r--r-- 1 uke uke 2342929 Mar 25 17:15 _release/oil-0.28.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.28.0/Python-2.7.13 ~/oil/_tmp/oil-tar-test/oil-0.28.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:2647: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:2728: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:504: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:3517: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);
             ^~~~~~~~~~~~~~~~~~~~
Modules/_sre.c: In function 'scanner_search':
Modules/_sre.c:1856:5: warning: 'status' may be used uninitialized in this function [-Wmaybe-uninitialized]
     switch (status) {
     ^~~~~~
Modules/_sre.c:3894:9: note: 'status' was declared here
     int status;
         ^~~~~~
Modules/_sre.c: In function 'pattern_findall':
Modules/_sre.c:2164:16: warning: 'status' may be used uninitialized in this function [-Wmaybe-uninitialized]
             if (status == 0)
                ^
Modules/_sre.c: In function 'pattern_split':
Modules/_sre.c:2301:16: warning: 'status' may be used uninitialized in this function [-Wmaybe-uninitialized]
             if (status == 0)
                ^
Modules/_sre.c: In function 'pattern_search':
Modules/_sre.c:1856:5: warning: 'status' may be used uninitialized in this function [-Wmaybe-uninitialized]
     switch (status) {
     ^~~~~~
Modules/_sre.c:1976:9: note: 'status' was declared here
     int status;
         ^~~~~~
Modules/_sre.c: In function 'pattern_subx':
Modules/_sre.c:2404:12: warning: 'literal' may be used uninitialized in this function [-Wmaybe-uninitialized]
         if (literal) {
            ^
Modules/_sre.c:2453:16: warning: 'status' may be used uninitialized in this function [-Wmaybe-uninitialized]
             if (status == 0)
                ^
Modules/_sre.c: In function 'scanner_match':
Modules/_sre.c:1856:5: warning: 'status' may be used uninitialized in this function [-Wmaybe-uninitialized]
     switch (status) {
     ^~~~~~
Modules/_sre.c:3854:9: note: 'status' was declared here
     int status;
         ^~~~~~
Modules/_sre.c: In function 'pattern_match':
Modules/_sre.c:1856:5: warning: 'status' may be used uninitialized in this function [-Wmaybe-uninitialized]
     switch (status) {
     ^~~~~~
Modules/_sre.c:1930:9: note: 'status' was declared here
     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]
         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:1603: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:1597:9: note: length computed here
     n = strlen(p);
         ^~~~~~~~~
Modules/operator.c: In function 'compare_digest':
Modules/operator.c:312:44: warning: implicit declaration of function 'PyUnicode_AS_DATA'; did you mean 'PyUnicode_Check'? [-Wimplicit-function-declaration]
         rc = _tscmp((const unsigned char *)PyUnicode_AS_DATA(a),
                                            ^~~~~~~~~~~~~~~~~
                                            PyUnicode_Check
Modules/operator.c:312:21: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
         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]
                     (const unsigned char *)PyUnicode_AS_DATA(b),
                     ^
Modules/operator.c:314:21: warning: implicit declaration of function 'PyUnicode_GET_DATA_SIZE'; did you mean 'PyList_GET_SIZE'? [-Wimplicit-function-declaration]
                     PyUnicode_GET_DATA_SIZE(a),
                     ^~~~~~~~~~~~~~~~~~~~~~~
                     PyList_GET_SIZE
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	0m21.483s
user	0m19.278s
sys	0m2.201s
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	0m21.512s
user	0m19.287s
sys	0m2.221s
Oils 0.28.0		https://oils.pub/

Release Date: 2025-03-25 17:15:24+00:00
Arch: x86_64
OS: Linux
Platform: #25~22.04.1-Ubuntu SMP Thu Jan 16 21:37:09 UTC 2025
Compiler: GCC 8.3.0
Interpreter: OVM
Interpreter version: 2.7.13
Bytecode: bytecode-opy.zip
~/oil