summaryrefslogtreecommitdiff
path: root/io_buffer.c
AgeCommit message (Collapse)Author
2023-05-27Improve `read`/`write`/`pread`/`pwrite` consistency. (#7860)Samuel Williams
* Documentation consistency. * Improve consistency of `pread`/`pwrite` implementation when given length. * Remove HAVE_PREAD / HAVE_PWRITE - it is no longer optional. Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2023-05-24Improvements to `IO::Buffer` `read`/`write`/`pread`/`pwrite`. (#7826)Samuel Williams
- Fix IO::Buffer `read`/`write` to use a minimum length. Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2023-05-22Fix mutation on shared strings. (#7837)Samuel Williams
Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2023-05-22Rename `data` -> `buffer` for better readability. (#7836)Samuel Williams
Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2023-03-31Support `IO#pread` / `IO#pwrite` using fiber scheduler. (#7594)Samuel Williams
* Skip test if non-blocking file IO is not supported. Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2023-03-25Fix incorrect usage of `rb_fiber_scheduler_io_(p)(read|write)`. (#7593)Samuel Williams
Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2023-03-25IO::Buffer#resize: Free internal buffer if new size is zero (#7569)Kasumi Hanazuki
`#resize(0)` on an IO::Buffer with internal buffer allocated will result in calling `realloc(data->base, 0)`. The behavior of `realloc` with size = 0 is implementation-defined (glibc frees the object and returns NULL, while BSDs return an inaccessible object). And thus such usage is deprecated in standard C (upcoming C23 will make it UB). To avoid this problem, just `free`s the memory when the new size is zero. Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2023-02-27Fix spelling (#7389)John Bampton
Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2023-02-26Adjust `else` style to be consistent in each files [ci skip]Nobuyoshi Nakada
2023-02-25Prefer RB_NUM2LONG for string length. (#7379)Samuel Williams
Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2023-02-25Add `IO::Buffer.string` for efficient string creation. (#7364)Samuel Williams
Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2023-02-23[Bug #19459] Remove unnecessary always-true checks (#7362)Nobuyoshi Nakada
`length` is a required argument for `IO::Buffer#read` and `IO::Buffer#write` methods, and `argc` is already checked with `rb_check_arity`. Also fix the call-seq of `IO::Buffer#read`. Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2022-12-24[DOC] Document new methods of IO::Buffer and Fiber::Scheduler (#7016)Victor Shepelev
Co-authored-by: Samuel Williams <samuel.williams@oriontransfer.co.nz> Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2022-12-24Fix missing handling of offset argument in `IO::Buffer` `pread` and ↵Samuel Williams
`pwrite`. (#7012) Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2022-12-02Use consistent style [ci skip]Nobuyoshi Nakada
2022-11-20Fix typos (#6775)Yudai Takada
* s/Innteger/Integer/ * s/diretory/directory/ * s/Bufer/Buffer/ * s/defalt/default/ * s/covearge/coverage/ Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-11-16Using UNDEF_P macroS-H-GAMELINKS
Notes: Merged: https://github.com/ruby/ruby/pull/6721
2022-11-03[DOC] Fix IO::Buffer#slice rdoc positionYusuke Nakamura
Before this change, rdoc shows empty in 'slice' method section Notes: Merged: https://github.com/ruby/ruby/pull/6668
2022-10-26Fix format specifiers for `size_t`Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6634
2022-10-19Add support for anonymous shared IO buffers. (#6580)Samuel Williams
Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2022-10-12Improvements to IO::Buffer implementation and documentation. (#6525)Samuel Williams
Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2022-09-26Update `IO::Buffer` read/write to use rb_thread_io_blocking_region. (#6438)Samuel Williams
Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2022-09-26Add several new methods for getting and setting buffer contents. (#6434)Samuel Williams
Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2022-09-08[Bug #5317] Use `rb_off_t` instead of `off_t`Nobuyoshi Nakada
Get rid of the conflict with system-provided small `off_t`. Notes: Merged: https://github.com/ruby/ruby/pull/6329
2022-07-27Adjust styles [ci skip]Nobuyoshi Nakada
2022-07-27Append semicolons [ci skip]Nobuyoshi Nakada
2022-07-27Make indents and newlines consistent [ci skip]Nobuyoshi Nakada
2022-06-25Fix a variable name typo in the docsShannon Skipper
Notes: Merged: https://github.com/ruby/ruby/pull/6060
2022-06-23Fix warnings by old gccNobuyoshi Nakada
* Use PRIxSIZE instead of "z" * Fix sign-compare warning * Suppress unused-but-set-variable warning
2022-05-09Add basic binary operators (and, or, xor, not) to `IO::Buffer`. (#5893)Samuel Williams
Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2022-05-09Fix rdoc of IO::Buffer [ci skip]Kazuhiro NISHIYAMA
2022-05-09Explicit handling of frozen strings in `IO::Buffer#for`. (#5892)Samuel Williams
Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2022-01-07io_buffer.c: use mremap based resizing only when mremap availableYuta Saito
some libc implementations (e.g. wasi-libc) define MREMAP_MAYMOVE, but don't have mremap itself, so guard the use of mremap by HAVE_MREMAP Notes: Merged: https://github.com/ruby/ruby/pull/5401
2022-01-02Remove UTF-8 from documentation.Samuel Williams
2022-01-02[DOC] Adjust IO::Buffer docs (#5374)Victor Shepelev
Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2021-12-25Fix typos [ci skip]Kazuhiro NISHIYAMA
2021-12-23Add fiber scheduler hooks for `pread`/`pwrite`, and add support to `IO::Buffer`.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5249 Merged-By: ioquatix <samuel@codeotaku.com>
2021-12-22Extended interface for IO::Buffer & documentation.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5314 Merged-By: ioquatix <samuel@codeotaku.com>
2021-12-21Rename IMMUTABLE to READONLY.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5303
2021-12-21Improve interface for get/set/copy.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5303
2021-12-21Fix handling of clear with offset and without length.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5303
2021-12-21Mark non-private mapped files as external.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5303
2021-12-21Default `IO::Buffer#get_string` to use BINARY encoding.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5303
2021-12-21Rename `to_str` -> `get_string` and add support for encodings.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5303
2021-12-21Improved exception usage/classes.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5303
2021-12-21Fix handling of frozens strings.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5303
2021-12-21Fix mapping invalid non-file object.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5303
2021-12-20Improve IO::Buffer resize and introduce ownership transfer.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5301
2021-12-19Default size for IO::Buffer.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5300
2021-12-19Fix spelling of DECLAIR_TYPE.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5296