Loading iolib in ECL signals the following error. ECL has ASDF2, and this does not evaluate pathnames in DEFSYSTEM forms.
Error while trying to load definition for system iolib from pathname LISP:SITE-SYSTEMS;IOLIB.ASD.NEWEST: In function PATHNAME, the value of the only argument is (MERGE-PATHNAMES (MAKE-PATHNAME :DIRECTORY '(:RELATIVE "iolib")) *LOAD-TRUENAME*) which is not of the expected type (OR FILE-STREAM STRING PATHNAME) [Condition of type ASDF:LOAD-SYSTEM-DEFINITION-ERROR]
Restarts: 0: [RETRY] Retry SLIME REPL evaluation request. 1: [*PROCESS-INPUT] Continue reading input. 2: [ABORT] Return to SLIME's top level. 3: [CLOSE-CONNECTION] Close SLIME connection. 4: [RESTART-TOPLEVEL] Go back to Top-Level REPL.
Backtrace: 0: DEBUG-IN-EMACS 1: INVOKE-SLIME-DEBUGGER 2: G826 3: CALL-WITH-DEBUGGER-HOOK 4: SWANK-DEBUGGER-HOOK 5: #<bytecompiled-function 0000000001fb30f0> 6: PATHNAME 7: #<bytecompiled-function MERGE-PATHNAMES*> Locals: ASDF::SPECIFIED = (MERGE-PATHNAMES (MAKE-PATHNAME :DIRECTORY '(:RELATIVE "iolib")) ..) ASDF::DEFAULTS#1 = #P"/home/pjb/firms/medicalis/src/mdi/subprojects/dependencies/lisp/site/iol.. 8: #<bytecompiled-function DETERMINE-SYSTEM-PATHNAME> Locals: PATHNAME = (MERGE-PATHNAMES (MAKE-PATHNAME :DIRECTORY '(:RELATIVE "iolib")) ..) ASDF::PATHNAME-SUPPLIED-P#1 = T ASDF::FILE-PATHNAME#2 = #P"/home/pjb/firms/medicalis/src/mdi/subprojects/dependencies/lisp/site/iol.. ASDF::DIRECTORY-PATHNAME#3 = #P"/home/pjb/firms/medicalis/src/mdi/subprojects/dependencies/lisp/site/iol.. 9: #<bytecompiled-function DEFSYSTEM> Locals: #:G842 = #:G841#1 = (NIL) ASDF::NAME#2 = :IOLIB ASDF::OPTIONS#3 = #:G851#4 = #:G852#5 = #:G853#6 = (MERGE-PATHNAMES (MAKE-PATHNAME :DIRECTORY '(:RELATIVE "iolib")) ..) PATHNAME#7 = (MERGE-PATHNAMES (MAKE-PATHNAME :DIRECTORY '(:RELATIVE "iolib")) ..) ASDF::PATHNAME-ARG-P#8 = T #:G854#9 = NIL CLASS#10 = ASDF:SYSTEM #:G855#11 = NIL ASDF::DEFSYSTEM-DEPENDS-ON#12 = NIL ASDF::COMPONENT-OPTIONS#13 = 10: #<bytecompiled-function FIND-SYSTEM> 11: #<bytecompiled-function OPERATE> 12: #<bytecompiled-function 0000000002959960> 13: #<bytecompiled-function ASDF-LOAD> 14: #<bytecompiled-function BYTECODES> 15: EVAL-REGION 16: G769 17: TRACK-PACKAGE 18: G768 19: CALL-WITH-RETRY-RESTART 20: G767 21: CALL-WITH-BUFFER-SYNTAX 22: REPL-EVAL 23: LISTENER-EVAL 24: #<bytecompiled-function BYTECODES> 25: EVAL-FOR-EMACS 26: PROCESS-REQUESTS 27: G291 28: HANDLE-REQUESTS 29: G486 30: CALL-WITH-BINDINGS 31: REPL-INPUT-STREAM-READ 32: G478 33: G82 34: CALL-WITH-LOCK-HELD 35: STREAM-READ-CHAR 36: SIMPLE-REPL 37: G440 38: G433 39: CALL-WITH-USER-BREAK-HANDLER 40: G430 41: CALL-WITH-DEBUGGER-HOOK 42: G466 43: CALL-WITH-BINDINGS --more--
Sorry, I used wrong email address for first time.
I guess, that it is ECL's problem, not IOLib's. I'm loading IOlib in ECL in following Mainer:
(let ((*features* (remove :asdf2 *features*))) (asdf:oos 'asdf:load-op :iolib))
I'm using ecl 10.4.1 on 32 bit linux machine:
CL-USER> (lisp-implementation-type) "ECL" CL-USER> (lisp-implementation-version) "10.4.1" CL-USER> *features* (:SERVE-EVENT :PROFILE :ASDF2 :ASDF :LINUX :FORMATTER :UINT64-T :UINT32-T :UINT16-T :RELATIVE-PACKAGE-NAMES :UNICODE :DFFI :CLOS-STREAMS :CMU-FORMAT :UNIX :ECL-PDE :DLOPEN :CLOS :THREADS :BOEHM-GC :ANSI-CL :COMMON-LISP :IEEE-FLOATING-POINT :PREFIXED-API :FFI :I686 :COMMON :ECL)
Recent SBCL's version (1.0.40) load IOLib just fine, i.e. w/o removing :ASDF2 from *features*.
The problem is that SBCL is using more recent ASDF's version:
CL-USER> (asdf:asdf-version) "2.003"
ans ECL's: (asdf:asdf-version) "1.655"
wbr
Nikolay
P.S. Which cffi version you used? I have my own fork at gitorious.org: http://gitorious.org/~marsijanin/cffi/marsijanins-cffi, but some work need to be done in order to merge with main cffi branch (last time I tried to load iolib with HEAD of the main cffi branch I got some errors about cffi's wrapper/grovel).
marsijanin@gmail.com (Nikolay V. Razbegaev) writes:
Sorry, I used wrong email address for first time.
I guess, that it is ECL's problem, not IOLib's. I'm loading IOlib in ECL in following Mainer:
(let ((*features* (remove :asdf2 *features*))) (asdf:oos 'asdf:load-op :iolib))
I'm using ecl 10.4.1 on 32 bit linux machine:
CL-USER> (lisp-implementation-type) "ECL" CL-USER> (lisp-implementation-version) "10.4.1" CL-USER> *features* (:SERVE-EVENT :PROFILE :ASDF2 :ASDF :LINUX :FORMATTER :UINT64-T :UINT32-T :UINT16-T :RELATIVE-PACKAGE-NAMES :UNICODE :DFFI :CLOS-STREAMS :CMU-FORMAT :UNIX :ECL-PDE :DLOPEN :CLOS :THREADS :BOEHM-GC :ANSI-CL :COMMON-LISP :IEEE-FLOATING-POINT :PREFIXED-API :FFI :I686 :COMMON :ECL)
Recent SBCL's version (1.0.40) load IOLib just fine, i.e. w/o removing :ASDF2 from *features*.
The problem is that SBCL is using more recent ASDF's version:
CL-USER> (asdf:asdf-version) "2.003"
ans ECL's: (asdf:asdf-version) "1.655"
wbr
Nikolay
P.S. Which cffi version you used? I have my own fork at gitorious.org: http://gitorious.org/~marsijanin/cffi/marsijanins-cffi, but some work need to be done in order to merge with main cffi branch (last time I tried to load iolib with HEAD of the main cffi branch I got some errors about cffi's wrapper/grovel).
ECL 10.4.2 cloned on 2010-06-29 13:56:07 EST. It as an asdf version "2.000".
cffi from libcl-2009-10-27-beta, that is 0.10.5 (from cffi.asd).
The error was with: iolib-0.6.0. Corrected in: iolib-20100701.
On Thu, 2010-07-01 at 08:08 +0200, Pascal J. Bourguignon wrote:
Loading iolib in ECL signals the following error. ECL has ASDF2, and this does not evaluate pathnames in DEFSYSTEM forms.
Error while trying to load definition for system iolib from pathname LISP:SITE-SYSTEMS;IOLIB.ASD.NEWEST: In function PATHNAME, the value of the only argument is (MERGE-PATHNAMES (MAKE-PATHNAME :DIRECTORY '(:RELATIVE "iolib")) *LOAD-TRUENAME*) which is not of the expected type (OR FILE-STREAM STRING PATHNAME) [Condition of type ASDF:LOAD-SYSTEM-DEFINITION-ERROR]
What version of ECL is it ? If it's a release, then the bundled ASDF is too old.
Stelian Ionescu sionescu@cddr.org writes:
On Thu, 2010-07-01 at 08:08 +0200, Pascal J. Bourguignon wrote:
Loading iolib in ECL signals the following error. ECL has ASDF2, and this does not evaluate pathnames in DEFSYSTEM forms.
Error while trying to load definition for system iolib from pathname LISP:SITE-SYSTEMS;IOLIB.ASD.NEWEST: In function PATHNAME, the value of the only argument is (MERGE-PATHNAMES (MAKE-PATHNAME :DIRECTORY '(:RELATIVE "iolib")) *LOAD-TRUENAME*) which is not of the expected type (OR FILE-STREAM STRING PATHNAME) [Condition of type ASDF:LOAD-SYSTEM-DEFINITION-ERROR]
What version of ECL is it ? If it's a release, then the bundled ASDF is too old.
ECL 10.4.2 cloned on 2010-06-29 13:56:07 EST.
cffi from libcl-2009-10-27-beta, that is 0.10.5 (from cffi.asd).
The error was with: iolib-0.6.0. Corrected in: iolib-20100701.