From: Chris Bitmead
Subject: Re: Foreign Functions (was Re: Why lisp failed in the marketplace)
Date: 
Message-ID: <BITMEADC.97Feb27093154@Alcatel.com.au>
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