<div dir="ltr">Hi Marc and list,<br><br>Can you help me recap the speed aspect of C FFI use in C-compiled Scheme files:<br><br>"Trampoline" in Gambit means specifically inter-module calls between C-compiled Scheme files, as well as call between binary backend-compiled code and C-compiled code, right.<br><br>When you make a call to the C world from a C-compiled Scheme file, or vice versa when you call the Scheme world from the C world within a C-compiled Scheme file, I recall a bit of work takes place. This is not called a "trampoline" right, per above.<br><div><br></div><div>It's called "continuation serialization", and which includes some Scheme stack and heap overflow checks?</div>
<div><br></div><div>This work is an implied part of all the standard C 
FFI code forms |c-lambda| |c-define| |c-initialize| isn't it, also this 
is independent of compile mode e.g. (declare (not safe)), yes?<br></div><div><br></div>

About how heavy is it, per call?<br><br><br>For even-higher-speed C access, such as doing tons of C or C++ acquire/release operations inlined in Scheme code, given acceptance of constraints on what my code does (to not overflow the Scheme stack/heap), can I use a C FFI form that does not do that?<br><br><div>If so, which one is it - |##c-code|?<br></div><div><br></div><div>Please clarify what I cannot do in |##c-code|.<br></div><br>Thanks,<br>Adam</div>