alanwu (Alan Wu) wrote in #note-5: > interrupt checking is also used for thread switching internally Interesting. I could reproduce a very similar issue but with no profiler or postponed job at all: ``` $ ruby -v --yjit --yjit-c...Eregon (Benoit Daloze)
And BTW the base `Data#initialize` needs to be kept because `Psych` relies on that to create Data instances (https://github.com/ruby/psych/pull/765). That one would remain rather slow, but is used more rarely so matters less.Eregon (Benoit Daloze)
I think the approach to define an `initialize` per subclass is the most promising, and where there is the most performance to gain. TruffleRuby already generates an `initialize` per Struct subclass (with Ruby code) in some cases: https:...Eregon (Benoit Daloze)
For clarity, it's also fine if these symbols get renamed/changed/etc, exporting them doesn't imply any future compatibility, it's just best-effort. Without the export it's very difficult and hacky to get to them, which translates to cas...Eregon (Benoit Daloze)
+1, this would make external profilers more reliable (there are several important advantages of external profilers, e.g. reduce a lot the observer effect, no need to change anything in the already-running program). Datadog is shipping t...Eregon (Benoit Daloze)
iseq.h does not reference any of the pm_* types or functions declared in prism_compile.h, so include the latter from the files that actually use it instead. Only 6 of the 19 files including iseq.h need the prism declarations, so this kee...Eregon (Benoit Daloze)