[Ecls-list] C:MAKE-BUILD composition and hierarchical ar shrink-wrapping

Juan Jose Garcia-Ripoll jjgarcia at users.sourceforge.net
Sat Apr 5 19:52:03 UTC 2008

On Tue, Apr 1, 2008 at 2:15 PM, Samium Gromoff
<_deepfire at feelingofgreen.ru> wrote:
>  Let me illustrate it:
>  foo.lisp: ======= 8< =======
>  (ffi:def-function "a"
>   ()
>   :returning :void)

This can't definitely work. What you are defining here is a lisp
function that will call a C function with name "a". This function is
defined nowhere. Hence, when you build the fasl file, it simply fails.
Instead, the following works:

foo.lisp: ===============

(ffi:def-function "a"
 :returning :void)

(eval-when (:load-toplevel)
(ffi:clines "
void a() {

Following the same steps as you, and then entering ECL:

$ ecl
ECL (Embeddable Common-Lisp) 0.9j (CVS 2008-03-17 17:51)
Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya
Copyright (C) 1993 Giuseppe Attardi
Copyright (C) 2000 Juan J. Garcia-Ripoll
ECL is free software, and you are welcome to redistribute it
under certain conditions; see file 'Copyright' for details.
Type :h for Help.  Top level.
> (load "foo")
;;; Loading #P"/Users/jjgarcia/src/common-lisp.net/ecl/foo.fas"
> (load "foo2")
;;; Loading #P"/Users/jjgarcia/src/common-lisp.net/ecl/foo2.lisp"
> (b)


Facultad de Fisicas, Universidad Complutense,
Ciudad Universitaria s/n Madrid 28040 (Spain)

More information about the ecl-devel mailing list