Project

General

Profile

Actions

Misc #19265

closed

please remove rust yjit

Added by darkspy (gerty ken) over 1 year ago. Updated over 1 year ago.

Status:
Rejected
Assignee:
-
[ruby-core:111446]

Description

my job is heavily ruby coding and following ruby new versions.(servers and business depend on ruby, like heavy java server clusters)
my one part of job is compile and customizing ruby for use in company.
it's works ok until 3.1.x but 3.2 changes yjit to rust. that means i need to learn new lang and download new toolchains
to build ruby(still, it can ignoring build yjit), but we core team using yjit for monthes and can't handle code out of c/c++ especially rust.
it's too ugly to acceptable(syntax and compile time, sorry to say that, but it's true for us)
please consider our advices to remove rust code to c++(if u think c99 is hard to handle) or zig or any other faster lang, but no rust please.

for now we just try to back port 3.1 yjit to 3.2 :(

thanks, regards.
Ken

Updated by naruse (Yui NARUSE) over 1 year ago

  • Status changed from Open to Rejected

I think you hadn't read Maxime's very carefully written proposal: https://bugs.ruby-lang.org/issues/18481

Updated by noahgibbs (Noah Gibbs) over 1 year ago

It is going to be very hard to maintain 3.1 YJIT long-term. There are significant updates to the CRuby internal object structures. We're updating it in 3.2, but the older C-based code is still using the older CRuby internal structures. I'm thinking of things like variable-width allocation and object shapes here. But there are other examples, and there will be even more in future.

You would probably be better off not modifying YJIT if you don't want to touch Rust. The rest of CRuby's code is still in C, just like in 3.1.

You shouldn't need to touch Rust code unless you make modifications to YJIT itself. You'd still have to download rustc to build it, but that doesn't require looking at Rust, just like downloading gcc doesn't require looking at C.

Actions

Also available in: Atom PDF

Like0
Like0Like0