Code Monkey home page Code Monkey logo

quicklisp-bootstrap's People

Contributors

jcbeaudoin avatar mck- avatar quicklisp avatar tamurashingo avatar xach avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

quicklisp-bootstrap's Issues

Setting up quicklisp without interactive input

Hi there, I am using sbcl and would like to run the quicklisp setup using the instructions on the quicklisp site https://www.quicklisp.org/beta/#installation or the very similar ones here: https://lisp-lang.org/learn/getting-started/

However, I'd like to be able to do this using a script which runs automatically on a test machine where there is no possibility for interactive input to the script.

This fails because ql:add-to-init-file waits for 'Enter' to go ahead and write to the sbcl config file.

Is there some way I can workaround this currently? If not, could the function be changed so that optionally it doesn't need Enter?

Support or explicitly reject older MCL

On a lark, I tried to load Quicklisp on MCL 5.2 on an iBook G4 running Mac OS X 10.4.11. It failed because on that platform, there’s no CCL:make-socket to re-export from qlqs-ccl.

It’d be awesome if Quicklisp could support old versions of MCL, of course, but in the absence of support it should probably explicitly reject them.

Failure on LispWorks 6 for Windows

Speaking of the problems: LW6.0.1, 32bit, Win7 64 bits.

-- Compilation aborted. Error: Could not load ASDF "2.009" or newer

1 (continue) Try loading C:\Users\Art\quicklisp\setup.lisp again.

2 Give up loading C:\Users\Art\quicklisp\setup.lisp. --- Error: component
"quicklisp" not found

1 (continue) Try loading C:\Users\Art\quicklisp\setup.lisp again. ---

And lot of warrning dialogs when loading asdf.lisp that goes with
quicklisp. Redefining issues.

In short, can't get it working :)

Best,

Art

fails to install on alpine linux

Hello,

I am the maintainer for ecl in Alpine Linux and I am attempting to install Quick Lisp
but I am having an issue with the includes path.

OS Information

Alpine Linux v3.7 (using edge for testing repository)
The only packages installed are ecl, and libffi-dev

Log

# ecl -load quicklisp.lisp -eval "(quicklisp-quickstart:install)"
;;; Loading "/quicklisp.lisp"
;;; Loading #P"/usr/lib/ecl-16.1.3/sockets.fas"

  ==== 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">
; 0.82KB
==================================================
838 bytes in 0.00 seconds (818.36KB/sec)
; Fetching #<url "http://beta.quicklisp.org/client/2017-03-06/quicklisp.tar">
; 250.00KB
==================================================
256,000 bytes in 0.04 seconds (6250.00KB/sec)
; Fetching #<url "http://beta.quicklisp.org/client/2015-09-24/setup.lisp">
; 4.94KB
==================================================
5,054 bytes in 0.00 seconds (4935.55KB/sec)
; Fetching #<url "http://beta.quicklisp.org/asdf/2.26/asdf.lisp">
; 194.07KB
==================================================
198,729 bytes in 0.03 seconds (6260.36KB/sec)
;;; Internal error:
;;;   ** Unable to find include directoryAn error occurred during initialization:
COMPILE-FILE-ERROR while compiling #<cl-source-file "quicklisp" "package">.

Please add option for automatic (asdf:disable-output-translations)

When quicklisp-quickstart:install function is called in the Quicklisp bootstrap process ASDF writes .fasl files to its default location ~/.cache/common-lisp/.... In some situations I prefer to keep all files inside my program's build directory so I need to load and configure ASDF before bootstrapping Quicklisp:

(require "asdf")
(asdf:disable-output-translations)
(quicklisp-quickstart:install)

It would be nice if quicklisp-quickstart:install had an option for automatically calling asdf:disable-output-translations or some other general way of configuring ASDF before writing any .fasl files. It feels ugly to load ASDF manually first because Quicklisp will do that again later.

Compatibility with elisp?

Context

Researching for Kreyren/kreyren#47 to allow quicklisp implementation in cargo-make.

Issue

Currently loading quicklisp through emacs to interpret the following file returns Symbol’s function definition is void: defpackage.

;; Not working on elisp
(setf *load-verbose* nil)

(load "/home/kreyren/quicklisp/setup.lisp" :verbose nil)

(ql:quickload :uiop :silent t)

(write-line (uiop:getenv "MESSAGE"))

Question

Is it possible to optimize quicklisp to allow it to be ran through emacs?

Too many redirects for #<URL "http://beta.quicklisp.org/quickstart/quicklisp-201...">

CL-USER> (ql:update-client)
Updating from version 2010121400 to version 2015092400.
Press Enter to continue.

; Redirecting to #<URL "http://103.237.181.52/beta.quicklisp.org/quickstart/quicklisp-2015092400.tgz">
; Redirecting to #<URL "http://103.237.181.52/103.237.181.52/beta.quicklisp.org/quickstart/quicklisp-2015092400.tgz">
; Redirecting to #<URL "http://103.237.181.52/103.237.181.52/103.237.181.52/beta.quicklisp.org/quickstart/quicklisp-2015092400.tgz">
; Redirecting to #<URL "http://103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/beta.quicklisp.org/quickstart/quicklisp-2015092400.tgz">
; Redirecting to #<URL "http://103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/beta.quicklisp.org/quickstart/quicklisp-2015092400.tgz">
; Redirecting to #<URL "http://103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/beta.quicklisp.org/quickstart/quicklisp-2015092400.tgz">
; Redirecting to #<URL "http://103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/beta.quicklisp.org/quickstart/quicklisp-2015092400.tgz">
; Redirecting to #<URL "http://103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/beta.quicklisp.org/quickstart/quicklisp-2015092400.tgz">
; Redirecting to #<URL "http://103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/beta.quicklisp.org/quickstart/quicklisp-2015092400.tgz">
; Redirecting to #<URL "http://103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/103.237.181.52/beta.quicklisp.org/quickstart/quicklisp-2015092400.tgz">

Make quicklisp-quickstart:install options more visible

The quickstart message says only this:

  ==== quicklisp quickstart loaded ====

To continue, evaluate: (quicklisp-quickstart:install)

It would be nice to include some info about the :path and :proxy options, or a link to a page that describes those options.

bootstrap fails in docker using ecl with: Socket error in "socket": EINVAL (Invalid argument).

SOLVED: #22 (comment) (Credit irc.freenode.net/#lisp)


kreyren@leonid:~/Repositories/s7i$ docker build --file docker/debian.Dockerfile --tag kreyren .
Sending build context to Docker daemon  19.97kB

Step 1/8 : FROM debian:testing
 ---> 03c237d6b0a4
Step 2/8 : ENV DEBIAN_FRONTEND=noninteractive
 ---> Using cache
 ---> c35184f3b94d
Step 3/8 : USER root
 ---> Using cache
 ---> 48682f2eac52
Step 4/8 : ENV LANG=en_US.UTF-8
 ---> Using cache
 ---> 9645af937249
Step 5/8 : ENV LC_ALL=C
 ---> Using cache
 ---> 70dc6401ff08
