Stefan Israelsson Tampe <[email protected]> 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.
The problem was that, in some cases, the type inferrer would call 'ash'
with (- 1 (expt 2 64)) as the second argument during compilation. The
implementation of 'ash' would raise an exception unless its second
argument (the shift count) fits in a C 'long'.
This is fixed in commit 011aec7e240ef987931548d90c53e6692c85d01c on the
stable-2.2 branch. That commit extends 'ash' and 'round-ash' to
gracefully handle several cases where the shift count is too large to
fit in a 'long'.
Thanks for the report.
Mark