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