In article <················@naggum.no> Erik Naggum <····@naggum.no> writes:
>I don't know what Martin would answer, but part of the problem with foreign
>function interfaces as far as I have been looking at them is that they must
>be _very_ efficient and that this efficiency is very difficult to obtain
>across the wide range of ways you can implement Common Lisp on various
>current hardware, more so on various no-longer-current hardware. also,
>there has been little concensus on which language it is useful to talk to.
>C is relatively easy, but other languages that do fancy typing stuff are
>much harder, and the more automatic elements there are in the code, the
>more the interface needs to replicate of the other language.
I think it would be quite sufficient if there was a FFI of only
average efficiency but standard.
The same old story applies. 95% of your code doesn't need
super-efficiency. For the 5% that does, well they can supply a
proprietory interface as well if necessary.
Also, C seems to be a common denominator for most languages. If you
can talk to C, most likely you can talk to anything via C.
--
---------------------------------------------------------------
| Chris Bitmead.....................................9690 5727 |
| ·············@Alcatel.com.au............................... |
---------------------------------------------------------------
The sum of the intelligence of the world is constant.
The population is, of course, growing.
From: Martin Cracauer
Subject: Re: Foreign Functions (was Re: Why lisp failed in the marketplace)
Date:
Message-ID: <1997Feb27.172251.497@wavehh.hanse.de>
·············@Alcatel.com.au (Chris Bitmead) writes:
>Also, C seems to be a common denominator for most languages. If you
>can talk to C, most likely you can talk to anything via C.
This is a common misunderstanding.
In pratice, you usually cannot mix two languages that both interface
to C, because of incompatible behaviour of runtimes (GC, threads,
stack-handling in general), object creation policy and such.
You talk to C and to C only, *not* to other languages that interface
to C also. The only exceptions are languages that use runtimes written
in normal C without messing with the stack, Objective-C for
example. No GC, no threads.
Martin
--
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
···············@wavehh.hanse.de http://cracauer.cons.org Fax.: +4940 5228536
"As far as I'm concerned, if something is so complicated that you can't ex-
plain it in 10 seconds, then it's probably not worth knowing anyway"- Calvin