ericentin / exexec Goto Github PK
View Code? Open in Web Editor NEWExecute and control OS processes from Elixir.
License: Apache License 2.0
Execute and control OS processes from Elixir.
License: Apache License 2.0
exexec
currently depends on erlexec ~> 1.10
, but erlexec
is currently at version 2.0.2, https://hex.pm/packages/erlexec; @ericentin maybe you could relax the dependency to allow erlexec
2.x (so it is compatible)? That would be great!
Inside a docker container I'm using exexec
to execute a command. That command runs fine as that user directly in the terminal. But when I try and run the exact same command with exexec
it says "Pid 64: cannot execute '(null)': Bad address"
which from some research seems to be some sort of permission issue. Any ideas?
@type command_option ::
lists
{:stdout, :stderr | output_device_option} |
{:stderr, :stdout | output_device_option} |
but neither stderr: :stdout
or stdout: :stderr
work; e.g.
Exexec.run(["/usr/bin/ssh" | args], stdout: true, stderr: :stdout, sync: true, env: env)
yields
** (FunctionClauseError) no function clause matching in Exexec.ToErl.output_device_option_to_erl/1
(exexec) lib/exexec/to_erl.ex:76: Exexec.ToErl.output_device_option_to_erl(:stdout)
(exexec) lib/exexec/to_erl.ex:72: Exexec.ToErl.command_option_to_erl/2
(exexec) lib/exexec/to_erl.ex:14: anonymous fn/2 in Exexec.ToErl.command_options_to_erl/1
(elixir) lib/enum.ex:1774: Enum."-reduce/3-lists^foldl/2-0-"/3
(exexec) lib/exexec/to_erl.ex:13: Exexec.ToErl.command_options_to_erl/1
(exexec) lib/exexec.ex:125: Exexec.run/2
[...]
This fixes it, but I don't know if it's the right place to fix it:
diff --git a/lib/exexec/to_erl.ex b/lib/exexec/to_erl.ex
index 0abf38c..444d79f 100644
--- a/lib/exexec/to_erl.ex
+++ b/lib/exexec/to_erl.ex
@@ -76,6 +76,8 @@ defmodule Exexec.ToErl do
def output_device_option_to_erl(:null), do: :null
def output_device_option_to_erl(:close), do: :close
def output_device_option_to_erl(:print), do: :print
+ def output_device_option_to_erl(:stdin), do: :stdin
+ def output_device_option_to_erl(:stdout), do: :stdout
def output_device_option_to_erl(path) when is_binary(path), do: to_char_list(path)
def output_device_option_to_erl(pid) when is_pid(pid), do: pid
def output_device_option_to_erl(fun) when is_function(fun, 3), do: fun
Thank you for this library.
I'm new to Elixir and am building a tool to manage my FreeBSD jails. It needs to run as root to access all the required files and have permission to create and run jails, I am aware of the risks and want to override them for building a prototype.
I added exexec as a dependency with no other change, built and deployed the application and it promptly crashed with this error message:
Not allowed to run as root without setting effective user (-user option)! [c_src/exec.cpp:539]
10:32:53.966 [info] Application erlexec exited: :exec_app.start(:normal, []) returned an error: shutdown: failed to start child: :exec
** (EXIT) {:port_exited_with_status, 4}
...
I have not accessed the library in any way, had no opportunity to set any options.
I am unsure where am I supposed to set the options mentioned here:
https://saleyn.github.io/erlexec/overview-summary.html
Under: Running the port program as root
How should I pass the options via exexec to pacify erlexec about running as root?
It appears to me that included erlexec
in the included_applications
list causes some issues when building a release with Distillery.
Line 32 in 1828403
This is interesting because it highlights a behavior in mix
that's different from a release.
If :erlexec
is in the extra_applications
mix
config, erlexec
will always be started by mix
, i.e. overriding exexec
's included_application
setting. However, the release will ignore extra_applications
and expects exexec
to start erlexec
, which it never does, so erlexec
is never started.
For a concrete example with erlexec
set in extra_applications
:
Here are the relevant .app
files:
example.app
:
{application,example,
[{applications,[kernel,stdlib,elixir,logger,erlexec,exexec,
distillery]},
{description,"example"},
{modules,['Elixir.Example','Elixir.Example.Application']},
{registered,[]},
{vsn,"0.1.0"},
{mod,{'Elixir.Example.Application',[]}}]}.
exexec.app
:
{application,exexec,
[{applications,[kernel,stdlib,elixir]},
{description,"An idiomatic Elixir wrapper for erlexec."},
{modules,['Elixir.Exexec','Elixir.Exexec.ToErl']},
{registered,[]},
{vsn,"0.2.0"},
{included_applications,[erlexec]}]}.
Running with mix:
$ iex -S mix
Erlang/OTP 21 [erts-10.2] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [hipe]
Interactive Elixir (1.8.0) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> Application.started_applications() |> Enum.find(&match?({:erlexec,_,_}, &1))
{:erlexec, 'OS Process Manager', '1.9.5'}
Running with a Distillery release:
_build/dev/rel/example/bin/example console
Erlang/OTP 21 [erts-10.2] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [hipe]
Interactive Elixir (1.8.0) - press Ctrl+C to exit (type h() ENTER for help)
iex([email protected])1> Application.started_applications() |> Enum.find(&match?({:erlexec,_,_}, &1))
nil
I wanted to document this for future reference and in case someone else comes across this issue, but I think it's also worth asking the question why does exexec
include erlexec
as an included_application
without explicitly starting it?
I'm not sure if this is the right place to open this bug but I thought recording what I found might be useful.
I can't get erlexec to work in any elixir project in 1.11 or 1.10.4. It always fails when it tries to compile erlexec.
Here is the complete log of creating a new project that contains only the dep statement for exexec and trying to build it. It's quite verbose because debugging information is enabled. This may be a problem that's unique to mac and / or someone eles's problem but I figured I would start here.
ddrexler@Drexbook-Pro:elixir|$ mix new test
* creating README.md
* creating .formatter.exs
* creating .gitignore
* creating mix.exs
* creating lib
* creating lib/test.ex
* creating test
* creating test/test_helper.exs
* creating test/test_test.exs
Your Mix project was created successfully.
You can use "mix" to compile it, test it, and more:
cd test
mix test
Run "mix help" for more commands.
ddrexler@Drexbook-Pro:elixir|$ cd test
ddrexler@Drexbook-Pro:test|$ mix deps.get
Resolving Hex dependencies...
Dependency resolution completed:
New:
erlexec 1.17.6
exexec 0.2.0
* Getting exexec (Hex package)
* Getting erlexec (Hex package)
ddrexler@Drexbook-Pro:test|$ mix test
===> Fetching pc ({pkg,<<"pc">>,<<"1.10.0">>})
===> Successfully downloaded https://repo.hex.pm:443/tarballs/pc-1.10.0.tar?
===> Downloaded package, caching at /Users/ddrexler/.cache/rebar3/hex/default/packages/pc-1.10.0.tar
===> Writing {pkg,<<"pc">>,<<"1.10.0">>,
<<"5C8306018C7357089F8175E1C238AE502759CF9E302DD95FFEFFF1F051AC0F39">>} to cache at /Users/ddrexler/.cache/rebar3/hex/default/packages/pc-1.10.0.tar
===> Moving checkout "/tmp/.tmp_dir623030829626" to "/Users/ddrexler/src/elixir/test/deps/erlexec/_build/default/plugins/pc"
===> sh info:
cwd: "/Users/ddrexler/src/elixir/test/deps/erlexec"
cmd: mv /tmp/.tmp_dir623030829626 /Users/ddrexler/src/elixir/test/deps/erlexec/_build/default/plugins/pc
===> opts: [{use_stdout,false},abort_on_error]
===> Port Cmd: mv /tmp/.tmp_dir623030829626 /Users/ddrexler/src/elixir/test/deps/erlexec/_build/default/plugins/pc
Port Opts: [exit_status,{line,16384},use_stdio,stderr_to_stdout,hide,eof]
===> Compiling pc
===> run_hooks("/Users/ddrexler/src/elixir/test/deps/erlexec/_build/default/plugins/pc", pre_hooks, compile) -> no hooks defined
===> run_hooks("/Users/ddrexler/src/elixir/test/deps/erlexec/_build/default/plugins/pc", pre_hooks, erlc_compile) -> no hooks defined
===> erlopts [debug_info,debug_info,inline_list_funcs,
warn_deprecated_function,warn_export_all,warn_export_vars,
warn_obsolete_guard,warn_shadow_vars,warn_untyped_record,
warn_unused_function,warn_unused_import,warnings_as_errors]
===> files to compile ["/Users/ddrexler/src/elixir/test/deps/erlexec/_build/default/plugins/pc/src/pc_port_specs.erl",
"/Users/ddrexler/src/elixir/test/deps/erlexec/_build/default/plugins/pc/src/pc_compilation.erl",
"/Users/ddrexler/src/elixir/test/deps/erlexec/_build/default/plugins/pc/src/pc_util.erl",
"/Users/ddrexler/src/elixir/test/deps/erlexec/_build/default/plugins/pc/src/pc_prv_compile.erl",
"/Users/ddrexler/src/elixir/test/deps/erlexec/_build/default/plugins/pc/src/pc_prv_clean.erl",
"/Users/ddrexler/src/elixir/test/deps/erlexec/_build/default/plugins/pc/src/pc_port_env.erl",
"/Users/ddrexler/src/elixir/test/deps/erlexec/_build/default/plugins/pc/src/pc.erl"]
===> Compiled pc_port_specs.erl
===> Compiled pc_compilation.erl
===> Compiled pc_util.erl
===> Compiled pc_prv_compile.erl
===> Compiled pc_prv_clean.erl
===> Compiled pc_port_env.erl
===> Compiled pc.erl
===> run_hooks("/Users/ddrexler/src/elixir/test/deps/erlexec/_build/default/plugins/pc", post_hooks, erlc_compile) -> no hooks defined
===> run_hooks("/Users/ddrexler/src/elixir/test/deps/erlexec/_build/default/plugins/pc", pre_hooks, app_compile) -> no hooks defined
===> run_hooks("/Users/ddrexler/src/elixir/test/deps/erlexec/_build/default/plugins/pc", post_hooks, app_compile) -> no hooks defined
===> run_hooks("/Users/ddrexler/src/elixir/test/deps/erlexec/_build/default/plugins/pc", post_hooks, compile) -> no hooks defined
===> Expanded command sequence to be run: []
===> Expanded command sequence to be run: [{default,app_discovery},
{bare,compile}]
===> Evaluating config script "/Users/ddrexler/src/elixir/test/deps/erlexec/rebar.config.script"
===> Not adding provider pc compile from module pc_prv_compile because it already exists from module pc_prv_compile
===> Not adding provider pc clean from module pc_prv_clean because it already exists from module pc_prv_clean
===> Evaluating config script "/Users/ddrexler/src/elixir/test/deps/erlexec/rebar.config.script"
===> Not adding provider pc compile from module pc_prv_compile because it already exists from module pc_prv_compile
===> Not adding provider pc clean from module pc_prv_clean because it already exists from module pc_prv_clean
===> Compiling erlexec
===> run_hooks("/Users/ddrexler/src/elixir/test/deps/erlexec", pre_hooks, {pc,
compile}) -> no hooks defined
===> sh info:
cwd: "/Users/ddrexler/src/elixir/test/deps/erlexec"
cmd: g++ -c -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64 -g -Wall -fPIC -MMD -I"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include" -I"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include" /Users/ddrexler/src/elixir/test/deps/erlexec/c_src/ei++.cpp -o /Users/ddrexler/src/elixir/test/deps/erlexec/c_src/ei++.o
===> opts: [{env,[{"ANDROID_HOME","/Users/ddrexler/Library/Android/sdk"},
{"AR","ar"},
{"ARCHFLAGS",
"-Wno-error=unused-command-line-argument-hard-error-in-future"},
{"AS","as"},
{"BINDIR",
"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/bin"},
{"CC","g++"},
{"COLORFGBG","7;0"},
{"COLORTERM","truecolor"},
{"COMMAND_MODE","unix2003"},
{"CPP","cpp"},
{"CXX","g++"},
{"CXXFLAGS"," -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64"},
{"DEBUG","1"},
{"DISPLAY",
"/private/tmp/com.apple.launchd.YSlvXTesb5/org.macosforge.xquartz:0"},
{"DRV_CC_TEMPLATE",
"g++ -c $CFLAGS -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"DRV_CFLAGS",
"-g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" "},
{"DRV_CXX_TEMPLATE",
"g++ -c -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64 -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"DRV_LDFLAGS",
"-bundle -flat_namespace -undefined suppress -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei"},
{"DRV_LINK_CXX_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -bundle -flat_namespace -undefined suppress -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"DRV_LINK_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -bundle -flat_namespace -undefined suppress -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"EDITOR","vim"},
{"EMU","beam"},
{"ERLANG_ARCH","64"},
{"ERLANG_TARGET","23.1.1-x86_64-apple-darwin19.6.0-64"},
{"ERL_CFLAGS",
" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" "},
{"ERL_EI_LIBDIR",
"\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\""},
{"ERL_LDFLAGS",
" -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei"},
{"ESCRIPT_NAME","/Users/ddrexler/.mix/rebar3"},
{"EXE_CC_TEMPLATE",
"g++ -c $CFLAGS -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"EXE_CFLAGS",
"-g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" "},
{"EXE_CXX_TEMPLATE",
"g++ -c -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64 -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"EXE_LDFLAGS",
" -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei"},
{"EXE_LINK_CXX_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"EXE_LINK_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"GOPATH","/Users/daniel/src/go"},
{"HOME","/Users/ddrexler"},
{"ITERM_PROFILE","Default"},
{"ITERM_SESSION_ID",
"w0t1p0:D63D80A1-087A-4A0E-B5CB-57869E11736D"},
{"LANG","en_US.UTF-8"},
{"LC_TERMINAL","iTerm2"},
{"LC_TERMINAL_VERSION","3.4.0beta9"},
{"LD","ld"},
{"LDFLAGS"," -m64"},
{"LESS","-rN"},
{"LESSOPEN","| src-hilite-lesspipe.sh %s"},
{"LOGNAME","ddrexler"},
{"LaunchInstanceID",
"32BB60DF-A31C-4C82-A33B-6DE68BA53DFD"},
{"NM","nm"},
{"OBJCOPY","objcopy"},
{"OBJDUMP","objdump"},
{"PATH",
"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/bin:/usr/local/Cellar/erlang/23.1.1/lib/erlang/bin:/Applications/Inkscape.app/Contents/MacOS:/Users/ddrexler/.poetry/bin:/Users/ddrexler/.pyenv/plugins/pyenv-virtualenv/shims:/Users/ddrexler/.pyenv/shims:/Users/ddrexler/.pyenv/bin:/Users/ddrexler/.local/bin:/Users/ddrexler/.cargo/bin:~/Library/Android/sdk/tools/:~/Library/Android/sdk/platform-tools/:/Users/daniel/anaconda/bin:/Library/Frameworks/Python.framework/Versions/3.4/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/usr/local/go/bin:/usr/local/MacGPG2/bin:/opt/X11/bin:/Users/ddrexler/src/_arcanist_install/arcanist/bin/"},
{"PROGNAME","erl"},
{"PWD","/Users/ddrexler/src/elixir/test/deps/erlexec"},
{"PYENV_SHELL","bash"},
{"PYENV_VIRTUALENV_INIT","1"},
{"RANLIB","ranlib"},
{"REBAR_BARE_COMPILER_OUTPUT_DIR",
"/Users/ddrexler/src/elixir/test/_build/test/lib/erlexec"},
{"REBAR_CONFIG",
"/Users/ddrexler/src/elixir/test/_build/test/lib/erlexec/mix.rebar.config"},
{"ROOTDIR","/usr/local/Cellar/erlang/23.1.1/lib/erlang"},
{"SECURITYSESSIONID","186a6"},
{"SHELL","/bin/bash"},
{"SHLVL","2"},
{"SQLITE_EXEMPT_PATH_FROM_VNODE_GUARDS",
"/Users/ddrexler/Library/WebKit/Databases"},
{"SSH_AUTH_SOCK",
"/private/tmp/com.apple.launchd.ilYkOh0TfA/Listeners"},
{"STRIP","strip"},
{"TERM","dumb"},
{"TERM_PROGRAM","iTerm.app"},
{"TERM_PROGRAM_VERSION","3.4.0beta9"},
{"TERM_SESSION_ID",
"w0t1p0:D63D80A1-087A-4A0E-B5CB-57869E11736D"},
{"TMPDIR",
"/var/folders/6h/27qv540s1kb2gcv16n383jd80000gn/T/"},
{"USER","ddrexler"},
{"VIRTUALENVWRAPPER_HOOK_DIR",
"/Users/ddrexler/.virtualenv"},
{"VIRTUALENVWRAPPER_PROJECT_FILENAME",".project"},
{"VIRTUALENVWRAPPER_SCRIPT",
"/Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh"},
{"VIRTUALENVWRAPPER_WORKON_CD","1"},
{"WORKON_HOME","/Users/ddrexler/.virtualenv"},
{"XPC_FLAGS","0x0"},
{"XPC_SERVICE_NAME","0"},
{"__CF_USER_TEXT_ENCODING","0x1F5:0x0:0x0"}]},
return_on_error,
{use_stdout,false},
{cd,"/Users/ddrexler/src/elixir/test/deps/erlexec"}]
===> Port Cmd: g++ -c -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64 -g -Wall -fPIC -MMD -I"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include" -I"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include" /Users/ddrexler/src/elixir/test/deps/erlexec/c_src/ei++.cpp -o /Users/ddrexler/src/elixir/test/deps/erlexec/c_src/ei++.o
Port Opts: [{env,[{"ANDROID_HOME","/Users/ddrexler/Library/Android/sdk"},
{"AR","ar"},
{"ARCHFLAGS",
"-Wno-error=unused-command-line-argument-hard-error-in-future"},
{"AS","as"},
{"BINDIR",
"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/bin"},
{"CC","g++"},
{"COLORFGBG","7;0"},
{"COLORTERM","truecolor"},
{"COMMAND_MODE","unix2003"},
{"CPP","cpp"},
{"CXX","g++"},
{"CXXFLAGS"," -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64"},
{"DEBUG","1"},
{"DISPLAY",
"/private/tmp/com.apple.launchd.YSlvXTesb5/org.macosforge.xquartz:0"},
{"DRV_CC_TEMPLATE",
"g++ -c $CFLAGS -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"DRV_CFLAGS",
"-g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" "},
{"DRV_CXX_TEMPLATE",
"g++ -c -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64 -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"DRV_LDFLAGS",
"-bundle -flat_namespace -undefined suppress -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei"},
{"DRV_LINK_CXX_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -bundle -flat_namespace -undefined suppress -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"DRV_LINK_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -bundle -flat_namespace -undefined suppress -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"EDITOR","vim"},
{"EMU","beam"},
{"ERLANG_ARCH","64"},
{"ERLANG_TARGET","23.1.1-x86_64-apple-darwin19.6.0-64"},
{"ERL_CFLAGS",
" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" "},
{"ERL_EI_LIBDIR",
"\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\""},
{"ERL_LDFLAGS",
" -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei"},
{"ESCRIPT_NAME","/Users/ddrexler/.mix/rebar3"},
{"EXE_CC_TEMPLATE",
"g++ -c $CFLAGS -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"EXE_CFLAGS",
"-g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" "},
{"EXE_CXX_TEMPLATE",
"g++ -c -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64 -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"EXE_LDFLAGS",
" -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei"},
{"EXE_LINK_CXX_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"EXE_LINK_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"GOPATH","/Users/daniel/src/go"},
{"HOME","/Users/ddrexler"},
{"ITERM_PROFILE","Default"},
{"ITERM_SESSION_ID",
"w0t1p0:D63D80A1-087A-4A0E-B5CB-57869E11736D"},
{"LANG","en_US.UTF-8"},
{"LC_TERMINAL","iTerm2"},
{"LC_TERMINAL_VERSION","3.4.0beta9"},
{"LD","ld"},
{"LDFLAGS"," -m64"},
{"LESS","-rN"},
{"LESSOPEN","| src-hilite-lesspipe.sh %s"},
{"LOGNAME","ddrexler"},
{"LaunchInstanceID","32BB60DF-A31C-4C82-A33B-6DE68BA53DFD"},
{"NM","nm"},
{"OBJCOPY","objcopy"},
{"OBJDUMP","objdump"},
{"PATH",
"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/bin:/usr/local/Cellar/erlang/23.1.1/lib/erlang/bin:/Applications/Inkscape.app/Contents/MacOS:/Users/ddrexler/.poetry/bin:/Users/ddrexler/.pyenv/plugins/pyenv-virtualenv/shims:/Users/ddrexler/.pyenv/shims:/Users/ddrexler/.pyenv/bin:/Users/ddrexler/.local/bin:/Users/ddrexler/.cargo/bin:~/Library/Android/sdk/tools/:~/Library/Android/sdk/platform-tools/:/Users/daniel/anaconda/bin:/Library/Frameworks/Python.framework/Versions/3.4/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/usr/local/go/bin:/usr/local/MacGPG2/bin:/opt/X11/bin:/Users/ddrexler/src/_arcanist_install/arcanist/bin/"},
{"PROGNAME","erl"},
{"PWD","/Users/ddrexler/src/elixir/test/deps/erlexec"},
{"PYENV_SHELL","bash"},
{"PYENV_VIRTUALENV_INIT","1"},
{"RANLIB","ranlib"},
{"REBAR_BARE_COMPILER_OUTPUT_DIR",
"/Users/ddrexler/src/elixir/test/_build/test/lib/erlexec"},
{"REBAR_CONFIG",
"/Users/ddrexler/src/elixir/test/_build/test/lib/erlexec/mix.rebar.config"},
{"ROOTDIR","/usr/local/Cellar/erlang/23.1.1/lib/erlang"},
{"SECURITYSESSIONID","186a6"},
{"SHELL","/bin/bash"},
{"SHLVL","2"},
{"SQLITE_EXEMPT_PATH_FROM_VNODE_GUARDS",
"/Users/ddrexler/Library/WebKit/Databases"},
{"SSH_AUTH_SOCK",
"/private/tmp/com.apple.launchd.ilYkOh0TfA/Listeners"},
{"STRIP","strip"},
{"TERM","dumb"},
{"TERM_PROGRAM","iTerm.app"},
{"TERM_PROGRAM_VERSION","3.4.0beta9"},
{"TERM_SESSION_ID",
"w0t1p0:D63D80A1-087A-4A0E-B5CB-57869E11736D"},
{"TMPDIR",
"/var/folders/6h/27qv540s1kb2gcv16n383jd80000gn/T/"},
{"USER","ddrexler"},
{"VIRTUALENVWRAPPER_HOOK_DIR","/Users/ddrexler/.virtualenv"},
{"VIRTUALENVWRAPPER_PROJECT_FILENAME",".project"},
{"VIRTUALENVWRAPPER_SCRIPT",
"/Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh"},
{"VIRTUALENVWRAPPER_WORKON_CD","1"},
{"WORKON_HOME","/Users/ddrexler/.virtualenv"},
{"XPC_FLAGS","0x0"},
{"XPC_SERVICE_NAME","0"},
{"__CF_USER_TEXT_ENCODING","0x1F5:0x0:0x0"}]},
{cd,"/Users/ddrexler/src/elixir/test/deps/erlexec"},
exit_status,
{line,16384},
use_stdio,stderr_to_stdout,hide,eof]
===> Compiling /Users/ddrexler/src/elixir/test/deps/erlexec/c_src/ei++.cpp
===>
===> sh info:
cwd: "/Users/ddrexler/src/elixir/test/deps/erlexec"
cmd: g++ -c -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64 -g -Wall -fPIC -MMD -I"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include" -I"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include" /Users/ddrexler/src/elixir/test/deps/erlexec/c_src/exec.cpp -o /Users/ddrexler/src/elixir/test/deps/erlexec/c_src/exec.o
===> opts: [{env,[{"ANDROID_HOME","/Users/ddrexler/Library/Android/sdk"},
{"AR","ar"},
{"ARCHFLAGS",
"-Wno-error=unused-command-line-argument-hard-error-in-future"},
{"AS","as"},
{"BINDIR",
"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/bin"},
{"CC","g++"},
{"COLORFGBG","7;0"},
{"COLORTERM","truecolor"},
{"COMMAND_MODE","unix2003"},
{"CPP","cpp"},
{"CXX","g++"},
{"CXXFLAGS"," -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64"},
{"DEBUG","1"},
{"DISPLAY",
"/private/tmp/com.apple.launchd.YSlvXTesb5/org.macosforge.xquartz:0"},
{"DRV_CC_TEMPLATE",
"g++ -c $CFLAGS -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"DRV_CFLAGS",
"-g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" "},
{"DRV_CXX_TEMPLATE",
"g++ -c -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64 -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"DRV_LDFLAGS",
"-bundle -flat_namespace -undefined suppress -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei"},
{"DRV_LINK_CXX_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -bundle -flat_namespace -undefined suppress -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"DRV_LINK_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -bundle -flat_namespace -undefined suppress -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"EDITOR","vim"},
{"EMU","beam"},
{"ERLANG_ARCH","64"},
{"ERLANG_TARGET","23.1.1-x86_64-apple-darwin19.6.0-64"},
{"ERL_CFLAGS",
" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" "},
{"ERL_EI_LIBDIR",
"\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\""},
{"ERL_LDFLAGS",
" -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei"},
{"ESCRIPT_NAME","/Users/ddrexler/.mix/rebar3"},
{"EXE_CC_TEMPLATE",
"g++ -c $CFLAGS -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"EXE_CFLAGS",
"-g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" "},
{"EXE_CXX_TEMPLATE",
"g++ -c -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64 -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"EXE_LDFLAGS",
" -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei"},
{"EXE_LINK_CXX_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"EXE_LINK_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"GOPATH","/Users/daniel/src/go"},
{"HOME","/Users/ddrexler"},
{"ITERM_PROFILE","Default"},
{"ITERM_SESSION_ID",
"w0t1p0:D63D80A1-087A-4A0E-B5CB-57869E11736D"},
{"LANG","en_US.UTF-8"},
{"LC_TERMINAL","iTerm2"},
{"LC_TERMINAL_VERSION","3.4.0beta9"},
{"LD","ld"},
{"LDFLAGS"," -m64"},
{"LESS","-rN"},
{"LESSOPEN","| src-hilite-lesspipe.sh %s"},
{"LOGNAME","ddrexler"},
{"LaunchInstanceID",
"32BB60DF-A31C-4C82-A33B-6DE68BA53DFD"},
{"NM","nm"},
{"OBJCOPY","objcopy"},
{"OBJDUMP","objdump"},
{"PATH",
"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/bin:/usr/local/Cellar/erlang/23.1.1/lib/erlang/bin:/Applications/Inkscape.app/Contents/MacOS:/Users/ddrexler/.poetry/bin:/Users/ddrexler/.pyenv/plugins/pyenv-virtualenv/shims:/Users/ddrexler/.pyenv/shims:/Users/ddrexler/.pyenv/bin:/Users/ddrexler/.local/bin:/Users/ddrexler/.cargo/bin:~/Library/Android/sdk/tools/:~/Library/Android/sdk/platform-tools/:/Users/daniel/anaconda/bin:/Library/Frameworks/Python.framework/Versions/3.4/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/usr/local/go/bin:/usr/local/MacGPG2/bin:/opt/X11/bin:/Users/ddrexler/src/_arcanist_install/arcanist/bin/"},
{"PROGNAME","erl"},
{"PWD","/Users/ddrexler/src/elixir/test/deps/erlexec"},
{"PYENV_SHELL","bash"},
{"PYENV_VIRTUALENV_INIT","1"},
{"RANLIB","ranlib"},
{"REBAR_BARE_COMPILER_OUTPUT_DIR",
"/Users/ddrexler/src/elixir/test/_build/test/lib/erlexec"},
{"REBAR_CONFIG",
"/Users/ddrexler/src/elixir/test/_build/test/lib/erlexec/mix.rebar.config"},
{"ROOTDIR","/usr/local/Cellar/erlang/23.1.1/lib/erlang"},
{"SECURITYSESSIONID","186a6"},
{"SHELL","/bin/bash"},
{"SHLVL","2"},
{"SQLITE_EXEMPT_PATH_FROM_VNODE_GUARDS",
"/Users/ddrexler/Library/WebKit/Databases"},
{"SSH_AUTH_SOCK",
"/private/tmp/com.apple.launchd.ilYkOh0TfA/Listeners"},
{"STRIP","strip"},
{"TERM","dumb"},
{"TERM_PROGRAM","iTerm.app"},
{"TERM_PROGRAM_VERSION","3.4.0beta9"},
{"TERM_SESSION_ID",
"w0t1p0:D63D80A1-087A-4A0E-B5CB-57869E11736D"},
{"TMPDIR",
"/var/folders/6h/27qv540s1kb2gcv16n383jd80000gn/T/"},
{"USER","ddrexler"},
{"VIRTUALENVWRAPPER_HOOK_DIR",
"/Users/ddrexler/.virtualenv"},
{"VIRTUALENVWRAPPER_PROJECT_FILENAME",".project"},
{"VIRTUALENVWRAPPER_SCRIPT",
"/Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh"},
{"VIRTUALENVWRAPPER_WORKON_CD","1"},
{"WORKON_HOME","/Users/ddrexler/.virtualenv"},
{"XPC_FLAGS","0x0"},
{"XPC_SERVICE_NAME","0"},
{"__CF_USER_TEXT_ENCODING","0x1F5:0x0:0x0"}]},
return_on_error,
{use_stdout,false},
{cd,"/Users/ddrexler/src/elixir/test/deps/erlexec"}]
===> Port Cmd: g++ -c -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64 -g -Wall -fPIC -MMD -I"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include" -I"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include" /Users/ddrexler/src/elixir/test/deps/erlexec/c_src/exec.cpp -o /Users/ddrexler/src/elixir/test/deps/erlexec/c_src/exec.o
Port Opts: [{env,[{"ANDROID_HOME","/Users/ddrexler/Library/Android/sdk"},
{"AR","ar"},
{"ARCHFLAGS",
"-Wno-error=unused-command-line-argument-hard-error-in-future"},
{"AS","as"},
{"BINDIR",
"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/bin"},
{"CC","g++"},
{"COLORFGBG","7;0"},
{"COLORTERM","truecolor"},
{"COMMAND_MODE","unix2003"},
{"CPP","cpp"},
{"CXX","g++"},
{"CXXFLAGS"," -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64"},
{"DEBUG","1"},
{"DISPLAY",
"/private/tmp/com.apple.launchd.YSlvXTesb5/org.macosforge.xquartz:0"},
{"DRV_CC_TEMPLATE",
"g++ -c $CFLAGS -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"DRV_CFLAGS",
"-g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" "},
{"DRV_CXX_TEMPLATE",
"g++ -c -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64 -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"DRV_LDFLAGS",
"-bundle -flat_namespace -undefined suppress -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei"},
{"DRV_LINK_CXX_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -bundle -flat_namespace -undefined suppress -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"DRV_LINK_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -bundle -flat_namespace -undefined suppress -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"EDITOR","vim"},
{"EMU","beam"},
{"ERLANG_ARCH","64"},
{"ERLANG_TARGET","23.1.1-x86_64-apple-darwin19.6.0-64"},
{"ERL_CFLAGS",
" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" "},
{"ERL_EI_LIBDIR",
"\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\""},
{"ERL_LDFLAGS",
" -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei"},
{"ESCRIPT_NAME","/Users/ddrexler/.mix/rebar3"},
{"EXE_CC_TEMPLATE",
"g++ -c $CFLAGS -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"EXE_CFLAGS",
"-g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" "},
{"EXE_CXX_TEMPLATE",
"g++ -c -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64 -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"EXE_LDFLAGS",
" -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei"},
{"EXE_LINK_CXX_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"EXE_LINK_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"GOPATH","/Users/daniel/src/go"},
{"HOME","/Users/ddrexler"},
{"ITERM_PROFILE","Default"},
{"ITERM_SESSION_ID",
"w0t1p0:D63D80A1-087A-4A0E-B5CB-57869E11736D"},
{"LANG","en_US.UTF-8"},
{"LC_TERMINAL","iTerm2"},
{"LC_TERMINAL_VERSION","3.4.0beta9"},
{"LD","ld"},
{"LDFLAGS"," -m64"},
{"LESS","-rN"},
{"LESSOPEN","| src-hilite-lesspipe.sh %s"},
{"LOGNAME","ddrexler"},
{"LaunchInstanceID","32BB60DF-A31C-4C82-A33B-6DE68BA53DFD"},
{"NM","nm"},
{"OBJCOPY","objcopy"},
{"OBJDUMP","objdump"},
{"PATH",
"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/bin:/usr/local/Cellar/erlang/23.1.1/lib/erlang/bin:/Applications/Inkscape.app/Contents/MacOS:/Users/ddrexler/.poetry/bin:/Users/ddrexler/.pyenv/plugins/pyenv-virtualenv/shims:/Users/ddrexler/.pyenv/shims:/Users/ddrexler/.pyenv/bin:/Users/ddrexler/.local/bin:/Users/ddrexler/.cargo/bin:~/Library/Android/sdk/tools/:~/Library/Android/sdk/platform-tools/:/Users/daniel/anaconda/bin:/Library/Frameworks/Python.framework/Versions/3.4/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/usr/local/go/bin:/usr/local/MacGPG2/bin:/opt/X11/bin:/Users/ddrexler/src/_arcanist_install/arcanist/bin/"},
{"PROGNAME","erl"},
{"PWD","/Users/ddrexler/src/elixir/test/deps/erlexec"},
{"PYENV_SHELL","bash"},
{"PYENV_VIRTUALENV_INIT","1"},
{"RANLIB","ranlib"},
{"REBAR_BARE_COMPILER_OUTPUT_DIR",
"/Users/ddrexler/src/elixir/test/_build/test/lib/erlexec"},
{"REBAR_CONFIG",
"/Users/ddrexler/src/elixir/test/_build/test/lib/erlexec/mix.rebar.config"},
{"ROOTDIR","/usr/local/Cellar/erlang/23.1.1/lib/erlang"},
{"SECURITYSESSIONID","186a6"},
{"SHELL","/bin/bash"},
{"SHLVL","2"},
{"SQLITE_EXEMPT_PATH_FROM_VNODE_GUARDS",
"/Users/ddrexler/Library/WebKit/Databases"},
{"SSH_AUTH_SOCK",
"/private/tmp/com.apple.launchd.ilYkOh0TfA/Listeners"},
{"STRIP","strip"},
{"TERM","dumb"},
{"TERM_PROGRAM","iTerm.app"},
{"TERM_PROGRAM_VERSION","3.4.0beta9"},
{"TERM_SESSION_ID",
"w0t1p0:D63D80A1-087A-4A0E-B5CB-57869E11736D"},
{"TMPDIR",
"/var/folders/6h/27qv540s1kb2gcv16n383jd80000gn/T/"},
{"USER","ddrexler"},
{"VIRTUALENVWRAPPER_HOOK_DIR","/Users/ddrexler/.virtualenv"},
{"VIRTUALENVWRAPPER_PROJECT_FILENAME",".project"},
{"VIRTUALENVWRAPPER_SCRIPT",
"/Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh"},
{"VIRTUALENVWRAPPER_WORKON_CD","1"},
{"WORKON_HOME","/Users/ddrexler/.virtualenv"},
{"XPC_FLAGS","0x0"},
{"XPC_SERVICE_NAME","0"},
{"__CF_USER_TEXT_ENCODING","0x1F5:0x0:0x0"}]},
{cd,"/Users/ddrexler/src/elixir/test/deps/erlexec"},
exit_status,
{line,16384},
use_stdio,stderr_to_stdout,hide,eof]
===> Compiling /Users/ddrexler/src/elixir/test/deps/erlexec/c_src/exec.cpp
===>
===> sh info:
cwd: "/Users/ddrexler/src/elixir/test/deps/erlexec"
cmd: g++ -c -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64 -g -Wall -fPIC -MMD -I"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include" -I"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include" /Users/ddrexler/src/elixir/test/deps/erlexec/c_src/exec_impl.cpp -o /Users/ddrexler/src/elixir/test/deps/erlexec/c_src/exec_impl.o
===> opts: [{env,[{"ANDROID_HOME","/Users/ddrexler/Library/Android/sdk"},
{"AR","ar"},
{"ARCHFLAGS",
"-Wno-error=unused-command-line-argument-hard-error-in-future"},
{"AS","as"},
{"BINDIR",
"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/bin"},
{"CC","g++"},
{"COLORFGBG","7;0"},
{"COLORTERM","truecolor"},
{"COMMAND_MODE","unix2003"},
{"CPP","cpp"},
{"CXX","g++"},
{"CXXFLAGS"," -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64"},
{"DEBUG","1"},
{"DISPLAY",
"/private/tmp/com.apple.launchd.YSlvXTesb5/org.macosforge.xquartz:0"},
{"DRV_CC_TEMPLATE",
"g++ -c $CFLAGS -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"DRV_CFLAGS",
"-g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" "},
{"DRV_CXX_TEMPLATE",
"g++ -c -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64 -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"DRV_LDFLAGS",
"-bundle -flat_namespace -undefined suppress -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei"},
{"DRV_LINK_CXX_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -bundle -flat_namespace -undefined suppress -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"DRV_LINK_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -bundle -flat_namespace -undefined suppress -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"EDITOR","vim"},
{"EMU","beam"},
{"ERLANG_ARCH","64"},
{"ERLANG_TARGET","23.1.1-x86_64-apple-darwin19.6.0-64"},
{"ERL_CFLAGS",
" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" "},
{"ERL_EI_LIBDIR",
"\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\""},
{"ERL_LDFLAGS",
" -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei"},
{"ESCRIPT_NAME","/Users/ddrexler/.mix/rebar3"},
{"EXE_CC_TEMPLATE",
"g++ -c $CFLAGS -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"EXE_CFLAGS",
"-g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" "},
{"EXE_CXX_TEMPLATE",
"g++ -c -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64 -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"EXE_LDFLAGS",
" -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei"},
{"EXE_LINK_CXX_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"EXE_LINK_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"GOPATH","/Users/daniel/src/go"},
{"HOME","/Users/ddrexler"},
{"ITERM_PROFILE","Default"},
{"ITERM_SESSION_ID",
"w0t1p0:D63D80A1-087A-4A0E-B5CB-57869E11736D"},
{"LANG","en_US.UTF-8"},
{"LC_TERMINAL","iTerm2"},
{"LC_TERMINAL_VERSION","3.4.0beta9"},
{"LD","ld"},
{"LDFLAGS"," -m64"},
{"LESS","-rN"},
{"LESSOPEN","| src-hilite-lesspipe.sh %s"},
{"LOGNAME","ddrexler"},
{"LaunchInstanceID",
"32BB60DF-A31C-4C82-A33B-6DE68BA53DFD"},
{"NM","nm"},
{"OBJCOPY","objcopy"},
{"OBJDUMP","objdump"},
{"PATH",
"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/bin:/usr/local/Cellar/erlang/23.1.1/lib/erlang/bin:/Applications/Inkscape.app/Contents/MacOS:/Users/ddrexler/.poetry/bin:/Users/ddrexler/.pyenv/plugins/pyenv-virtualenv/shims:/Users/ddrexler/.pyenv/shims:/Users/ddrexler/.pyenv/bin:/Users/ddrexler/.local/bin:/Users/ddrexler/.cargo/bin:~/Library/Android/sdk/tools/:~/Library/Android/sdk/platform-tools/:/Users/daniel/anaconda/bin:/Library/Frameworks/Python.framework/Versions/3.4/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/usr/local/go/bin:/usr/local/MacGPG2/bin:/opt/X11/bin:/Users/ddrexler/src/_arcanist_install/arcanist/bin/"},
{"PROGNAME","erl"},
{"PWD","/Users/ddrexler/src/elixir/test/deps/erlexec"},
{"PYENV_SHELL","bash"},
{"PYENV_VIRTUALENV_INIT","1"},
{"RANLIB","ranlib"},
{"REBAR_BARE_COMPILER_OUTPUT_DIR",
"/Users/ddrexler/src/elixir/test/_build/test/lib/erlexec"},
{"REBAR_CONFIG",
"/Users/ddrexler/src/elixir/test/_build/test/lib/erlexec/mix.rebar.config"},
{"ROOTDIR","/usr/local/Cellar/erlang/23.1.1/lib/erlang"},
{"SECURITYSESSIONID","186a6"},
{"SHELL","/bin/bash"},
{"SHLVL","2"},
{"SQLITE_EXEMPT_PATH_FROM_VNODE_GUARDS",
"/Users/ddrexler/Library/WebKit/Databases"},
{"SSH_AUTH_SOCK",
"/private/tmp/com.apple.launchd.ilYkOh0TfA/Listeners"},
{"STRIP","strip"},
{"TERM","dumb"},
{"TERM_PROGRAM","iTerm.app"},
{"TERM_PROGRAM_VERSION","3.4.0beta9"},
{"TERM_SESSION_ID",
"w0t1p0:D63D80A1-087A-4A0E-B5CB-57869E11736D"},
{"TMPDIR",
"/var/folders/6h/27qv540s1kb2gcv16n383jd80000gn/T/"},
{"USER","ddrexler"},
{"VIRTUALENVWRAPPER_HOOK_DIR",
"/Users/ddrexler/.virtualenv"},
{"VIRTUALENVWRAPPER_PROJECT_FILENAME",".project"},
{"VIRTUALENVWRAPPER_SCRIPT",
"/Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh"},
{"VIRTUALENVWRAPPER_WORKON_CD","1"},
{"WORKON_HOME","/Users/ddrexler/.virtualenv"},
{"XPC_FLAGS","0x0"},
{"XPC_SERVICE_NAME","0"},
{"__CF_USER_TEXT_ENCODING","0x1F5:0x0:0x0"}]},
return_on_error,
{use_stdout,false},
{cd,"/Users/ddrexler/src/elixir/test/deps/erlexec"}]
===> Port Cmd: g++ -c -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64 -g -Wall -fPIC -MMD -I"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include" -I"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include" /Users/ddrexler/src/elixir/test/deps/erlexec/c_src/exec_impl.cpp -o /Users/ddrexler/src/elixir/test/deps/erlexec/c_src/exec_impl.o
Port Opts: [{env,[{"ANDROID_HOME","/Users/ddrexler/Library/Android/sdk"},
{"AR","ar"},
{"ARCHFLAGS",
"-Wno-error=unused-command-line-argument-hard-error-in-future"},
{"AS","as"},
{"BINDIR",
"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/bin"},
{"CC","g++"},
{"COLORFGBG","7;0"},
{"COLORTERM","truecolor"},
{"COMMAND_MODE","unix2003"},
{"CPP","cpp"},
{"CXX","g++"},
{"CXXFLAGS"," -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64"},
{"DEBUG","1"},
{"DISPLAY",
"/private/tmp/com.apple.launchd.YSlvXTesb5/org.macosforge.xquartz:0"},
{"DRV_CC_TEMPLATE",
"g++ -c $CFLAGS -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"DRV_CFLAGS",
"-g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" "},
{"DRV_CXX_TEMPLATE",
"g++ -c -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64 -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"DRV_LDFLAGS",
"-bundle -flat_namespace -undefined suppress -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei"},
{"DRV_LINK_CXX_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -bundle -flat_namespace -undefined suppress -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"DRV_LINK_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -bundle -flat_namespace -undefined suppress -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"EDITOR","vim"},
{"EMU","beam"},
{"ERLANG_ARCH","64"},
{"ERLANG_TARGET","23.1.1-x86_64-apple-darwin19.6.0-64"},
{"ERL_CFLAGS",
" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" "},
{"ERL_EI_LIBDIR",
"\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\""},
{"ERL_LDFLAGS",
" -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei"},
{"ESCRIPT_NAME","/Users/ddrexler/.mix/rebar3"},
{"EXE_CC_TEMPLATE",
"g++ -c $CFLAGS -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"EXE_CFLAGS",
"-g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" "},
{"EXE_CXX_TEMPLATE",
"g++ -c -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64 -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"EXE_LDFLAGS",
" -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei"},
{"EXE_LINK_CXX_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"EXE_LINK_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"GOPATH","/Users/daniel/src/go"},
{"HOME","/Users/ddrexler"},
{"ITERM_PROFILE","Default"},
{"ITERM_SESSION_ID",
"w0t1p0:D63D80A1-087A-4A0E-B5CB-57869E11736D"},
{"LANG","en_US.UTF-8"},
{"LC_TERMINAL","iTerm2"},
{"LC_TERMINAL_VERSION","3.4.0beta9"},
{"LD","ld"},
{"LDFLAGS"," -m64"},
{"LESS","-rN"},
{"LESSOPEN","| src-hilite-lesspipe.sh %s"},
{"LOGNAME","ddrexler"},
{"LaunchInstanceID","32BB60DF-A31C-4C82-A33B-6DE68BA53DFD"},
{"NM","nm"},
{"OBJCOPY","objcopy"},
{"OBJDUMP","objdump"},
{"PATH",
"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/bin:/usr/local/Cellar/erlang/23.1.1/lib/erlang/bin:/Applications/Inkscape.app/Contents/MacOS:/Users/ddrexler/.poetry/bin:/Users/ddrexler/.pyenv/plugins/pyenv-virtualenv/shims:/Users/ddrexler/.pyenv/shims:/Users/ddrexler/.pyenv/bin:/Users/ddrexler/.local/bin:/Users/ddrexler/.cargo/bin:~/Library/Android/sdk/tools/:~/Library/Android/sdk/platform-tools/:/Users/daniel/anaconda/bin:/Library/Frameworks/Python.framework/Versions/3.4/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/usr/local/go/bin:/usr/local/MacGPG2/bin:/opt/X11/bin:/Users/ddrexler/src/_arcanist_install/arcanist/bin/"},
{"PROGNAME","erl"},
{"PWD","/Users/ddrexler/src/elixir/test/deps/erlexec"},
{"PYENV_SHELL","bash"},
{"PYENV_VIRTUALENV_INIT","1"},
{"RANLIB","ranlib"},
{"REBAR_BARE_COMPILER_OUTPUT_DIR",
"/Users/ddrexler/src/elixir/test/_build/test/lib/erlexec"},
{"REBAR_CONFIG",
"/Users/ddrexler/src/elixir/test/_build/test/lib/erlexec/mix.rebar.config"},
{"ROOTDIR","/usr/local/Cellar/erlang/23.1.1/lib/erlang"},
{"SECURITYSESSIONID","186a6"},
{"SHELL","/bin/bash"},
{"SHLVL","2"},
{"SQLITE_EXEMPT_PATH_FROM_VNODE_GUARDS",
"/Users/ddrexler/Library/WebKit/Databases"},
{"SSH_AUTH_SOCK",
"/private/tmp/com.apple.launchd.ilYkOh0TfA/Listeners"},
{"STRIP","strip"},
{"TERM","dumb"},
{"TERM_PROGRAM","iTerm.app"},
{"TERM_PROGRAM_VERSION","3.4.0beta9"},
{"TERM_SESSION_ID",
"w0t1p0:D63D80A1-087A-4A0E-B5CB-57869E11736D"},
{"TMPDIR",
"/var/folders/6h/27qv540s1kb2gcv16n383jd80000gn/T/"},
{"USER","ddrexler"},
{"VIRTUALENVWRAPPER_HOOK_DIR","/Users/ddrexler/.virtualenv"},
{"VIRTUALENVWRAPPER_PROJECT_FILENAME",".project"},
{"VIRTUALENVWRAPPER_SCRIPT",
"/Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh"},
{"VIRTUALENVWRAPPER_WORKON_CD","1"},
{"WORKON_HOME","/Users/ddrexler/.virtualenv"},
{"XPC_FLAGS","0x0"},
{"XPC_SERVICE_NAME","0"},
{"__CF_USER_TEXT_ENCODING","0x1F5:0x0:0x0"}]},
{cd,"/Users/ddrexler/src/elixir/test/deps/erlexec"},
exit_status,
{line,16384},
use_stdio,stderr_to_stdout,hide,eof]
===> Compiling /Users/ddrexler/src/elixir/test/deps/erlexec/c_src/exec_impl.cpp
===>
===> Linking /Users/ddrexler/src/elixir/test/deps/erlexec/priv/x86_64-apple-darwin19.6.0/exec-port
===> sh info:
cwd: "/Users/ddrexler/src/elixir/test/deps/erlexec"
cmd: g++ /Users/ddrexler/src/elixir/test/deps/erlexec/c_src/ei++.o /Users/ddrexler/src/elixir/test/deps/erlexec/c_src/exec.o /Users/ddrexler/src/elixir/test/deps/erlexec/c_src/exec_impl.o -m64 -L"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib" -lerl_interface -lei -o /Users/ddrexler/src/elixir/test/deps/erlexec/priv/x86_64-apple-darwin19.6.0/exec-port
===> opts: [{env,[{"ANDROID_HOME","/Users/ddrexler/Library/Android/sdk"},
{"AR","ar"},
{"ARCHFLAGS",
"-Wno-error=unused-command-line-argument-hard-error-in-future"},
{"AS","as"},
{"BINDIR",
"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/bin"},
{"CC","g++"},
{"COLORFGBG","7;0"},
{"COLORTERM","truecolor"},
{"COMMAND_MODE","unix2003"},
{"CPP","cpp"},
{"CXX","g++"},
{"CXXFLAGS"," -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64"},
{"DEBUG","1"},
{"DISPLAY",
"/private/tmp/com.apple.launchd.YSlvXTesb5/org.macosforge.xquartz:0"},
{"DRV_CC_TEMPLATE",
"g++ -c $CFLAGS -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"DRV_CFLAGS",
"-g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" "},
{"DRV_CXX_TEMPLATE",
"g++ -c -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64 -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"DRV_LDFLAGS",
"-bundle -flat_namespace -undefined suppress -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei"},
{"DRV_LINK_CXX_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -bundle -flat_namespace -undefined suppress -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"DRV_LINK_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -bundle -flat_namespace -undefined suppress -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"EDITOR","vim"},
{"EMU","beam"},
{"ERLANG_ARCH","64"},
{"ERLANG_TARGET","23.1.1-x86_64-apple-darwin19.6.0-64"},
{"ERL_CFLAGS",
" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" "},
{"ERL_EI_LIBDIR",
"\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\""},
{"ERL_LDFLAGS",
" -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei"},
{"ESCRIPT_NAME","/Users/ddrexler/.mix/rebar3"},
{"EXE_CC_TEMPLATE",
"g++ -c $CFLAGS -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"EXE_CFLAGS",
"-g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" "},
{"EXE_CXX_TEMPLATE",
"g++ -c -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64 -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"EXE_LDFLAGS",
" -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei"},
{"EXE_LINK_CXX_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"EXE_LINK_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"GOPATH","/Users/daniel/src/go"},
{"HOME","/Users/ddrexler"},
{"ITERM_PROFILE","Default"},
{"ITERM_SESSION_ID",
"w0t1p0:D63D80A1-087A-4A0E-B5CB-57869E11736D"},
{"LANG","en_US.UTF-8"},
{"LC_TERMINAL","iTerm2"},
{"LC_TERMINAL_VERSION","3.4.0beta9"},
{"LD","ld"},
{"LDFLAGS"," -m64"},
{"LESS","-rN"},
{"LESSOPEN","| src-hilite-lesspipe.sh %s"},
{"LOGNAME","ddrexler"},
{"LaunchInstanceID",
"32BB60DF-A31C-4C82-A33B-6DE68BA53DFD"},
{"NM","nm"},
{"OBJCOPY","objcopy"},
{"OBJDUMP","objdump"},
{"PATH",
"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/bin:/usr/local/Cellar/erlang/23.1.1/lib/erlang/bin:/Applications/Inkscape.app/Contents/MacOS:/Users/ddrexler/.poetry/bin:/Users/ddrexler/.pyenv/plugins/pyenv-virtualenv/shims:/Users/ddrexler/.pyenv/shims:/Users/ddrexler/.pyenv/bin:/Users/ddrexler/.local/bin:/Users/ddrexler/.cargo/bin:~/Library/Android/sdk/tools/:~/Library/Android/sdk/platform-tools/:/Users/daniel/anaconda/bin:/Library/Frameworks/Python.framework/Versions/3.4/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/usr/local/go/bin:/usr/local/MacGPG2/bin:/opt/X11/bin:/Users/ddrexler/src/_arcanist_install/arcanist/bin/"},
{"PROGNAME","erl"},
{"PWD","/Users/ddrexler/src/elixir/test/deps/erlexec"},
{"PYENV_SHELL","bash"},
{"PYENV_VIRTUALENV_INIT","1"},
{"RANLIB","ranlib"},
{"REBAR_BARE_COMPILER_OUTPUT_DIR",
"/Users/ddrexler/src/elixir/test/_build/test/lib/erlexec"},
{"REBAR_CONFIG",
"/Users/ddrexler/src/elixir/test/_build/test/lib/erlexec/mix.rebar.config"},
{"ROOTDIR","/usr/local/Cellar/erlang/23.1.1/lib/erlang"},
{"SECURITYSESSIONID","186a6"},
{"SHELL","/bin/bash"},
{"SHLVL","2"},
{"SQLITE_EXEMPT_PATH_FROM_VNODE_GUARDS",
"/Users/ddrexler/Library/WebKit/Databases"},
{"SSH_AUTH_SOCK",
"/private/tmp/com.apple.launchd.ilYkOh0TfA/Listeners"},
{"STRIP","strip"},
{"TERM","dumb"},
{"TERM_PROGRAM","iTerm.app"},
{"TERM_PROGRAM_VERSION","3.4.0beta9"},
{"TERM_SESSION_ID",
"w0t1p0:D63D80A1-087A-4A0E-B5CB-57869E11736D"},
{"TMPDIR",
"/var/folders/6h/27qv540s1kb2gcv16n383jd80000gn/T/"},
{"USER","ddrexler"},
{"VIRTUALENVWRAPPER_HOOK_DIR",
"/Users/ddrexler/.virtualenv"},
{"VIRTUALENVWRAPPER_PROJECT_FILENAME",".project"},
{"VIRTUALENVWRAPPER_SCRIPT",
"/Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh"},
{"VIRTUALENVWRAPPER_WORKON_CD","1"},
{"WORKON_HOME","/Users/ddrexler/.virtualenv"},
{"XPC_FLAGS","0x0"},
{"XPC_SERVICE_NAME","0"},
{"__CF_USER_TEXT_ENCODING","0x1F5:0x0:0x0"}]},
{cd,"/Users/ddrexler/src/elixir/test/deps/erlexec"}]
===> Port Cmd: g++ /Users/ddrexler/src/elixir/test/deps/erlexec/c_src/ei++.o /Users/ddrexler/src/elixir/test/deps/erlexec/c_src/exec.o /Users/ddrexler/src/elixir/test/deps/erlexec/c_src/exec_impl.o -m64 -L"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib" -lerl_interface -lei -o /Users/ddrexler/src/elixir/test/deps/erlexec/priv/x86_64-apple-darwin19.6.0/exec-port
Port Opts: [{env,[{"ANDROID_HOME","/Users/ddrexler/Library/Android/sdk"},
{"AR","ar"},
{"ARCHFLAGS",
"-Wno-error=unused-command-line-argument-hard-error-in-future"},
{"AS","as"},
{"BINDIR",
"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/bin"},
{"CC","g++"},
{"COLORFGBG","7;0"},
{"COLORTERM","truecolor"},
{"COMMAND_MODE","unix2003"},
{"CPP","cpp"},
{"CXX","g++"},
{"CXXFLAGS"," -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64"},
{"DEBUG","1"},
{"DISPLAY",
"/private/tmp/com.apple.launchd.YSlvXTesb5/org.macosforge.xquartz:0"},
{"DRV_CC_TEMPLATE",
"g++ -c $CFLAGS -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"DRV_CFLAGS",
"-g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" "},
{"DRV_CXX_TEMPLATE",
"g++ -c -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64 -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"DRV_LDFLAGS",
"-bundle -flat_namespace -undefined suppress -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei"},
{"DRV_LINK_CXX_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -bundle -flat_namespace -undefined suppress -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"DRV_LINK_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -bundle -flat_namespace -undefined suppress -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"EDITOR","vim"},
{"EMU","beam"},
{"ERLANG_ARCH","64"},
{"ERLANG_TARGET","23.1.1-x86_64-apple-darwin19.6.0-64"},
{"ERL_CFLAGS",
" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" "},
{"ERL_EI_LIBDIR",
"\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\""},
{"ERL_LDFLAGS",
" -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei"},
{"ESCRIPT_NAME","/Users/ddrexler/.mix/rebar3"},
{"EXE_CC_TEMPLATE",
"g++ -c $CFLAGS -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"EXE_CFLAGS",
"-g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" "},
{"EXE_CXX_TEMPLATE",
"g++ -c -DHAVE_PTRACE -O0 -DHAVE_SETREUID -m64 -g -Wall -fPIC -MMD -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/include\" -I\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/include\" $PORT_IN_FILES -o $PORT_OUT_FILE"},
{"EXE_LDFLAGS",
" -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei"},
{"EXE_LINK_CXX_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"EXE_LINK_TEMPLATE",
"g++ $PORT_IN_FILES -m64 -L\"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib\" -lerl_interface -lei -o $PORT_OUT_FILE"},
{"GOPATH","/Users/daniel/src/go"},
{"HOME","/Users/ddrexler"},
{"ITERM_PROFILE","Default"},
{"ITERM_SESSION_ID",
"w0t1p0:D63D80A1-087A-4A0E-B5CB-57869E11736D"},
{"LANG","en_US.UTF-8"},
{"LC_TERMINAL","iTerm2"},
{"LC_TERMINAL_VERSION","3.4.0beta9"},
{"LD","ld"},
{"LDFLAGS"," -m64"},
{"LESS","-rN"},
{"LESSOPEN","| src-hilite-lesspipe.sh %s"},
{"LOGNAME","ddrexler"},
{"LaunchInstanceID","32BB60DF-A31C-4C82-A33B-6DE68BA53DFD"},
{"NM","nm"},
{"OBJCOPY","objcopy"},
{"OBJDUMP","objdump"},
{"PATH",
"/usr/local/Cellar/erlang/23.1.1/lib/erlang/erts-11.1.1/bin:/usr/local/Cellar/erlang/23.1.1/lib/erlang/bin:/Applications/Inkscape.app/Contents/MacOS:/Users/ddrexler/.poetry/bin:/Users/ddrexler/.pyenv/plugins/pyenv-virtualenv/shims:/Users/ddrexler/.pyenv/shims:/Users/ddrexler/.pyenv/bin:/Users/ddrexler/.local/bin:/Users/ddrexler/.cargo/bin:~/Library/Android/sdk/tools/:~/Library/Android/sdk/platform-tools/:/Users/daniel/anaconda/bin:/Library/Frameworks/Python.framework/Versions/3.4/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/usr/local/go/bin:/usr/local/MacGPG2/bin:/opt/X11/bin:/Users/ddrexler/src/_arcanist_install/arcanist/bin/"},
{"PROGNAME","erl"},
{"PWD","/Users/ddrexler/src/elixir/test/deps/erlexec"},
{"PYENV_SHELL","bash"},
{"PYENV_VIRTUALENV_INIT","1"},
{"RANLIB","ranlib"},
{"REBAR_BARE_COMPILER_OUTPUT_DIR",
"/Users/ddrexler/src/elixir/test/_build/test/lib/erlexec"},
{"REBAR_CONFIG",
"/Users/ddrexler/src/elixir/test/_build/test/lib/erlexec/mix.rebar.config"},
{"ROOTDIR","/usr/local/Cellar/erlang/23.1.1/lib/erlang"},
{"SECURITYSESSIONID","186a6"},
{"SHELL","/bin/bash"},
{"SHLVL","2"},
{"SQLITE_EXEMPT_PATH_FROM_VNODE_GUARDS",
"/Users/ddrexler/Library/WebKit/Databases"},
{"SSH_AUTH_SOCK",
"/private/tmp/com.apple.launchd.ilYkOh0TfA/Listeners"},
{"STRIP","strip"},
{"TERM","dumb"},
{"TERM_PROGRAM","iTerm.app"},
{"TERM_PROGRAM_VERSION","3.4.0beta9"},
{"TERM_SESSION_ID",
"w0t1p0:D63D80A1-087A-4A0E-B5CB-57869E11736D"},
{"TMPDIR",
"/var/folders/6h/27qv540s1kb2gcv16n383jd80000gn/T/"},
{"USER","ddrexler"},
{"VIRTUALENVWRAPPER_HOOK_DIR","/Users/ddrexler/.virtualenv"},
{"VIRTUALENVWRAPPER_PROJECT_FILENAME",".project"},
{"VIRTUALENVWRAPPER_SCRIPT",
"/Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh"},
{"VIRTUALENVWRAPPER_WORKON_CD","1"},
{"WORKON_HOME","/Users/ddrexler/.virtualenv"},
{"XPC_FLAGS","0x0"},
{"XPC_SERVICE_NAME","0"},
{"__CF_USER_TEXT_ENCODING","0x1F5:0x0:0x0"}]},
{cd,"/Users/ddrexler/src/elixir/test/deps/erlexec"},
exit_status,
{line,16384},
use_stdio,stderr_to_stdout,hide,eof]
===> sh(g++ /Users/ddrexler/src/elixir/test/deps/erlexec/c_src/ei++.o /Users/ddrexler/src/elixir/test/deps/erlexec/c_src/exec.o /Users/ddrexler/src/elixir/test/deps/erlexec/c_src/exec_impl.o -m64 -L"/usr/local/Cellar/erlang/23.1.1/lib/erlang/lib/erl_interface-4.0.1/lib" -lerl_interface -lei -o /Users/ddrexler/src/elixir/test/deps/erlexec/priv/x86_64-apple-darwin19.6.0/exec-port)
failed with return code 1 and the following output:
ld: library not found for -lerl_interface
clang: error: linker command failed with exit code 1 (use -v to see invocation)
** (Mix) Could not compile dependency :erlexec, "/Users/ddrexler/.mix/rebar3 bare compile --paths /Users/ddrexler/src/elixir/test/_build/test/lib/*/ebin" command failed. You can recompile this dependency with "mix deps.compile erlexec", update it with "mix deps.update erlexec" or clean it with "mix deps.clean erlexec"
ddrexler@Drexbook-Pro:test|$ mix -v
Erlang/OTP 23 [erts-11.1.1] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [hipe] [dtrace]
Mix 1.11.0 (compiled with Erlang/OTP 23)
start
and start_link
are delegated to :exec
without converting the options (e.g. port_path
-> portexe
and binaries -> charlists). I'm not sure that was intended.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.