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

Reply via email to