Hello,
I would like to use quicklisp on a mips target without gcc.
Thanks to the howto¹ by Attila Lendvai, I've installed ecl successfully on the target (an Asus router), but installing quicklisp fails:
--8<---------------cut here---------------start------------->8--- ; Fetching #<url "http://beta.quicklisp.org/asdf/2.26/asdf.lisp%22%3E ; 194.07KB ================================================== 198,729 bytes in 0.19 seconds (1016.08KB/sec) Condition of type: FILE-ERROR Filesystem error with pathname #P"SYS:CMP.NEWEST". Either 1) the file does not exist, or 2) we are not allowed to access the file, or 3) the pathname points to a broken symbolic link.
Available restarts:
1. (RESTART-TOPLEVEL) Go back to Top-Level REPL.
Broken at QL-SETUP::ASDF-FASL-PATHNAME. In: #<process TOP-LEVEL>. File: #P"/home/peter/quicklisp/setup.lisp" (Position #0) --8<---------------cut here---------------end--------------->8---
How could this problem be solved please?
TIA for any hints,
Hello,
Peter Münster writes:
Hello,
I would like to use quicklisp on a mips target without gcc.
Thanks to the howto¹ by Attila Lendvai, I've installed ecl successfully on the target (an Asus router), but installing quicklisp fails:
--8<---------------cut here---------------start------------->8--- ; Fetching #<url "http://beta.quicklisp.org/asdf/2.26/asdf.lisp%22%3E ; 194.07KB ================================================== 198,729 bytes in 0.19 seconds (1016.08KB/sec) Condition of type: FILE-ERROR Filesystem error with pathname #P"SYS:CMP.NEWEST". Either
- the file does not exist, or
- we are not allowed to access the file, or
- the pathname points to a broken symbolic link.
Available restarts:
- (RESTART-TOPLEVEL) Go back to Top-Level REPL.
Broken at QL-SETUP::ASDF-FASL-PATHNAME. In: #<process TOP-LEVEL>. File: #P"/home/peter/quicklisp/setup.lisp" (Position #0) --8<---------------cut here---------------end--------------->8---
How could this problem be solved please?
To use the bytecodes compiler (which produces slower code but compiles faster), you need to call (ext:install-bytecodes-compiler) . You probably want to put it at the very top of the .eclrc, maybe even wrap it in eval-when.
TIA for any hints,
Best regards, Daniel
PS: I should probably make it a fallback if the C compiler isn't found.
On Mon, Aug 15 2016, Daniel Kochmański wrote:
To use the bytecodes compiler (which produces slower code but compiles faster), you need to call (ext:install-bytecodes-compiler)
Thanks, that helped. Unfortunately, I get further errors, when installing or loading systems:
1.) drakma not found:
--8<---------------cut here---------------start------------->8---
(ql:system-apropos "drakma")
#<system drakma / drakma-2.0.2 / quicklisp 2016-06-28> #<system drakma-async / drakma-async-20151031-git / quicklisp 2016-06-28> #<system drakma-test / drakma-2.0.2 / quicklisp 2016-06-28>
(ql:quickload "drakma")
Condition of type: SYSTEM-NOT-FOUND System "drakma" not found --8<---------------cut here---------------end--------------->8---
2.) Debugger received error of type: END-OF-FILE
--8<---------------cut here---------------start------------->8---
(ql:quickload "cl-json")
Debugger received error of type: END-OF-FILE Unexpected end of file on #<input stream #P"/opt/quicklisp/dists/quicklisp/systems.cdb">. Error flushed. --8<---------------cut here---------------end--------------->8---
3.) Condition of type: END-OF-FILE
--8<---------------cut here---------------start------------->8---
(ql:quickload "cl-json")
Condition of type: END-OF-FILE Unexpected end of file on #<input stream #P"/opt/quicklisp/dists/quicklisp/systems.cdb">. --8<---------------cut here---------------end--------------->8---
After removing systems.cdb and/or reinstalling quicklisp, I could install successfully ironclad and cl-json.
4.) drakma not loading (Cannot modify locked readtable):
--8<---------------cut here---------------start------------->8---
(ql:quickload "drakma")
To load "drakma": Load 1 ASDF system: uiop Install 16 Quicklisp releases: [...] ; Loading "drakma" [package puri]..... Debugger received error of type: SIMPLE-ERROR Cannot modify locked readtable #<readtable 00f1af80>. Error flushed. --8<---------------cut here---------------end--------------->8---
5.) No system can be required:
--8<---------------cut here---------------start------------->8---
(require :drakma)
Condition of type: SIMPLE-ERROR Module error: Don't know how to REQUIRE DRAKMA. [...]
(require :cl-json)
ASDF could not load cl-json because Unexpected end of file on #<input stream #P"/opt/quicklisp/dists/quicklisp/systems.cdb">..
Debugger received error of type: END-OF-FILE Unexpected end of file on #<input stream #P"/opt/quicklisp/dists/quicklisp/systems.cdb">. Error flushed. [...]
(require :drakma)
Debugger received error of type: SIMPLE-ERROR Module error: Could not REQUIRE DRAKMA: circularity detected. Please check your configuration. Error flushed. --8<---------------cut here---------------end--------------->8---
The errors change, because sometimes I delete systems.cdb in the hope of getting better results...
What should I do please, to get a working ECL with drakma, cl-json and ironclad please? It works well on my desktop computer with the same version of ECL (git HEAD).
Another note: whenever there are available restarts, there is no possibility to select one.
TIA for any help,
Hey,
I don't know this errors, very weird indeed. As a tip:
you may download quicklisp from ECL at first run like:
(require 'ecl-quiclisp)
To call the first restart you have to type a symbol in the keyword package ":r1", to call the second restart use ":r2" etc.
I'm sorry, but your errors doesn't sound even close to familiar. I suspect that you may have some weird quicklisp version or ECL doesn't have permissions to do something (ie write a file).
Best regards, Daniel
On Mon, Aug 15 2016, Daniel Kochmański wrote:
you may download quicklisp from ECL at first run like:
(require 'ecl-quiclisp)
Hi,
Unfortunately it did not help. Here the results:
--8<---------------cut here---------------start------------->8--- $ ecl ECL (Embeddable Common-Lisp) 16.1.2 (git:93fb2bced28bf1ac8c28ce8c1d0b46dd00a2a166) Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya Copyright (C) 1993 Giuseppe Attardi Copyright (C) 2000 Juan J. Garcia-Ripoll Copyright (C) 2015 Daniel Kochmanski 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 in: #<process TOP-LEVEL>.
(require 'ecl-quicklisp)
;;; Loading #P"/opt/ecl/lib/ecl-16.1.2/ecl-quicklisp.fas" ;;; Loading #P"/opt/ecl/lib/ecl-16.1.2/ecl-curl.fas" ;;; Loading #P"/opt/ecl/lib/ecl-16.1.2/sockets.fas" ;;; Downloading 57144 bytes from http://beta.quicklisp.org/quicklisp.lisp to /home/peter/quicklisp/_installer.lisp ... ;;; Loading "/home/peter/quicklisp/_installer.lisp"
==== quicklisp quickstart 2015-01-28 loaded ====
To continue with installation, evaluate: (quicklisp-quickstart:install)
For installation options, evaluate: (quicklisp-quickstart:help)
; Fetching #<url "http://beta.quicklisp.org/client/quicklisp.sexp%22%3E ; 0.82KB ================================================== 838 bytes in 0.06 seconds (13.64KB/sec) ; Fetching #<url "http://beta.quicklisp.org/client/2016-02-22/quicklisp.tar%22%3E ; 240.00KB ================================================== 245,760 bytes in 0.25 seconds (963.86KB/sec) ; Fetching #<url "http://beta.quicklisp.org/client/2015-09-24/setup.lisp%22%3E ; 4.94KB ================================================== 5,054 bytes in 0.06 seconds (82.26KB/sec) ; Fetching #<url "http://beta.quicklisp.org/asdf/2.26/asdf.lisp%22%3E ; 194.07KB ================================================== 198,729 bytes in 0.19 seconds (1043.39KB/sec) ; Fetching #<url "http://beta.quicklisp.org/dist/quicklisp.txt%22%3E ; 0.40KB ================================================== 408 bytes in 0.06 seconds (6.75KB/sec) Installing dist "quicklisp" version "2016-06-28". ; Fetching #<url "http://beta.quicklisp.org/dist/quicklisp/2016-06-28/releases.txt%22%3E ; 344.46KB ================================================== 352,722 bytes in 0.89 seconds (385.73KB/sec) ; Fetching #<url "http://beta.quicklisp.org/dist/quicklisp/2016-06-28/systems.txt%22%3E ; 265.90KB ================================================== 272,285 bytes in 0.25 seconds (1055.17KB/sec)
==== quicklisp installed ====
To load a system, use: (ql:quickload "system-name")
To find systems, use: (ql:system-apropos "term")
To load Quicklisp every time you start Lisp, use: (ql:add-to-init-file)
For more information, see http://www.quicklisp.org/beta/
("ECL-QUICKLISP" "ASDF" "asdf" "UIOP" "uiop" "ECL-CURL" "SB-BSD-SOCKETS" "SOCKETS")
(ql:quickload "cl-json")
Condition of type: END-OF-FILE Unexpected end of file on #<input stream #P"/opt/quicklisp/dists/quicklisp/systems.cdb">.
Available restarts:
1. (RETRY) Retry ASDF operation. 2. (CLEAR-CONFIGURATION-AND-RETRY) Retry ASDF operation after resetting the configuration. 3. (ABORT) Give up on "cl-json" 4. (RESTART-TOPLEVEL) Go back to Top-Level REPL.
Broken at QL-CDB::READ-CDB-U32. In: #<process TOP-LEVEL>. File: #P"/opt/quicklisp/quicklisp/cdb.lisp" (Position #0) --8<---------------cut here---------------end--------------->8---
I've done the same also with strace: "strace ecl 2>/opt/tmp/strace-ecl.txt" The output is here: http://pmrb.free.fr/tmp/strace-ecl.txt.gz But I don't know how to find the reason for the error...
To call the first restart you have to type a symbol in the keyword package ":r1", to call the second restart use ":r2" etc.
Thanks. I was used to type just the number (habit from sbcl).
I'm sorry, but your errors doesn't sound even close to familiar. I suspect that you may have some weird quicklisp version or ECL doesn't have permissions to do something (ie write a file).
Thanks for this hint: there was indeed a problem with a directory ~/.cache that has been created without my knowledge: that filesystem has only 2MB free space, so at one point there was probably a problem with "no space left on device". ~/.cache points now to a bigger partition, so there is no more such problem.
How could I debug this problem please?
Thank you for your efforts. Kind regards,
Thanks for this hint: there was indeed a problem with a directory ~/.cache that has been created without my knowledge: that filesystem has only 2MB free space, so at one point there was probably a problem with "no space left on device". ~/.cache points now to a bigger partition, so there is no more such problem.
How could I debug this problem please?
maybe quicklisp doesn't have enough space for the libraries? or for it's metadata? afaik (not sure) quicklisp maitains it's own cache for something. Try to put the quicklisp on the bigger partition too.
Also, if you don't want to depend on Quicklisp, you may consider creating a bundle with it (quicklisp has a functionality for that).
Best regards, Daniel
On Tue, Aug 16 2016, Daniel Kochmański wrote:
maybe quicklisp doesn't have enough space for the libraries?
There is no more space issue: ~/quicklisp is a link to /opt/quicklisp with 16GB of free space.
Also, if you don't want to depend on Quicklisp, you may consider creating a bundle with it (quicklisp has a functionality for that).
Thanks, a good idea. ironclad and cl-json load fine now, but with drakma there is still a problem:
--8<---------------cut here---------------start------------->8---
(require :drakma)
;;; Compiling /opt/qb/software/bordeaux-threads-v0.8.5/src/default-implementations.lisp ;;; Compiling #<input stream /opt/qb/software/bordeaux-threads-v0.8.5/src/default-implementations.lisp>ASDF could not load drakma because Unexpected end of file on #<input stream "SYS:help.doc">..
Condition of type: END-OF-FILE Unexpected end of file on #<input stream "SYS:help.doc">.
Available restarts:
1. (RETRY) Retry compiling #<cl-source-file "bordeaux-threads" "src" "default-implementations">. 2. (ACCEPT) Continue, treating compiling #<cl-source-file "bordeaux-threads" "src" "default-implementations"> as having been successful. 3. (RETRY) Retry ASDF operation. 4. (CLEAR-CONFIGURATION-AND-RETRY) Retry ASDF operation after resetting the configuration. 5. (RESTART-TOPLEVEL) Go back to Top-Level REPL.
Broken at SI:BYTECODES. [Evaluation of: (SETF (DOCUMENTATION 'BORDEAUX-THREADS:RELEASE-RECURSIVE-LOCK 'FUNCTION) (OR (DOCUMENTATION 'BORDEAUX-THREADS:RELEASE-RECURSIVE-LOCK 'FUNCTION) "Release the recursive LOCK. The lock will only become free after as many Release operations as there have been Acquire operations. See RELEASE-LOCK for other information."))] In: #<process TOP-LEVEL>. File: #P"/opt/qb/software/bordeaux-threads-v0.8.5/src/default-implementations.lisp" (Position #0) --8<---------------cut here---------------end--------------->8---
I've double-checked: there is enough RAM and enough disk space.
What could be the reason for this error?
Kind regards,
Peter Münster writes:
--8<---------------cut here---------------start------------->8---
(require :drakma)
;;; Compiling /opt/qb/software/bordeaux-threads-v0.8.5/src/default-implementations.lisp ;;; Compiling #<input stream /opt/qb/software/bordeaux-threads-v0.8.5/src/default-implementations.lisp>ASDF could not load drakma because Unexpected end of file on #<input stream "SYS:help.doc">..
Condition of type: END-OF-FILE Unexpected end of file on #<input stream "SYS:help.doc">.
Available restarts:
- (RETRY) Retry compiling #<cl-source-file "bordeaux-threads" "src" "default-implementations">.
- (ACCEPT) Continue, treating compiling #<cl-source-file "bordeaux-threads" "src" "default-implementations"> as having been successful.
- (RETRY) Retry ASDF operation.
- (CLEAR-CONFIGURATION-AND-RETRY) Retry ASDF operation after resetting the configuration.
- (RESTART-TOPLEVEL) Go back to Top-Level REPL.
Broken at SI:BYTECODES. [Evaluation of: (SETF (DOCUMENTATION 'BORDEAUX-THREADS:RELEASE-RECURSIVE-LOCK 'FUNCTION) (OR (DOCUMENTATION 'BORDEAUX-THREADS:RELEASE-RECURSIVE-LOCK 'FUNCTION) "Release the recursive LOCK. The lock will only become free after as many Release operations as there have been Acquire operations. See RELEASE-LOCK for other information."))] In: #<process TOP-LEVEL>. File: #P"/opt/qb/software/bordeaux-threads-v0.8.5/src/default-implementations.lisp" (Position #0) --8<---------------cut here---------------end--------------->8---
I've double-checked: there is enough RAM and enough disk space.
What could be the reason for this error?
It looks like your ECL lib/ directory isn't correctly written on the disk (ie lib/ecl-x.x.x/help.doc), not sure though.
Also, instead of calling (require 'drakma) use (asdf:load-system 'drakma)
Kind regards,
Best regards, Daniel
On Tue, Aug 16 2016, Daniel Kochmański wrote:
It looks like your ECL lib/ directory isn't correctly written on the disk (ie lib/ecl-x.x.x/help.doc), not sure though.
No, the help.doc is the same as the one in my build environment.
Perhaps there is a general problem with reading and/or writing binary files?
Perhaps I've made errors when cross-compiling ELC? I don't know, if my assumptions here are correct: ECL_STACK_DIR=down CL_FIXNUM_TYPE=int CL_FIXNUM_BITS=32 CL_FIXNUM_MAX=536870911L CL_FIXNUM_MIN=-536870912L CL_INT_BITS=32 CL_LONG_BITS=32 ECL_BIGENDIAN=no ECL_NEWLINE=LF ECL_FILE_CNT=0 ECL_STDINT_HEADER="#include <stdint.h>" ECL_UINT8_T=uint8_t ECL_UINT16_T=uint16_t ECL_UINT32_T=uint32_t ECL_UINT64_T=no ECL_INT8_T=int8_t ECL_INT16_T=int16_t ECL_INT32_T=int32_t ECL_INT64_T=no ECL_LONG_LONG_BITS=no ECL_WORKING_ENVIRON=yes ECL_TO_RUN=
How could I check these settings please?
Also, instead of calling (require 'drakma) use (asdf:load-system 'drakma)
Ok, but it did not help...
Thanks for your efforts,
These settings look reasonable. If you have such option, we could arrange the ssh session to your box next week so I can try to find the issue myself?
Regards, Daniel
Peter Münster writes:
On Tue, Aug 16 2016, Daniel Kochmański wrote:
It looks like your ECL lib/ directory isn't correctly written on the disk (ie lib/ecl-x.x.x/help.doc), not sure though.
No, the help.doc is the same as the one in my build environment.
Perhaps there is a general problem with reading and/or writing binary files?
Perhaps I've made errors when cross-compiling ELC? I don't know, if my assumptions here are correct: ECL_STACK_DIR=down CL_FIXNUM_TYPE=int CL_FIXNUM_BITS=32 CL_FIXNUM_MAX=536870911L CL_FIXNUM_MIN=-536870912L CL_INT_BITS=32 CL_LONG_BITS=32 ECL_BIGENDIAN=no ECL_NEWLINE=LF ECL_FILE_CNT=0 ECL_STDINT_HEADER="#include <stdint.h>" ECL_UINT8_T=uint8_t ECL_UINT16_T=uint16_t ECL_UINT32_T=uint32_t ECL_UINT64_T=no ECL_INT8_T=int8_t ECL_INT16_T=int16_t ECL_INT32_T=int32_t ECL_INT64_T=no ECL_LONG_LONG_BITS=no ECL_WORKING_ENVIRON=yes ECL_TO_RUN=
How could I check these settings please?
Also, instead of calling (require 'drakma) use (asdf:load-system 'drakma)
Ok, but it did not help...
Thanks for your efforts,