[Ecls-list] What would be the cause of "Error when copying file from"?

Pascal J. Bourguignon pjb at informatimago.com
Thu Jul 1 21:51:44 UTC 2010


Juan Jose Garcia-Ripoll <juanjose.garciaripoll at googlemail.com> writes:

> On Thu, Jul 1, 2010 at 3:33 AM, Pascal J. Bourguignon <pjb at informatimago.com> wrote:
>
>     I get this error when asdf loading  :usocket.
>     [pjb at kuiper :0.0 site]$ ls -ld /tmp
>     drwxrwxrwt 9 root root 36864 Jul  1 03:18 /tmp/
>     What could be the cause?
>
> ECL has to have the ability to load the same FASL file multiple
> times. Furthermore, these files must be deletable as the user may
> wish to overwrite them at any time. None of these requirements works
> with an implementation that relies on the operating system to load
> binaries.  Some reasons are
>
> * Binary file write permissions may be disabled when the file is
>   loaded.
> * The operating system may refuse to load a binary file with the
>   same name as one that was already loaded.
> * If the file is overwritten, some operating systems still refuse to
>   load it again.
> ...
> The list is uncountable :-) After a lot of consideration the only
> solution I found is to perform a copy of each FASL file before
> LOADing it. Thus
>
> LOAD
> -> ecl_library_open
>  -> copy_object_file
>   -> si_copy_file
>  -> dlopen

I understand.

But I guess this concerns only MS-Windows, and not unix systems, where
we could have a simplier algorithm.  Or does this depend on the file
system?


> At some point your OS seems to be refusing _also_ that the FASL file
> be copied, which is kind of weird. I hope this will help you find
> out what is the problem -- here usocket loads just fine :-/

Yes, it's definitely mysterious.  I'm still searching...


Now that I think about it, perhaps I did something wrong.  I noticed a
lot of ecl "temporary" files in /tmp, and I removed them wholesale.
Perhaps I should wait to quit all ECL processes before cleaning up
/tmp?




>     Also, is this something of slime or of ECL not to print the whole
>     pathnames?  I've got *print-length* set to NIL, etc though...
>
> Probably Slime's debugger sets *print-length* or uses some custom printing format.

Of course, changing two elements of my environment at the same time
doesn't help.  Sorry for the occasional noise.


-- 
__Pascal Bourguignon__                     http://www.informatimago.com/





More information about the ecl-devel mailing list