[#81492] [Ruby trunk Feature#13618] [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid — normalperson@...

Issue #13618 has been reported by normalperson (Eric Wong).

12 messages 2017/06/01

[ruby-core:81566] [Ruby trunk Feature#13626] Add String#byteslice!

From: samuel@...
Date: 2017-06-03 22:49:14 UTC
List: ruby-core #81566
Issue #13626 has been updated by ioquatix (Samuel Williams).


Thanks for that idea.

If that's the case, when appending to the write buffer:

~~~
write_buffer = String.new.b
unicode_string = "\u1234".force_encoding("UTF-8")
write_buffer << unicode_string
write_buffer.encoding # Changed from ASCII-8BIT to Encoding:UTF-8
~~~

The only way I can think to fix this is to run +force_encoding+ on the write buffer after every append but this seems hugely inefficient.

Ideas?

----------------------------------------
Feature #13626: Add String#byteslice!
https://bugs.ruby-lang.org/issues/13626#change-65268

* Author: ioquatix (Samuel Williams)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
It's a common pattern in IO buffering, to read a part of a string while leaving the remainder.

~~~
# Consume only part of the read buffer:
result = @read_buffer.byteslice(0, size)
@read_buffer = @read_buffer.byteslice(size, @read_buffer.bytesize)
~~~

It would be nice if this code could be simplified to:

~~~
result = @read_buffer.byteslice!(size)
~~~

Additionally, this allows a significantly improved implementation by the interpreter.




-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next