[Ecls-list] Bug fix for Slime C-c C-k in Windows

Dustin Long dlong at stevens.edu
Wed May 9 02:40:11 UTC 2007


This previous patch I sent out is broken. It keeps giving segfaults (I 
had thought reloading a fasl would replace the old function definitions, 
but I guess that's not happening). I've been trying another approach, 
for which a patch is attached. It moves every fas to the temp directory 
using (si::mkstemp) before loading it. Not very elegant, and it really 
fills up the temp directory, but at least it sort of works.

However, after (si::mkstemp) is called more than 26 times, it runs out 
of letters of the alphabet and returns nil. Is this by design? It sort 
of puts a hamper on developing for any lengthy period of time. Even 
without this newer patch, this problem still happens since compiling 
functions individually uses the same temp directory approach. Perhaps 
some other function for generating temp files could be used?

Dustin


I wrote:
> Hello,
> I noticed that with Slime/ECL on Windows, slime-compile-and-load-file 
> (C-c C-k) has no effect after being used once. The reason seems to be 
> that ECL uses dll's for fasl, and in Windows once a library is loaded 
> it cannot be written to.
>
> I came up with a fix that has two parts. One, whenever compile-file is 
> called in Windows to create a fasl, if the .fas exists and is loaded, 
> it is moved to the temporary directory (since loaded libraries can be 
> moved, but not modified). Then, when a .fas gets loaded, if it was 
> already loaded it is closed first (since loading an already loaded 
> library will just return the old handle, even if the dll was changed).
>
> Patch is attached.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 2007-05-08-load_binary.patch
Type: text/x-patch
Size: 523 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20070508/a1a18c7e/attachment.bin>


More information about the ecl-devel mailing list