Commit Graph

2672 Commits

Author SHA1 Message Date
sternenseemann
cb703b406f haskell.compiler.ghc98: 9.8.3 -> 9.8.2
HLS can't be built yet with 9.8.3, so it doesn't make sense to make it a
default yet. Unfortunately we are still missing a ghc-lib-parser release
that works with ghc 9.8.3.
2024-10-21 21:38:46 +02:00
sternenseemann
787c1debc8 haskell.compiler.ghc98: 9.8.2 -> 9.8.3
https://www.haskell.org/ghc/download_ghc_9_8_3.html
2024-10-20 22:30:05 +02:00
sternenseemann
c91c22341c haskell.compiler.ghcHEAD: 9.11.20240410 -> 9.11.20240423
Unfortunately, this is the newest GHC revision we can update to. After
145a647785,
it becomes necessary to bootstrap with an in tree Cabal version.
Supporting this in nixpkgs is a waste of time since it wouldn't be
necessary for any release version.
2024-10-15 01:28:45 +02:00
sternenseemann
0cac1f100d haskell.compiler.*: don't declare stage0 ghc as dep to stdenv
Some GHC bindists have a normal `$out/lib` directory which contains
symlinks to all core libs. Because it is a normal lib directory, the
bintools setup hook will pick up on it and cause ld to pass the
appropriate -L and -rpath flags. We do not want this to happen,
especially in the case of the stage2 compiler. Not only will the final
ghc have an unnecessary reference (and thus increased closure size) to
the binary ghc, but the extra libraries in the rpath mess with the rts
and cause e.g. segfaults in GHCi.

Unfortunately, there is no way to prevent this. It is a fundamental flaw
in the cc and bintools wrappers that they do not actually distinguish
between the roles of dependencies (build, host, target). Instead
the mangleVar* function will translate the dependencies split up by
roles into platforms. This means that the wrappers can't distinguish
between depsBuildBuild and depsHostTarget (== buildInputs) when natively
compiling. As long as we are natively compiling the wrappers will put
the stage0 ghc (be it in depsBuildBuild, nativeBuildInputs etc.) into
the linker flags of the final ghc.

The solution is to sidestep the issue. We just had ghc in depsBuildBuild
to have it added to PATH. GHC itself will pass the appropriate linker
flags if necessary. To avoid the setup hooks picking up on the GHC
libraries we just don't put it into depsBuildBuild or any other
dependency list. Since the GHC build system accepts the GHC binary via
an absolute path, we don't even need to add the stage0 GHC to PATH.
2024-09-23 18:44:43 +02:00
sternenseemann
097aff7aff haskell.compiler.*: move bootPkgs.ghc to depsBuildBuild
The stage0 ghc is build->build since it builds the stage1 compiler which
has build for its host platform (i.e. is build->target relative to the
entire GHC derivation).

Also annotate a bit more around the use of pkgsBuildBuild and the boot
compiler and make it more explicit where it comes from in the
derivation.
2024-09-19 16:26:43 +02:00
Alex Tunstall
8bf0041dc6 haskell.compiler.ghc9*: fix rpath on aarch64-linux
In #339272, an elusive regression was found where the stage 2 binaries
held a reference to the boot compiler in their rpath. This issue only
affected GHC 9.6 versions built on aarch64-linux.

For still unknown reason, this issue goes away when using a source built
GHC instead of the binary GHC we derive from upstream's bindists.
Knowing more would be great, obviously, but at least this issue goes
away with GHC 9.8.*…

