Re: Loading slime 2.27 going into debugger as of last night.
Martin Simmons <[email protected]> Fri, 25 Mar 2022 16:17:10 GMT
| Newsgroups | gmane.lisp.slime.devel |
|---|---|
| Message-ID | <[email protected]> |
Yes, I can repeat this in LispWorks after setting (setq hcl:*handle-existing-defpackage* '(:error :modify)) I assume this is the same thing that sb-ext:*on-package-variance* is designed to control. It happens in v2.26.1 as well. The problem is that defslimefun exports the fun name. In swank-repl.lisp, there is a defpackage followed by some defslimefun forms for names that are not exported in the defpackage. During compilation of swank-repl.lisp, the defpackage and exports are evaluated at compile time. During later compilation of swank-presentations.lisp, the previously compiled swank-repl.lisp is loaded (this is hidden by a binding of *load-print*). As a result, the defpackage is evaluated again with fewer exports than in the current state of the package, which has undefined consequences according to the ANSI CL standard (see http://www.lispworks.com/documentation/HyperSpec/Body/m_defpkg.htm). The only portable fix is to move the exports into the defpackage. -- Martin Simmons LispWorks Ltd http://www.lispworks.com/ >>>>> On Thu, 24 Mar 2022 12:38:45 -0700, Jeff Cunningham said: > > Another piece of information. I have a more or less identical production server which isn't having > this problem. But I haven't run dist-upgrade on it recently. The latest version of slime it has is > v2.26.1. It's running sbcl 2.2.1. > > The system giving me trouble is v2.27 slime and 2.2.2 sbcl. > > --Jeff > > > > > On Thu, 24 Mar 2022 12:13:00 -0700 > Jeff Cunningham <[email protected]> wrote: > > > I asked this question over on sbcl-help already. Stas objected. So I'll ask it again here. > > > > Last night I started running into the debugger when trying to start slime in emacs. This morning I > > decided to delete all my .slime/ fasls, all of .cache/common-lisp/ all of ~/quicklisp and start > > with a fresh copy of quicklisp.lisp. I updated my arch system (slightly newer version of emacs) > > then tried to reinstall quicklisp. > > > > The problem occurs upstream of emacs ever being started. I can reproduce the problem with these > > steps: > > > > $ rm -rf .slime .cache/common-lisp/* quicklisp > > $ curl -O https://beta.quicklisp.org/quicklisp.lisp > > $ sbcl --load quicklisp.lisp > > > > * (quicklisp-quickstart:install) > > > > * (ql:quickload "quicklisp-slime-helper") > > > > To load "quicklisp-slime-helper": > > Load 1 ASDF system: > > asdf > > Install 3 Quicklisp releases: > > alexandria quicklisp-slime-helper slime > > ; Fetching #<URL "http://beta.quicklisp.org/archive/slime/2022-02-20/slime-v2.27.tgz"> > > ; 803.72KB > > ================================================== > > 823,006 bytes in 0.09 seconds (9273.62KB/sec) > > ; Fetching #<URL > > "http://beta.quicklisp.org/archive/alexandria/2022-02-20/alexandria-20220220-git.tgz"> ; 55.16KB > > ================================================== > > 56,486 bytes in 0.01 seconds (5516.21KB/sec) > > ; Fetching #<URL > > "http://beta.quicklisp.org/archive/quicklisp-slime-helper/2015-07-09/quicklisp-slime-helper-20150709-git.tgz"> > > ; 2.16KB ================================================== > > 2,211 bytes in 0.00 seconds (0.00KB/sec) > > ; Loading "quicklisp-slime-helper" > > [package swank-loader]............................ > > [package swank/backend]........................... > > [package swank/rpc]............................... > > [package swank/match]............................. > > [package swank-mop]............................... > > [package swank]................................... > > [package swank/source-path-parser]................ > > [package swank/source-file-cache]................. > > [package swank/sbcl].............................. > > [package swank/gray].............................. > > ........ > > ; compiling file > > "/home/jcunningham/quicklisp/dists/quicklisp/software/slime-v2.27/contrib/swank-util.lisp" > > (written 24 MAR 2022 12:08:30 PM): . > > > > ; wrote /home/jcunningham/.slime/fasl/2.27/sbcl-2.2.2-linux-x86-64/contrib/swank-util.fasl > > ; compilation finished in 0:00:00.010 > > ; compiling file > > "/home/jcunningham/quicklisp/dists/quicklisp/software/slime-v2.27/contrib/swank-repl.lisp" > > (written 24 MAR 2022 12:08:30 PM): ......................................... [package > > swank-repl].. > > > > ; wrote /home/jcunningham/.slime/fasl/2.27/sbcl-2.2.2-linux-x86-64/contrib/swank-repl.fasl > > ; compilation finished in 0:00:00.040 > > ; compiling file > > "/home/jcunningham/quicklisp/dists/quicklisp/software/slime-v2.27/contrib/swank-c-p-c.lisp" > > (written 24 MAR 2022 12:08:30 PM): . > > > > ; wrote /home/jcunningham/.slime/fasl/2.27/sbcl-2.2.2-linux-x86-64/contrib/swank-c-p-c.fasl > > ; compilation finished in 0:00:00.030 > > ; compiling file > > "/home/jcunningham/quicklisp/dists/quicklisp/software/slime-v2.27/contrib/swank-arglists.lisp" > > (written 24 MAR 2022 12:08:30 PM): ................ > > > > ; wrote /home/jcunningham/.slime/fasl/2.27/sbcl-2.2.2-linux-x86-64/contrib/swank-arglists.fasl > > ; compilation finished in 0:00:00.360 > > ; compiling file > > "/home/jcunningham/quicklisp/dists/quicklisp/software/slime-v2.27/contrib/swank-fuzzy.lisp" > > (written 24 MAR 2022 12:08:30 PM): ... > > > > ; wrote /home/jcunningham/.slime/fasl/2.27/sbcl-2.2.2-linux-x86-64/contrib/swank-fuzzy.fasl > > ; compilation finished in 0:00:00.080 > > ; compiling file > > "/home/jcunningham/quicklisp/dists/quicklisp/software/slime-v2.27/contrib/swank-fancy-inspector.lisp" > > (written 24 MAR 2022 12:08:30 PM): ........ . > > > > ; wrote > > /home/jcunningham/.slime/fasl/2.27/sbcl-2.2.2-linux-x86-64/contrib/swank-fancy-inspector.fasl ; > > compilation finished in 0:00:00.163 ; compiling file > > "/home/jcunningham/quicklisp/dists/quicklisp/software/slime-v2.27/contrib/swank-presentations.lisp" > > (written 24 MAR 2022 12:08:30 PM): ;; ;; Error compiling > > /home/jcunningham/quicklisp/dists/quicklisp/software/slime-v2.27/contrib/swank-presentations.lisp: > > ;; SWANK-REPL also exports the following symbols: ;; (SWANK-REPL:CREATE-REPL > > SWANK-REPL:LISTENER-GET-VALUE ;; SWANK-REPL:CLEAR-REPL-VARIABLES SWANK-REPL:LISTENER-SAVE-VALUE > > ;; SWANK-REPL:LISTENER-EVAL SWANK-REPL:REDIRECT-TRACE-OUTPUT) > > ;; See also: > > ;; The ANSI Standard, Macro DEFPACKAGE > > ;; > > > > debugger invoked on a SB-INT:PACKAGE-AT-VARIANCE-ERROR in thread > > #<THREAD "main thread" RUNNING {10019B0073}>: > > SWANK-REPL also exports the following symbols: > > (SWANK-REPL:CREATE-REPL SWANK-REPL:LISTENER-GET-VALUE > > SWANK-REPL:CLEAR-REPL-VARIABLES SWANK-REPL:LISTENER-SAVE-VALUE > > SWANK-REPL:LISTENER-EVAL SWANK-REPL:REDIRECT-TRACE-OUTPUT) > > See also: > > The ANSI Standard, Macro DEFPACKAGE > > > > Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL. > > > > restarts (invokable by number or by possibly-abbreviated name): > > 0: [DROP-THEM ] Unexport them. > > 1: [KEEP-THEM ] Keep exporting them. > > 2: [TRY-RECOMPILING ] Recompile swank-loader and try loading it again > > 3: [RETRY ] Retry > > loading FASL for #<SWANK-LOADER-FILE "swank" "swank-loader">. > > 4: [ACCEPT ] Continue, treating > > loading FASL for #<SWANK-LOADER-FILE "swank" "swank-loader"> > > as having been successful. > > 5: Retry ASDF operation. > > 6: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the > > configuration. > > 7: Retry ASDF operation. > > 8: Retry ASDF operation after resetting the > > configuration. > > 9: [ABORT ] Give up on "quicklisp-slime-helper" > > 10: [REGISTER-LOCAL-PROJECTS ] Register local projects and try again. > > 11: Exit debugger, returning to top level. > > > > (SB-IMPL::NOTE-PACKAGE-VARIANCE :FORMAT-CONTROL "~A also exports the following symbols:~% ~S" > > :FORMAT-ARGUMENTS ("SWANK-REPL" (SWANK-REPL:CREATE-REPL SWANK-REPL:LISTENER-GET-VALUE > > SWANK-REPL:CLEAR-REPL-VARIABLES SWANK-REPL:LISTENER-SAVE-VALUE SWANK-REPL:LISTENER-EVAL > > SWANK-REPL:REDIRECT-TRACE-OUTPUT)) :PACKAGE #<PACKAGE "SWANK-REPL">) 0] > > > > > > Neither locate nor find show any signs of any other copy of swank or slime on this system. The > > only thing in my .sbclrc is this: > > > > ;;; 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))) > > > > ;;; Added this to test reading bad char streams > > (setf sb-impl::*default-external-format* :utf-8) > > > > ;;; Added this so I can change the names of package symbols and get > > ;;; prompted about whether or not I want to drop them: > > (setf sb-ext:*on-package-variance* '(:error t)) > > > > > > I'm running out of ideas. Does anyone have any? > > > > Thanks. > > > > --Jeff > > > > > > > >