-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathdefault.nix
53 lines (46 loc) · 1.15 KB
/
default.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
{
pkgs ? import ./nix/nixpkgs-pinned.nix {},
# Use haskell-languager-server?
hsTools ? false,
# Use tools for the benchmarks in other languages (Cargo, Bazel, etc.)?
benchTools ? false
}:
let
haskellDependencies = import ./nix/haskell-dependencies.nix;
paths = with pkgs; (
[
# Nix tooling
niv
nix-tree
# Haskell tooling
stack
# Haskell dependencies
(ghc966Packages.ghcWithPackages haskellDependencies)
# Other
llvm_13
] ++
# We don't use the overlay here because the tooling doesn't need it.
# The advantage of doing so is that these packages are already available in a global cache.
lib.optionals hsTools (with haskell.packages.ghc966; [
haskell-language-server
implicit-hie
]) ++
lib.optionals benchTools [
(python3.withPackages (pyPkgs: [
pyPkgs.clize
pyPkgs.numpy
]))
# For rust implementation
cargo
# For java implementation (uses outdated bazel stuff)
jdk8
bazel_1
# For Haskell implementation
gmp
]
);
in
pkgs.buildEnv {
name = "alfred-margaret-env";
paths = paths;
}