Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • ghc/head.hackage
  • RyanGlScott/head.hackage
  • vaibhavsagar/head.hackage
  • phadej/head.hackage
  • jessoune29/head.hackage
  • alanz/head.hackage
  • clint/head.hackage
  • osa1/head.hackage
  • supersven/head.hackage
  • fendor/head.hackage
  • hsyl20/head.hackage
  • adinapoli/head.hackage
  • alexbiehl/head.hackage
  • mimi.vx/head.hackage
  • Kleidukos/head.hackage
  • wz1000/head.hackage
  • alinab/head.hackage
  • teo/head.hackage
  • duog/head.hackage
  • sheaf/head.hackage
  • expipiplus1/head.hackage
  • drsooch/head.hackage
  • tobias/head.hackage
  • brandonchinn178/head.hackage
  • mpickering/hooks-setup-testing
  • Mikolaj/head.hackage
  • RandomMoonwalker/head.hackage
  • facundominguez/head.hackage
  • trac-fizzixnerd/head.hackage
  • neil.mayhew/head.hackage
  • jappeace/head.hackage
31 results
Show changes
Commits on Source (109)
Showing
with 1924 additions and 309 deletions
patches/* -text
...@@ -10,6 +10,3 @@ ...@@ -10,6 +10,3 @@
[submodule "tests/containers"] [submodule "tests/containers"]
path = tests/containers path = tests/containers
url = https://github.com/haskell/containers.git url = https://github.com/haskell/containers.git
[submodule "tests/liquidhaskell"]
path = tests/liquidhaskell
url = https://github.com/ucsd-progsys/liquidhaskell.git
...@@ -10,7 +10,7 @@ existing Hackage package(s). ...@@ -10,7 +10,7 @@ existing Hackage package(s).
you submit a PR). you submit a PR).
- The patches SHOULD work with at least GHC HEAD and a set of recent stable - The patches SHOULD work with at least GHC HEAD and a set of recent stable
released GHC versions (currently this means with GHC 9.4, 9.6, 9.8, and 9.9). released GHC versions (currently this means with GHC 9.8, 9.10, 9.12, 9.14 and 9.15).
- The patches SHOULD ideally result in the same code being compiled, - The patches SHOULD ideally result in the same code being compiled,
as one of the main purposes of these patches is to make regression as one of the main purposes of these patches is to make regression
...@@ -22,6 +22,12 @@ existing Hackage package(s). ...@@ -22,6 +22,12 @@ existing Hackage package(s).
This repo contains `<pkg-id>.patch` files in the This repo contains `<pkg-id>.patch` files in the
[`patches/`](./patches/) folder (where `<pkg-id>` refers to a specific [`patches/`](./patches/) folder (where `<pkg-id>` refers to a specific
release of a package, e.g. `lens-4.15.3`). release of a package, e.g. `lens-4.15.3`).
Adding a patch forces the system to use that specific version,
so empty patch files may exist to force the system to use that a
newer version, instead of a previous patch if available.
For example consider a patched `th-abstraction-0.5.0`, and an empty patch `th-abstraction-0.6.0`,
if we were to remove the empty patch, `0.6.0`, certain libraries such
as `generics-sop` fail to build, because it's forced to use `0.5.0`.
Once merged to `master`, all package releases whose `<pkg-id>` is Once merged to `master`, all package releases whose `<pkg-id>` is
mentioned will enter the *HEAD.hackage* package index; if there is a mentioned will enter the *HEAD.hackage* package index; if there is a
...@@ -67,7 +73,7 @@ active-repositories: hackage.haskell.org, head.hackage.ghc.haskell.org ...@@ -67,7 +73,7 @@ active-repositories: hackage.haskell.org, head.hackage.ghc.haskell.org
``` ```
Also see Also see
https://cabal.readthedocs.io/en/latest/cabal-project.html#cfg-field-active-repositories. https://cabal.readthedocs.io/en/3.12/cabal-project-description-file.html#cfg-field-active-repositories.
`HEAD.hackage` doesn't bump the bounds of boot packages + certain other packages to avoid the busywork of bumping them. When using `HEAD.hackage`, you should use `--allow-newer` for these packages. The full list is [here](https://gitlab.haskell.org/ghc/head.hackage/-/blob/90570e1c4606c1d7d3d41797ec1b32d1b984067b/ci/MakeConstraints.hs#L40-49). `HEAD.hackage` doesn't bump the bounds of boot packages + certain other packages to avoid the busywork of bumping them. When using `HEAD.hackage`, you should use `--allow-newer` for these packages. The full list is [here](https://gitlab.haskell.org/ghc/head.hackage/-/blob/90570e1c4606c1d7d3d41797ec1b32d1b984067b/ci/MakeConstraints.hs#L40-49).
...@@ -144,6 +150,17 @@ The `scripts/patch-tool` script is a tool for conveniently authoring and updatin ...@@ -144,6 +150,17 @@ The `scripts/patch-tool` script is a tool for conveniently authoring and updatin
1. `scripts/patch-tool update-patches` 1. `scripts/patch-tool update-patches`
1. Commit the patch 1. Commit the patch
When contributing a patch, one needs to be mindful of [Hackage revisions].
head.hackage doesn't combine patches with the revisions of a package. Instead,
a patch is applied on the unrevised package (also called revision 0). This
implies that when contributing patches, it might be necessary to additionally
include the changes that are already in some revision. Moreover, this also
implies that if a patch only contains changes that are already present in
revisions, then contributing the patch to head.hackage is useless as the changes
are already available for building.
[Hackage revisions]: https://github.com/haskell-infra/hackage-trustees/blob/master/revisions-information.md
### GitLab CI ### GitLab CI
GHC's GitLab instance uses GitLab CI and the `head-hackage-ci` tool (contained GHC's GitLab instance uses GitLab CI and the `head-hackage-ci` tool (contained
......
...@@ -47,7 +47,9 @@ allowNewerPkgs = S.fromList ...@@ -47,7 +47,9 @@ allowNewerPkgs = S.fromList
, "Cabal" , "Cabal"
, "containers" , "containers"
, "deepseq" , "deepseq"
, "text" ] `S.union` bootPkgs , "text"
, "ghc-boot"
, "ghc-boot-th" ] `S.union` bootPkgs
constraints :: [String] -> Doc constraints :: [String] -> Doc
constraints constraints = constraints constraints =
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
-- ghc/ghc#23048. -- ghc/ghc#23048.
index-state: index-state:
hackage.haskell.org 2024-02-10T23:09:00Z, hackage.haskell.org 2025-05-11T00:00:00Z,
head.hackage HEAD head.hackage HEAD
constraints: th-abstraction >= 0.4 constraints: th-abstraction >= 0.4
......
...@@ -88,24 +88,39 @@ commit="$(ghc_commit)" ...@@ -88,24 +88,39 @@ commit="$(ghc_commit)"
arch="$(ghc_arch)" arch="$(ghc_arch)"
echo "Found GHC $version, commit $commit." echo "Found GHC $version, commit $commit."
case $version in case $version in
9.4.*) 9.8.*)
# package ticket # package ticket
broken linear-generics 22546
broken liquidhaskell-boot 350 broken liquidhaskell-boot 350
# singletons-base only supports the latest ghc
broken singletons-base 00000
;; ;;
9.6.*) 9.10.*)
# package ticket # package ticket
broken liquidhaskell-boot 350 broken liquidhaskell-boot 350
# singletons-base only supports the latest ghc
broken singletons-base 00000
;; ;;
9.8.*) 9.12.*)
# package ticket # package ticket
broken liquidhaskell-boot 350 broken liquidhaskell-boot 350
;; ;;
9.9.*) 9.14.*)
# package ticket
broken ghcide 00000
broken Agda 26154
# broken until strict-containers is updated to work with the new containers
broken strict-containers 00000
;;
9.15.*)
# package ticket # package ticket
broken ghcide 00000
broken Agda 26154
# broken until strict-containers is updated to work with the new containers
broken strict-containers 00000
;; ;;
*) *)
...@@ -135,19 +150,20 @@ esac ...@@ -135,19 +150,20 @@ esac
# #
# These are packages which we don't have patches for but want to test anyways. # These are packages which we don't have patches for but want to test anyways.
extra_package lens 5.2.3 extra_package lens 5.2.3
extra_package generic-lens 2.2.2.0
extra_package optics 0.4.2.1 extra_package optics 0.4.2.1
extra_package aeson 2.2.1.0 extra_package aeson 2.2.3.0
extra_package criterion 1.6.3.0 extra_package criterion 1.6.3.0
extra_package scotty 0.21 extra_package scotty 0.21
extra_package generic-lens 2.2.2.0 extra_package generic-lens 2.2.2.0
extra_package microstache 1.0.2.3 extra_package microstache 1.0.2.3
extra_package singletons-base 3.1.1 extra_package singletons-base 3.5
extra_package servant 0.20.1 extra_package servant 0.20.1
extra_package hgmp 0.1.2.1 extra_package hgmp 0.1.2.1
extra_package Agda 2.6.4.1 extra_package Agda 2.7.0.1
extra_package mmark 0.0.7.6 extra_package mmark 0.0.7.6
extra_package doctest 0.22.2 extra_package doctest 0.24.0
extra_package tasty 1.5 extra_package tasty 1.5.3
extra_package pandoc 3.1.11.1 extra_package pandoc 3.1.11.1
extra_package servant-conduit 0.16 extra_package servant-conduit 0.16
extra_package servant-machines 0.16 extra_package servant-machines 0.16
...@@ -156,8 +172,8 @@ extra_package futhark 0.25.13 ...@@ -156,8 +172,8 @@ extra_package futhark 0.25.13
extra_package generic-random 1.5.0.1 extra_package generic-random 1.5.0.1
extra_package lame 0.2.2 extra_package lame 0.2.2
extra_package inspection-testing 0.5.0.3 extra_package inspection-testing 0.5.0.3
extra_package ghcide 2.6.0.0 extra_package ghcide 2.9.0.0
extra_package ghc-typelits-extra 0.4.6 extra_package ghc-typelits-extra 0.4.7
# This package is affected by https://gitlab.haskell.org/ghc/ghc/-/issues/22912 # This package is affected by https://gitlab.haskell.org/ghc/ghc/-/issues/22912
extra_package vector-space 0.16 extra_package vector-space 0.16
...@@ -216,35 +232,9 @@ case "$BUILD_MODE" in ...@@ -216,35 +232,9 @@ case "$BUILD_MODE" in
test_package all "$(pwd)/../tests/text" test_package all "$(pwd)/../tests/text"
test_package bytestring-tests "$(pwd)/../tests/bytestring" test_package bytestring-tests "$(pwd)/../tests/bytestring"
test_package all "$(pwd)/../tests/containers/containers-tests" test_package all "$(pwd)/../tests/containers/containers-tests"
case $version in
9.4.*)
;;
9.6.*)
;;
9.8.*)
;;
9.9.*)
test_package liquidhaskell-boot "$(pwd)/../tests/liquidhaskell/liquidhaskell-boot"
;;
*)
;;
esac
;; ;;
COMPAT) COMPAT)
test_package system-test "$(pwd)/../tests/ghc-debug/**/*.cabal" test_package system-test "$(pwd)/../tests/ghc-debug/**/*.cabal"
test_package ghc-tests "$(pwd)/../tests/ghc-tests" test_package ghc-tests "$(pwd)/../tests/ghc-tests"
case $version in
9.4.*)
;;
9.6.*)
;;
9.8.*)
;;
9.9.*)
test_package liquidhaskell-boot "$(pwd)/../tests/liquidhaskell/liquidhaskell-boot"
;;
*)
;;
esac
;; ;;
esac esac
...@@ -2,25 +2,7 @@ ...@@ -2,25 +2,7 @@
with nixpkgs; with nixpkgs;
let let
haskellPackages_ = nixpkgs.haskell.packages.ghc963.override { haskellPackages = nixpkgs.haskellPackages;
all-cabal-hashes = sources.all-cabal-hashes.outPath;
overrides = self: super: {
mkDerivation = args: super.mkDerivation (args // {
enableLibraryProfiling = false;
doCheck = false;
doHoogle = false;
doHaddock = false;
});
};
};
haskellPackages = haskellPackages_.extend (self: super: {
# This is marked broken in nixpkgs, but seems to work fine.
cabal-plan = self.callHackage "cabal-plan" "0.7.3.0" {};
# The easiest fix for an incorrect override in nixpkgs (https://github.com/NixOS/nixpkgs/issues/260013)
tls = self.callHackage "tls" "1.6.0" {};
});
hackage-repo-tool = hackage-repo-tool =
let src = sources.hackage-security.outPath; let src = sources.hackage-security.outPath;
......
...@@ -15,41 +15,84 @@ ARCH="$(uname -m)" ...@@ -15,41 +15,84 @@ ARCH="$(uname -m)"
# `needs` field in ghc/ghc .gitlab-ci.yml to avoid triggering the downstream job # `needs` field in ghc/ghc .gitlab-ci.yml to avoid triggering the downstream job
# too early. # too early.
case $ARCH in # Before the update to deb12, we use the deb10 bindists
aarch64) case $UPSTREAM_BRANCH_NAME in
if [ -n "$NIGHTLY" ]; then ghc-9.8|ghc-9.10)
BINDIST_NAME="ghc-aarch64-linux-deb10-validate.tar.xz" case $ARCH in
JOB_NAME="nightly-aarch64-linux-deb10-validate" aarch64)
elif [ "$RELEASE_JOB" == "yes" ]; then if [ -n "$NIGHTLY" ]; then
BINDIST_NAME="ghc-aarch64-linux-deb10-release+no_split_sections.tar.xz" BINDIST_NAME="ghc-aarch64-linux-deb10-validate.tar.xz"
JOB_NAME="release-aarch64-linux-deb10-release+no_split_sections" JOB_NAME="nightly-aarch64-linux-deb10-validate"
else elif [ "$RELEASE_JOB" == "yes" ]; then
BINDIST_NAME="ghc-aarch64-linux-deb10-validate.tar.xz" BINDIST_NAME="ghc-aarch64-linux-deb10-release+no_split_sections.tar.xz"
JOB_NAME="aarch64-linux-deb10-validate" JOB_NAME="release-aarch64-linux-deb10-release+no_split_sections"
fi else
;; BINDIST_NAME="ghc-aarch64-linux-deb10-validate.tar.xz"
*) JOB_NAME="aarch64-linux-deb10-validate"
if [ -n "$SLOW_VALIDATE" ]; then fi
BINDIST_NAME="ghc-x86_64-linux-deb10-numa-slow-validate.tar.xz" ;;
if [ -n "$NIGHTLY" ]; then *)
JOB_NAME="nightly-x86_64-linux-deb10-numa-slow-validate" if [ -n "$SLOW_VALIDATE" ]; then
elif [ "$RELEASE_JOB" == "yes" ]; then BINDIST_NAME="ghc-x86_64-linux-deb10-numa-slow-validate.tar.xz"
echo "No slow validate build in release job" if [ -n "$NIGHTLY" ]; then
exit 2 JOB_NAME="nightly-x86_64-linux-deb10-numa-slow-validate"
else elif [ "$RELEASE_JOB" == "yes" ]; then
JOB_NAME="x86_64-linux-deb10-numa-slow-validate" echo "No slow validate build in release job"
fi exit 2
else else
BINDIST_NAME="ghc-x86_64-linux-fedora33-release.tar.xz" JOB_NAME="x86_64-linux-deb10-numa-slow-validate"
if [ -n "$NIGHTLY" ]; then fi
JOB_NAME="nightly-x86_64-linux-fedora33-release" else
elif [ "$RELEASE_JOB" == "yes" ]; then BINDIST_NAME="ghc-x86_64-linux-fedora33-release.tar.xz"
JOB_NAME="release-x86_64-linux-fedora33-release" if [ -n "$NIGHTLY" ]; then
else JOB_NAME="nightly-x86_64-linux-fedora33-release"
JOB_NAME="x86_64-linux-fedora33-release" elif [ "$RELEASE_JOB" == "yes" ]; then
fi JOB_NAME="release-x86_64-linux-fedora33-release"
fi else
;; JOB_NAME="x86_64-linux-fedora33-release"
fi
fi
;;
esac
;;
*) # Post update to use deb12
case $ARCH in
aarch64)
if [ -n "$NIGHTLY" ]; then
BINDIST_NAME="ghc-aarch64-linux-deb12-validate.tar.xz"
JOB_NAME="nightly-aarch64-linux-deb12-validate"
elif [ "$RELEASE_JOB" == "yes" ]; then
BINDIST_NAME="ghc-aarch64-linux-deb12-release+no_split_sections.tar.xz"
JOB_NAME="release-aarch64-linux-deb12-release+no_split_sections"
else
BINDIST_NAME="ghc-aarch64-linux-deb12-validate.tar.xz"
JOB_NAME="aarch64-linux-deb12-validate"
fi
;;
*)
if [ -n "$SLOW_VALIDATE" ]; then
BINDIST_NAME="ghc-x86_64-linux-deb12-numa-slow-validate.tar.xz"
if [ -n "$NIGHTLY" ]; then
JOB_NAME="nightly-x86_64-linux-deb12-numa-slow-validate"
elif [ "$RELEASE_JOB" == "yes" ]; then
echo "No slow validate build in release job"
exit 2
else
JOB_NAME="x86_64-linux-deb12-numa-slow-validate"
fi
else
BINDIST_NAME="ghc-x86_64-linux-fedora33-release.tar.xz"
if [ -n "$NIGHTLY" ]; then
JOB_NAME="nightly-x86_64-linux-fedora33-release"
elif [ "$RELEASE_JOB" == "yes" ]; then
JOB_NAME="release-x86_64-linux-fedora33-release"
else
JOB_NAME="x86_64-linux-fedora33-release"
fi
fi
;;
esac
;;
esac esac
>&2 echo "BINDIST_NAME=${BINDIST_NAME}" >&2 echo "BINDIST_NAME=${BINDIST_NAME}"
......
...@@ -14,7 +14,7 @@ stages: ...@@ -14,7 +14,7 @@ stages:
extends: .run-ci extends: .run-ci
parallel: parallel:
matrix: matrix:
- UPSTREAM_BRANCH_NAME: [ghc-9.4, ghc-9.6, ghc-9.8] - UPSTREAM_BRANCH_NAME: [ghc-9.8, ghc-9.10, ghc-9.12, ghc-9.14]
ARCH: [aarch64, x86_64] ARCH: [aarch64, x86_64]
- UPSTREAM_BRANCH_NAME: [master] - UPSTREAM_BRANCH_NAME: [master]
ARCH: [aarch64, x86_64] ARCH: [aarch64, x86_64]
...@@ -47,7 +47,7 @@ update-repo: ...@@ -47,7 +47,7 @@ update-repo:
SLOW_VALIDATE: 1 SLOW_VALIDATE: 1
artifacts: false artifacts: false
rules: rules:
- if: $CI_COMMIT_BRANCH == "master" - if: $CI_COMMIT_BRANCH == "master" && $CI_PROJECT_NAMESPACE == "ghc"
trigger: trigger:
include: ci/pipelines/update-repo.yml include: ci/pipelines/update-repo.yml
strategy: depend strategy: depend
...@@ -61,7 +61,7 @@ update-repo: ...@@ -61,7 +61,7 @@ update-repo:
update-branch: update-branch:
stage: update-branch stage: update-branch
rules: rules:
- if: $CI_COMMIT_BRANCH == "master" && $CI_PIPELINE_SOURCE != 'merge_request_event' - if: $CI_COMMIT_BRANCH == "master" && $CI_PROJECT_NAMESPACE == "ghc" && $CI_PIPELINE_SOURCE != 'merge_request_event'
trigger: trigger:
include: ci/pipelines/update-branch.yml include: ci/pipelines/update-branch.yml
strategy: depend strategy: depend
......
...@@ -3,10 +3,9 @@ ...@@ -3,10 +3,9 @@
cat >/etc/nix/nix.conf <<EOF cat >/etc/nix/nix.conf <<EOF
sandbox = false sandbox = false
build-users-group = build-users-group =
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= loony-tools:pr9m4BkM/5/eSTZlkQyRt57Jz7OMBxNSUiMC4FkcNfk= trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
substituters = https://cache.nixos.org https://cache.zw3rk.com substituters = https://cache.nixos.org
experimental-features = nix-command flakes experimental-features = nix-command flakes
cores = 1 # to avoid resource exhaustion. See: <https://gitlab.haskell.org/ghc/head.hackage/-/issues/38>
EOF EOF
# Equivalent to running `nix develop` but works in CI scripts. # Equivalent to running `nix develop` but works in CI scripts.
......
{ {
"nodes": { "nodes": {
"all-cabal-hashes": {
"flake": false,
"locked": {
"lastModified": 1696837982,
"narHash": "sha256-QebSglEs/Xar/Z/59Fjmv7WDy9Zj1A+7iAJ5yDb7Sjg=",
"owner": "commercialhaskell",
"repo": "all-cabal-hashes",
"rev": "b39aba9b53425d4160667f75b0e1e9ecd3c8bce9",
"type": "github"
},
"original": {
"owner": "commercialhaskell",
"ref": "hackage",
"repo": "all-cabal-hashes",
"type": "github"
}
},
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1673956053, "lastModified": 1733328505,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"type": "github" "type": "github"
}, },
"original": { "original": {
...@@ -52,11 +35,11 @@ ...@@ -52,11 +35,11 @@
"hackage-security": { "hackage-security": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696439837, "lastModified": 1725697204,
"narHash": "sha256-3/swYPrsBuHl9//S/PwmDqyG2ZIi5c2OCBob3qjkidU=", "narHash": "sha256-zaLDDeKQpBVaSBRKv/X3WTfeu0rLazy5H8AfJQlsVGM=",
"owner": "haskell", "owner": "haskell",
"repo": "hackage-security", "repo": "hackage-security",
"rev": "0b501400a4b52593dfab7a1b106fcebdaeba6af7", "rev": "8ada49de74456f3aebd2ae08cf11151acbf8ef05",
"type": "github" "type": "github"
}, },
"original": { "original": {
...@@ -67,11 +50,11 @@ ...@@ -67,11 +50,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1696604326, "lastModified": 1733392399,
"narHash": "sha256-YXUNI0kLEcI5g8lqGMb0nh67fY9f2YoJsILafh6zlMo=", "narHash": "sha256-kEsTJTUQfQFIJOcLYFt/RvNxIK653ZkTBIs4DG+cBns=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "87828a0e03d1418e848d3dd3f3014a632e4a4f64", "rev": "d0797a04b81caeae77bcff10a9dde78bc17f5661",
"type": "github" "type": "github"
}, },
"original": { "original": {
...@@ -99,7 +82,6 @@ ...@@ -99,7 +82,6 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"all-cabal-hashes": "all-cabal-hashes",
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
"ghc-artefact-nix": "ghc-artefact-nix", "ghc-artefact-nix": "ghc-artefact-nix",
"hackage-security": "hackage-security", "hackage-security": "hackage-security",
......
...@@ -3,8 +3,6 @@ ...@@ -3,8 +3,6 @@
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
inputs.ghc-artefact-nix.url = "github:mpickering/ghc-artefact-nix"; inputs.ghc-artefact-nix.url = "github:mpickering/ghc-artefact-nix";
inputs.ghc-artefact-nix.flake = false; inputs.ghc-artefact-nix.flake = false;
inputs.all-cabal-hashes.url = "github:commercialhaskell/all-cabal-hashes/hackage";
inputs.all-cabal-hashes.flake = false;
inputs.hackage-security.url = "github:haskell/hackage-security"; inputs.hackage-security.url = "github:haskell/hackage-security";
inputs.hackage-security.flake = false; inputs.hackage-security.flake = false;
inputs.overlay-tool.url = "github:bgamari/hackage-overlay-repo-tool"; inputs.overlay-tool.url = "github:bgamari/hackage-overlay-repo-tool";
......
diff --git a/Agda.cabal b/Agda.cabal
index 9a0863c..cc2f024 100644
--- a/Agda.cabal
+++ b/Agda.cabal
@@ -1,7 +1,7 @@
cabal-version: 2.4
name: Agda
version: 2.7.0.1
-build-type: Custom
+build-type: Simple
license: MIT
license-file: LICENSE
copyright: (c) 2005-2024 The Agda Team.
diff --git a/Setup.hs b/Setup.hs
deleted file mode 100644
index 7064a95..0000000
--- a/Setup.hs
+++ /dev/null
@@ -1,235 +0,0 @@
-{-# LANGUAGE BlockArguments #-}
-{-# LANGUAGE CPP #-}
-{-# LANGUAGE LambdaCase #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-
-import Data.Functor ( (<&>) )
-import Data.List ( intercalate )
-import Data.Maybe ( catMaybes )
-
-import Distribution.Simple
-import Distribution.Simple.LocalBuildInfo
-import Distribution.Simple.Setup
-import Distribution.Simple.BuildPaths (exeExtension)
-import Distribution.PackageDescription
-import Distribution.System ( buildPlatform )
-
-import System.FilePath
-import System.Directory (doesFileExist, makeAbsolute, removeFile)
-import System.Environment (getEnvironment)
-import System.Process
-import System.Exit
-import System.IO
-import System.IO.Error (isDoesNotExistError)
-
-import Control.Monad
-import Control.Exception
-
-main :: IO ()
-main = defaultMainWithHooks userhooks
-
-userhooks :: UserHooks
-userhooks = simpleUserHooks
- { copyHook = copyHook'
- , instHook = instHook'
- }
-
--- Install and copy hooks are default, but amended with .agdai files in data-files.
-instHook' :: PackageDescription -> LocalBuildInfo -> UserHooks -> InstallFlags -> IO ()
-instHook' pd lbi hooks flags = instHook simpleUserHooks pd' lbi hooks flags where
- pd' = pd { dataFiles = concatMap (expandAgdaExt pd) $ dataFiles pd }
-
--- Andreas, 2020-04-25, issue #4569: defer 'generateInterface' until after
--- the library has been copied to a destination where it can be found.
--- @cabal build@ will likely no longer produce the .agdai files, but @cabal install@ does.
-copyHook' :: PackageDescription -> LocalBuildInfo -> UserHooks -> CopyFlags -> IO ()
-copyHook' pd lbi hooks flags = do
- -- Copy library and executable etc.
- copyHook simpleUserHooks pd lbi hooks flags
- if wantInterfaces flags && not (skipInterfaces lbi) then do
- -- Generate .agdai files.
- success <- generateInterfaces pd lbi
- -- Copy again, now including the .agdai files.
- when success $ copyHook simpleUserHooks pd' lbi hooks flags
- else
- putStrLn "Skipping generation of Agda core library interface files"
- where
- pd' = pd
- { dataFiles = concatMap (expandAgdaExt pd) $ dataFiles pd
- -- Andreas, 2020-04-25, issue #4569:
- -- I tried clearing some fields to avoid copying again.
- -- However, cabal does not like me messing with the PackageDescription.
- -- Clearing @library@ or @executables@ leads to internal errors.
- -- Thus, we just copy things again. Not a terrible problem.
- -- , library = Nothing
- -- , executables = []
- -- , subLibraries = []
- -- , foreignLibs = []
- -- , testSuites = []
- -- , benchmarks = []
- -- , extraSrcFiles = []
- -- , extraTmpFiles = []
- -- , extraDocFiles = []
- }
-
--- We only want to write interfaces if installing the executable.
--- If we're installing *just* the library, the interface files are not needed
--- and, most importantly, the executable will not be available to be run (cabal#10235)
-wantInterfaces :: CopyFlags -> Bool
-wantInterfaces _flags = do
-#if MIN_VERSION_Cabal(3,11,0)
- any isAgdaExe (copyArgs _flags)
- where
- isAgdaExe "exe:agda" = True
- isAgdaExe _ = False
-#else
- True
-#endif
-
--- Used to add .agdai files to data-files
-expandAgdaExt :: PackageDescription -> FilePath -> [FilePath]
-expandAgdaExt pd = \ fp ->
- -- N.B. using lambda here so that @expandAgdaExt pd@ can be partially evaluated.
- if takeExtension fp == ".agda" then [ fp, iFile fp ] else [ fp ]
- where
- iFile = toIFile pd
-
-version :: PackageDescription -> String
-version = intercalate "." . map show . versionNumbers . pkgVersion . package
-
--- | This returns @lib/prim@.
---
-projectRoot :: PackageDescription -> FilePath
-projectRoot pd = takeDirectory agdaLibFile
- where
- [agdaLibFile] = filter ((".agda-lib" ==) . takeExtension) $ dataFiles pd
-
--- | Turns e.g. @lib/prim/Agda/Primitive.agda@
--- into @lib/prim/_build/2.7.0/agda/Agda/Primitive.agdai@.
---
--- An absolute path will be returned unchanged.
-toIFile ::
- PackageDescription
- -> FilePath -- ^ Should be a relative path.
- -> FilePath -- ^ Then this is also a relative path.
-toIFile pd = (buildDir </>) . fileName
- where
- root = projectRoot pd
- -- e.g. root = "lib/prim"
- buildDir = root </> "_build" </> version pd </> "agda"
- -- e.g. buildDir = "lib/prim/_build/2.7.0/agda"
- fileName file = makeRelative root $ replaceExtension file ".agdai"
- -- e.g. fileName "lib/prim/Agda/Primitive.agda" = "Agda/Primitive.agdai"
-
--- Andreas, 2019-10-21, issue #4151:
--- skip the generation of interface files with program suffix "-quicker"
-skipInterfaces :: LocalBuildInfo -> Bool
-skipInterfaces lbi = fromPathTemplate (progSuffix lbi) == "-quicker"
-
--- | Returns 'True' if call to Agda executes without error.
---
-generateInterfaces :: PackageDescription -> LocalBuildInfo -> IO Bool
-generateInterfaces pd lbi = do
-
- putStrLn "Generating Agda core library interface files..."
-
- -- for debugging, these are examples how you can inspect the flags...
- -- print $ flagAssignment lbi
- -- print $ fromPathTemplate $ progSuffix lbi
-
- -- then...
- let bdir = buildDir lbi
- agda = bdir </> "agda" </> "agda" <.> agdaExeExtension
-
- -- We should be in the current directory root of the cabal package
- -- and data-files reside in src/data relative to this.
- --
- ddir <- makeAbsolute $ "src" </> "data"
-
- -- The Agda.Primitive* and Agda.Builtin* modules.
- let builtins = filter ((== ".agda") . takeExtension) (dataFiles pd)
-
- -- The absolute filenames of their interfaces.
- let interfaces = map ((ddir </>) . toIFile pd) builtins
-
- -- Remove all existing .agdai files.
- forM_ interfaces $ \ fp -> removeFile fp `catch` \ e ->
- unless (isDoesNotExistError e) $ throwIO e
-
- -- Type-check all builtin modules (in a single Agda session to take
- -- advantage of caching).
- let agdaDirEnvVar = "Agda_datadir"
- let agdaArgs =
- [ "--interaction"
- , "--interaction-exit-on-error"
- , "-Werror"
- , "-v0"
- ]
- let loadBuiltinCmds = concat
- [ [ cmd ("Cmd_load " ++ f ++ " []")
- , cmd "Cmd_no_metas"
- -- Fail if any meta-variable is unsolved.
- ]
- | b <- builtins
- , let f = show (ddir </> b)
- cmd c = "IOTCM " ++ f ++ " None Indirect (" ++ c ++ ")"
- ]
- let callLines = concat
- [ [ unwords $ concat
- [ [ concat [ agdaDirEnvVar, "=", ddir ] ]
- , [ agda ]
- , agdaArgs
- , [ "<<EOF" ]
- ]
- ]
- , loadBuiltinCmds
- , [ "EOF" ]
- ]
- let onIOError (e :: IOException) = False <$ do
- warn $ concat
- [ [ "*** Could not generate Agda library interface files."
- , "*** Reason:"
- , show e
- , "*** The attempted call to Agda was:"
- ]
- , callLines
- ]
- env <- getEnvironment
- handle onIOError $ do
-
- -- Generate interface files via a call to Agda.
- readCreateProcess
- (proc agda agdaArgs)
- { delegate_ctlc = True
- -- Make Agda look for data files in a
- -- certain place.
- , env = Just ((agdaDirEnvVar, ddir) : env)
- }
- (unlines loadBuiltinCmds)
-
- -- Check whether all interface files have been generated.
- missing <- catMaybes <$> forM interfaces \ f ->
- doesFileExist f <&> \case
- True -> Nothing
- False -> Just f
-
- -- Warn if not all interface files have been generated, but don't crash.
- -- This might help with issue #7455.
- let success = null missing
- unless success $ warn $ concat
- [ [ "*** Agda failed to generate the following library interface files:" ]
- , missing
- ]
- return success
-
-warn :: [String] -> IO ()
-warn msgs = putStr $ unlines $ concat
- [ [ "*** Warning!" ]
- , msgs
- , [ "*** Ignoring error, continuing installation..." ]
- ]
-
-
-
-agdaExeExtension :: String
-agdaExeExtension = exeExtension buildPlatform
This diff is collapsed.
diff --git a/aur.cabal b/aur.cabal diff --git a/aur.cabal b/aur.cabal
index b7130e8..fe8c0cc 100644 index b7130e8..5acb75d 100644
--- a/aur.cabal --- a/aur.cabal
+++ b/aur.cabal +++ b/aur.cabal
@@ -1,6 +1,7 @@ @@ -1,6 +1,7 @@
...@@ -10,7 +10,7 @@ index b7130e8..fe8c0cc 100644 ...@@ -10,7 +10,7 @@ index b7130e8..fe8c0cc 100644
synopsis: Access metadata from the Arch Linux User Repository. synopsis: Access metadata from the Arch Linux User Repository.
description: description:
Access package information from Arch Linux's AUR via its RPC interface. The Access package information from Arch Linux's AUR via its RPC interface. The
@@ -36,7 +37,7 @@ library @@ -36,11 +37,11 @@ library
hs-source-dirs: lib hs-source-dirs: lib
exposed-modules: Linux.Arch.Aur exposed-modules: Linux.Arch.Aur
build-depends: build-depends:
...@@ -19,3 +19,8 @@ index b7130e8..fe8c0cc 100644 ...@@ -19,3 +19,8 @@ index b7130e8..fe8c0cc 100644
, bytestring , bytestring
, hashable >= 1.2 , hashable >= 1.2
, http-types ^>=0.12 , http-types ^>=0.12
- , text ^>=1.2
+ , text >=1.2
test-suite aur-test
import: commons
diff --git a/aura.cabal b/aura.cabal
index 937ba4e..1f51e64 100644
--- a/aura.cabal
+++ b/aura.cabal
@@ -43,14 +43,14 @@ common commons
, base >=4.12 && <5
, bytestring ^>=0.11
, containers ^>=0.6
- , megaparsec >=7 && <10
+ , megaparsec >=7
, rio ^>=0.1.17
, text >=1.2 && < 1.3 || ^>= 2.0
, versions ^>=6.0.3
common libexec
build-depends:
- , aeson >=2.1 && < 2.3
+ , aeson >=2.1
, aur ^>=7.0.5
, http-client >=0.5 && <0.8
, prettyprinter >=1.2 && <1.8
@@ -58,7 +58,7 @@ common libexec
, scheduler >=1.1 && <2.1
, transformers ^>=0.5
, typed-process ^>=0.2
- , unix ^>=2.7.2.2
+ , unix >=2.7.2.2
library
import: commons, libexec
@@ -90,14 +90,14 @@ library
Aura.Utils
build-depends:
- , algebraic-graphs >=0.1 && <0.8
- , filepath ^>=1.4
+ , algebraic-graphs >=0.1
+ , filepath >=1.4
, hashable ^>=1.4
, http-types >=0.9 && <0.13
- , language-bash >=0.8 && <0.10
+ , language-bash >=0.8
, network-uri ^>=2.6
, stm ^>=2.5
- , time >=1.8 && <1.13
+ , time >=1.8
executable aura
import: commons, libexec
diff --git a/aura.cabal b/aura.cabal
index 40eaffb..e7a23d4 100644
--- a/aura.cabal
+++ b/aura.cabal
@@ -1,6 +1,7 @@
cabal-version: 2.2
name: aura
version: 3.2.9
+x-revision: 3
synopsis: A secure package manager for Arch Linux and the AUR.
description:
Aura is a package manager for Arch Linux. It connects to both the
@@ -50,7 +51,7 @@ common commons
common libexec
build-depends:
- , aeson ^>=2.0
+ , aeson >=2.1 && < 2.3
, aur ^>=7.0.5
, http-client >=0.5 && <0.8
, prettyprinter >=1.2 && <1.8
@@ -90,7 +91,7 @@ library
Aura.Utils
build-depends:
- , algebraic-graphs >=0.1 && <0.7
+ , algebraic-graphs >=0.1 && <0.8
, filepath ^>=1.4
, hashable ^>=1.4
, http-types >=0.9 && <0.13
diff --git a/lib/Aura/Utils.hs b/lib/Aura/Utils.hs
index d72b594..9983f44 100644
--- a/lib/Aura/Utils.hs
+++ b/lib/Aura/Utils.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE DeriveFunctor #-}
{-# LANGUAGE RankNTypes #-}
-- |
@@ -141,6 +142,7 @@ type Traversal' s a = forall f. Applicative f => (a -> f a) -> s -> f s
-- These
data These a b = This a | That b | These a b
+ deriving Functor
instance (Semigroup a, Semigroup b) => Semigroup (These a b) where
This x <> This y = This (x <> y)
diff --git a/bifunctors.cabal b/bifunctors.cabal
index c9a7b92..d535902 100644
--- a/bifunctors.cabal
+++ b/bifunctors.cabal
@@ -2,6 +2,7 @@ cabal-version: 1.24
name: bifunctors
category: Data, Functors
version: 5.6.1
+x-revision: 2
license: BSD3
license-file: LICENSE
author: Edward A. Kmett
@@ -45,9 +46,9 @@ library
base >= 4.9 && < 5,
assoc >= 1.1 && < 1.2,
comonad >= 5.0.7 && < 6,
- containers >= 0.5.7.1 && < 0.7,
- template-haskell >= 2.11 && < 2.21,
- th-abstraction >= 0.4.2.0 && < 0.6,
+ containers >= 0.5.7.1 && < 0.8,
+ template-haskell >= 2.11 && < 2.22,
+ th-abstraction >= 0.4.2.0 && < 0.7,
transformers >= 0.5 && < 0.7
if !impl(ghc >= 8.2)
diff --git a/src/Data/Bifunctor/TH.hs b/src/Data/Bifunctor/TH.hs
index 04ec9f1..29c0d65 100644
--- a/src/Data/Bifunctor/TH.hs
+++ b/src/Data/Bifunctor/TH.hs
@@ -1201,7 +1201,7 @@ mkSimpleLam lam = do
-- Without the underscore, that code would trigger -Wunused-matches warnings.
n <- newName "_n"
body <- lam (VarE n)
- return $ LamE [VarP n] body
+ lamE [varP n] (pure body)
-- Make a 'LamE' using two fresh variables.
mkSimpleLam2 :: (Exp -> Exp -> Q Exp) -> Q Exp
@@ -1217,7 +1217,7 @@ mkSimpleLam2 lam = do
n1 <- newName "_n1"
n2 <- newName "n2"
body <- lam (VarE n1) (VarE n2)
- return $ LamE [VarP n1, VarP n2] body
+ lamE [varP n1, varP n2] (pure body)
-- "Con a1 a2 a3 -> fold [x1 a1, x2 a2, x3 a3]"
--
diff --git a/bv-sized.cabal b/bv-sized.cabal
index 5ff840f..9a6222c 100644
--- a/bv-sized.cabal
+++ b/bv-sized.cabal
@@ -32,7 +32,7 @@ library
deepseq >= 1.4.0 && < 1.5.0,
panic >= 0.4.0 && < 0.5,
parameterized-utils >= 2.0.2 && < 2.2,
- random >= 1.2.0 && < 1.3,
+ random >= 1.3.0 && < 1.4,
th-lift >= 0.8.1 && < 0.9
hs-source-dirs: src
default-language: Haskell2010
diff --git a/src/Data/BitVector/Sized/Signed.hs b/src/Data/BitVector/Sized/Signed.hs
index 691d248..05c8ade 100644
--- a/src/Data/BitVector/Sized/Signed.hs
+++ b/src/Data/BitVector/Sized/Signed.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
@@ -141,6 +142,10 @@ instance KnownNat w => Uniform (SignedBV w) where
instance (KnownNat w, 1 <= w) => UniformRange (SignedBV w) where
uniformRM (SignedBV lo, SignedBV hi) g =
SignedBV <$> BV.sUniformRM knownNat (lo, hi) g
+#if MIN_VERSION_random(1,3,0)
+ isInRange (lo, hi) x =
+ lo <= x && x <= hi
+#endif
instance (KnownNat w, 1 <= w) => Random (SignedBV w)
diff --git a/src/Data/BitVector/Sized/Unsigned.hs b/src/Data/BitVector/Sized/Unsigned.hs
index 65f3ece..f9cb94f 100644
--- a/src/Data/BitVector/Sized/Unsigned.hs
+++ b/src/Data/BitVector/Sized/Unsigned.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
@@ -132,6 +133,10 @@ instance KnownNat w => Uniform (UnsignedBV w) where
instance UniformRange (UnsignedBV w) where
uniformRM (UnsignedBV lo, UnsignedBV hi) g =
UnsignedBV <$> BV.uUniformRM (lo, hi) g
+#if MIN_VERSION_random(1,3,0)
+ isInRange (lo, hi) x =
+ lo <= x && x <= hi
+#endif
instance KnownNat w => Random (UnsignedBV w)
diff --git a/cabal-doctest.cabal b/cabal-doctest.cabal
index 30aeb12..2fef71f 100644
--- a/cabal-doctest.cabal
+++ b/cabal-doctest.cabal
@@ -1,5 +1,6 @@
name: cabal-doctest
version: 1.0.9
+x-revision: 2
synopsis: A Setup.hs helper for running doctests
description:
As of now (end of 2021), there isn't @cabal doctest@
@@ -20,20 +21,21 @@ extra-source-files:
README.md
tested-with:
- GHC == 7.0.4
- GHC == 7.2.2
- GHC == 7.4.2
- GHC == 7.6.3
- GHC == 7.8.4
- GHC == 7.10.3
- GHC == 8.0.2
- GHC == 8.2.2
- GHC == 8.4.4
- GHC == 8.6.5
- GHC == 8.8.4
+ GHC == 9.4.1
+ GHC == 9.2.4
+ GHC == 9.0.2
GHC == 8.10.7
- GHC == 9.0.1
- GHC == 9.2.1
+ GHC == 8.8.4
+ GHC == 8.6.5
+ GHC == 8.4.4
+ GHC == 8.2.2
+ GHC == 8.0.2
+ GHC == 7.10.3
+ GHC == 7.8.4
+ GHC == 7.6.3
+ GHC == 7.4.2
+ GHC == 7.2.2
+ GHC == 7.0.4
source-repository head
type: git
@@ -44,8 +46,8 @@ library
other-modules:
other-extensions:
build-depends:
- base >=4.3 && <4.17
- , Cabal >=1.10 && <3.8
+ base >=4.3 && <5
+ , Cabal >=1.10 && <3.10
, directory
, filepath
diff --git a/src/Distribution/Extra/Doctest.hs b/src/Distribution/Extra/Doctest.hs
index ac5d07d..17b3d0d 100644
--- a/src/Distribution/Extra/Doctest.hs
+++ b/src/Distribution/Extra/Doctest.hs
@@ -125,7 +125,7 @@ import Distribution.Types.LibraryName
(libraryNameString)
#endif
-#if MIN_VERSION_Cabal(3,6,0)
+#if MIN_VERSION_Cabal(3,5,0)
import Distribution.Utils.Path
(getSymbolicPath)
#endif
@@ -331,7 +331,7 @@ generateBuildModule testSuiteName flags pkg lbi = do
<- mapM makeAbsolute
$ compAutogenDir -- autogenerated files
: (distPref ++ "/build") -- preprocessed files (.hsc -> .hs); "build" is hardcoded in Cabal.
-#if MIN_VERSION_Cabal(3,6,0)
+#if MIN_VERSION_Cabal(3,5,0)
: map getSymbolicPath (hsSourceDirs compBI)
#else
: hsSourceDirs compBI