[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gcl-devel] Re: trouble with cl-launch

From: Camm Maguire
Subject: Re: [Gcl-devel] Re: trouble with cl-launch
Date: 13 Oct 2006 12:18:19 -0400
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2


"Faré" <address@hidden> writes:

> On 12/10/06, Camm Maguire <address@hidden> wrote:
> > (let* ((compiler::*compiler-default-type* (pathname ""))
> >        (compiler::*lsp-ext* "")) (compile-file "/tmp/y"))
> > works in 2.7 at least.
> And not in 2.6. Thanks a lot! That's exactly what I was looking for.
> Maybe it deserves being documented better?

Well, yes I suppose.  What we have now is not deliberate.  What should
be deliberate, I do not know.

> > (si::save-system "foo")
> Great! I've implemented system dumping for cl-launch, however, I have
> the following problems:
> * cl-launch calls gcl with option -batch, and this causes gcl to NOT
> re-read system::*tmp-dir* from (si::getenv "TMP"). I had to explicitly
> redefine it, but you probably know a better fix (especially if other
> variables need to be reinitialized), and the real fix might be on your
> side.

OK, this should be fixed in CVS now.

> * gcl 2.7 seems to have a buggy make-pathname, that tries to merge a
> relative :directory with the directory of the default, which causes
> clc cached objects to be in the wrong place
>   (make-pathname :directory '(:relative "foo" "bar") :defaults
> (make-pathname :directory '(:absolute "baz" "quux")))
> Should return #P"foo/bar/" but instead returns
> #P"/baz/quux/foo/bar/"

I think this is correct.  From merge-pathnames:

   Pathname merging treats a relative directory specially.  If
(pathname-directory pathname) is a list whose car is :relative, and
(pathname-directory default-pathname) is a list, then the merged
directory is the value of

      (append (pathname-directory default-pathname)
              (cdr  ;remove :relative from the front
                (pathname-directory pathname)))

   except that if the resulting list contains a string or :wild
immediately followed by :back, both of them are removed.  This removal
of redundant :back keywords is repeated as many times as possible.  If
(pathname-directory default-pathname) is not a list or
(pathname-directory pathname) is not a list whose car is :relative, the
merged directory is (or (pathname-directory pathname)
(pathname-directory default-pathname))

And from make-pathname:

   After the components supplied explicitly by        host,
device,        directory,        name,        type,    and version are
filled in, the merging rules used by merge-pathnames are used to fill
in any unsupplied components from the defaults supplied by defaults.

This is literally what the code does.

> That's all for now. I'm sure I'll find more bugs along the way. My
> benchmark will be to successfully run Exscribe through cl-launch.

Great!  And thanks again for the feedback!

Take care,

> [ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
> "How many libertarians does it take to change a lightbulb?"
> A- "None, the market will take care of it."
> B- "Every one of them and non-libs too, because we all *are* the market."
> C- "*I*'ll do it, for a dollar."

Camm Maguire                                            address@hidden
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]