On Sat, Nov 18, 2023 at 09:06:30PM +0800, Qian Yun wrote:
> Using GCL documentation example:
>
> ==== foo.lisp
> (defentry joe (string int) (char "our_c_fun"))
> ====
>
> Compile by:
> gcl -eval '(compile-file "foo.lisp" :h-file t)'
>
> Result of foo.h:
>
> ====
> static void L1();
> char our_c_fun(char *,int);
> static void * VVi[1]={
> #define Cdata VV[0]
> (void *)(L1)
> };
> #define VV (VVi)
> ====
So GCL emits declarations, good.
>
> (However, the documentation suggests in the past, extra "clines" is
> needed?)
Yes, in 2008 we had to add extern declarations. However, now we
do not support any version earlier than gcl-2.13 and IIUC in
almost any aspect gcl-2.13 and gcl-2.14 are identical (and there
are no reason to prefer 2.13), so we may depend on current
behaviour.
--
Waldek Hebisch