-
Notifications
You must be signed in to change notification settings - Fork 224
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support nix and guix by supporting multiple paths in janet's environment variables. #1505
Comments
Please see this discussion for another method that was considered. Update: Here something that points out the specific idea (though it's just an extract of the discussion mentioned). BTW, thanks for posting the link. |
I just read But, if this change takes place, |
I don't know why no one seems to be commenting on the proposal in this discussion:
AFAICT, the idea there was proposed by someone who had knowledge of both guix and nix. The quote above even has a link to a case where a similar approach was tried with alleged success. There was code discussed and both andrewchambers [1] and @bakpakin reviewed the idea and seemed to think it could work: andrewchambers:
bakpakin:
(elided modification suggestion that appeared to be accepted by proposer) I think it would be better for people to consider that idea first (or the additional alternative -- see [1] below), before suggesting a change to janet like this. IMO, there ought to be clearly spelled out reasons why the earlier proposal (or its alternative) won't / doesn't work, before asking for changes on janet's side. [1] andrewchambers also suggested another approach which AFAIU does not involve modification to janet. |
I just ran a thought experiment in my head. Having a long colon-separated list of paths in JANET_PATH will be slow because every module will go through $JANET_PATH once. For transitive dependencies, transitive symlinks are natural. Transitive symlinks would be still faster than a long list of search paths. However, if guix just copies symlinks intead of making symlinks to symlinks to symlinks to symlinks, we can replace transitive symlinks with direct symlinks. Direct symlinks are the fastest as long as they point to the right paths. I don't know whether symlinks are problematic in practice. One potential problem of direct symlink farms is disk usage. |
Adam Faiz wrote
|
What proposal? You need to be clear. List them out in clear language. |
On nix and guix, each package lives in its own tree.
For example,
Without multiple paths in janet's environment variables, janet-j3blocks would have many symlinks to jpm, and janet-j3blocks-extra would have many symlinks to janet-j3blocks which in turn has many symlinks to jpm.
Practical Guix: Packaging Janet's jpm (Part 2) shows the difficulty of making jpm packages for nix and guix.
The text was updated successfully, but these errors were encountered: