Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
64389fa
haskellPackages: stackage LTS 20.20 -> LTS 20.21
sternenseemann May 19, 2023
de1b01d
all-cabal-hashes: 2023-05-10T18:33:26Z -> 2023-05-19T20:32:49Z
sternenseemann May 19, 2023
9522947
haskellPackages: regenerate package set based on current config
sternenseemann May 19, 2023
5a13069
Merge master into haskell-updates
github-actions[bot] May 20, 2023
291c8ce
Merge master into haskell-updates
github-actions[bot] May 21, 2023
4bd794e
Merge master into haskell-updates
github-actions[bot] May 22, 2023
5fcbc12
Merge master into haskell-updates
github-actions[bot] May 23, 2023
aa047eb
hledger_1_29_2: fix dependency toward hledger-lib
DamienCassou May 23, 2023
601b302
Merge master into haskell-updates
github-actions[bot] May 24, 2023
16d6f96
Merge master into haskell-updates
github-actions[bot] May 25, 2023
6773338
haskell.packages.ghc810.hls-tactics-plugin: remove doJailbreak and as…
cdepillabout May 25, 2023
19f89fd
haskellPackages.swarm: update dependent brick version
cdepillabout May 25, 2023
0d1d890
Merge pull request #233623 from DamienCassou/fix-hledger_1_29_2
cdepillabout May 25, 2023
72a70bd
haskellPackages.mkDerivation: New `intermediates` output
Gabriella439 Jan 31, 2023
3325820
maintainers: Gabriel439 -> Gabriella439
9999years Apr 24, 2023
c072d78
maintainers: add mercury team
9999years Apr 24, 2023
b278ca2
tests.haskell.incremental: init
9999years Apr 20, 2023
77b857f
Rename Mercury team
9999years Apr 28, 2023
1535bd0
Move intermediates under `share/haskell`
9999years Apr 28, 2023
ec2938b
Document incremental build support for Haskell
9999years Apr 28, 2023
caa65af
Merge pull request #227985 from MercuryTechnologies/gabriella/separat…
cdepillabout May 25, 2023
fa8fc4d
haskellPackages.coinor-clp: mark aarch64-linux as unsupported
cdepillabout May 25, 2023
8b8f0d0
haskell: formatting fix after regenerating packages
cdepillabout May 25, 2023
15ec108
Merge master into haskell-updates
github-actions[bot] May 26, 2023
217ed54
haskellPackages.yesod-core: fix build with Darwin sandbox enabled
reckenrode May 24, 2023
9b1c02e
haskellPackages.http2: fix build with Darwin sandbox enabled
reckenrode May 24, 2023
74af609
Merge pull request #234129 from reckenrode/yesod-core-darwin-sandbox-fix
cdepillabout May 26, 2023
90fd702
Merge pull request #234132 from reckenrode/http2-darwin-fix
cdepillabout May 26, 2023
ec5b05b
haskellPackages.cachix: Link a single nix version
roberth May 26, 2023
490b8d0
Merge master into haskell-updates
github-actions[bot] May 27, 2023
d7d6b1c
haskell.compiler.ghc928: init at 9.2.8
cdepillabout May 27, 2023
33dfdef
Merge pull request #234377 from cdepillabout/ghc-9.2.8
cdepillabout May 27, 2023
53e7652
Merge master into haskell-updates
github-actions[bot] May 28, 2023
be63ea1
haskellPackages: stackage LTS 20.21 -> LTS 20.23
cdepillabout May 28, 2023
3389213
all-cabal-hashes: 2023-05-19T20:32:49Z -> 2023-05-28T10:08:17Z
cdepillabout May 28, 2023
286e022
haskellPackages: regenerate package set based on current config
cdepillabout May 28, 2023
b9d249b
ghc: 9.2.7 -> 9.2.8
cdepillabout May 28, 2023
1203b93
haskell.packages.ghc96.ghc-lib: 9.6.1.20230312 -> 9.6.2.20230523
cdepillabout May 28, 2023
6c032d4
release-haskell: remove pakcs because it is insecure
cdepillabout May 28, 2023
3d4b400
Merge master into haskell-updates
github-actions[bot] May 29, 2023
910bf61
haskellPackages.dyre: remove unneeded patch
cdepillabout May 29, 2023
075761c
haskellPackages: regenerate package set based on current config
cdepillabout May 29, 2023
6856d45
haskell: mark hzk and zoovisitor as dont-distribute-packages
cdepillabout May 29, 2023
7dd51c2
haskellPackages.hls-test-utils: remove unneeded patch
cdepillabout May 29, 2023
1388b98
haskell.packages.ghc94.cborg: remove unneeded patch
cdepillabout May 29, 2023
47b2bd7
haskell.packages.ghc96.cborg: remove unneeded jailbreak
cdepillabout May 29, 2023
99dfe54
haskell.packages.ghc94.hls-stylish-haskell-plugin: remove unneeded patch
cdepillabout May 29, 2023
eca92b2
haskell.packages.ghc94.hls-floskell-plugin: remove unneeded patch
cdepillabout May 29, 2023
2130bdb
haskell.packages.ghc94.hls-rename-plugin: remove unneeded patch
cdepillabout May 29, 2023
722cdf5
haskellPackages.conferer-warp: not broken
stuebinm May 29, 2023
5ea70c4
haskell.packages.ghc96.hie-compat: remove unneeded patch
cdepillabout May 29, 2023
9a3641e
Merge pull request #234784 from stuebinm/unbreak-conferer-warp
cdepillabout May 29, 2023
6ddd597
haskell.packages.ghc96.haskell-language-server: explicitly disable fo…
cdepillabout May 29, 2023
dd9e457
tests.haskell.incremental: change package used from turtle to temporary
cdepillabout May 30, 2023
4e4cf85
Merge master into haskell-updates
github-actions[bot] May 30, 2023
0d31871
haskellPackages: mark builds failing on hydra as broken
cdepillabout May 30, 2023
4a579c6
haskell: mark additional packages as insecure
cdepillabout May 30, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions doc/languages-frameworks/dhall.section.md
Original file line number Diff line number Diff line change
Expand Up @@ -307,12 +307,12 @@ $ nix-env --install --attr haskellPackages.dhall-nixpkgs

