chicken-janitors
[Top][All Lists]
Advanced

[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.

reply via email to

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