[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-janitors] #736: make CHICKEN_REPOSITORY support a search pa
From: |
Chicken Trac |
Subject: |
Re: [Chicken-janitors] #736: make CHICKEN_REPOSITORY support a search path |
Date: |
Thu, 23 Aug 2012 15:18:33 -0000 |
#736: make CHICKEN_REPOSITORY support a search path
--------------------------------+-------------------------------------------
Reporter: zbigniew | Owner: zbigniew
Type: enhancement | Status: assigned
Priority: not urgent at all | Milestone:
Component: core libraries | Version:
Resolution: | Keywords:
--------------------------------+-------------------------------------------
Comment(by zbigniew):
Just wanted to mention that I did implement the search path for modules
some time ago, but ran into a major roadblock, which is why this didn't go
anywhere. In the current implementation, you can specify a module path
like `lib/chicken/6:.:lib/chicken-mine/6`. The problem is with support
files, specifically data and binaries, when an egg is installed in two
places in the search path.
'''Data''': stuff in share/chicken/ is placed there by certain eggs and
would be overwritten by a twice-installed egg. One possibility is to move
the data into the lib/ dir instead, although putting dynamic data there
would be odd. We would likely need an indirection so that eggs can find
their data, instead of assuming where it is, but this would break backward
compatibility.
'''Binaries''': this is harder, because binaries are intended to be
invoked by the user, and should go into a well-known location, rather than
being hidden inside the egg. I can't think of a non-ridiculous way
(symlink farm!) to address this.
In an alternate implementation, it should be possible to overlay an entire
repository over another, rather than just the shared modules. This
addresses some of the issues above nicely, but what I liked about the lib
search path was simplicity: you could use "." to load compiled modules
from your current (egg) directory when developing, skipping the install
step and also getting rid of the gross `-setup-mode` hack which I use half
the time for its side effect of changing the search path order so I don't
accidentally load an earlier installed version of the extension I am
developing. Breathe, zbigniew.
Some languages address this by having their extensions be self-contained,
i.e. all its support files and shared libs under one directory. I think
this is too big a change and not worth pursuing.
So I am still thinking about this but it's on the way back burner.
--
Ticket URL: <http://bugs.call-cc.org/ticket/736#comment:2>
Chicken Scheme <http://www.call-with-current-continuation.org/>
Chicken Scheme is a compiler for the Scheme programming language.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Chicken-janitors] #736: make CHICKEN_REPOSITORY support a search path,
Chicken Trac <=