[#113756] [Ruby master Bug#19711] NoMethodError "private method `new' called for class" since bebd05fb51ea65bc57344b67100748200f8311eb — "yahonda (Yasuo Honda) via ruby-core" <ruby-core@...>

Issue #19711 has been reported by yahonda (Yasuo Honda).

7 messages 2023/06/05

[#113771] [Ruby master Feature#19712] IO#reopen removes singleton class — "itarato (Peter Arato) via ruby-core" <ruby-core@...>

Issue #19712 has been reported by itarato (Peter Arato).

11 messages 2023/06/05

[#113782] [Ruby master Bug#19716] SystemStackError occurs too easily on Alpine Linux (due to small stack size reported by pthread_attr_getstacksize on musl libc) — "alexdowad (Alex Dowad) via ruby-core" <ruby-core@...>

Issue #19716 has been reported by alexdowad (Alex Dowad).

6 messages 2023/06/07

[#113788] [Ruby master Bug#19717] `ConditionVariable#signal` is not fair when the wakeup is consistently spurious. — "ioquatix (Samuel Williams) via ruby-core" <ruby-core@...>

Issue #19717 has been reported by ioquatix (Samuel Williams).

13 messages 2023/06/07

[#113819] [Ruby master Feature#19720] Warning for non-linear Regexps — "Eregon (Benoit Daloze) via ruby-core" <ruby-core@...>

Issue #19720 has been reported by Eregon (Benoit Daloze).

11 messages 2023/06/08

[#113835] [Ruby master Misc#19722] DevMeeting-2023-07-13 — "mame (Yusuke Endoh) via ruby-core" <ruby-core@...>

Issue #19722 has been reported by mame (Yusuke Endoh).

9 messages 2023/06/09

[#113944] [Ruby master Feature#19737] Add `IO::Buffer#cat` for concat `IO::Buffer` instances — "unasuke (Yusuke Nakamura) via ruby-core" <ruby-core@...>

Issue #19737 has been reported by unasuke (Yusuke Nakamura).

7 messages 2023/06/19

[#113953] [Ruby master Bug#19739] Key cannot be found in a Hash when slice! method is applied to the key — "ilya.andreyuk (Ilya Andreyuk) via ruby-core" <ruby-core@...>

Issue #19739 has been reported by ilya.andreyuk (Ilya Andreyuk).

9 messages 2023/06/20

[#113966] [Ruby master Bug#19742] Introduce `Module#anonymous?` — "ioquatix (Samuel Williams) via ruby-core" <ruby-core@...>

Issue #19742 has been reported by ioquatix (Samuel Williams).

47 messages 2023/06/21

[#114025] [Ruby master Feature#19744] Namespace on read — "tagomoris (Satoshi TAGOMORI) via ruby-core" <ruby-core@...>

Issue #19744 has been reported by tagomoris (Satoshi TAGOMORI).

71 messages 2023/06/27

[#114032] [Ruby master Misc#19747] Propose Kevin Newton and Jemma Issroff as core committers — "k0kubun (Takashi Kokubun) via ruby-core" <ruby-core@...>

Issue #19747 has been reported by k0kubun (Takashi Kokubun).

8 messages 2023/06/28

[#114038] [Ruby master Bug#19749] Confirm correct behaviour when attaching private method with `#define_method` — "itarato (Peter Arato) via ruby-core" <ruby-core@...>

Issue #19749 has been reported by itarato (Peter Arato).

15 messages 2023/06/28

[ruby-core:113949] [Ruby master Feature#19737] Add `IO::Buffer#cat` for concat `IO::Buffer` instances

From: "ioquatix (Samuel Williams) via ruby-core" <ruby-core@...>
Date: 2023-06-19 23:08:44 UTC
List: ruby-core #113949
Issue #19737 has been updated by ioquatix (Samuel Williams).


Thanks for working on this.

So, in short, I'm against the name (even if it is cute), but I'm okay with considering the functionality.

I'd like to know more the use case.

We shouldn't encourage users to create lots of temporary buffers. It's better to construct one buffer and append into it.

The current functionality for "appending" to a buffer is `copy`.

```ruby
a = IO::Buffer.for("A")
b = IO::Buffer.for("B")
c = IO::Buffer.new(2)
c.copy(a, 0)
c.copy(b, 1)
c
=> 
#<IO::Buffer 0x0000600001ec08f0+2 INTERNAL>
0x00000000  41 42                                           AB
```

The thing about buffers, is that reallocation and resizing is expensive, unlike Strings. This is by design.

It's a bad idea to write something like:

```ruby
c = a + b
c.resize(1024)
c.copy(more_data, 2)
```

This is why I want to know the use case in a bit more detail.

----------------------------------------
Feature #19737: Add `IO::Buffer#cat` for concat `IO::Buffer` instances
https://bugs.ruby-lang.org/issues/19737#change-103602

* Author: unasuke (Yusuke Nakamura)
* Status: Open
* Priority: Normal
----------------------------------------
## motivation
In my use case, I want to concat two IO::Buffer instances. But current implementation doesn't have that way.
Then I created a patch. Opend here: TBD

## concern
I have two concerns about it.

### 1. Should we provide `IO::Buffer#+` as an alias?
In String instance, `"a" + "b"` returns `"ab",`. It feels intuitive.

So, should we provide the same way as `IO::Buffer.for("a") + IO::Buffer.for("b")`?
If `+` is provided, I naturally assume that `*` is also provided as an operator.
Should we also provide an `IO::Buffer#*` method for symmetry with the String class?

I thought the behavior of the "*" method is not obvious to me... (Is it right to just return joined buffers?)

### 2. Should it accept multiple IO::Buffer instances?
In the `cat` command, it accepts multiple inputs like this.

```
$ cat a.txt b.txt c.txt
a
b
c
```

Should `IO::Buffer#cat` accept multiple inputs too?



-- 
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/

In This Thread