<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<br>
<div class="moz-cite-prefix">On 10/31/2013 01:07 AM, Helmut Eller
wrote:<br>
</div>
<blockquote cite="mid:m2zjppc17l.fsf@gmail.com" type="cite">
<pre wrap="">On Wed, Oct 30 2013, Christophe Rhodes wrote:
</pre>
<blockquote type="cite">
<pre wrap="">I think I can reproduce the problem.
Given:
/tmp/bar.asd containing:
(asdf:defsystem bar :contents ((:file "baz")))
/tmp/baz.lisp containing:
(defun frob (x) (1+ x))
/tmp/foo.lisp containing:
(require :bar)
and neither /tmp/foo.fasl nor /tmp/bar.fasl existing, then executing
from the toplevel
(load "/tmp/bar.asd")
and subsequently hitting C-c C-c on the (require :bar) form in foo.lisp
will result in (describe 'frob) thinking that it has a source location
of foo.lisp, rather than baz.lisp.
</pre>
</blockquote>
<pre wrap="">
Indeed. I can reproduce that too. If we do it without ASDF we
can put
(load (compile-file "baz.lisp"))
in foo.lisp and press C-c C-c on it.
This happens because SWANK-COMPILE-STRING in swank-sbcl.lisp uses with
WITH-COMPILATION-UNIT to pass :source-namestring to nested invocations
of COMPILE-FILE. Since LOAD is also called inside that
WITH-COMPILATION-UNIT the invocation in foo.lisp picks up the wrong
value for :source-namestring.
I moved LOAD outside and this problem should no longer occur. A
potential downside is that (redefinition) warnings that are emitted
during LOAD are no longer picked up by SLIME.
Helmut
</pre>
</blockquote>
I see you made changes in CVS. Does quicklisp pick these up if I
update-dist? Or do I need to reinstall Slime from CVS to get this?<br>
<br>
<br>
<br>
I was able to isolate the problem to this very simple example.<br>
I''m running SBCL 1.1.11 and Slime 2013-09-29.<br>
<br>
First, I deleted ~/.cache/common-lisp/*<br>
<br>
Then I created a new project:<br>
<br>
(ql:quickload "quickproject")<br>
(quickproject:make-project "/home/jcunningham/myproj/" :depends-on
'(:cl-ppcre))<br>
<br>
I loaded the project by creating /tmp/test.lisp with the following
line and compiling it:<br>
<br>
(asdf:load-system "myproj")<br>
<br>
And executed the following:<br>
<br>
(describe 'cl-ppcre:regex-apropos)<br>
<br>
<tt>; compiling (DESCRIBE (QUOTE CL-PPCRE:REGEX-APROPOS))</tt><tt><br>
</tt><tt>CL-PPCRE:REGEX-APROPOS</tt><tt><br>
</tt><tt> [symbol]</tt><tt><br>
</tt><tt><br>
</tt><tt>REGEX-APROPOS names a compiled function:</tt><tt><br>
</tt><tt> Lambda-list: (REGEX &OPTIONAL PACKAGES &KEY
(CASE-INSENSITIVE T))</tt><tt><br>
</tt><tt> Derived type: (FUNCTION (T &OPTIONAL T &KEY
(:CASE-INSENSITIVE T))</tt><tt><br>
</tt><tt> (VALUES &OPTIONAL))</tt><tt><br>
</tt><tt> Documentation:</tt><tt><br>
</tt><tt> Similar to the standard function APROPOS but returns a
list of all</tt><tt><br>
</tt><tt> symbols which match the regular expression REGEX. If
CASE-INSENSITIVE</tt><tt><br>
</tt><tt> is true and REGEX isn't already a scanner, a
case-insensitive scanner</tt><tt><br>
</tt><tt> is used.</tt><tt><br>
</tt><tt> <b>Source file: /tmp/test.lisp</b></tt><tt><br>
</tt><br>
--Jeff<br>
<br>
<br>
</body>
</html>