cannot start ECL when using QuickLisp - lisp

$ecl
;;; Loading "/home/***/quicklisp/setup.lisp"
;;; Loading #P"/usr/local/lib/ecl-12.7.1/cmp.fas"
;;; Loading #P"/usr/local/lib/ecl-12.7.1/asdf.fas"
ASDF could not load sockets because
An error occurred during initialization:
Error while trying to load definition for system sockets from pathname
/usr/local/lib/ecl-12.7.1/sockets.asd:
No applicable method for SOURCE-FILE-TYPE with arguments of types COMPILED-FILE PREBUILT-SYSTEM.
$cat ~/.eclrc
;;; The following lines added by ql:add-to-init-file:
#-quicklisp
(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
(user-homedir-pathname))))
(when (probe-file quicklisp-init)
(load quicklisp-init)))
Regards!

You do not provide any information about the version of quicklisp or the version of ECL you are using, what makes it hard to answer your question.
I presume you are using ECL 12.7.1, which is too old to work with recent versions of ASDF+quicklisp. Moreover, there was a problem with a recent quicklisp that shipped a version of ASDF that was incomplete: it did not load ASDF-bundle and support loading precompiled libraries.
All these problems have been solved in the CVS/git sources and I will produce a new release any time soon.
Juanjo

Related

How to install a package with quicklisp

