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, 24 Jul 2014 22:02:00 -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 alaric):

 It sounds like your existing work would be sufficient to make Chicken work
 nicely with the Nix package manager.

 Under Nix, each installed package (which chicken itself, as well as eggs,
 would count as) is installed into its own unique prefix. When the user
 then requests that a certain bunch of packages be made available in their
 "profile", a symlink farm is created to "merge" the per-package prefixes
 together.

 So Chicken as it stands would run fine - you'd have a single directory
 tree with bin/ containing csi and chicken and the results of all the egg
 install-program actions, and lib/ containing core and egg chicken libs, as
 you'd expect.

 However, chicken-install can't work as-is in this environment, as profiles
 are strictly read/execute-only; new eggs can't be installed into them by
 the likes of chicken-install.

 The hard part, then, is building the egg packages in the first place. When
 a package is built, it is passed the path it should install to, and the
 paths of all of its dependencies. If we could set CHICKEN_INSTALL_PREFIX
 to the output directory, leave CHICKEN_PREFIX pointing at the chicken
 package (which all eggs would depend upon) so it can find csc and friends,
 and set CHICKEN_REPOSITORY to a search path of all the eggs the egg being
 built depends upon - I think it would then correctly compile the egg into
 the output directory.

 The one exception would be if an egg uses an installed program from
 another egg as part of its build process, in which case we'd need to
 ensure that was added to the PATH before running chicken-install.

 So: Can you share your patch, so I can see if I can use it to properly
 integrated Chicken with Nix?

 If so, the next step would be to write a script that reads the entire egg
 list, pulls out the dependencies from the meta files, and tries to make
 Nix package descriptions out of them (needing me to manually declare any
 external dependencies, of course...) :-)

-- 
Ticket URL: <http://bugs.call-cc.org/ticket/736#comment:3>
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]