Co-authored-by: sternenseemann <sternenseemann@systemli.org>
2024-09-19 15:08:12 +02:00
Alex Tunstall
bd373f03a0 haskell.compiler.ghc*: use GHC from pkgsBuildBuild 2024-09-08 23:50:05 +02:00
github-actions[bot]
9ebd5d0e8c
Merge master into haskell-updates 2024-07-31 00:12:53 +00:00
Randy Eckenrode
ac9122dd71
Revert "haskell.compiler.{ghc98*,ghcHEAD}: bootstrap using source built 9.6"
This reverts commit ccc08ba453.
2024-07-28 09:09:01 -04:00
sternenseemann
198c24e04e haskellPackages.ghc: 9.6.5 -> 9.6.6 2024-07-15 01:05:27 +02:00
sternenseemann
aadfe3ef2b haskell.compiler.ghc966: init at 9.6.6
https://www.haskell.org/ghc//blog/20240701-ghc-9.6.6-released.html
2024-07-08 12:29:42 +02:00
Vladimír Čunát
69259babfc
haskell.compiler.*: switch back to python 3.11 where needed
I believe this has addresses all build regressions seen here:
https://hydra.nixos.org/eval/1807423?filter=haskell.compiler&compare=1807414#tabs-now-fail
2024-07-04 08:52:42 +02:00
Alexandre Esteves
cadb3d1df5 haskellPackages.ghcjs-dom: build on js backend of ghc 9.8 2024-06-14 23:02:10 +02:00
sternenseemann
702d636d78 haskell.compiler.ghc948: fix expression file name
This is a left over to do from #308776. Rebasing existing PR (prior
to #308776) would need to be rebased on a change before the commit
included in this PR.
2024-06-13 00:00:53 +02:00
sternenseemann
131400c2e2 haskell.compiler: port all make/native-bignum GHCs to common expr
The common expression is a little messy to avoid rebuilds. It can be
cleaned up in a second step.

`9.4.8.fixme.nix` is used temporarily so that git's rename detection
gets where common-make-native-bignum.nix is coming from.

8.10.7 keeps its expression since it uses integer-simple which changes
the expression's interface. This is unfortunately very annoying to
reflect in a common expression.
2024-05-16 15:47:56 +02:00
Vaibhav Sagar
640cf550ee haskell.compiler.ghc910: init at 9.10.1
https://www.haskell.org/ghc/blog/20240510-ghc-9.10.1-released.html
2024-05-13 12:22:46 +02:00
sternenseemann
490114a2e1 haskellPackages.ghc: 9.6.4 -> 9.6.5 2024-04-16 23:43:19 +02:00
sternenseemann
179f8e0aa4 haskell.compiler.ghc965: init at 9.6.5
https://www.haskell.org/ghc/blog/20240416-ghc-9.6.5-released.html
2024-04-16 20:07:28 +02:00
sternenseemann
c774347c25 haskell.compiler.ghcHEAD: 9.9.20231121 -> 9.11.20240323
Adds a new core package `os-string`.
2024-03-23 15:45:14 +01:00
sternenseemann
ccc08ba453 haskell.compiler.{ghc98*,ghcHEAD}: bootstrap using source built 9.6
Unfortunately, we are running into trouble linking dependencies of
hadrian against the libraries of the clock package with 9.6.3 and
9.6.4 _bindists_. My current suspiscion is that this is caused by
some kind of discrepancy between the toolchain used by GHC upstream
and us that persists from the configure step used when building the
bindist. The problem seems to be somewhat localized to hsc2hs (hence
clock is an issue), with GHC 9.6.4 bindists even passing a flag to
ld that is not supported by our version of cctools.

The problem is not fully diagnosed, so take the speculation above
with a grain of salt.