Step 6/8 : RUN true 	&& apt-get update -q 	&& apt-get install -qy 		apt-utils 		wget 	&& apt-get autoremove -qy 	&& rm -rf /var/lib/apt/lists/*
 ---> Using cache
 ---> 440537154b7e
Step 7/8 : RUN true 	&& apt-get update -q 	&& apt-get install -qy 		ecl 		clisp 	&& apt-get autoremove -qy 	&& rm -rf /var/lib/apt/lists/*
 ---> Using cache
 ---> 78ad929b927d
Step 8/8 : RUN true 	&& wget https://beta.quicklisp.org/quicklisp.lisp -O /tmp/quicklisp.lisp 	&& printf '%s\n' 		'(load #p"/tmp/quicklisp.lisp")' 		'(quicklisp-quickstart:install)' > /tmp/my.lisp 	&& ecl --norc --quiet --shell /tmp/my.lisp 	&& rm -r /tmp/*.lisp
 ---> Running in f86102fd934c
�[91m--2020-11-13 16:25:11--  https://beta.quicklisp.org/quicklisp.lisp
�[0m�[91mResolving beta.quicklisp.org (beta.quicklisp.org)... �[0m�[91m99.86.243.53, 99.86.243.113, 99.86.243.74, ...
Connecting to beta.quicklisp.org (beta.quicklisp.org)|99.86.243.53|:443... �[0m�[91mconnected.
�[0m�[91mHTTP request sent, awaiting response... �[0m�[91m200 OK
Length: 57144 (56K) [text/plain]
Saving to: '/tmp/quicklisp.lisp'
�[0m�[91m
     0K .......... ......�[0m�[91m.... ....�[0m�[91m...... ..�[0m�[91m........ ........�[0m�[91m.. 89% 2.13M 0s
    50K .....�[0m�[91m                 �[0m�[91m                                �[0m�[91m100% 92.7M=0.02s

�[0m�[91m2020-11-13 16:25:11 (2.37 MB/s) - '/tmp/quicklisp.lisp' saved [57144/57144]

�[0m;;; Loading "/tmp/quicklisp.lisp"
;;; Loading #P"/usr/lib/x86_64-linux-gnu/ecl-20.4.24/sockets.fas"

  ==== quicklisp quickstart 2015-01-28 loaded ====

    To continue with installation, evaluate: (quicklisp-quickstart:install)

    For installation options, evaluate: (quicklisp-quickstart:help)

�[91mAn error occurred during initialization:
�[0m�[91mSocket error in "socket": EINVAL (Invalid argument).
�[0mThe command '/bin/sh -c true 	&& wget https://beta.quicklisp.org/quicklisp.lisp -O /tmp/quicklisp.lisp 	&& printf '%s\n' 		'(load #p"/tmp/quicklisp.lisp")' 		'(quicklisp-quickstart:install)' > /tmp/my.lisp 	&& ecl --norc --quiet --shell /tmp/my.lisp 	&& rm -r /tmp/*.lisp' returned a non-zero code: 1
FROM debian:testing

# To avoid bricked workspaces (https://github.com/gitpod-io/gitpod/issues/1171)
ENV DEBIAN_FRONTEND=noninteractive

USER root

ENV LANG=en_US.UTF-8
ENV LC_ALL=C

# Get dependencies
RUN true \
	&& apt-get update -q \
	&& apt-get install -qy \
		apt-utils \
		wget \
	&& apt-get autoremove -qy \
	&& rm -rf /var/lib/apt/lists/*

# Get implementations
RUN true \
	&& apt-get update -q \
	&& apt-get install -qy \
		ecl \
		clisp \
	&& apt-get autoremove -qy \
	&& rm -rf /var/lib/apt/lists/*

# Install quicklisp
RUN true \
	&& wget https://beta.quicklisp.org/quicklisp.lisp -O /tmp/quicklisp.lisp \
	&& printf '%s\n' \
		'(load #p"/tmp/quicklisp.lisp")' \
		'(quicklisp-quickstart:install)' > /tmp/my.lisp \
	&& ecl --norc --quiet --shell /tmp/my.lisp \
	&& rm -r /tmp/*.lisp

Works using clisp -> Assuming bug

Backtrace: http://ix.io/2E1U

/usr/lib/x86_64-linux-gnu/libecl.so.20.4(cl_error+0xf0) [0x7fadebe796a0]
/usr/lib/x86_64-linux-gnu/ecl-20.4.24/sockets.fas(+0x4080) [0x7fade9073080]

Strace: http://ix.io/2E1Z / https://rust-lang.github.io/rust-log-analyzer/log-viewer/#https://cors-anywhere.herokuapp.com/ix.io/2E1Z

socket(AF_INET, SOCK_STREAM, 0xffffffff /* IPPROTO_??? */) = -1 EINVAL (Invalid argument)

The latest quicklisp-client doesn't work on Allegro CL 8.1

The ASDF shipped with latest Quicklisp-client doesn't work on Allegro CL 8.1 correctly. So I fixed it and made an ugly patch for it. I'm so sorry I don't know whether this is the right place ( I found that the file asdf.lisp' is in this project but not inquicklisp-client' project) to discuss this problem, so I also post an email to asdf-devel.
The problem and patch can also be found here: nakrakiiya/acl-patches@86236e1#8.1/quicklisp-client-2012112500/asdf.lisp

Illegal keyword given: :EXTERNAL-FORMAT.' while executing `(quicklisp-quickstart:install)'.

Details:

CL-USER> (quicklisp-quickstart:install)
; Loading D:\Documents and Settings\nakra\quicklisp\setup.lisp

Illegal keyword given: :EXTERNAL-FORMAT.
[Condition of type PROGRAM-ERROR]

