[Ecls-list] Load and filenames.

Waldek Hebisch hebisch at math.uni.wroc.pl
Fri May 30 23:35:01 UTC 2008

Juan Jose Garcia-Ripoll wrote:
> On Sat, May 31, 2008 at 12:55 AM, Gabriel Dos Reis
> <gdr at integrable-solutions.net> wrote:
> > Another alternative is to:
> >  (1) try whether  bar.fas exists.  If yes, load it as FASL.
> >  (2) otherwise, see if bar.lisp exists, if yes load it as a Lisp source file.
> >  (3) otherwise load bar as a lisp source file
> Seems this was not very clear from the previous messages. The problem
> is that "bar" exists and it is a _binary_ file that was produced using
> the :output-file option of compile-file. Like in (compile-file
> "foo.lisp" :output-file "foo"). The algorithm you and also Mark
> mentioned is already in ECL!

I looked at what sbcl and clisp is doing.  In both cases

(compile-file "ttt.lisp" :output-file "baz")

do not produce file named "baz".  Instead, sbcl produces "baz.fasl"
and clisp produces "baz.fas".  OTOH when I rename the result to
plain "baz" both sbcl and clisp can load it...

I think that the following part from HyperSpec justifies sbcl and
clisp treatment of the output file name:

   The  defaults  for  the  output-file  are taken from the pathname that
   results    from   merging   the   input-file   with   the   value   of
   *default-pathname-defaults*,  except  that  the  type component should
   default  to  the  appropriate  implementation-defined default type for
   compiled files.

                              Waldek Hebisch
hebisch at math.uni.wroc.pl 

More information about the ecl-devel mailing list