Hi, Peter.
Here's some of my comments on the 1st draft of SRFI-281
1. In the section "Rationale"
> The bytevector-copy! procedure has a different argument order than the procedure in the R7RS base library.
Not just argument corder, as discussed in
https://codeberg.org/scheme/r7rs/issues/58, The main conflict lies in
the `bytevector-copy!` functions in versions R6 and R7 is they interpret
their last argument differently.
2. In the section "Error-handling mode macro"
> This library is optional because this syntactic form cannot be implemented in syntax-rules.
I don't understand why it can't be implemented in `syntax-rules`, since
this SRFI just require it to raise an error on invalid endianness during
the evaluation, not a syntax violation (the R6RS way).
Therefore, an implementation like
(define-syntax endianness
(syntax-rules ()
((endianness name)
(case 'name
((big) 'big)
((little) 'little)
(else (error "Invalid endianness type" 'name))))))
is conformant.
3. The title of "Encoding procedures" and "Decoding procedures" two
sections were accidentally swapped.
4. The signature of make-bytevector has an extraneous argument
"bytevector", do you mean (make-bytevector k [b8]) ?
5. The procedure (bytevector b8 ...) seems to be missing in SRFI, This
is strange since it already had another lower level API make-bytevector.
--
Retrieve my PGP public key:
执行下列命令以获取我的 PGP 公有密钥:
gpg --recv-keys B3EBC086AB0EBC0F45E0B4D433DB374BCEE4D9DC
Zihao / 閱卜錄