Restarts:
0: [RETRY] Retry compiling #<CL-SOURCE-FILE "quicklisp" "package">.
1: [ACCEPT] Continue, treating compiling #<CL-SOURCE-FILE "quicklisp" "package"> as having been successful.
2: [RETRY] retry the load of D:\Documents and Settings\nakra\quicklisp\setup.lisp
3: [SKIP] skip loading D:\Documents and Settings\nakra\quicklisp\setup.lisp
4: [RECOMPILE-DUE-TO-INCOMPATIBLE-FASL] recompile D:\Documents and Settings\nakra\quicklisp\setup.lisp
5: [RETRY] Retry SLIME REPL evaluation request.
--more--

Backtrace:
0: (ERROR PROGRAM-ERROR :FORMAT-CONTROL "Illegal keyword given: ~s." :FORMAT-ARGUMENTS (:EXTERNAL-FORMAT))
1: (COMPILE-FILE-PATHNAME "x.lisp" ..)
2: (ASDF:COMPILE-FILE-PATHNAME* #P"D:\Documents and Settings\nakra\quicklisp\quicklisp\package.lisp" :OUTPUT-FILE ..)
3: (ASDF:COMPILE-FILE* #P"D:\Documents and Settings\nakra\quicklisp\quicklisp\package.lisp" :OUTPUT-FILE ..)
4: ((:INTERNAL (METHOD ASDF:PERFORM (ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE)) 0))
5: ((METHOD ASDF::CALL-WITH-AROUND-COMPILE-HOOK (ASDF:COMPONENT T)) #<ASDF:CL-SOURCE-FILE "quicklisp" "package"> #<Closure (:INTERNAL (METHOD ASDF:PERFORM #) 0) @ #x2143fc7a>)
6: ((METHOD ASDF:PERFORM (ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE)) #<ASDF:COMPILE-OP (:VERBOSE NIL) @ #x213d60c2> #<ASDF:CL-SOURCE-FILE "quicklisp" "package">)
7: ((:INTERNAL (:EFFECTIVE-METHOD 2 NIL NIL NIL NIL) 0) #<ASDF:COMPILE-OP (:VERBOSE NIL) @ #x213d60c2> #<ASDF:CL-SOURCE-FILE "quicklisp" "package">)
8: ((METHOD ASDF::PERFORM-WITH-RESTARTS (T T)) #<ASDF:COMPILE-OP (:VERBOSE NIL) @ #x213d60c2> #<ASDF:CL-SOURCE-FILE "quicklisp" "package">)
9: ((METHOD ASDF::PERFORM-WITH-RESTARTS :AROUND (T T)) #<ASDF:COMPILE-OP (:VERBOSE NIL) @ #x213d60c2> #<ASDF:CL-SOURCE-FILE "quicklisp" "package">)
10: ((:INTERNAL (:EFFECTIVE-METHOD 2 NIL NIL T T) 0) #<ASDF:COMPILE-OP (:VERBOSE NIL) @ #x213d60c2> #<ASDF:CL-SOURCE-FILE "quicklisp" "package">)
11: ((FLET (METHOD ASDF::PERFORM-PLAN (LIST)) EXCL::CONTINUATION))
12: ((METHOD ASDF::PERFORM-PLAN (LIST)) ..)
13: ((:INTERNAL (:EFFECTIVE-METHOD 1 T T NIL NIL) 0) ..)
14: ((:INTERNAL (METHOD ASDF:OPERATE (T T)) 0))
15: (ASDF::CALL-WITH-SYSTEM-DEFINITIONS #<Closure (:INTERNAL (METHOD ASDF:OPERATE #) 0) [LOAD-OP] @ #x213d36da>)
16: ((METHOD ASDF:OPERATE (T T)) ASDF:LOAD-OP "quicklisp" :VERBOSE NIL)
17: ((:INTERNAL (:EFFECTIVE-METHOD 2 T NIL NIL NIL) 0) ASDF:LOAD-OP "quicklisp" . 1)
18: (ASDF:OOS ASDF:LOAD-OP "quicklisp" :VERBOSE NIL)
19: (LET ((COMPILE-PRINT NIL) (COMPILE-VERBOSE NIL) (LOAD-VERBOSE NIL) (LOAD-PRINT NIL)) (ASDF:OOS 'ASDF:LOAD-OP "quicklisp" :VERBOSE NIL))
--more--

The diff from the origin asdf.lisp file:

$ git diff 6d465f92b240fe5ded55447f9a000a1e54a7a22a 86236e11d89765a15fe44c0ede40119ed4958c3c

diff --git a/8.1/quicklisp-client-2012112500/asdf.lisp b/8.1/quicklisp-client-2012112500/asdf.lisp
index 283ad86..2f9b98a 100644
--- a/8.1/quicklisp-client-2012112500/asdf.lisp
+++ b/8.1/quicklisp-client-2012112500/asdf.lisp
@@ -2478,7 +2478,10 @@ recursive calls to traverse.")
          c #'(lambda (&rest flags)
                (apply *compile-op-compile-file-function* source-file
                       :output-file output-file
-                      :external-format (component-external-format c)
+                      #+(or (and allegro (version>= 8 2))
+                            (not allegro)) :external-format
+                      #+(or (and allegro (version>= 8 2))
+                            (not allegro)) (component-external-format c)
                       (append flags (compile-op-flags operation)))))
       (unless output
         (error 'compile-error :component c :operation operation))

minitar needs to convert archive pathnames

With only a little bit of hacking, I managed to load the QuickLisp bootstrap on MCL 5.1 on Mac OS 9.2.2. However during the installation the tar file was expanded into a flat directory of files with slashes in their names.

This is probably because the classic Mac OS uses colon as its path separator, while minitar is expecting to be able to use a slash-containing path obtained from a tar file directly in a filesystem path.

Overcome minimalism in quicklisp bootstrap

Minimalism in quicklisp-bootstrap is antithetical to a lot of features that people would like to see in bootstrapping quicklisp, such as supporting cryptographic checksums, if not native https support, etc.

Yet minimalism in source code can be compatible with maximalism in deployed artifact:

1- A lot of libraries could be shipped with the quicklisp.lisp loadable file, using asdf:monolithic-concatenate-source-op. The constraint is that none of the concatenated source file may rely on a wrapper or dynamic environment reset around individual files to setup or reset readtables or other syntax variables. This unhappily excludes, e.g. ironclad. Assuming no funky business with the reader, the file could be further minimized, if needed, by filtering out docstrings, comments, blanks, etc.

2- If further libraries are required that do not satisfy those requirements, they can be shipped as part of of an embedded tarball, compressed and mime-encoded into a string, then installed and loaded by the loader.

Please make setting up Quicklisp on a secondary Lisp implementation more friendly to new users

TL;DR:

My suggestions:

  • Please make (quicklisp-quickstart:install) show a simple message instead of throw an error when trying to re-install Quicklisp
  • Please show the suggestion of using (ql:add-to-init-file) after completion of either (quicklisp-quickstart:install) or (load "quicklisp/setup.lisp").

The current procedure for setting up a fresh installation of Quicklisp:

  • download "quicklisp.lisp" from the website
  • (load "quicklisp.lisp")
  • (quicklisp-quickstart:install)

helpfully suggests the user to use:

  • (ql:add-to-init-file)

to load Quicklisp automatically the next time s/he starts their Lisp.

However, when Quicklisp is already installed using one Lisp implementation, and the user tries to use the above procedure while running a different Lisp implementation, after the step:

  • (quicklisp-quickstart:install)

the user gets an error, like (using CCL as an example):
? (quicklisp-quickstart:install)

Error: Quicklisp has already been installed. Load #P"/home/miki/quicklisp/setup.lisp" instead.
While executing: QUICKLISP-QUICKSTART:INSTALL, in process listener(1).
Type :POP to abort, :R for a list of available restarts.
Type :? for other options.
Lisp signals Error: Quicklisp has already been installed. Load #P"/home/miki/quicklisp/setup.lisp" instead

and the user gets thrown into the debugger, which may be unfamiliar (i.e. depending on the verbosity of the particular Lisp's debugger, it may not be obvious that there is a simple restart which loads the needed file).

After (if?) the user manages to exit to the top-level and uses:

  • (load "/path/to/quicklisp/setup.lisp")

s/he no longer receives the suggestion to use (ql:add-to-init-file) to setup Quicklisp on every session, and may have to go look for documentation elsewhere on how to do this.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.