[Ecls-list] ASDF load-op problem

kmkaplan+ecl at kim.kim-minh.com kmkaplan+ecl at kim.kim-minh.com
Wed Sep 3 10:32:55 UTC 2008


Hello,

I am trying to use ASDF with ecl and it works fine only the first time I
load my package.  After I change my source files and reload my package
in the same running ecl instance it compiles and says it is loading the
new file but I still get the old instances of my functions.

    $ cat test-case.asd 
    (defsystem :test-case :components ((:file "test")))
    $ cat test.lisp
    (defun test () (write-line "First test"))
    kmkaplan at r10721:~/src/lisp/ecl/mod_ecl/test-case$ ecl
    ECL (Embeddable Common-Lisp) 0.9k (CVS 2008-06-19 17:09)
    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.
    > (require 'asdf)
    ;;; Loading #P"/usr/local/lib/ecl/asdf.fas"
    ;;; Loading #P"/usr/local/lib/ecl/cmp.fas"
    ;;; Loading #P"/usr/local/lib/ecl/sysfun.lsp"
    ("ASDF" "CMP")
    > (asdf:oos 'asdf:load-op 'test-case)
    ; loading system definition from test-case.asd into #<ASDF0 package>
    ;;; Loading
    "/home/kmkaplan/src/lisp/ecl/mod_ecl/test-case/test-case.asd"
    ; registering #<SYSTEM :TEST-CASE 147274464> as TEST-CASE
    ;;; Compiling /home/kmkaplan/src/lisp/ecl/mod_ecl/test-case/test.lisp.
    ;;; Compiling (DEFUN TEST ...).
    ;;; End of Pass 1.  
    ;;; Note: Scanning
    #P"/home/kmkaplan/src/lisp/ecl/mod_ecl/test-case/test.o"
    ;;; Note: Found tag: "_eclzHOZlQg7_FjWtMNy"
    ;;; Emitting code for TEST.
    ;;; Calling the C compiler... 
    ;;; Note: Invoking external command:
    ;;; gcc  -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fPIC  -Dlinux -O
    "-I/usr/local/include/" -w -c
    "/home/kmkaplan/src/lisp/ecl/mod_ecl/test-case/test.c" -o
    "/home/kmkaplan/src/lisp/ecl/mod_ecl/test-case/test.o"
    ;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=0
    ;;; Finished compiling
    /home/kmkaplan/src/lisp/ecl/mod_ecl/test-case/test.lisp.
    ;;; Note: Scanning
    #P"/home/kmkaplan/src/lisp/ecl/mod_ecl/test-case/test.o"
    ;;; Note: Found tag: "_eclzHOZlQg7_FjWtMNy"
    ;;; Note: Invoking external command:
    ;;; gcc  -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fPIC  -Dlinux -O
    "-I/usr/local/include/" -w -c
    "/home/kmkaplan/src/lisp/ecl/mod_ecl/test-case/ECLINIT0k7t6J.c" -o
    "/home/kmkaplan/src/lisp/ecl/mod_ecl/test-case/ECLINIT0k7t6J.o"
    ;;; Note: Invoking external command:
    ;;; gcc -o "/home/kmkaplan/src/lisp/ecl/mod_ecl/test-case/test.fas"
    -L"/usr/local/lib/"
    "/home/kmkaplan/src/lisp/ecl/mod_ecl/test-case/ECLINIT0k7t6J.o"
    "/home/kmkaplan/src/lisp/ecl/mod_ecl/test-case/test.o"  -shared    -lecl
    -ldl  -lm  
    ;;; Loading "/home/kmkaplan/src/lisp/ecl/mod_ecl/test-case/test.fas"
    NIL
    > (test)
    First test
    "First test"

So far so good.  But now I edit test.lisp to output something else and:

    > (asdf:oos 'asdf:load-op 'test-case)
    ;;; Compiling /home/kmkaplan/src/lisp/ecl/mod_ecl/test-case/test.lisp.
    ;;; Compiling (DEFUN TEST ...).
    ;;; End of Pass 1.  
    ;;; Note: Scanning
    #P"/home/kmkaplan/src/lisp/ecl/mod_ecl/test-case/test.o"
    ;;; Note: Found tag: "_eclzHOZlQg7_FjWtMNy"
    ;;; Emitting code for TEST.
    ;;; Calling the C compiler... 
    ;;; Note: Invoking external command:
    ;;; gcc  -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fPIC  -Dlinux -O
    "-I/usr/local/include/" -w -c
    "/home/kmkaplan/src/lisp/ecl/mod_ecl/test-case/test.c" -o
    "/home/kmkaplan/src/lisp/ecl/mod_ecl/test-case/test.o"
    ;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=0
    ;;; Finished compiling
    /home/kmkaplan/src/lisp/ecl/mod_ecl/test-case/test.lisp.
    ;;; Note: Scanning
    #P"/home/kmkaplan/src/lisp/ecl/mod_ecl/test-case/test.o"
    ;;; Note: Found tag: "_eclzHOZlQg7_FjWtMNy"
    ;;; Note: Invoking external command:
    ;;; gcc  -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fPIC  -Dlinux -O
    "-I/usr/local/include/" -w -c
    "/home/kmkaplan/src/lisp/ecl/mod_ecl/test-case/ECLINITxbiV8c.c" -o
    "/home/kmkaplan/src/lisp/ecl/mod_ecl/test-case/ECLINITxbiV8c.o"
    ;;; Note: Invoking external command:
    ;;; gcc -o "/home/kmkaplan/src/lisp/ecl/mod_ecl/test-case/test.fas"
    -L"/usr/local/lib/"
    "/home/kmkaplan/src/lisp/ecl/mod_ecl/test-case/ECLINITxbiV8c.o"
    "/home/kmkaplan/src/lisp/ecl/mod_ecl/test-case/test.o"  -shared    -lecl
    -ldl  -lm  
    ;;; Loading "/home/kmkaplan/src/lisp/ecl/mod_ecl/test-case/test.fas"
    NIL
    > (test)
    First test
    "First test"
    > 

I still get the old test function, not the modified one.  This is on
Linux i686.





More information about the ecl-devel mailing list