oracle / truffleruby

A high performance implementation of the Ruby programming language, built on GraalVM.
https://www.graalvm.org/ruby/
Other
3.02k stars 185 forks source link

Investigate failures in oj test suite #2701

Closed eregon closed 2 years ago

eregon commented 2 years ago

See https://github.com/ohler55/oj/pull/804/files Some missing C API functions (like rb_ivar_foreach), some differences and some segfaults.

It might be useful to run this with managed Sulong regarding the segfaults to find the invalid memory accesses.

aardvark179 commented 2 years ago

rb_ivar_foreach seems pretty simple, though it has some special cases in MRI for classes and modules. Implementing that allows most of those skipped specs to pass, but we get two failures and 1 error for trying to call __allocate__ on something which we don't support it on. I'll take a bit more of a look and create some issues for the problems.

aardvark179 commented 2 years ago

PRs submitted to OJ so far

eregon commented 2 years ago

Most issues with the oj gem should be fixed now with https://github.com/oracle/truffleruby/commit/01607d7343517e3f04ea599416beca78e9c6d73b. We need to make a PR to oj to remove the now-unecessary skips.

eregon commented 2 years ago

I have a branch removing most skips: https://github.com/ohler55/oj/compare/develop...eregon:oj:remove_most_truffleruby_skips I'll fix rb_struct_s_members/rb_struct_members first though.

eregon commented 2 years ago

Most skips are removed with https://github.com/ohler55/oj/pull/817.