libera/#sbcl - IRC Chatlog
Search
22:11:12
|3b|
stassats: yeah, reading directly to the sequence would also be nice (possibly only if the remaining read would be larger than a buffer?)
22:15:25
|3b|
ACTION wonders if i can write this code sufficiently non-consing to be confident it won't run a GC, or if toggling priorities around specific regions would work, or if i just need to write it in C
22:16:06
|3b|
or alternately, if i should just switch to using async file io routines directly instead of trying to optimize mmap or read-sequence
22:18:29
moon-child
even if you do have to convert, better not to do buffers <filesize. Point of buffering is to avoid overhead for small ops
22:20:23
moon-child
if your goal is to read into memory an entire file whose size is n, there is not much point in squeezing it into buffers whose size is less than n
22:21:45
|3b|
and if i want to read something close to ram size, and extra copy that size would be bad
22:22:30
moon-child
depending on what kind of conversion you have to do, it would ideally be possible to use the sequence being read into as buffer
22:24:02
moon-child
if doing say utf8->ucs4, then repeatedly read 1/4 the remaining buffersize and expand in place
22:24:45
|3b|
yeah, that also would probably be good, and switch back to normal buffer when it gets close to the end
23:03:08
|3b|
might depend on what you mean by handle... looks like there is sb-sys:memory-fault-error, but with no restarts to retry or return a specific value or whatever you might want to do with it aside from unwind
23:35:44
qhong
|3b|: yes the retry thing is exactly what I miss. I think that's necessary for implementing swapping