As a workaround, we can use the source built GHC 9.6 which is, of
course, configured with our toolchain in the environment.
2024-03-21 21:00:12 +01:00
sternenseemann
46cdbff42b haskell.packages.ghc98.ghc: 9.8.1 -> 9.8.2
This fixes the mismatch between haskell.compiler.ghc98 and haskell.packages.ghc98
2024-02-26 20:18:28 +01:00
sternenseemann
2d02d0d463 haskell.compiler.ghc982: fix bootstrap with GHC 9.6
Bootsrapping with 9.6 doesn't work with 9.8.2 upstream due to erroneous
bounds on Cabal (<https://gitlab.haskell.org/ghc/ghc/-/issues/24100>)
which was planned to be addressed in 9.8.2, but apparently hasn't been,
so we need to extend the range for the workaround patch.
2024-02-26 17:19:02 +01:00
maralorn
3c97d03b0f
Merge branch 'haskell-updates' into t/add-ghc-9.8.2 2024-02-26 13:00:09 +01:00
Peter Simons
27567240ea ghc: add new compiler version 9.8.2 2024-02-26 10:37:33 +01:00
sternenseemann
980d1086cc haskell.compiler: determine native-bignum GHCs via excludes
native-bignum has become the norm, so let's convert it to an exclude
rather than an include list. This way it's no longer possible to forget
to add a newly packaged GHC to the include list.
2024-02-15 16:05:55 +01:00
github-actions[bot]
acd0181532
Merge master into haskell-updates 2024-01-26 00:12:48 +00:00
sternenseemann
65fc44c341 haskell.compiler.ghc8102Binary: remove at 8.10.2
Since 46f14d30aa, it no longer has any
users in nixpkgs.
2024-01-25 15:20:35 +01:00
sternenseemann
c0e251a92c Merge remote-tracking branch 'origin/master' into haskell-updates 2024-01-23 21:05:45 +01:00
sternenseemann
0e756e65d5 haskell.compiler.ghc96: 9.6.3 -> 9.6.4
https://www.haskell.org/ghc/blog/20240109-ghc-9.6.4-released.html

Co-authored-by: Ben Gamari <ben@smart-cactus.org>
2024-01-23 21:05:01 +01:00
sternenseemann
2f8dcca4a9 haskellPackages.ghc: 9.6.3 -> 9.6.4 2024-01-22 15:14:41 +01:00
sternenseemann
b53d8e6cdb haskell.compiler.ghc964: init at 9.6.4
https://www.haskell.org/ghc/blog/20240109-ghc-9.6.4-released.html

Not updating the default GHC version yet to prevent a huge rebuild.
2024-01-18 14:21:23 +01:00
sternenseemann
edebca765c haskell.compiler.ghc963Binary: init at 9.6.3
Best reviewed by viewing

    diff -u pkgs/development/compilers/ghc/9.{2.4,6.3}-binary.nix

main change are that we drop the `isHadrian` mechanism, since all
bindists are produced by hadrian and alpine bindists are also available
dynamically linked now.
2024-01-07 13:48:41 +01:00
sternenseemann
9067af4fb4 haskell.compiler: drop all ghcs without an stackage LTS snapshot
https://www.stackage.org/ lists the latest LTS snapshot for any GHC
version which, on the flipside, lets us discover which versions don't
have a corresponding LTS snapshot. There is really no reason to keep
around GHCs that only appeared in some nightly snapshot way back.

haskell.compiler.ghc924: remove at 9.2.4
haskell.compiler.ghc942: remove at 9.4.2
haskell.compiler.ghc943: remove at 9.4.3
haskell.compiler.ghc944: remove at 9.4.4
haskell.compiler.ghc962: remove at 9.6.2
2023-12-20 12:09:06 +01:00
sternenseemann
274c1f0970 haskell.compiler.ghc865Binary: don't pass llvmPackages_6
We want to remove llvmPackages_6, but it is the only version GHC 8.6.5
supports. Luckily, we actually don't need LLVM in any case, since all
X86 architectures have native codegen for Darwin and Linux, as well as
POWER for Linux. Consequently, we can just pass `null` and add an extra
assert to make this more transparent to future tinkerers.
2023-12-04 19:43:07 +01:00
sternenseemann
46f14d30aa haskell.compiler.ghc884: remove at 8.8.4
The main aim of this is to be able to drop llvmPackages_7.
2023-12-04 19:42:44 +01:00
sternenseemann
47a8cb6057 haskell.compiler.integer-simple: construct using include list
There won't be any new integer-simple compilers and they are already in
the minority, so converting the mechanism to an include list is much
better. Maybe native-bignum should now become an exclude list
additionally?

Verified that nix-env -qaP -A haskell.compiler output stays identical.
2023-11-17 12:52:04 +01:00
sternenseemann
d48d90ed8a haskellPackages.ghc: 9.4.7 -> 9.4.8
haskell.compiler.ghc94: 9.4.7 -> 9.4.8
haskell.compiler.ghc948: init at 9.4.8

https://www.haskell.org/ghc/blog/20231110-ghc-9.4.8-released.html
2023-11-17 12:52:04 +01:00
sternenseemann
2ec6f63534 haskell.compiler.ghcHEAD: 9.7.20230527 -> 9.9.20231014 2023-11-06 15:26:58 +01:00
Vaibhav Sagar
a63c085661 haskell.compiler.ghc98: init at 9.8.1
https://www.haskell.org/ghc/blog/20231009-ghc-9.8.1-released.html

- Use source-built GHC 9.4.7, pending packaging of bindist.
- The aarch64-linux space saving strategy via disabling hyperlinked
  source is disabled for now, pending either an updated patch or
  an user defined flavour using
  https://gitlab.haskell.org/ghc/ghc/-/merge_requests/10850.

Co-authored-by: sternenseemann <sternenseemann@systemli.org>
2023-10-15 00:43:20 +02:00
maralorn
aa816d4958
Merge pull request #252362 from sternenseemann/ghc-9.4.7
haskellPackages.ghc: 9.4.6 -> 9.4.7
2023-10-04 22:24:01 +02:00
sternenseemann
32c1a8c383 haskellPackages.ghc: 9.4.6 -> 9.4.7
https://www.haskell.org/ghc/blog/20230825-ghc-9.4.7-released.html

Notice that useLLVM is disabled for all aarch64 platforms to match
2023-10-04 17:13:56 +02:00
Ryan Hendrickson
1d78ad9ea4 haskell.compiler.ghc96: 9.6.2 -> 9.6.3
https://www.haskell.org/ghc/blog/20230925-ghc-9.6.3-released.html
2023-09-28 15:28:23 +02:00
sternenseemann
6c2a026292 haskellPackages.ghc: 9.4.5 -> 9.4.6 2023-08-08 16:29:20 +02:00
sternenseemann
0a96f3ee25 haskell.compiler.ghc946: init at 9.4.6
https://www.haskell.org/ghc/blog/20230807-ghc-9.4.6-released.html
2023-08-08 16:25:45 +02:00
sternenseemann
20b0406a00 haskell.*.ghc*BinaryMinimal: remove
haskell.compiler.ghc8102BinaryMinimal: remove at 8.10.2
haskell.compiler.ghc8107BinaryMinimal: remove at 8.10.7
haskell.compiler.ghc924BinaryMinimal: remove at 9.2.4

On aarch64-linux the binary GHCs take up about 2.6GB (which compresses
pretty well on zfs as it turns out), so they are below the output limit
of Hydra. This allows us to drop the special casing of aarch platforms
in haskell-packages.nix. While we're at it, drop the minimal variants so
we don't unnecessarily build variants of the binary GHCs.
2023-07-04 15:29:40 +02:00
sternenseemann
03b3056f25 haskell.packages: use pkgs fix point for package set aliases
This should make overriding the precisely versioned set also influence
the default aliases. When overriding the aliases, still only the aliases
would be changed.
2023-07-01 11:56:56 +02:00
sternenseemann
f1ad505272 haskell.compiler.ghc961: remove at 9.6.1 2023-06-08 18:18:11 +02:00
sternenseemann
9d886b0265 haskell.compiler.ghc96: 9.6.1 -> 9.6.2 2023-05-30 13:42:03 +02:00
ners
a83735c6a2 haskell.compiler.ghc962: init at 9.6.2
https://www.haskell.org/ghc/blog/20230523-ghc-9.6.2-released.html
2023-05-30 13:35:14 +02:00
Dennis Gosnell
b9d249b337
ghc: 9.2.7 -> 9.2.8 2023-05-28 20:44:40 +09:00