[Ecls-list] ECL with XAMPP

Márcio Faustino marciombfaustino at gmail.com
Tue Feb 22 18:25:14 UTC 2011


On Mon, 21 Feb 2011 22:40:21 +0100, Juan Jose Garcia-Ripoll <juanjose.garciaripoll at googlemail.com> wrote:

> 2011/2/20 Márcio Faustino <marciombfaustino at gmail.com>
>
>> Now the issue I'm having is when I try to load Quicklisp. The first problem
>> was that "(user-homedir-pathname)" returns "/" so it cannot find where
>> Quicklisp is really installed, which in my case is
>> "C:\Users\marcio\quicklisp". I then tried to hardcode the path:
>
> Seems you already solved the other problem -- environment variables have to
> be set for Microsoft Visual Studio to work --, but regarding this,
> USER-HOMEDIR-PATH is a rather standard function that follows this logic:
>
> * On Unix, it uses the home directory.
> * If HOME is defined, it takes that value
> * On windows, if HOMEDRIVE and HOMEPATH are defined, they are joined to form
> a directory
> * Finally, as a last resort, "/" is used.
>
> Juanjo

Yes, when I want to quickload some module then I need to ensure I do that inside the Visual Studio command prompt. What I don't get is why do I even need it again when running Lisp code as a CGI script with the correct HOMEDRIVE and HOMEPATH variables defined. It should find that the modules are already compiled and should just load them like it does on a regular command prompt.

However, I wrapped the execution of the Lisp script using a Python script communicating with it via popen. This allowed me to start it and load Quicklisp by manually passing the Visual Studio required environment variables. All this sounds fishy to me, so I'm pretty sure I'm going to have problems soon. This can't be the right way to do it. Any ideas?

I also had to do this in my ".eclrc" file when loading Quicklisp, so that I don't have any output before the start of the HTTP headers (e.g. "Content-Type"):
(let ((*load-verbose* (if (find "-q" (ext:command-args) :test #'equal) nil t)))

Using the "-q" argument by itself doesn't seem to do anything, so I'm not sure what I did is correct. What bothers me is that I have to repeat this whole process of manually passing the VS vars whenever I install/require a new module.

I also noticed that it takes a really long time to load Quicklisp whenever I start up ECL, almost 2s. Add that to requiring 4 more modules (cl-ppcre, metabang-bind, trivial-http, xmls) and it increases the load time to 7s. I don't understand this situation on an laptop with an Intel Core i7 at 1.60 GHz.

Is it easier/faster to use Lisp as a CGI script language under Linux?

-- 
Márcio Faustino




More information about the ecl-devel mailing list