Chicken » Bugs and limitations

## Bugs and limitations

- Compiling large files takes too much time.
- If a known procedure has unused arguments, but is always called without those parameters, then the optimizer repairs the procedure in certain situations and removes the parameter from the lambda-list.
- `port-position` currently works only for input ports.
- Leaf routine optimization can theoretically result in code that thrashes, if tight loops perform excessively many mutations. In practice this doesn't happen.
- Due to the header representation of block objects, the maximum size of a bytevector-like object (strings, blobs, srfi-4 vectors etc) is 2^24 bytes or 16MiB. On 64-bit machines the limit is less relevant, at 2^56 bytes, or 65536 TiB (64 PiB).
- Like above, the maximum size of vector-like objects is 2^24 slots on 32 bit machines and 2^56 slots on 64-bit machines.
- Bignums are represented by bytevector objects instead of vector-like objects due to the need to treat digits as opaque data. This limits bignums to a maximum value of 2^(2^27) on 32-bit machines and 2^(2^59) on 64-bit machines.

Previous: Cross development

Next: Acknowledgements