Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
https://bugs.ruby-lang.org/issues/18417
IO::Buffer.map('README.md')
(just a string, I experimented "whether it is smart enough") core dumps.RuntimeError
as the only type of the error. I believe that in some places, it should be other standard errors (for example, "Offset + length out of bounds" could be at leastArgumentError
?..), and in other occurrences, special error classes: for example, "Buffer is locked" would probably be helpful to have as someIO::Buffer::LockedError
.to_str
always returns a string in US-ASCII encoding, I am not sure it is the right behavior. For a low-level buffer, I'd rather expect ASCII-8BIT (what file read in binary mode produces in Ruby).#resize
applied to a buffer mapped from file seems to "break" the link between the buffer and file; no further copy or set would be reflected on file.#clear
behaves weirdly when offset is provided but length is not.