Benoit Daloze
Benoit Daloze
> Can we make the sharing operation idempotent? No, because this means something was actually shared between threads but wasn't marked as shared beforehand, i.e. a bug in the sharing...
That interpretation is fairly correct, we are seeing two threads racing to mark an object as shared. But that should never happen, because before the object can be referenced by...
@byroot So it likely means two threads are trying to share the same object at the same time, which is unexpected (TruffleRuby should avoid that situation). This code looks like...
I was wondering if the original report was the same issue. I found that Puma uses `th = Thread.new(@spawned) do |spawned|` in https://github.com/puma/puma/blob/v6.3.0/lib/puma/thread_pool.rb#L110 but that should be no issue because...
From that latest stracktrace, the top entry is https://github.com/bugsnag/bugsnag-ruby/blob/v6.26.3/lib/bugsnag/utility/circular_buffer.rb#L27 which is `Array#
I made a lot of progress on this this week and now all C API specs pass when running extensions natively (i.e. not on Sulong, except for libtruffleruby itself)! WIP...
One change is that loading extensions might fail early with `undefined symbol` like: ``` (currently) $ jt ruby -ropenssl -e0 ... openssl.so: undefined symbol: rb_during_gc) (RuntimeError) ``` So while with...
> * Some struct accesses cannot be virtualized by Sulong anymore and so these structs likely either can't be supported or we need to allocate a native struct and copy...
Merged in https://github.com/oracle/truffleruby/commit/a9afcefde8101dc45458ac4a0c6f4d7f36a2a578. Still a few cleanups and optimizations to come so I'll keep this open for now.
After 55f4a9757176bd66af7021b7207f8c5d2f3437ad the size of the truffleruby native standalone as an archive goes from 183MiB to 93MiB (on linux-amd64, similar for other platforms), so half the size, a nice saving....