Skip to content

Commit

Permalink
Force a dependency on generated dependencies json
Browse files Browse the repository at this point in the history
This otherwise gets garbage-collected and then has to be regenerated on
next flake evaluation. It may not be that slow to regenerate, but it's
also tiny enough we may as well keep it alive.
  • Loading branch information
marienz committed Jun 16, 2024
1 parent f8012b8 commit 2a43656
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 7 deletions.
5 changes: 0 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -401,11 +401,6 @@ There are a few issues:
determine packages to install and to determine package dependencies for
packages not in emacs-overlay. Especially the latter is slow.

- The dependency data probably gets garbage-collected, making subsequent
evaluation slow even if nothing changed. I intend to make the installed
packages depend on this data to work around this, but I have not implemented
it yet.

- Doom (currently) [does not native-compile ahead of
time](https://github.com/doomemacs/doomemacs/issues/6811), but Unstraightened
(or nixpkgs, really), does.
Expand Down
12 changes: 10 additions & 2 deletions default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ let
# something package.el understands as satisfying dependencies.
# This is necessary if we're replacing a pinned ELPA dependency
# of an unpinned ELPA package.
esuper.melpaBuild {
(esuper.melpaBuild {
pname = name;
# melpaBuild requires we set `version` and `commit` here
# (leaving `version` unset until overrideAttrs below does not
Expand All @@ -221,7 +221,15 @@ let
# TODO: refactor out the recursive call to makePackage.
# (Currently needed for dependencies on packages not in epkgs or doom.)
packageRequires = map (name: eself.${name} or (makePackage name {})) reqlist;
});
}).overrideAttrs (prev: {
# We only depend on this during evaluation. Force a dependency so it does not
# get garbage-collected, which slows down subsequent evaluation.
inherit reqfile;
postInstall = (prev.postInstall or "") + ''
mkdir -p $out/nix-support
ln -s $reqfile $out/nix-support/unstraightened-dependencies.json
'';
}));
url =
if (p.recipe.host or "") == "github" && p ? recipe.repo
then "https://github.com/${p.recipe.repo}"
Expand Down

0 comments on commit 2a43656

Please sign in to comment.