[Ecls-list] Bug? ffi:definline etc. handling in ffi.lsp

Hannu Koivisto azure at iki.fi
Mon Feb 11 14:52:03 UTC 2002


Greetings,

I introduced foo.lsp, which uses ffi:definline, to the src/lsp
directory.  I also added it to the system definition so that it
gets compiled right after ffi.lsp.  Now, when I build ECL, I get

...
;;; Finished compiling .../ecls/src/lsp/ffi.lsp.
Compiling FOO...
;;; Compiling .../ecls/src/lsp/foo.lsp.
Too many arguments are supplied to defmacro-lambda-list.
Broken at FFI:DEFINLINE.

The reason I get _that_ message is that FFI macros are defined in
ffi.lsp like this

(defmacro some-ffi-macro (&whole all)
  ...)

even though they should be

(defmacro some-ffi-macro (&whole all &rest ignored)
  ...)

or something equivalent.

However, that particular result is not the part I'm really
interested in.  As far as I can see, use of ffi:definline macro in
my foo.lsp shouldn't be expanded at all but the compiler should
notice it and handle it specially.

Now, if, after such a failed build attempt (but after which ffi.lsp
and all the files before it has been compiled), I run make again,
my foo.lsp is the one that gets compiled first (since all the other
files till that were just compiled) and it compiles just fine.  So
it would seem that the compiler gets upset after having compiled
ffi.lsp and refuses to properly handle ffi:definline in the same
session.

Any insight on what's actually going on?

-- 
Hannu
Please don't send copies of list mail




More information about the ecl-devel mailing list