On Wed, Mar 10, 2010 at 9:05 AM, Juan Jose Garcia-Ripoll <span dir="ltr"><<a href="mailto:juanjose.garciaripoll@googlemail.com">juanjose.garciaripoll@googlemail.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im">On Wed, Mar 10, 2010 at 12:25 AM, Julian Stecklina <span dir="ltr"><<a href="mailto:js@alien8.de" target="_blank">js@alien8.de</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
If I load the system on the REPL, everything works as expected and the<br>
PRINT prints #<"XLIB" package>. If I compile foo to a standalone binary<br>
using (asdf:make-build 'foo :type :program), I get NIL, i.e. the XLIB<br>
module is missing from the binary.<br></blockquote></div><br clear="all"></div>This has nothing to do with XLIB per se. The problem is simply that precompiled modules (xlib, asdf, etc) can not be included in standalone binaries. That requires a bit more hacking of ASDF than is currently done, as well as changing the build process to install statically linked versions of those modules.<br>
</blockquote><div><br>This limitation has been lifted in git/CVS, though I did not make a full test with CLX.<br><br>> (require 'asdf)<br><br>;;; Loading #P"/Users/jjgarcia/lib/ecl-10.3.1/ASDF.fas"<br>;;; Loading #P"/Users/jjgarcia/lib/ecl-10.3.1/CMP.fas"<br>
;;; Loading #P"/Users/jjgarcia/lib/ecl-10.3.1/sysfun.lsp"<br>("ASDF" "CMP")<br>> (asdf:make-build 'foo :type :program)<br><br>; loading system definition from /Users/jjgarcia/build/ecl/foo.asd into<br>
; #<ASDF0 package><br>;;; Loading "/Users/jjgarcia/build/ecl/foo.asd"p [...]<br>;;; Invoking external command:<br>;;; gcc -o "/Users/jjgarcia/.cache/common-lisp/ecl-10.3.1-darwin-x86/Users/jjgarcia/build/ecl/foo-mono" -L"/Users/jjgarcia/lib/" "/private/var/folders/kU/kUiyJak2GK4YuehJzAcNGU+++TI/-Tmp-/ECLINITP1IELn.o" "/Users/jjgarcia/lib/ecl-10.3.1/libserve-event.a" "/Users/jjgarcia/.cache/common-lisp/ecl-10.3.1-darwin-x86/Users/jjgarcia/build/ecl/libfoo.a" -lffi -lecl -lpthread -lm <br>
;;; <br>#<ASDF::PROGRAM-OP NIL 32265152><br>> <br>$ ~/.cache/common-lisp/ecl-10.3.1-darwin-x86/Users/jjgarcia/build/ecl/foo-mono <br>ECL (Embeddable Common-Lisp) 10.3.1<br>Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya<br>
Copyright (C) 1993 Giuseppe Attardi<br>Copyright (C) 2000 Juan J. Garcia-Ripoll<br>ECL is free software, and you are welcome to redistribute it<br>under certain conditions; see file 'Copyright' for details.<br>Type :h for Help. <br>
Top level in: #<process SI:TOP-LEVEL 000ccfc0>.<br>> (find-package "SERVE-EVENT")<br><br>#<"SERVE-EVENT" package><br>> (foo)<br><br>MY-SYMBOL<br>> <br>$ cat foo.lisp foo.asd<br>(ffi:clines<br>
"#include <limits.h>"<br>"<br>cl_object<br>aux() {<br> return @my-symbol;<br>}")<br><br>(defun foo ()<br> (ffi:c-inline () () :object "aux()" :one-liner t))<br>(defsystem foo<br> :depends-on (:serve-event)<br>
:components ((:file "foo")))<br clear="all"><br></div></div><br>-- <br>Instituto de Física Fundamental, CSIC<br>c/ Serrano, 113b, Madrid 28006 (Spain) <br><a href="http://juanjose.garciaripoll.googlepages.com">http://juanjose.garciaripoll.googlepages.com</a><br>