[#35446] [Ruby 1.9 - Bug #4477][Open] Kernel:exec and backtick (`) don't work for certain system commands — Joachim Wuttke <j.wuttke@...>

10 messages 2011/03/07

[#35476] [Ruby 1.9 - Bug #4489][Open] [PATCH] Encodings with /-(unix|dos|mac)\Z/ — "James M. Lawrence" <quixoticsycophant@...>

20 messages 2011/03/10

[#35552] [Ruby 1.9 - Feature #4523][Open] Kernel#require to return the path of the loaded file — Alex Young <alex@...>

14 messages 2011/03/24

[#35565] [Ruby 1.9 - Feature #4531][Open] [PATCH 0/7] use poll() instead of select() in certain cases — Eric Wong <normalperson@...>

33 messages 2011/03/28

[#35566] [Ruby 1.9 - Feature #4532][Open] [PATCH] add IO#pread and IO#pwrite methods — Eric Wong <normalperson@...>

12 messages 2011/03/28

[#35586] [Ruby 1.9 - Feature #4538][Open] [PATCH (cleanup)] avoid unnecessary select() calls before doing I/O — Eric Wong <normalperson@...>

9 messages 2011/03/29

[ruby-core:35411] Re: Fwd: [ruby-cvs:38176] Ruby:r30994 (trunk): * string.c (rb_str_byteslice): the resulted encoding should keep

From: "NARUSE, Yui" <naruse@...>
Date: 2011-03-02 05:54:37 UTC
List: ruby-core #35411
Hi,

2011/3/1 "Martin J. Dst" <duerst@it.aoyama.ac.jp>:
> I'm really surprised that the encoding is kept for an arbitrary byteslice.
>
> assert_equal("\x81\x82".force_encoding(Encoding::UTF_8),
> \u3042".byteslice(1..2))
>
> really just doesn't make sense to me. In UTF-8, the string "\x81\x82" is
> just garbage, and will hit some exception or other problem sooner or later.
> The only reasonable result is to mark this as BINARY aka ASCII8BIT. I don't
> think anybody would expect something else.

That's only a test, but examples in its rdoc is not suitable as you
said and fixed it in r31004.

2011/3/1 Benoit Daloze <eregontp@gmail.com>:
> I agree, this is weird.
> I think the only use cases for #byteslice are for treating a part of a
> binary String.
> So, it should be expected you have to "force_encoding BINARY" it.

A use case in my mind is slicing strings from binary format or protocol.
Another is truncate with bytes.

> I imagine this method is useful for low level String manipulation
> libraries (because it does not dup the whole String), but that is very
> specific use case. Maybe these libraries should implement themselves
> these low-level methods for faster manipulation of String and
> Encoding.

Ruby's String is both character and byte string, so it should support
low level use case.
Yeah, if the function is easy to implement, library author should
implement by themselves.
But if it is not easy to implement in fast and efficient way Ruby
should support it,
I think and matz also seems to think so too.

> P.S.: Sorry to not have reacted earlier, I did not expect it to have a
> patch and be merged so fast.

It's OK, trunk is such place.

-- 
NARUSE, Yui naruse@airemix.jp>

In This Thread

Prev Next