[slime-devel] Re: Better solution to redefinition warnings in Allegro
Peter Seibel
peter at javamonkey.com
Wed Aug 18 21:40:37 UTC 2004
Helmut Eller <e9626484 at stud3.tuwien.ac.at> writes:
> Peter Seibel <peter at javamonkey.com> writes:
>
>> Here's the patch; please let me know what you think.
>
> I think this looks good.
>
> It's possible that the buffer-name is different from the filename,
> e.g. "foo.lisp<3>", and I think this case is not covered by the
> current approach. But that's pretty uncommon. You could probably
> pass the buffer-file-name instead of the directory just in case the
> actual filename is ever needed.
What about if instead of (buffer-name) in slime.el we use (or
(buffer-file-name) (buffer-name))?
> Only a minor detail:
>
>> -(defimplementation swank-compile-string (string &key buffer position)
>> +(defimplementation swank-compile-string (string &key buffer position (directory *default-pathname-defaults*))
>> ;; We store the source buffer in excl::*source-pathname* as a string
>> ;; of the form <buffername>:<start-offset>. Quite ugly encoding, but
>> ;; the fasl file is corrupted if we use some other datatype.
>> (with-compilation-hooks ()
>> (let ((*buffer-name* buffer)
>> (*buffer-start-position* position)
>> - (*buffer-string* string))
>> + (*buffer-string* string)
>> + (*default-pathname-defaults* (merge-pathnames (pathname directory))))
>> (compile-from-temp-file
>
> this might not work so well if the buffer-file-name is nil.
You mean because we always pass a directory argument, even if its only
NIL and thus the will never happen? I guess I should just bind
*default-pathname-defaults* to (if directory (merge-pathnames
(pathname directory)) *default-pathname-defaults*) and take the
default value of the directory parameter.
-Peter
--
Peter Seibel peter at javamonkey.com
Lisp is the red pill. -- John Fraser, comp.lang.lisp
More information about the slime-devel
mailing list