[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 |
Greetings!
"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