$ nix-env --install --attr nix-prefetch-git # Used by dhall-to-nixpkgs

$ dhall-to-nixpkgs github https://github.com/Gabriel439/dhall-semver.git
$ dhall-to-nixpkgs github https://github.com/Gabriella439/dhall-semver.git
{ buildDhallGitHubPackage, Prelude }:
buildDhallGitHubPackage {
name = "dhall-semver";
githubBase = "github.com";
owner = "Gabriel439";
owner = "Gabriella439";
repo = "dhall-semver";
rev = "2d44ae605302ce5dc6c657a1216887fbb96392a4";
fetchSubmodules = false;
Expand Down
71 changes: 71 additions & 0 deletions doc/languages-frameworks/haskell.section.md
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,15 @@ Defaults to `true`.
: Whether to generate an index for interactive navigation of the HTML documentation.
Defaults to `true` if supported.

`doInstallIntermediates`
: Whether to install intermediate build products (files written to `dist/build`
by GHC during the build process). With `enableSeparateIntermediatesOutput`,
these files are instead installed to [a separate `intermediates`
output.][multiple-outputs] The output can then be passed into a future build of
the same package with the `previousIntermediates` argument to support
incremental builds. See [“Incremental builds”](#haskell-incremental-builds) for
more information. Defaults to `false`.

`enableLibraryProfiling`
: Whether to enable [profiling][profiling] for libraries contained in the
package. Enabled by default if supported.
Expand Down Expand Up @@ -371,6 +380,12 @@ Defaults to `false`.
: Whether to install documentation to a separate `doc` output.
Is automatically enabled if `doHaddock` is `true`.

`enableSeparateIntermediatesOutput`
: When `doInstallIntermediates` is true, whether to install intermediate build
products to a separate `intermediates` output. See [“Incremental
builds”](#haskell-incremental-builds) for more information. Defaults to
`false`.

`allowInconsistentDependencies`
: If enabled, allow multiple versions of the same Haskell package in the
dependency tree at configure time. Often in such a situation compilation would
Expand All @@ -381,6 +396,11 @@ later fail because of type mismatches. Defaults to `false`.
when loading the library in the REPL, but requires extra build time and
disk space. Defaults to `false`.

`previousIntermediates`
: If non-null, intermediate build artifacts are copied from this input to
`dist/build` before performing compiling. See [“Incremental
builds”](#haskell-incremental-builds) for more information. Defaults to `null`.

`buildTarget`
: Name of the executable or library to build and install.
If unset, all available targets are built and installed.
Expand Down Expand Up @@ -496,6 +516,54 @@ the [Meta-attributes section](#chap-meta) for their documentation.
* `broken`
* `hydraPlatforms`

### Incremental builds {#haskell-incremental-builds}

`haskellPackages.mkDerivation` supports incremental builds for GHC 9.4 and
newer with the `doInstallIntermediates`, `enableSeparateIntermediatesOutput`,
and `previousIntermediates` arguments.

The basic idea is to first perform a full build of the package in question,
save its intermediate build products for later, and then copy those build
products into the build directory of an incremental build performed later.
Then, GHC will use those build artifacts to avoid recompiling unchanged
modules.

For more detail on how to store and use incremental build products, see
[Gabriella Gonzalez’ blog post “Nixpkgs support for incremental Haskell
builds”.][incremental-builds] motivation behind this feature.

An incremental build for [the `turtle` package][turtle] can be performed like
so:

```nix
let
pkgs = import <nixpkgs> {};
inherit (pkgs) haskell;
inherit (haskell.lib.compose) overrideCabal;

# Incremental builds work with GHC >=9.4.
turtle = haskell.packages.ghc944.turtle;

# This will do a full build of `turtle`, while writing the intermediate build products
# (compiled modules, etc.) to the `intermediates` output.
turtle-full-build-with-incremental-output = overrideCabal (drv: {
doInstallIntermediates = true;
enableSeparateIntermediatesOutput = true;
}) turtle;

# This will do an incremental build of `turtle` by copying the previously
# compiled modules and intermediate build products into the source tree
# before running the build.
#
# GHC will then naturally pick up and reuse these products, making this build
# complete much more quickly than the previous one.
turtle-incremental-build = overrideCabal (drv: {
previousIntermediates = turtle-full-build-with-incremental-output.intermediates;
}) turtle;
in
turtle-incremental-build
```

## Development environments {#haskell-development-environments}

In addition to building and installing Haskell software, nixpkgs can also
Expand Down Expand Up @@ -1083,8 +1151,11 @@ on the issue linked above.
[haskell.nix]: https://input-output-hk.github.io/haskell.nix/index.html
[HLS user guide]: https://haskell-language-server.readthedocs.io/en/latest/configuration.html#configuring-your-editor
[hoogle]: https://wiki.haskell.org/Hoogle
[incremental-builds]: https://www.haskellforall.com/2022/12/nixpkgs-support-for-incremental-haskell.html
[jailbreak-cabal]: https://github.com/NixOS/jailbreak-cabal/
[multiple-outputs]: https://nixos.org/manual/nixpkgs/stable/#chap-multiple-output
[optparse-applicative-completions]: https://github.com/pcapriotti/optparse-applicative/blob/7726b63796aa5d0df82e926d467f039b78ca09e2/README.md#bash-zsh-and-fish-completions
[profiling-detail]: https://cabal.readthedocs.io/en/latest/cabal-project.html#cfg-field-profiling-detail
[profiling]: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/profiling.html
[search.nixos.org]: https://search.nixos.org
[turtle]: https://hackage.haskell.org/package/turtle
12 changes: 6 additions & 6 deletions maintainers/maintainer-list.nix
Original file line number Diff line number Diff line change
Expand Up @@ -5536,18 +5536,18 @@
githubId = 606000;
name = "Gabriel Adomnicai";
};
Gabriel439 = {
email = "Gabriel439@gmail.com";
github = "Gabriella439";
githubId = 1313787;
name = "Gabriel Gonzalez";
};
GabrielDougherty = {
email = "contact@gabrieldougherty.com";
github = "GabrielDougherty";
githubId = 10541219;
name = "Gabriel Dougherty";
};
Gabriella439 = {
email = "GenuineGabriella@gmail.com";
github = "Gabriella439";
githubId = 1313787;
name = "Gabriella Gonzalez";
};
gador = {
email = "florian.brandes@posteo.de";
github = "gador";
Expand Down
11 changes: 10 additions & 1 deletion maintainers/team-list.nix
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ with lib.maintainers; {

dhall = {
members = [
Gabriel439
Gabriella439
ehmry
];
scope = "Maintain Dhall and related packages.";
Expand Down Expand Up @@ -556,6 +556,15 @@ with lib.maintainers; {
shortName = "Minimal Bootstrap";
};

mercury = {
members = [
_9999years
Gabriella439
];
scope = "Group registry for packages maintained by Mercury";
shortName = "Mercury Employees";
};

mobile = {
members = [
samueldr
Expand Down
8 changes: 4 additions & 4 deletions pkgs/data/misc/hackage/pin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"commit": "c607134983625cc3fc664211145b7f31dff95d1c",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/c607134983625cc3fc664211145b7f31dff95d1c.tar.gz",
"sha256": "10frbz00cbklr3k0y45qd0wb9rwln7ivm05nb9lq7vl9a9dxx93w",
"msg": "Update from Hackage at 2023-05-10T18:33:26Z"
"commit": "149e34766e4b393af8f4b1e02b3a8cb341d22151",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/149e34766e4b393af8f4b1e02b3a8cb341d22151.tar.gz",
"sha256": "09acrzaqr05hbhdj2d0i5yj8j321fi7qcxfmpgws25bz9l07qand",
"msg": "Update from Hackage at 2023-05-28T10:08:17Z"
}
Loading