From: shyouhei@... Date: 2016-09-13T00:21:29+00:00 Subject: [ruby-core:77256] [Ruby trunk Feature#12744] Add str.reverse_each_char and str.reverse_chars Issue #12744 has been updated by Shyouhei Urabe. I doubt if we can make a reverse_each_char which is faster than reverse.each_char. It ls not always clear where is a boundary between a character and another, especially when scanning backwards. We might end up scanning whole string from the beginning, splitting characters into separate substrings, then iterate over them. ---------------------------------------- Feature #12744: Add str.reverse_each_char and str.reverse_chars https://bugs.ruby-lang.org/issues/12744#change-60488 * Author: Bouke van der Bijl * Status: Feedback * Priority: Normal * Assignee: ---------------------------------------- This patch adds `str.reverse_each` and `str.reverse_chars`. It's currently not really possible to iterate a Ruby string in reverse while guaranteeing that you're not accidentally introducing an O(N^2) bug, without encoding to a fixed-length encoding like UTF-32. This is because variable-length encodings like UTF-8 requiring iterating over the whole string if you want to address characters by index. The patch uses `rb_enc_left_char_head` to iterate over the string in reverse, so you can do so without allocating more memory. ---Files-------------------------------- add-reverse-string-iteration.patch (5.91 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: