From: eregontp@... Date: 2021-05-05T15:15:32+00:00 Subject: [ruby-core:103745] [Ruby master Feature#17851] ruby extension for memoryview Issue #17851 has been updated by Eregon (Benoit Daloze). I think Fiddle::MemoryView is not needed for this. String#[] can already avoid copying, on CRuby I think only if taking a substring until the end (the case here). Also if Fiddle::MemoryView returns a mutable/non-read-only view, it seems very difficult to support while not making a copy and keeping the Ruby String working. Finally, a method on Kernel is most likely not acceptable, we'd want a proper namespace like on Fiddle::MemoryView or so. ---------------------------------------- Feature #17851: ruby extension for memoryview https://bugs.ruby-lang.org/issues/17851#change-91841 * Author: dsisnero (Dominic Sisneros) * Status: Open * Priority: Normal ---------------------------------------- add an extension to ruby for memoryview - (just like Fiddle::MemoryView but in ruby assuming Fiddle::MemoryView gets slices) add a method in Kernel to get initialize a memoryview on an object that is a c memoryview lets say we want to partially copy a file - minus the first KB ``` ruby f = File.open('test.txt', 'rb') do |f| content = f.read content_to_write = memoryview(content)[1024..-1] # here is what I want new -it will use the same memory as content just pointers puts "content length #{content.size} - content_to_write length #{content_to_write.size}" File.open('output.txt','wb') do |f2| f2.write(content_to_write) # if we have #17832 this will write to file without copying end end ``` If we have memoryview extension in ruby we can use less memory because we are no longer copying Strings when doing slices #17831 -- https://bugs.ruby-lang.org/ Unsubscribe: