> 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.

> 
>> This doesn't feel right to me, but I'll push the modified patch, if you 
>> insist,
>> because I can't bring up more convincing arguments. It just doesn't feel 
>> right...
> 
> Why doesn't it feel right?  (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.


cheers,
felix

_______________________________________________
Chicken-hackers mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/chicken-hackers

Reply via email to