I tried to install Lisplab with asdf and quicklisp but they all turned out to fail.
I use sbcl and slime.
Anyone can help me with installation. And I just want to manipulate matrix within lisp:)
Thanks, lisper!
The first thing to do about installing a lisp library using quicklisp, is see if it is available via quicklisp:
(Note for this answer I'm using the configuration roswell slime sbcl on antergos)
CL-USER> (ql:system-apropos "lisplab")
; No value
In this case the project it is not included, you can update your quicklisp, but in this case it is not necessary. this project is not in quicklisp and maybe will not be in the future. then you can choose to continue installing it or search for an atertnative for this thake a look a quickdocs this is a search about math
Let's try to install this quicklisp says this:
Can I load a local project that isn't part of Quicklisp? Yes. The
easiest way is to put the project's directory in Quicklisp's
local-projects directory. For example:
$ cd ~/quicklisp/local-projects/
$ git clone git://github.com/xach/format-time.git
The project will then be loadable via (ql:quickload "format-time")
Also, any system file that can be found via ASDF's source registry
system can be loaded with ql:quickload.
For example, if you have a system file my-project.asd in
/projects/my-project/, you can do something like this:
(push #p"/projects/my-project/" asdf:*central-registry*)
(ql:quickload "my-project")
If my-project depends on systems that are available via Quicklisp that
are not already installed, they will be automatically installed.
so for this project I will download the tarball and extract or download the repository in the local-projects folder, like it is suggested in a comment. In my case is ./roswell/local-projects but in your case should be cd ~/quicklisp/local-projects/
After that you "can" load with quicklisp, but I believe that since this library is not maintained, it will have errors,
If you want to manipulate matrix with lisp I recommend you to use lisp-matrix be sure to have installed lapack in your computer and read the documentaaion carefully especcilay the code at the end of the readme and also the tests.
CL-USER> (ql:quickload :lisp-matrix)
To load "lisp-matrix":
Load 1 ASDF system:
lisp-matrix
; Loading "lisp-matrix"
(:LISP-MATRIX)
CL-USER> (in-package :lisp-matrix-user)
#<PACKAGE "LISP-MATRIX-USER">
LISP-MATRIX-USER> (M* (ones 2 2 :implementation :lisp-array)
(ones 2 2 :implementation :lisp-array))
#<LA-SIMPLE-MATRIX-DOUBLE 2 x 2
2.0d0 2.0d0
2.0d0 2.0d0>
(be aware that foreign-array doesn't work for integers)

can't start a cider REPL after trying to update cider

After trying to update Cider, I've been unable to start a repl.
I get the following error message, apparently showing a problem with Leiningen:
Loading c:/emacs/graphviz-dot-mode.el (source)...
graphviz-dot-mode.el: (lambda (elm) ...) quoted with ' rather than with #' [4 times]
Loading c:/emacs/graphviz-dot-mode.el (source)...done
Loading c:/emacs/xml-rpc.el (source)...
xml-rpc.el: (lambda (p) ...) quoted with ' rather than with #'
Loading c:/emacs/xml-rpc.el (source)...done
Loading c:/emacs/py/emacs-for-python/epy-init.el (source)...
Loading c:/emacs/py/emacs-for-python/extensions/flymake-patch.el (source)...done
Loading c:/emacs/py/emacs-for-python/extensions/flymake-cursor.el (source)...done
py/emacs-for-python/extensions/auto-complete/auto-complete.el: `flet' is an obsolete macro (as of 24.3); use either `cl-flet' or `cl-letf'.
Loading c:/emacs/py/emacs-for-python/epy-init.el (source)...done
For information about GNU Emacs and the GNU system, type C-h C-a.
Making nrepl-create-client-buffer-function local to *nrepl-server graphics* while let-bound!
Making nrepl-use-this-as-repl-buffer local to *nrepl-server graphics* while let-bound!
Starting nREPL server via "c:/Users/Owner/.lein/bin/lein.bat" update-in :dependencies conj ^"[org.clojure/tools.nrepl \^"0.2.12\^"]^" -- update-in :plugins conj ^"[cider/cider-nrepl \^"0.13.0-SNAPSHOT\^"]^" -- repl :headless...
error in process sentinel: nrepl-server-sentinel: Could not start nREPL server: warning: extra args ignored after '"c:/Users/Owner/.lein/bin/lein.bat'
Leiningen is a tool for working with Clojure projects.
Can anyone tell me what the issue might be?
I'm not vary familiar with running emacs and clojure on Windows, but that error seems to indicate there is an argument mismatch. The first thing I would try is see if you can run lein repl. That should tell you if lein is OK.
Are you using elpa to install clojure-mode and cider? If not, that would be the best way to ensure things are up-to-date. Note that if you are using elpa, then perhaps removing the cider package and installing it again might help. cider gets lots of updates and your problem may just be a transient issue which has already been fixed. I would also check the cider site to see if there are any known issues.
I updated over the weekend to the latest (then) cider and have been running it with no problems on OSX.

How to distribute the asdf/quicklisp dependencies along with an app compiled with Embeddable Common Lisp?

I have tried this example ECL repository asdf example , it works fine but it doesn't have any asdf dependencies. If i add
:depends-on (#:inferior-shell)
to example.asd then running the compiled standalone executable gives this error:
Condition of type: SIMPLE-PACKAGE-ERROR
There exists no package with name "ASDF/DRIVER"
No restarts available.
What causes this error, and what is the idiomatic way of dealing with asdf dependencies on ECL ?
EDIT: this problem is fixed for ECL newer than 16.1.3 (fixed in develop branch), so no `require' trick should be needed in the upcoming release.
In general path you have taken is correct.
Make sure, that you have required the ASDF:
(require 'asdf)
(find-package "ASDF/DRIVER")
Then "ASDF/DRIVER" package is defined. On the other hand inferior-shell requires a few other libraries (alexandria for instance), so you have to put the path to them in the ASDF central registry or use the Quicklisp bundles.
More detailed info about building with ECL is available in its Documentation.
// EDIT
After investigation it appears that ASDF has to be manually required at the program start. It is probably a bug. As a workaround add
:prologue-code '(require 'asdf)
to the (asdf:make-build …) for standalone executable. Everything works fine then.

Trouble with load Lift package

When I try load Lift package through emacs-slime.
(load "/home/user/lib/lift")
I catch the next error
; compiling (LOAD "/home/user/lib/lift");; swank:close-connection: encoding error on stream
#<SB-SYS:FD-STREAM
for "socket 127.0.0.1:36328, peer: 127.0.0.1:59724"
{1003D9F5E1}>
(:EXTERNAL-FORMAT :LATIN-1):
the character with code 1069 cannot be encoded.
What wrong and how I can load this package?
From the CL spec, LOAD is used for loading Common Lisp source or compiled files. I'm guessing that /home/user/lib/lift is a directory on your system, and that's why LOAD isn't working.
You'll probably have the most luck if you install LIFT using Quicklisp, then load the library like it says in the LIFT User's Guide:
(in-package #:common-lisp-user)
(use-package :lift)

how to setup linedit support CCL in initial file?

I use quicklisp to install linedit, http://www.cliki.net/Linedit say "Should work on Lispworks and OpenMCL/CCL." how to write $HOME/.ccl-init.lisp?
In the meantime, linedit has been made to work with ccl (linedit 0.17.5 with ccl 1.8).
I added this to .ccl-init.lisp:
(when (interactive-stream-p *standard-input*)
(ql:quickload "linedit")
(funcall (intern "INSTALL-REPL" :linedit)))
I just installed Linedit through Quicklisp on CCL 1.7 on Linux and I don't think it works. Observe:
? (ql:quickload "linedit")
; Fetching #<URL "http://beta.quicklisp.org/dist/quicklisp/2011-07-30/systems.txt">
[...]
[package linedit]...........................
("linedit")
? (linedit:install-repl)
> Error: LINEDIT:INSTALL-REPL is unsupported on Clozure Common Lisp.
> While executing: LINEDIT:INSTALL-REPL, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.
1 >
I also do not see "Should work on Lispworks and OpenMCL/CCL." mentioned on the page you linked to. It appears to be mostly SBCL specific.
rlwrap does work but that only gives you history, not completion.