From: "byroot (Jean Boussier) via ruby-core" <ruby-core@...>
Date: 2024-03-24T21:02:42+00:00
Subject: [ruby-core:117307] [Ruby master Bug#20390] Issue with StringIO and chilled strings

Issue #20390 has been updated by byroot (Jean Boussier).

Assignee set to byroot (Jean Boussier)
Backport changed from 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN to 3.0: DONTNEED, 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED

----------------------------------------
Bug #20390: Issue with StringIO and chilled strings
https://bugs.ruby-lang.org/issues/20390#change-107447

* Author: mdalessio (Mike Dalessio)
* Status: Open
* Assignee: byroot (Jean Boussier)
* ruby -v: ruby 3.4.0dev (2024-03-23T16:40:17Z master 8265a7531f) [x86_64-linux]
* Backport: 3.0: DONTNEED, 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED
----------------------------------------
StringIO doesn't appear to handle chilled strings in a backwards-compatible way after 12be40ae

```ruby
require "stringio"

sio = StringIO.new("")
sio.write("hello")
```

When not specifying a value for `frozen-string-literal`, the empty string is chilled so I would expect to get a warning but also expect the write to complete.

Instead, the write fails as if the string is frozen:

```
ruby 3.4.0dev (2024-03-23T16:40:17Z master 8265a7531f) [x86_64-linux]
./issue-stringio-frozen.rb:8:in 'StringIO#write': not opened for writing (IOError)
        from ./issue-stringio-frozen.rb:8:in '<main>'
```

cc @byroot @etienne



-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/