From: "MartinBosslet (Martin Bosslet)" Date: 2012-05-05T10:01:07+09:00 Subject: [ruby-core:44887] [ruby-trunk - Feature #6361] Bitwise string operations Issue #6361 has been updated by MartinBosslet (Martin Bosslet). kernigh (George Koehler) wrote: > =begin > With this design, String#& and String#~ never modify the original string. This design forgot that Strings are mutable. String#& must allocate a new string, before String#[]= modifies the original string. A better design might provide destructive methods that use bitwise operations to modify a slice of the original string. > =end Good point, I like the idea of having an alternative destructive version, should boost performance a lot. I think you actually need both because the "secure" version, ByteString::Immutable, *needs* to be immutable. But in the general case both versions have their use. I'll add it to the proposal. ---------------------------------------- Feature #6361: Bitwise string operations https://bugs.ruby-lang.org/issues/6361#change-26470 Author: MartinBosslet (Martin Bosslet) Status: Feedback Priority: Normal Assignee: Category: core Target version: I know this has been discussed a lot in the past (and if there's still an open issue for this, I apologize, I couldn't find one), for example in [1]. While it is generally no problem to implement this on the fly, I still find that built-in support would be a real improvement. There are quite some use cases in cryptography where this would come in very handy, but I'm sure there are lots of other areas, too. While of course I understand the reasons that were given in the previous threads that ultimately lead to rejection, I still would like to reopen the discussion as I felt that in every thread so far the consensus was that having bitwise string operations would indeed be quite valuable. [1] http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/34586 -- http://bugs.ruby-lang.org/