Re: no constants please
Richard Kelsey
(04 Jan 2004 18:11 UTC)
|
Re: no constants please
felix
(04 Jan 2004 19:25 UTC)
|
Re: no constants please
Richard Kelsey
(04 Jan 2004 20:08 UTC)
|
Re: no constants please
Tom Lord
(04 Jan 2004 21:13 UTC)
|
Re: no constants please Tom Lord (04 Jan 2004 21:43 UTC)
|
Re: no constants please
Richard Kelsey
(04 Jan 2004 22:59 UTC)
|
Re: no constants please
Tom Lord
(05 Jan 2004 00:50 UTC)
|
Re: no constants please
Tom Lord
(05 Jan 2004 01:19 UTC)
|
Re: no constants please
Richard Kelsey
(05 Jan 2004 11:42 UTC)
|
Re: no constants please
Tom Lord
(05 Jan 2004 16:26 UTC)
|
Re: no constants please
Richard Kelsey
(05 Jan 2004 17:49 UTC)
|
Re: no constants please
Tom Lord
(05 Jan 2004 18:24 UTC)
|
Re: no constants please
Michael Sperber
(05 Jan 2004 18:48 UTC)
|
Re: no constants please
Tom Lord
(05 Jan 2004 22:00 UTC)
|
Re: no constants please
Michael Sperber
(06 Jan 2004 07:42 UTC)
|
I don't believe in "(may GC)"
Tom Lord
(05 Jan 2004 00:55 UTC)
|
Re: I don't believe in "(may GC)"
Richard Kelsey
(05 Jan 2004 12:07 UTC)
|
Re: I don't believe in "(may GC)"
Shiro Kawai
(05 Jan 2004 12:45 UTC)
|
Re: I don't believe in "(may GC)"
bear
(05 Jan 2004 18:16 UTC)
|
Re: I don't believe in "(may GC)"
Tom Lord
(05 Jan 2004 16:35 UTC)
|
Re: I don't believe in "(may GC)"
bear
(05 Jan 2004 17:54 UTC)
|
Re: I don't believe in "(may GC)"
tb@xxxxxx
(06 Jan 2004 01:39 UTC)
|
Re: I don't believe in "(may GC)"
Michael Sperber
(06 Jan 2004 07:39 UTC)
|
Re: no constants please
Tom Lord
(05 Jan 2004 01:05 UTC)
|
Re: no constants please
Tom Lord
(05 Jan 2004 01:12 UTC)
|
Re: no constants please
Richard Kelsey
(05 Jan 2004 12:17 UTC)
|
Re: no constants please
Tom Lord
(05 Jan 2004 17:40 UTC)
|
Re: no constants please
Michael Sperber
(05 Jan 2004 19:03 UTC)
|
Re: no constants please
tb@xxxxxx
(06 Jan 2004 01:37 UTC)
|
Re: no constants please
Richard Kelsey
(06 Jan 2004 02:15 UTC)
|
Re: no constants please
Tom Lord
(06 Jan 2004 02:29 UTC)
|
Re: no constants please
tb@xxxxxx
(06 Jan 2004 02:31 UTC)
|
Re: no constants please
Richard Kelsey
(06 Jan 2004 03:10 UTC)
|
Re: no constants please
tb@xxxxxx
(06 Jan 2004 03:14 UTC)
|
Re: no constants please
Tom Lord
(06 Jan 2004 04:06 UTC)
|
> From: Richard Kelsey <xxxxxx@s48.org> > The JNI style of FFI, where the C code has indirect references > and never the Scheme values themselves, has lots of advantages. > But it does add overhead. I would prefer an FFI that allowed a > choice of direct or indirect values on a per-function basis. > Which is preferable depends a lot on what the C code is doing. > Such an FFI would be even larger than the current one, which is > already big. Pika-style conventions come very close to letting the compiler decide when direct vs. indirect references are needed. So close that I think you can just leave it at that and not suffer. > The interaction between Scheme threads and C code is complex. It > deserves a separate SRFI because of the complexity, because of the > dependencies on the details of both the thread and C FFI systems, > and because not every FFI user is going to care about it. If this issue were _only_ about threads, that might be a reasonable argument. (It also might not: one could argue that you shouldn't finalize a SRFI which is demonstrably unsuitable for threaded situations.) But the problems with the current FFI include issues with single-threaded, no-async-issue Scheme implementations including: ~ don't handle read/write barriers properly ~ don't handle transient root set members properly By stunning coincidence (or deep physical truth, take your pick), it turns out solving those issues _also_ make the FFI much more suitable for systems with threads (including truly concurrent threads) and async-execution. There's another way entirely to look at the calling convention issues: The draft FFI makes strong presumptions about the representations of Scheme values and the invarients that must be maintained wrt to the Scheme heap. It makes these presumptions by leaving it up to the compiler of FFI-using functions to manipulate scheme values directly, constrained only by the semantics of C. Pika-style conventions do not make those presumptions: there is a comprehensive abstraction barrier there between the Scheme value representations, the heap invariants, and the C code. The latter is far less restrictive on Scheme implementations. -t