Benoit Daloze

Results 1300 comments of Benoit Daloze

I cannot reproduce it with the instructions in the description on `truffleruby 22.3.1, like ruby 3.0.3, GraalVM EE Native [x86_64-linux]` (JDK 17) and guessing the rest. I did: * Generate...

Thank you for the more detailed repro instructions, I can now reproduce it. It needs quite a few `siege` runs, and letting it compile for a while without hitting it...

From the output with `--engine.TraceCompilation`, the many repeated compilations of `Truffle::Splitter` methods seems the problem, which sounds like a deoptimization loop. That could explain the high amount of generated code,...

To give an idea, on 22.3.1 CE I see ~4500 RPS and on master EE I see ~7850 RPS, on a linux-amd64 machine with 18 physical cores. That run on...

Thank you for the report. This seems a bug in the JRuby lexer, but for some reason it does not seem to repro on JRuby even though the code looks...

It is a bug, indeed, will be fixed in https://github.com/oracle/truffleruby/pull/3141

Right, it seems this is a problem for most `To*Node`, they catch NoMethodError and they can't easily know if that's from that method call or some other method call. I...

Indeed it calls `method_missing` in that case on CRuby (even if `respond_to?` is false): ``` $ ruby -e 'o=Object.new; def o.method_missing(name, *); p name; "foo"; end; p "a " +...

Oh yeah it's really weird and full of corner cases: ``` ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [x86_64-linux] $ ruby -e 'o=Object.new; def o.respond_to?(m,*); p [:resp, m]; end; def o.method_missing(name, *);...

Right, I think this is simply the "full" semantics of `rb_check_funcall` in CRuby. We have them implemented in `Truffle::Type.check_funcall` and so I think using `Truffle::Type.rb_convert_type` should implement the correct semantics...