Stefan Israelsson Tampe <stefan.ita...@gmail.com> writes: > The code velow does not compile when the define-inlinable of id is active. If > in stead > id defined by define is used it all compiles just fine. > > Tested on latest tar ball for guile 2.4
Did you mean to write guile 2.2.4? Mark > ------------------------------------------- > (use-modules (rnrs bytevectors)) > > (define-inlinable (id x) x) > ;(define (id x) x) > (define-syntax-rule (mkcrc crc_hqx high xor mask) > (define (crc_hqx data value) > (let ((n (bytevector-length data)) > (d data)) > (let lp ((i 0) (v value)) > (if (< i n) > (let ((b (id (bytevector-u8-ref d i)))) > (let lp2 ((j 0) (x 1) (v v)) > (if (> j -8) > (let ((bit (ash (logand x b) j)) > (hbit (logand v high))) > (if (= hbit 0) > (lp2 (- j 1) (ash x 1) (logior bit (ash v 1))) > (lp2 (- j 1) (ash x 1) (logxor > xor > (logand mask > (logior > bit > (ash v 1))))))) > (lp (+ i 1) v)))) > v))))) > > (mkcrc crc_hqx #x8000 #x1021 #xffff) > (mkcrc crc32 #x80000000 #x04c11db7 #xffffffff)