I managed to get it to compile on the latest lightning branch as of
2018-09-14

On Thu, Sep 6, 2018 at 7:28 PM Mark H Weaver <m...@netris.org> wrote:

> 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)
>

Reply via email to