Project

General

Profile

Actions

Bug #20569

closed

Instruction sequence generated from `shareable_constant_value: literal` files may not be serialized to binary

Added by byroot (Jean Boussier) 5 months ago. Updated 5 months ago.

Status:
Closed
Target version:
-
[ruby-core:118268]

Description

iseq = RubyVM::InstructionSequence.compile(<<~'RUBY')
  # shareable_constant_value: literal
  REGEXP = /#{}/
RUBY
iseq.to_binary
in `to_binary': ibf_dump_object_unsupported: 0x00000001026ac8b0 [3LM    ] T_ICLASS  (NotImplementedError)

The reason is that the ISeq contains putobject RubyVM::FrozenCore so compile.c need some special handling of that hidden class.

Proposed patch: https://github.com/ruby/ruby/pull/10951

Actions #1

Updated by byroot (Jean Boussier) 5 months ago

  • Status changed from Open to Closed

Applied in changeset git|f0001a4fa7260d0c39e9ddba162f51c549cba2f8.


compile.c: use putspecialobject for RubyVM::FrozenCore

[Bug #20569]

putobject RubyVM::FrozenCore, is not serializable, we
have to use putspecialobject VM_SPECIAL_OBJECT_VMCORE.

Updated by k0kubun (Takashi Kokubun) 5 months ago

  • Backport changed from 3.1: WONTFIX, 3.2: REQUIRED, 3.3: REQUIRED to 3.1: WONTFIX, 3.2: REQUIRED, 3.3: DONE

Updated by nagachika (Tomoyuki Chikanaga) 5 months ago

  • Backport changed from 3.1: WONTFIX, 3.2: REQUIRED, 3.3: DONE to 3.1: WONTFIX, 3.2: DONE, 3.3: DONE
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0