From: Andreas Hinze
Subject: C-L-C: How to make a second repository ?
Date: 
Message-ID: <3D6DF437.6E3939AE@smi.de>
Hi all,
I installed common-lisp-controller some times ago and find it very usefull.
Now i want to install a repository in my home directory. As a result it should
be possible to use the system wide systems from /usr/share/common-lisp/systems/ and
also from i.e. /home/ahz/programming/lisp/lib/systems/.
Pushing the latter path to mk:*central-repository* works fine. Using
(require :foo) find foo.system in my local repository. 
But i can't figure out how to make the same for CL-LIBRARY:. So C-L-C tries
only the default /usr/lib/common-lisp/cmucl/ for binaries. How can i change 
CL-LIBRARY: to find binaries in i.e. /home/ahz/programming/lisp/lib/bin/cmucl-normal/ 
too ?

I'm aware of calls like add-project-directory (might be wrong, i'm not at my lisp
system, sorry). But then i have to specify a particular project name. That's not what
i'm looking for.

Any suggestions ?

TIA

AHz

From: Peter Van Eynde
Subject: Re: C-L-C: How to make a second repository ?
Date: 
Message-ID: <86elchagdu.fsf@debian.org>
Andreas Hinze <···@smi.de> writes:

> Hi all,
> I installed common-lisp-controller some times ago and find it very usefull.

Thanks. :-)

> Now i want to install a repository in my home directory. As a result it should
> be possible to use the system wide systems from /usr/share/common-lisp/systems/ and
> also from i.e. /home/ahz/programming/lisp/lib/systems/.
> Pushing the latter path to mk:*central-repository* works fine. Using
> (require :foo) find foo.system in my local repository. 
> But i can't figure out how to make the same for CL-LIBRARY:. So C-L-C tries
> only the default /usr/lib/common-lisp/cmucl/ for binaries. How can i change 
> CL-LIBRARY: to find binaries in i.e. /home/ahz/programming/lisp/lib/bin/cmucl-normal/ 
> too ?
>
> I'm aware of calls like add-project-directory (might be wrong, i'm not at my lisp
> system, sorry). But then i have to specify a particular project name. That's not what
> i'm looking for.

Due to the nature of Logical-PathNames it is not possible to
automaticly layer one tree over another.

I see 2 options:

- use add-project-directory 
- add code the the .system file that configures the cl-library: LPN
  overrides for that package.

Groetjes, Peter

-- 
It's logic Jim, but not as we know it. | ········@debian.org
"God, root, what is difference?" - Pitr| http://people.debian.org/~pvaneynd/
"God is more forgiving." - Dave Aronson| http://users.belgacom.net/bn110523/
From: Andreas Hinze
Subject: Re: C-L-C: How to make a second repository ?
Date: 
Message-ID: <3D6E3BFD.C4382440@smi.de>
Peter Van Eynde wrote:
> 
> Due to the nature of Logical-PathNames it is not possible to
> automaticly layer one tree over another.
> 
> I see 2 options:
> 
> - use add-project-directory
> - add code the the .system file that configures the cl-library: LPN
>   overrides for that package.
> 
Thanks for the hints. 
As i wrote before add-project-directory was valid
only for on particular project. I can't specify * to address all projects
in the binary path.
Adding code to the .system file might be a solution. I will try this.

But as a general question: why is CL-LIBRARY: handled in another way than
*central-repository* ? I didn't realize the background.

Sincerly
AHz
From: Peter Van Eynde
Subject: Re: C-L-C: How to make a second repository ?
Date: 
Message-ID: <868z2oaem6.fsf@debian.org>
Andreas Hinze <···@smi.de> writes:

> But as a general question: why is CL-LIBRARY: handled in another way than
> *central-repository* ? I didn't realize the background.

*central-repository* is a list of paths to go and look for systems for
the defsystem to load.

CL-LIBRARY: is a logical pathname that in clc translates the names in
the systems to the correct filenames to load or to create. It is just
a logical pathname, not a CMUCL search-list, so it is not possible to
layer one on top of another. The only way to override the system
default if to either replace it totally or to override per
system.

Groetjes, Peter

-- 
It's logic Jim, but not as we know it. | ········@debian.org
"God, root, what is difference?" - Pitr| http://people.debian.org/~pvaneynd/
"God is more forgiving." - Dave Aronson| http://users.belgacom.net/bn110523/
From: Andreas Hinze
Subject: Re: C-L-C: How to make a second repository ?
Date: 
Message-ID: <3D6F479A.BE099BD1@smi.de>
Peter Van Eynde wrote:
> 
> Andreas Hinze <···@smi.de> writes:
> 
> > But as a general question: why is CL-LIBRARY: handled in another way than
> > *central-repository* ? I didn't realize the background.
> 
> *central-repository* is a list of paths to go and look for systems for
> the defsystem to load.
> 
> CL-LIBRARY: is a logical pathname that in clc translates the names in
> the systems to the correct filenames to load or to create. It is just
> a logical pathname, not a CMUCL search-list, so it is not possible to
> layer one on top of another. The only way to override the system
> default if to either replace it totally or to override per
> system.
> 
I have to look into CLHS this weekend to understand that logical pathnames.
Thanks for the help

Best
AHz