IRC channel logs

2026-05-13.log

back to list of logs

<old>rlb: I think the compiler is supose to already hoist bound check and merge them if needed ?
<old>do you have an example in mind
<old>JohnCowan: pre-scheme is already available for Guile
<old>tho we haven't heard from the person who's doing the port for more than a year now
<ekaitz>ACTION hopes the guy is in a sabbatical 
<ekaitz>:(
<lechner>Hi, how may I ask Guile to expand the ellipses in error messages, please?
<rlb>old: it didn't appear to host here, even at guild compile -O3 unless I was doing/lokking-at it wrong: https://paste.debian.net/hidden/555c0e6b
<rlb>Rather "it appeared to keep three length checks".
<apteryx>lechner: you could try setting COLUMNS to some larger value, e.g. 200
<apteryx>the default is 80 IIRC
<rlb>I thought there was probably a setting wrt the truncation, but I can't recall/find it atm.
<rlb>(and perhaps I'm conflating guile with something else)
<rlb>yeah, I might have been remembering https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/*print-length*
<rlb>old: seem plausible for main? https://codeberg.org/rlb/guile/commit/0a1b14e255d6de0be701ed57eeea9403308e984c (currently meta/guild uses the installed guile, not meta/guile)
<old>rlb: yes for meta/guild
<old>I was going to fix that one day
<old>had to do GUILE=./meta/guile
<old>you can merge it to main
<rlb>I wonder if all the scm_init_{array_handle,dynwind,ioext,...} functions that we call during scm_i_init_guile really ought to be SCM_INTERNAL and scm_i_init_array_handle, etc...
<dthompson>hey hey, new hoot release today https://spritely.institute/news/hoot-0-9-0-released.html
<rlb>nice
<rlb>jcowan: is it feasible to assume that a string encoding will never produce more than one characters for a single encoded byte when decoding?
<rlb>(i.e. is that "guaranteed" anywhere relevant?)
<JohnCowan>rlb: yes, unless yu count edge cases like BCD numbers, compression, etc.
<JohnCowan>there are some 6-bit codes, but usually they are padded to 8 bits internally and sent out a serial line
<rlb>OK, thanks. I was specifically just concerned with whether (ice-9 iconv) bytevector->string could ever produce a string longer than the input bytevector.
<JohnCowan>"Inconceivable!"
<rlb>:)
<JohnCowan>safe to assume not less than 1 nor more than 10 bytes per char
<JohnCowan>(for stateful encodings)
<rlb>OK.
<JohnCowan>4 bytest to specify a sub-encoding + 3 bytes to select the current encoding(s) + 1-3 bytes for the char itself
<JohnCowan>utf32 is the only 4-byte encoding and it is stateless
<rlb>If I read the docs right, it sounds like bytevector oriented variants of the (ice-9 rw) read/write functions may still be useful, if they're the main/only way to make a nonblocking read/write. Anyone happen to know if that's correct? i.e. from surveying our docs, it sounds like all the other reads/writes will block one way or another (perhaps via suspension).
<rlb>Asking because I have added read-bytevector!/partial and write-bytevector/partial, but then realized I should double-check.
<rlb>(and implemented the existing string functions in terms of those, and have moved the string functions to deprecated.c...)
<old>hmm I think that suspendable port kind of work only with bytevector ?
<old>there's some low level things that are require for peeking byte
<old>IIRC
<old> https://codeberg.org/lapislazuli/blue/src/commit/273e31d8ef3932384f11fd5ac6915c2ac8dffbed/blue/job.scm#L143
<old>not sure if that's relevant
<rlb>old: I'm not sure, but I have a suspicion that rw is bypassing much of the normal stuff, but if it's not, then perhaps there's little reason to keep it.
<rlb>e.g. https://codeberg.org/guile/guile/src/commit/8de1747bfc25371b4b21ef12e234f40b251aeb93/libguile/rw.c#L149
<rlb>direct call to read(2).
<rlb>here's where I ended up for now with respect to (ice-9 rw): https://codeberg.org/rlb/guile/commit/529f6f34f51a5ed7ca90dc1dc3656cb4d80d5564