In porting dorodango[0], I have noticed that Guile's R6RS fixnum operations are quite slow; here's a patch to remedy that a bit. The patch contains a benchmark for `fxxor', which experiences a performance improvement of >2 with the patch.
[0] http://home.gna.org/dorodango/ I also used real code to validate the performance impact, namely Göran Weinholt's ZIP implementation from his industria collection[1]. There the patch makes for an ~1.7x improvement for uncompressing a 675KiB (compressed) ZIP file containing text files that yield good compression. [1] https://code.launchpad.net/~weinholt/scheme-libraries/industria However, it must be noted that while this patch improves things, uncompressing the aforementioned ZIP file takes still 42 seconds on my machine (down from 74 before). I have another patch in the queue to improve this by making `fixnum?' a VM primitive, but even with that, performance is not stellar.