[slime-devel] Possible bugs in slime contrib-inclusions

Matt Lamari matt.lamari at gmail.com
Sat Feb 13 17:20:26 UTC 2010


Lispworks.  It contains compile-file; but the delivered EXEs it produces
do not (this is by design).  Slime has to connect to a delivered EXE in
my situation.

It seems *intended* to compile if the source is newer than the FASL
file.  But due to the problem I see, it is rebuilding elements that I
know have already been compiled in from latest.

The ability to use compile-file at runtime would be sufficient to mask
the problem.  Indeed, the logic I mentioned could be broken completely
(to recompile everything every time) and most users wouldn't notice it.



Helmut Eller wrote:
> * Matt Lamari [2010-02-13 16:43+0100] writes:
>
>   
>> I believe for many this is concealed by having their lisp implementation
>> able to call "compile-file" and load the affected modules in at runtime
>> - the contribs it determines as missing (right or wrong) will compile
>> the elements it percieves as missing - my implementation (commercial)
>> does not allow this; but it then highlights an inconsistency in the
>> implementation.
>>     
>
> Your implemenation doesn't allow (load (compile-file ...)) ?  I've never
> heard of such an implemenation.  How do you compile/load Swank in the
> first place?
>
>   
>> This may explain it:
>>
>> I configure slime in my .emacs as so:
>> (slime-setup '(slime-repl slime-fancy slime-banner slime-asdf
>> slime-indentation))
>>
>> Now, due to my implementation, I want my app to include all of the
>> relevant contribs.  To achieve this, I needed to do 2 things.
>>
>> 1: In Swank-loader.lisp, add swank-indentation to defvar *contribs*
>>     
>
> That will compile it if the the source is newer the the fasl file.
>
>   
>> 2:  Address another problem in Swank.lisp. . .
>>     
>
> Swank uses REQUIRE in this case and the filename is determined by
> calling the hook function swank:*find-module*.  You could customize that
> or perhaps swank:*load-path*.
>
> Whether REQUIRE invokes COMPILE-file before loading the file is beyound
> our control.
>
>   
>> This is where the compile-file was being decided on and triggered. 
>> Basically, despite being present, this test was determining that ASDF
>> and Indentation have to be reincluded.
>> ASDF and Indentation were being passed in as as :swank-indentation and
>> :swank-asdf, then looking for them in *modules* via a string search. 
>> However, the string for asdf was "ASDF" not "SWANK-ASDF", and nothing
>> for INDENTATION is present at all despite being loaded.
>>     
>
> SWANK-ASDF depends on ASDF that would explain it.
> swank-indentation.lisp is missing the corresponing PROVIDE, that's a
> bug.
>
> Helmut
>
>
> _______________________________________________
> slime-devel site list
> slime-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/slime-devel
>   





More information about the slime-devel mailing list