From: "tenderlovemaking (Aaron Patterson)" Date: 2021-10-06T21:03:36+00:00 Subject: [ruby-core:105582] [Ruby master Bug#18232] Ractor.make_shareable is broken in code loaded with RubyVM::InstructionSequence.load_from_binary Issue #18232 has been updated by tenderlovemaking (Aaron Patterson). File 0001-Dump-outer-variables-tables-when-dumping-an-iseq-to-.patch added I've attached a patch that fixes this (for me) along with a test. I had to change the information that we dump when dumping an ISeq, so maybe we need to change the binary format version number or something? I'm not sure. Anyway there is also a PR [here](https://github.com/ruby/ruby/pull/4942) ---------------------------------------- Bug #18232: Ractor.make_shareable is broken in code loaded with RubyVM::InstructionSequence.load_from_binary https://bugs.ruby-lang.org/issues/18232#change-94052 * Author: byroot (Jean Boussier) * Status: Open * Priority: Normal * ruby -v: ruby 3.0.2p107, ruby 3.1.0dev * Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN ---------------------------------------- This was first reported as a Bootsnap bug: https://github.com/Shopify/bootsnap/issues/376 But I reduced it to: ```ruby source = <<~RUBY x = :foo pr = Proc.new { p x } Ractor.make_shareable(pr) pr.call RUBY RubyVM::InstructionSequence.compile(source).eval # :foo RubyVM::InstructionSequence.load_from_binary(RubyVM::InstructionSequence.compile(source).to_binary).eval # false ``` The bug is present on both 3.0.2 and 3.1.0-dev. I have no idea what might cause this. ---Files-------------------------------- 0001-Dump-outer-variables-tables-when-dumping-an-iseq-to-.patch (5.55 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: