Summary

byte-blob-find fails on certain matches on 32-bit Chicken

Metadata

Description

(byte-blob-find (list->byte-blob (list 1 31)) (list->byte-blob (list 0 1 31 3)))

fails to match on 32-bit, but succeeds on 64-bit. Replace 31 with any byte value with low 5 bits all set (63, 95, etc.) and matches also fail. This may be related to the fact that internal function (swizzle 31) -> 0 on 32-bit, but is #x80000000 on 64-bit.

Changes and comments

[2013-07-29 07:40:03 UTC] iraikov changed status from new to accepted

[2013-07-29 07:40:03 UTC] iraikov set owner to iraikov

[2013-07-29 07:40:03 UTC] iraikov wrote:

Hello, thanks for the bug report. I have rewritten swizzle so that it does not rely on 64-bit integers, and I have made a new release of byte-blob. Please try it out and let me know if it works for you.

[2013-07-31 03:50:31 UTC] dthedens wrote:

Yes, this seems to have fixed my small test case as well as my original problem on 32 bit. Thanks for the quick turnaround!

[2013-08-02 07:43:02 UTC] iraikov changed status from accepted to closed

[2013-08-02 07:43:02 UTC] iraikov set resolution to fixed