Skip to content
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

[WIP] find Haskell dependencies during evaluation rather than at run-time #43804

Closed
wants to merge 0 commits into from

Conversation

peti
Copy link
Member

@peti peti commented Jul 19, 2018

This change means that Haskell packages no longer need to be visible to the generic Nix builder, i.e. we no longer list them in buildInputs.

To see what has changes, run diff -ub generic-builder.nix generic-builder-static.nix. I kept the old builder in place for all non-ghc-8.4.x package sets so that I don't have to re-build the compiler every time I change the code.

Things left to do:

  • Make sure https://hydra.nixos.org/jobset/nixpkgs/haskell-updates shows no massive regressions relative to evaluation 1469757.
  • Drop the --disable-optimization flag.
  • It at all possible, don't add Haskell packages to $PATH (unless they are listed as a build tool).
  • Fix the currently commented-out code for handling setupHaskellDepends et al.
  • Make generic-builder-static.nix the default builder for all package sets.
  • Cope with system libraries that are split into multiple outputs.
  • Which Nix output is supposed to have Darwin frameworks? lib? dev?
  • haskellPackages.libX11 runs a configure script that is blissfully unaware of the configured --extra-include-dirs and therefore can't find the necessary libraries. Is there a way to pass those flags on from Cabal to the configure script?

Ping @Ericson2314, @angerman, @domenkozar, @nh2.

@dezgeg
Copy link
Contributor

dezgeg commented Jul 19, 2018

How does this affect Nixpkgs evaluation performance?

Copy link
Contributor

@nh2 nh2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

generic-builder-static may not be a great name as people may mistakes this being about static linking.

Perhaps the name could reflect more that this is about the dependencies?

@peti
Copy link
Member Author

peti commented Jul 19, 2018

generic-builder-static.nix is going to replace generic-builder.nix once it's stable. See also my comments and the TODO list in #43804 (comment).

@peti
Copy link
Member Author

peti commented Jul 20, 2018

I realize that I don't have the time & energy to push this through all by myself at the moment. The code lives in https://github.com/peti/nixpkgs/tree/haskell-update-generic-builder. I may revisit this topic in the future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants