2010-08-04 23 views
1

Je n'arrive pas à démarrer SBCL sous le slime. J'ai foiré les choses et je ne sais pas comment récupérer. Cela fonctionnait bien jusqu'à ce que je ...Erreur lors du démarrage de sbcl sous slime sous Vista

J'ai eu un problème lors du chargement d'un paquet via asdf. À quel point j'ai commencé à déboguer le fichier asdf.lisp fourni avec SBCL pour voir ce qui n'allait pas. Le seul changement que j'ai fait était de mettre un (break) dans lequel j'ai enlevé une fois que j'avais compris ce qui n'allait pas. Tout allait bien jusqu'à la prochaine fois que j'ai essayé de démarrer SBCL.

Puis j'ai eu une erreur de compilation de swank en disant que le fichier asdf.fasl était plus ancien que le fichier asdf.lisp. Cela a eu du sens pour moi, alors j'ai recompilé le fichier asdf.fasl. La sortie que je reçois maintenant est:

(progn (load "c:\\emacs-23.1\\site-lisp\\slime\\swank-loader.lisp" :verbose t) (funcall (read-from-string "swank-loader:init")) (funcall (read-from-string "swank:start-server") "c:\\Users\\GILESR~1\\AppData\\Local\\Temp\\slime.3068" :coding-system "iso-latin-1-unix")) 

This is SBCL 1.0.37, an implementation of ANSI Common Lisp. 
More information about SBCL is available at <http://www.sbcl.org/>. 

SBCL is free software, provided as is, with absolutely no warranty. 
It is mostly in the public domain; some portions are provided under 
BSD-style licenses. See the CREDITS and COPYING files in the 
distribution for more information. 

This is experimental prerelease support for the Windows platform: use 
at your own risk. "Your Kitten of Death awaits!" 
* 
; loading #P"c:\\emacs-23.1\\site-lisp\\slime\\swank-loader.lisp" 
; loading #P"c:\\hacking\\emacs\\.slime\\fasl\\2010-07-30\\sbcl-1.0.37-win32-x86\\swank-backend.fasl" 
; loading #P"c:\\hacking\\emacs\\.slime\\fasl\\2010-07-30\\sbcl-1.0.37-win32-x86\\swank-source-path-parser.fasl" 
; loading #P"c:\\hacking\\emacs\\.slime\\fasl\\2010-07-30\\sbcl-1.0.37-win32-x86\\swank-source-file-cache.fasl" 

; compiling file "c:\\emacs-23.1\\site-lisp\\slime\\swank-sbcl.lisp" (written 22 JUL 2010 08:15:02 AM): 

; file: c:\emacs-23.1\site-lisp\slime\swank-sbcl.lisp 
; in: EVAL-WHEN (:COMPILE-TOPLEVEL :LOAD-TOPLEVEL :EXECUTE) 
;  (REQUIRE 'SWANK-BACKEND::SB-BSD-SOCKETS) 
; 
; caught ERROR: 
; (during compile-time-too processing) 
; The function ASDF::MODULE-PROVIDE-ASDF is undefined. 

;  (REQUIRE 'SWANK-BACKEND::SB-INTROSPECT) 
; 
; caught ERROR: 
; (during compile-time-too processing) 
; The function ASDF::MODULE-PROVIDE-ASDF is undefined. 

;  (REQUIRE 'SWANK-BACKEND::SB-POSIX) 
; 
; caught ERROR: 
; (during compile-time-too processing) 
; The function ASDF::MODULE-PROVIDE-ASDF is undefined. 

;  (REQUIRE 'SWANK-BACKEND::SB-CLTL2) 
; 
; caught ERROR: 
; (during compile-time-too processing) 
; The function ASDF::MODULE-PROVIDE-ASDF is undefined. 
; 
; compilation unit aborted 
; caught 1 fatal ERROR condition 
; caught 4 ERROR conditions 
; 
; compilation aborted because of fatal error: 
; SB-INT:SIMPLE-READER-PACKAGE-ERROR at 1839 (line 62, column 18) on #<SB-SYS:FD-STREAM 
;                  for "file c:\\emacs-23.1\\site-lisp\\slime\\swank-sbcl.lisp" 
;                  {24564B89}>: 
;  package "SB-POSIX" not found 
; ; compilation aborted after 0:00:00.045 

;; 
;; Error while compiling c:\emacs-23.1\site-lisp\slime\swank-sbcl.lisp: 
;; COMPILE-FILE returned NIL. 
;; Aborting. 

Donc, il ne trouve pas quelque chose dont il a besoin dans mon fichier asdf recompilé. Afin de résoudre ce problème, j'ai effectué une désinstallation et une réinstallation complètes de SBCL. Pas de joie. Je n'ai rien dans mon .sbclrc non plus.

Mise à jour: Lors de l'affichage du code source asdf.lisp, les fonctions manquantes sont définitivement dans le fichier. La chose qui les empêche de compiler est je pense que la ligne:

#+(and sbcl sbcl-hooks-require) 

Ma connaissance de Lisp est actuellement insuffisante pour compiler le fichier asdf dans l'environnement pour déclencher l'instruction de compilation conditionnelle ci-dessus.

Répondre

0

J'ai triai le problème en procédant comme suit:

  1. incendie en sbcl à partir du menu Démarrer de Windows.
  2. Exécutez le code suivant pour ajouter les crochets sbcl-à-symbole exigent la liste des fonctionnalités:

    (push: sbcl-crochets nécessitent caractéristiques)

  3. recompilation asdf.lisp. Pour ce faire, j'ai dû recompiler asdf en dehors du répertoire C: \ Program files \ Steel ... car le UAC sous Windows Vista arrêtera l'écriture du fasl. Par exemple:

    (compilation fichier "C: \ foobar \ asdf.lisp")

  4. Copiez le fasl généré retour à C: \ Program Files \ Steel ... pour remplacer le fasl d'origine.

Mise à jour: La mise en forme sur stackoverflow a assommé certains des bits de code. Le code devrait être le suivant:

(push :sbcl-hooks-require *features*) 
(compile-file "C:\\foobar\\asdf.lisp")