On Sat, Jan 05, 2013 at 12:16:21AM +0100, Felix wrote: > > Actually, if you want to write portable code you must, and you must also > > wrap it in inexact->exact. However, since the FFI isn't portable anyway > > it won't matter that much, except when if decide to switch to supporting > > bignums in core. When that happens, all code that doesn't round and > > convert to exact will break unless we decide to keep this for backwards > > compat for a while. But eventually it'll break. > > I don't write portable code, and a switch to supporting bignums in the > core-system is not decided on, yet.
True, but it could happen! Maybe not this year, but who knows what'll happen the next 10 years :) > > (vector-ref (vector 1 2 3 4) 1.5) shouldn't > > work, why then should ((foreign-lambda void do-something int) 1.5), > > especially considering vector-ref could reasonably be defined as this: > > > > (lambda (v i) > > (check-type 'vector v) > > ((foreign-lambda scheme-object C_block_item scheme-object int) v i))? > > Because these are two completely different things, and you know that. Well, yes. But still, I don't see why it has to be different. If you really feel strongly about it I'll push your change as-is; I don't feel as strongly about it; I just have this faint hunch that it'll help prevent some small class of bugs. Just say the word. Cheers, Peter -- http://sjamaan.ath.cx _______________________________________________ Chicken-hackers mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/chicken-hackers
