General

Profile

kou (Kouhei Sutou)

  • Login: kou
  • Email: kou@cozmixng.org
  • Registered on: 06/03/2008
  • Last sign in: 02/22/2024

Issues

open closed Total
Assigned issues 1 95 96
Reported issues 1 12 13

Projects

Project Roles Registered on
Ruby Committer 07/04/2008

Activity

09/11/2026

12:33 AM Ruby Feature #22056: Add zero-copy String constructor backed by an arbitrary Ruby object
Eregon (Benoit Daloze) wrote in #note-30:
> The IO::Buffer might be GC'd or free'd, and the slice_string result live longer.
> ...
I'm not sure what situation you assumed. "The IO::Buffer" is "buffer" in `buffer = IO::Buffer.for("......
kou (Kouhei Sutou)

09/09/2026

10:10 PM Ruby Feature #22056: Add zero-copy String constructor backed by an arbitrary Ruby object
Eregon (Benoit Daloze) wrote in #note-25:
> And also the buffer String (taking the example of an IO::Buffer backed by a String) must never change its `RSTRING_PTR()`, so pinned forever (otherwise the GC can move an embedded String) and ...
kou (Kouhei Sutou)
10:04 PM Ruby Feature #22056: Add zero-copy String constructor backed by an arbitrary Ruby object
Eregon (Benoit Daloze) wrote in #note-23:
> Also to state the obvious this `No existing API creates a String that is not NUL-terminated` argument is rather weak, Strings are passed in many places in a program, suppose some gem uses `sli...
kou (Kouhei Sutou)
09:47 PM Ruby Feature #22056: Add zero-copy String constructor backed by an arbitrary Ruby object
Eregon (Benoit Daloze) wrote in #note-22:
> the `IO::Buffer` might reallocate (e.g. if appended to), and the `char*` in the result of `IO::Buffer#slice_string` would then become invalid or free()'d.
> ...
We can avoid it by `rb_io_buff...
kou (Kouhei Sutou)

07/17/2026

01:55 AM Ruby Bug #21883: IO::Buffer can be unlocked and freed by another thread during syscall
The `IO::Buffer#locked` document says that it's not thread safe explicitly.
https://github.com/ruby/ruby/blob/ca52ee245721efdc01f6304b6b1bc1294b47ed33/io_buffer.c#L1583-L1585
> Locking is not thread safe. It is designed as a safety...
kou (Kouhei Sutou)

07/07/2026

09:29 PM Ruby Feature #22102: C API to obtain a C string from a Ruby String
+1 kou (Kouhei Sutou)

07/02/2026

07:43 AM Ruby Feature #22118: Introduce Basic Bit Operations into String
It's just an idea...
How about removing `lsb_first:` and always processing `offset` as LSB first offset? But we'll also provide `Integer#to_msb_offset`.
```ruby
data = "\x01"
p data.bit_at(0.to_msb_offset) # => 1 # (0.to_msb_offs...
kou (Kouhei Sutou)

06/23/2026

08:17 PM Ruby Bug #22125: IO::Buffer triggers use-after-free when it's freed/resized during enumeration
We're already discussing how to fix this case in https://github.com/ruby/ruby/pull/17398 . kou (Kouhei Sutou)

06/10/2026

05:33 AM Ruby Feature #19315: Lazy substrings in CRuby
Dan0042 (Daniel DeLorme) wrote in #note-37:
> > I think that we don't need to introduce `RSTRING_RAW_END()` or something. We can just recommend `RSTRING_RAW_PTR() + RSTRING_LEN()` instead of `RSTRING_END()`.
> ...
I'm not sure the orig...
kou (Kouhei Sutou)
12:11 AM Ruby Feature #19315: Lazy substrings in CRuby
rhenium (Kazuki Yamaguchi) wrote in #note-35:
> If we go down the route of having `RSTRING_PTR()` lazily allocate a NUL-terminated buffer in it, that is a breaking change on its own because it introduces the possibility of GC and long...
kou (Kouhei Sutou)

Also available in: Atom