Benoit Daloze
Benoit Daloze
There are polyglot examples at https://github.com/graalvm/examples, notably: * https://github.com/graalvm/examples/tree/master/shared_domain_logic which uses Sinatra * https://github.com/graalvm/examples/tree/master/weather_predictor which uses the `openweather` gem They all run GraalVM in JVM mode (`--jvm --polyglot`), not Native...
It would be interesting if you could share the results of "require profiling" as described in https://github.com/oracle/truffleruby/blob/master/doc/contributor/profiling.md#require-profiling So something like: ``` TRUFFLERUBYOPT="--experimental-options --cpusampler --metrics-profile-require=summary" time bundle exec rake environment |&...
@ocher You can use `rvm install truffleruby-head`, see https://github.com/oracle/truffleruby#getting-started
`childprocess` looks very similar to `Process.spawn`. I had a quick look at the backends: * The `posix_spawn` backend has races for anything using the current working directory (`Dir.pwd`), so it...
@colorfulsing Did you see any issue from `childprocess`, can you post it here or in a gist? Now we have FFI implemented, so I think the `posix_spawn` backend should work...
Actually the `posix_spawn` backend is not the default: https://github.com/enkessler/childprocess/blob/c6260739e86c1cabd9baebd76f2058eea2b1ae16/lib/childprocess.rb#L73 ``` $ cruby -rchildprocess -e 'p process = ChildProcess.build("echo", "foo")' #
Yes, the `fork+exec` backend of childprocess has no chance to work on TruffleRuby, JRuby and on Windows, `fork()` is simply not implementable there (well, maybe on TruffleRuby+Native but it would...
The fix in the TruffleRuby FFI backend was fairly trivial: ff8619d42bd0c39af2c907624560532f86de0045 So now ``` CHILDPROCESS_POSIX_SPAWN=1 truffleruby -rchildprocess -e 'p process = ChildProcess.build("echo", "foo"); process.io.inherit!; process.start; process.wait' ``` works. What's left...
Thanks for the report, this is a concurrency issue, possibly with the C extensions marking/finalization, @aardvark179 has some work which might fix that.
Thanks for the report, I'll try to repro it soon.