Project

General

Profile

Actions

Feature #22274

open

Make `IO::Buffer` no longer experimental.

Feature #22274: Make `IO::Buffer` no longer experimental.

Added by ioquatix (Samuel Williams) about 4 hours ago.

Status:
Open
Target version:
-
[ruby-core:126531]

Description

IO::Buffer was introduced in Ruby 3.1 by Feature #18020 as an experimental API. It provides an efficient buffer abstraction for fiber scheduler I/O, zero-copy operations, binary protocol implementations, and access from native extensions.

Since then, the API has seen several Ruby releases of real-world use and substantial development. Ruby 4.1 now has cohesive semantics for buffer ownership and lifecycle, slicing, locking, string and file mappings, MemoryView integration, and single-transfer I/O operations.

I propose making both the Ruby and public C interfaces of IO::Buffer non-experimental in Ruby 4.1.

This would involve:

  • Removing the allocation-time experimental warning.
  • Removing the experimental status from the class documentation.
  • Removing RB_IO_BUFFER_EXPERIMENTAL from the public C header.
  • Removing warning suppression that is only required because IO::Buffer is experimental.
  • Updating NEWS to describe IO::Buffer as stable.

RUBY_IO_BUFFER_VERSION would remain available for compile-time feature detection as the interface continues to evolve.

Before stabilizing the interface, I would particularly appreciate feedback from JRuby and TruffleRuby maintainers.

Related work:

No data to display

Actions

Also available in: PDF Atom