Quesstion about Alt-. navigation to function definitions

Jeff Cunningham jeffrey at jkcunningham.com
Tue Oct 29 22:49:47 UTC 2013


On 10/29/2013 09:36 AM, Christophe Rhodes wrote:
> Jeff Cunningham <jeffrey at jkcunningham.com> writes:
>
>> I don't normally change the optimization in development code. But I
>> went ahead and tried the proclaim '(optimize (ebug 2))) in my .sblcrc
>> as you suggested, but that made no difference.
>>
>> All my source files have (in-package 'ftis-v43), the package defined
>> in the package.lisp file.
> (in-package 'ftis-v43) is not actually legal common lisp.  (The argument
> to IN-PACKAGE is an unevaluated name).  Do things start working if you
> use (in-package "FTIS-V43") or (in-package :ftis-v43)?  I know this
> might be a red herring, since (a) you're talking about fasls and (b) the
> source finding works for individually-compiled buffers, but it might be
> worth knowing in any case.
>
>

That was a typo - all of them are (in-package :ftis-v43), I just 
checked. Currently, if I start a fresh sbcl under slime the only 
functions I can navigate to with Alt-. are system functions (format, for 
example). Any packages I am loading via quicklisp or of my own result in:

Error: end of file on #<SB-IMPL::STRING-INPUT-STREAM {10070EBBB3}>

When I load packages creates and/or loads a fasl under 
~/.cache/common-lisp/<sbcl version>/.. I would have thought that would 
be how it would navigate, but in my case not.

I can open any source file, compile a LOCAL fasl with C-c k and then 
those functions can be navigated into. It used to work on anything. And 
I haven't changed my .sbclrc in years (except to add the suggestion 
yesterday). Here it is:


;; -*-Lisp-*-
(require 'asdf)
(proclaim '(optimize (debug 2)))

;;; 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)))

;;; If a fasl was stale, try to recompile and load (once).
(defmethod asdf:perform :around ((o asdf:load-op)
                  (c asdf:cl-source-file))
   (handler-case (call-next-method o c)
     ;; If a fasl was stale, try to recompile and load (once).
     (sb-ext:invalid-fasl ()
       (asdf:perform (make-instance 'asdf:compile-op) c)
       (call-next-method))))

Thanks,
--Jeff




More information about the slime-devel mailing list