diff --git a/.cirrus.yml b/.cirrus.yml new file mode 100644 index 00000000000..58cdd80bb1f --- /dev/null +++ b/.cirrus.yml @@ -0,0 +1,31 @@ +# release CI for FreeBSD +compute_engine_instance: + image_project: freebsd-org-cloud-dev + image: family/freebsd-13-2 + platform: freebsd + disk: 100 # Gb + +build_task: + timeout_in: 120m + only_if: $CIRRUS_TAG != '' + env: + ADD_CABAL_ARGS: "--enable-split-sections" + ARCH: 64 + ARTIFACT: "x86_64-portbld-freebsd" + CIRRUS_CLONE_SUBMODULES: true + DISTRO: na + GHC_VERSION: 9.2.4 + GITHUB_WORKSPACE: ${CIRRUS_WORKING_DIR} + RUNNER_OS: FreeBSD + TARBALL_EXT: tar.xz + TZ: Asia/Singapore + install_script: + - sed -i.bak -e 's/quarterly/latest/' /etc/pkg/FreeBSD.conf + - pkg install -y ghc hs-cabal-install git bash misc/compat10x misc/compat11x misc/compat12x gmake llvm14 patchelf tree gmp libiconv + script: + - tzsetup Etc/GMT + - adjkerntz -a + - bash .github/scripts/build.sh + binaries_artifacts: + path: "out/*" + diff --git a/.docker/validate-8.10.1.dockerfile b/.docker/validate-8.10.4.dockerfile similarity index 95% rename from .docker/validate-8.10.1.dockerfile rename to .docker/validate-8.10.4.dockerfile index 4306eed09b8..bbaf85a8113 100644 --- a/.docker/validate-8.10.1.dockerfile +++ b/.docker/validate-8.10.4.dockerfile @@ -1,4 +1,4 @@ -FROM phadej/ghc:8.10.1-bionic +FROM phadej/ghc:8.10.4-bionic # Install cabal-plan RUN mkdir -p /root/.cabal/bin && \ @@ -24,7 +24,7 @@ RUN cabal v2-install happy --constraint 'happy ^>=1.19.12' # Install some other dependencies # Remove $HOME/.ghc so there aren't any environments -RUN cabal v2-install -w ghc-8.10.1 --lib \ +RUN cabal v2-install -w ghc-8.10.4 --lib \ Cabal \ aeson \ async \ @@ -73,4 +73,4 @@ RUN cabal v2-install -w ghc-8.10.1 --lib \ # Validate WORKDIR /build COPY . /build -RUN sh ./validate.sh -w ghc-8.10.1 -v +RUN sh ./validate.sh -w ghc-8.10.4 -v diff --git a/.docker/validate-8.8.3.dockerfile b/.docker/validate-8.8.4.dockerfile similarity index 96% rename from .docker/validate-8.8.3.dockerfile rename to .docker/validate-8.8.4.dockerfile index 57b609176e1..fc268397426 100644 --- a/.docker/validate-8.8.3.dockerfile +++ b/.docker/validate-8.8.4.dockerfile @@ -1,4 +1,4 @@ -FROM phadej/ghc:8.8.3-bionic +FROM phadej/ghc:8.8.4-bionic # Install cabal-plan RUN mkdir -p /root/.cabal/bin && \ @@ -24,7 +24,7 @@ RUN cabal v2-install happy --constraint 'happy ^>=1.19.12' # Install some other dependencies # Remove $HOME/.ghc so there aren't any environments -RUN cabal v2-install -w ghc-8.8.3 --lib \ +RUN cabal v2-install -w ghc-8.8.4 --lib \ Cabal \ aeson \ async \ @@ -73,4 +73,4 @@ RUN cabal v2-install -w ghc-8.8.3 --lib \ # Validate WORKDIR /build COPY . /build -RUN sh ./validate.sh --doctest --solver-benchmarks --complete-hackage -w ghc-8.8.3 -v +RUN sh ./validate.sh --doctest --solver-benchmarks --complete-hackage -w ghc-8.8.4 -v diff --git a/.github/scripts/brew.sh b/.github/scripts/brew.sh new file mode 100644 index 00000000000..e05ffb7421c --- /dev/null +++ b/.github/scripts/brew.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +set -eux + +# shellcheck disable=SC1091 +. .github/scripts/env.sh + +if [ -e "$HOME/.brew" ] ; then + ( + cd "$HOME/.brew" + git fetch --depth 1 + git reset --hard origin/master + ) +else + git clone --depth=1 https://github.com/Homebrew/brew "$HOME/.brew" +fi +export PATH="$HOME/.brew/bin:$HOME/.brew/sbin:$PATH" + +mkdir -p "$CI_PROJECT_DIR/.brew_cache" +export HOMEBREW_CACHE="$CI_PROJECT_DIR/.brew_cache" +mkdir -p "$CI_PROJECT_DIR/.brew_logs" +export HOMEBREW_LOGS="$CI_PROJECT_DIR/.brew_logs" +mkdir -p /private/tmp/.brew_tmp +export HOMEBREW_TEMP=/private/tmp/.brew_tmp + +#brew update +brew install ${1+"$@"} + diff --git a/.github/scripts/build.sh b/.github/scripts/build.sh new file mode 100644 index 00000000000..c0b2ad0ac20 --- /dev/null +++ b/.github/scripts/build.sh @@ -0,0 +1,66 @@ +#!/bin/bash + +set -eux + +# shellcheck disable=SC1091 +. .github/scripts/env.sh +# shellcheck disable=SC1091 +. .github/scripts/common.sh + +uname -a +uname -p +uname +pwd +env + +# ensure ghcup +install_ghcup + +# build +ghcup install ghc "${GHC_VERSION}" +ghcup set ghc "${GHC_VERSION}" +sed -i.bak -e '/DELETE MARKER FOR CI/,/END DELETE/d' cabal.project # see comment in cabal.project +ecabal update +ecabal user-config diff +ecabal user-config init -f +"ghc-${GHC_VERSION}" --info +"ghc" --info + +# https://github.com/haskell/cabal/issues/7313#issuecomment-811851884 +if [ "$(getconf LONG_BIT)" == "32" ] || [ "${DISTRO}" == "CentOS" ] ; then + echo 'constraints: lukko -ofd-locking' >> cabal.project.release.local +fi + +# shellcheck disable=SC2206 +args=( + -w "ghc-$GHC_VERSION" + --disable-profiling + --enable-executable-stripping + --project-file=cabal.project.release + ${ADD_CABAL_ARGS} +) + +run cabal v2-build "${args[@]}" cabal-install + +mkdir -p "$CI_PROJECT_DIR/out" +# shellcheck disable=SC2154 +cp "$(cabal list-bin "${args[@]}" cabal-install:exe:cabal)" "$CI_PROJECT_DIR/out/cabal$ext" +cp dist-newstyle/cache/plan.json "$CI_PROJECT_DIR/out/plan.json" +cd "$CI_PROJECT_DIR/out/" + +# create tarball/zip +TARBALL_PREFIX="cabal-install-$("$CI_PROJECT_DIR/out/cabal" --numeric-version)" +case "${TARBALL_EXT}" in + zip) + zip "${TARBALL_PREFIX}-${ARTIFACT}.${TARBALL_EXT}" "cabal${ext}" plan.json + ;; + tar.xz) + tar caf "${TARBALL_PREFIX}-${ARTIFACT}.${TARBALL_EXT}" "cabal${ext}" plan.json + ;; + *) + fail "Unknown TARBALL_EXT: ${TARBALL_EXT}" + ;; +esac + +rm cabal plan.json + diff --git a/.github/scripts/common.sh b/.github/scripts/common.sh new file mode 100644 index 00000000000..cff91ea6bb5 --- /dev/null +++ b/.github/scripts/common.sh @@ -0,0 +1,110 @@ +#!/bin/bash + +# shellcheck disable=SC1091 +. .github/scripts/env.sh + +# Colors +RED="0;31" +LT_BROWN="1;33" +LT_BLUE="1;34" + +ecabal() { + cabal "$@" +} + +nonfatal() { + "$@" || "$* failed" +} + +sha_sum() { + if [ "${RUNNER_OS}" = "FreeBSD" ] ; then + sha256 "$@" + else + sha256sum "$@" + fi +} + +git_describe() { + git config --global --get-all safe.directory | grep '^\*$' || git config --global --add safe.directory "*" + git describe --always +} + +install_ghcup() { + # find "$GHCUP_INSTALL_BASE_PREFIX" + mkdir -p "$GHCUP_BIN" + mkdir -p "$GHCUP_BIN"/../cache + + if [ "${RUNNER_OS}" = "FreeBSD" ] ; then + curl -o ghcup https://downloads.haskell.org/ghcup/tmp/x86_64-portbld-freebsd-ghcup-0.1.18.1 + chmod +x ghcup + mv ghcup "$HOME/.local/bin/ghcup" + else + curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_MINIMAL=1 sh + source "$(dirname "${GHCUP_BIN}")/env" + ghcup install cabal --set "${BOOTSTRAP_HASKELL_CABAL_VERSION}" + fi +} + +strip_binary() { + ( + set -e + local binary=$1 + case "$(uname -s)" in + "Darwin"|"darwin") + ;; + MSYS_*|MINGW*) + ;; + *) + strip -s "${binary}" + ;; + esac + ) +} + +# GitLab Pipelines log section delimiters +# https://gitlab.com/gitlab-org/gitlab-foss/issues/14664 +start_section() { + name="$1" + echo -e "section_start:$(date +%s):$name\015\033[0K" +} + +end_section() { + name="$1" + echo -e "section_end:$(date +%s):$name\015\033[0K" +} + +echo_color() { + local color="$1" + local msg="$2" + echo -e "\033[${color}m${msg}\033[0m" +} + +error() { echo_color "${RED}" "$1"; } +warn() { echo_color "${LT_BROWN}" "$1"; } +info() { echo_color "${LT_BLUE}" "$1"; } + +fail() { error "error: $1"; exit 1; } + +run() { + info "Running $*..." + "$@" || ( error "$* failed"; return 1; ) +} + +emake() { + if command -v gmake >/dev/null 2>&1 ; then + gmake "$@" + else + make "$@" + fi +} + +mktempdir() { + case "$(uname -s)" in + "Darwin"|"darwin") + mktemp -d -t cabal_ci.XXXXXXX + ;; + *) + mktemp -d + ;; + esac +} diff --git a/.github/scripts/env.sh b/.github/scripts/env.sh new file mode 100644 index 00000000000..2d8c697dd3d --- /dev/null +++ b/.github/scripts/env.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +mkdir -p "$HOME"/.local/bin + +if [ "${RUNNER_OS}" = "Windows" ] ; then + ext=".exe" +else + # shellcheck disable=SC2034 + ext='' +fi + +export PATH="$HOME/.local/bin:$PATH" + +export BOOTSTRAP_HASKELL_NONINTERACTIVE=1 +export BOOTSTRAP_HASKELL_CABAL_VERSION="${CABAL_VER:-3.8.1.0}" +export BOOTSTRAP_HASKELL_ADJUST_CABAL_CONFIG=no +export BOOTSTRAP_HASKELL_INSTALL_NO_STACK=yes +export BOOTSTRAP_HASKELL_ADJUST_BASHRC=1 + +if [ "${RUNNER_OS}" = "Windows" ] ; then + # on windows use pwd to get unix style path + CI_PROJECT_DIR="$(pwd)" + export CI_PROJECT_DIR + export GHCUP_INSTALL_BASE_PREFIX="/c" + export GHCUP_BIN="$GHCUP_INSTALL_BASE_PREFIX/ghcup/bin" + export PATH="$GHCUP_BIN:$PATH" + export CABAL_DIR="C:\\Users\\runneradmin\\AppData\\Roaming\\cabal" +else + export CI_PROJECT_DIR="${GITHUB_WORKSPACE}" + export GHCUP_INSTALL_BASE_PREFIX="$CI_PROJECT_DIR" + export GHCUP_BIN="$GHCUP_INSTALL_BASE_PREFIX/.ghcup/bin" + export PATH="$GHCUP_BIN:$PATH" + export CABAL_DIR="$CI_PROJECT_DIR/cabal" + export CABAL_CACHE="$CI_PROJECT_DIR/cabal-cache" +fi + +export DEBIAN_FRONTEND=noninteractive +export TZ=Asia/Singapore diff --git a/.github/workflows/bootstrap.yml b/.github/workflows/bootstrap.yml index e147adb4295..d14065a08ae 100644 --- a/.github/workflows/bootstrap.yml +++ b/.github/workflows/bootstrap.yml @@ -22,7 +22,7 @@ jobs: - uses: actions/checkout@v2 - name: bootstrap.py run: | - python3 bootstrap/bootstrap.py -w /opt/ghc/8.10.4/bin/ghc -d bootstrap/linux-8.10.4.json + python3 bootstrap/bootstrap.py -w $(ghcup whereis ghc 8.10.7) -d bootstrap/linux-8.10.7.json - name: Smoke test run: | @@ -40,17 +40,17 @@ jobs: - name: Install GHC run: | cd $(mktemp -d) - curl -sLO "https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-apple-darwin.tar.xz" + curl -sLO "https://downloads.haskell.org/~ghc/8.10.7/ghc-8.10.7-x86_64-apple-darwin.tar.xz" tar -xJf ghc-*.tar.xz cd ghc-* - ./configure --prefix=/opt/ghc/8.10.4 + ./configure --prefix=/opt/ghc/8.10.7 sudo make install - uses: actions/checkout@v2 # We use linux dependencies - name: bootstrap.py run: | - python3 bootstrap/bootstrap.py -w /opt/ghc/8.10.4/bin/ghc -d bootstrap/linux-8.10.4.json + python3 bootstrap/bootstrap.py -w /opt/ghc/8.10.7/bin/ghc -d bootstrap/linux-8.10.7.json - name: Smoke test run: | diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 00125e76da8..fed53fa27ab 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -18,7 +18,7 @@ jobs: validate-9_0_1: name: validate.sh ghc-9.0.1 runs-on: ubuntu-18.04 - needs: validate-8_8_3 + needs: validate-8_8_4 container: image: phadej/ghc:9.0.1-bionic steps: @@ -57,12 +57,12 @@ jobs: run: sh validate.sh -j 2 -w ghc-9.0.1 -v --lib-only -s lib-tests - name: Validate lib-suite run: sh validate.sh -j 2 -w ghc-9.0.1 -v --lib-only -s lib-suite - validate-8_10_1: - name: validate.sh ghc-8.10.1 + validate-8_10_4: + name: validate.sh ghc-8.10.4 runs-on: ubuntu-18.04 - needs: validate-8_8_3 + needs: validate-8_8_4 container: - image: phadej/ghc:8.10.1-bionic + image: phadej/ghc:8.10.4-bionic steps: - name: System info run: | @@ -90,26 +90,26 @@ jobs: git fetch origin $GITHUB_SHA:temporary-ci-branch git checkout $GITHUB_SHA || (git fetch && git checkout $GITHUB_SHA) - name: Validate print-config - run: sh validate.sh -j 2 -w ghc-8.10.1 -v -s print-config + run: sh validate.sh -j 2 -w ghc-8.10.4 -v -s print-config - name: Validate print-tool-versions - run: sh validate.sh -j 2 -w ghc-8.10.1 -v -s print-tool-versions + run: sh validate.sh -j 2 -w ghc-8.10.4 -v -s print-tool-versions - name: Validate make-cabal-install-dev - run: sh validate.sh -j 2 -w ghc-8.10.1 -v -s make-cabal-install-dev + run: sh validate.sh -j 2 -w ghc-8.10.4 -v -s make-cabal-install-dev - name: Validate build - run: sh validate.sh -j 2 -w ghc-8.10.1 -v -s build + run: sh validate.sh -j 2 -w ghc-8.10.4 -v -s build - name: Validate lib-tests - run: sh validate.sh -j 2 -w ghc-8.10.1 -v -s lib-tests + run: sh validate.sh -j 2 -w ghc-8.10.4 -v -s lib-tests - name: Validate lib-suite - run: sh validate.sh -j 2 -w ghc-8.10.1 -v -s lib-suite + run: sh validate.sh -j 2 -w ghc-8.10.4 -v -s lib-suite - name: Validate cli-tests - run: sh validate.sh -j 2 -w ghc-8.10.1 -v -s cli-tests + run: sh validate.sh -j 2 -w ghc-8.10.4 -v -s cli-tests - name: Validate cli-suite - run: sh validate.sh -j 2 -w ghc-8.10.1 -v -s cli-suite - validate-8_8_3: - name: validate.sh ghc-8.8.3 + run: sh validate.sh -j 2 -w ghc-8.10.4 -v -s cli-suite + validate-8_8_4: + name: validate.sh ghc-8.8.4 runs-on: ubuntu-18.04 container: - image: phadej/ghc:8.8.3-bionic + image: phadej/ghc:8.8.4-bionic steps: - name: System info run: | @@ -137,25 +137,25 @@ jobs: git fetch origin $GITHUB_SHA:temporary-ci-branch git checkout $GITHUB_SHA || (git fetch && git checkout $GITHUB_SHA) - name: Validate print-config - run: sh validate.sh -j 2 -w ghc-8.8.3 -v --solver-benchmarks -s print-config + run: sh validate.sh -j 2 -w ghc-8.8.4 -v --solver-benchmarks -s print-config - name: Validate print-tool-versions - run: sh validate.sh -j 2 -w ghc-8.8.3 -v --solver-benchmarks -s print-tool-versions + run: sh validate.sh -j 2 -w ghc-8.8.4 -v --solver-benchmarks -s print-tool-versions - name: Validate make-cabal-install-dev - run: sh validate.sh -j 2 -w ghc-8.8.3 -v --solver-benchmarks -s make-cabal-install-dev + run: sh validate.sh -j 2 -w ghc-8.8.4 -v --solver-benchmarks -s make-cabal-install-dev - name: Validate build - run: sh validate.sh -j 2 -w ghc-8.8.3 -v --solver-benchmarks -s build + run: sh validate.sh -j 2 -w ghc-8.8.4 -v --solver-benchmarks -s build - name: Validate lib-tests - run: sh validate.sh -j 2 -w ghc-8.8.3 -v --solver-benchmarks -s lib-tests + run: sh validate.sh -j 2 -w ghc-8.8.4 -v --solver-benchmarks -s lib-tests - name: Validate lib-suite - run: sh validate.sh -j 2 -w ghc-8.8.3 -v --solver-benchmarks -s lib-suite + run: sh validate.sh -j 2 -w ghc-8.8.4 -v --solver-benchmarks -s lib-suite - name: Validate cli-tests - run: sh validate.sh -j 2 -w ghc-8.8.3 -v --solver-benchmarks -s cli-tests + run: sh validate.sh -j 2 -w ghc-8.8.4 -v --solver-benchmarks -s cli-tests - name: Validate cli-suite - run: sh validate.sh -j 2 -w ghc-8.8.3 -v --solver-benchmarks -s cli-suite + run: sh validate.sh -j 2 -w ghc-8.8.4 -v --solver-benchmarks -s cli-suite validate-8_6_5: name: validate.sh ghc-8.6.5 runs-on: ubuntu-18.04 - needs: validate-8_8_3 + needs: validate-8_8_4 container: image: phadej/ghc:8.6.5-bionic steps: @@ -203,7 +203,7 @@ jobs: validate-8_4_4: name: validate.sh ghc-8.4.4 runs-on: ubuntu-18.04 - needs: validate-8_8_3 + needs: validate-8_8_4 container: image: phadej/ghc:8.4.4-bionic steps: @@ -251,7 +251,7 @@ jobs: validate-8_2_2: name: validate.sh ghc-8.2.2 runs-on: ubuntu-18.04 - needs: validate-8_8_3 + needs: validate-8_8_4 container: image: phadej/ghc:8.2.2-bionic steps: @@ -299,7 +299,7 @@ jobs: validate-8_0_2: name: validate.sh ghc-8.0.2 runs-on: ubuntu-18.04 - needs: validate-8_8_3 + needs: validate-8_8_4 container: image: phadej/ghc:8.0.2-bionic steps: @@ -347,7 +347,7 @@ jobs: validate-7_10_3: name: validate.sh ghc-7.10.3 runs-on: ubuntu-18.04 - needs: validate-8_8_3 + needs: validate-8_8_4 container: image: phadej/ghc:7.10.3-bionic steps: @@ -395,7 +395,7 @@ jobs: validate-7_8_4: name: validate.sh ghc-7.8.4 runs-on: ubuntu-18.04 - needs: validate-8_8_3 + needs: validate-8_8_4 container: image: phadej/ghc:7.8.4-bionic steps: @@ -437,7 +437,7 @@ jobs: validate-7_6_3: name: validate.sh ghc-7.6.3 runs-on: ubuntu-18.04 - needs: validate-8_8_3 + needs: validate-8_8_4 container: image: phadej/ghc:7.6.3-xenial steps: @@ -480,12 +480,12 @@ jobs: run: sh validate.sh -j 2 -w ghc-7.6.3 -v --lib-only -s lib-tests - name: Validate lib-suite run: sh validate.sh -j 2 -w ghc-7.6.3 -v --lib-only -s lib-suite - validate-8_8_3-old: + validate-8_8_4-old: name: validate.sh old GHCs runs-on: ubuntu-18.04 - needs: validate-8_8_3 + needs: validate-8_8_4 container: - image: phadej/ghc:8.8.3-xenial + image: phadej/ghc:8.8.4-xenial steps: - name: System info run: | @@ -505,7 +505,7 @@ jobs: - name: apt-get update run: apt-get update - name: Install dynamic libraries - run: apt-get install -y ghc-8.8.3-dyn + run: apt-get install -y ghc-8.8.4-dyn - name: Install extra compilers run: apt-get install -y ghc-7.0.4-dyn ghc-7.2.2-dyn ghc-7.4.2-dyn - name: Update Hackage index @@ -519,18 +519,18 @@ jobs: git fetch origin $GITHUB_SHA:temporary-ci-branch git checkout $GITHUB_SHA || (git fetch && git checkout $GITHUB_SHA) - name: Validate print-config - run: sh validate.sh -j 2 -w ghc-8.8.3 -v --lib-only -s print-config + run: sh validate.sh -j 2 -w ghc-8.8.4 -v --lib-only -s print-config - name: Validate print-tool-versions - run: sh validate.sh -j 2 -w ghc-8.8.3 -v --lib-only -s print-tool-versions + run: sh validate.sh -j 2 -w ghc-8.8.4 -v --lib-only -s print-tool-versions - name: Validate build - run: sh validate.sh -j 2 -w ghc-8.8.3 -v --lib-only -s build + run: sh validate.sh -j 2 -w ghc-8.8.4 -v --lib-only -s build - name: Validate lib-tests - run: sh validate.sh -j 2 -w ghc-8.8.3 -v --lib-only -s lib-tests + run: sh validate.sh -j 2 -w ghc-8.8.4 -v --lib-only -s lib-tests - name: Validate lib-suite - run: sh validate.sh -j 2 -w ghc-8.8.3 -v --lib-only -s lib-suite + run: sh validate.sh -j 2 -w ghc-8.8.4 -v --lib-only -s lib-suite - name: Validate lib-suite-extras --extra-hc /opt/ghc/7.0.4/bin/ghc-7.0.4 - run: sh validate.sh -j 2 -w ghc-8.8.3 -v --lib-only -s lib-suite-extras --extra-hc /opt/ghc/7.0.4/bin/ghc-7.0.4 + run: sh validate.sh -j 2 -w ghc-8.8.4 -v --lib-only -s lib-suite-extras --extra-hc /opt/ghc/7.0.4/bin/ghc-7.0.4 - name: Validate lib-suite-extras --extra-hc /opt/ghc/7.2.2/bin/ghc-7.2.2 - run: sh validate.sh -j 2 -w ghc-8.8.3 -v --lib-only -s lib-suite-extras --extra-hc /opt/ghc/7.2.2/bin/ghc-7.2.2 + run: sh validate.sh -j 2 -w ghc-8.8.4 -v --lib-only -s lib-suite-extras --extra-hc /opt/ghc/7.2.2/bin/ghc-7.2.2 - name: Validate lib-suite-extras --extra-hc /opt/ghc/7.4.2/bin/ghc-7.4.2 - run: sh validate.sh -j 2 -w ghc-8.8.3 -v --lib-only -s lib-suite-extras --extra-hc /opt/ghc/7.4.2/bin/ghc-7.4.2 + run: sh validate.sh -j 2 -w ghc-8.8.4 -v --lib-only -s lib-suite-extras --extra-hc /opt/ghc/7.4.2/bin/ghc-7.4.2 diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index a95ada639bf..c9c57ac3431 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -15,8 +15,8 @@ on: - created jobs: - validate-macos-8_8_3: - name: validate.sh macos ghc-8.8.3 + validate-macos-8_8_4: + name: validate.sh macos ghc-8.8.4 runs-on: macos-latest steps: - name: System info @@ -28,10 +28,10 @@ jobs: - name: Install GHC run: | cd $(mktemp -d) - curl -sLO https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-x86_64-apple-darwin.tar.xz + curl -sLO https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-apple-darwin.tar.xz tar -xJf ghc-*.tar.xz cd ghc-* - ./configure --prefix=/opt/ghc/8.8.3 + ./configure --prefix=/opt/ghc/8.8.4 sudo make install - name: Install Cabal run: | @@ -43,7 +43,7 @@ jobs: sudo chmod 755 /opt/cabal/3.4/bin/cabal - name: Set PATH run: | - echo "/opt/ghc/8.8.3/bin" >> $GITHUB_PATH + echo "/opt/ghc/8.8.4/bin" >> $GITHUB_PATH echo "/opt/cabal/3.4/bin" >> $GITHUB_PATH echo "$HOME/.cabal/bin" >> $GITHUB_PATH - name: Update Hackage index @@ -51,28 +51,28 @@ jobs: - name: Install cabal-plan run: | cd $(mktemp -d) - cabal v2-install cabal-plan --constraint='cabal-plan ^>=0.6.2.0' --constraint='aeson +fast' + cabal v2-install cabal-plan --constraint='cabal-plan ^>=0.6.2.0' --constraint='aeson +fast' --constraint='cabal-plan +exe' - uses: actions/checkout@v2 - name: Validate print-config - run: sh validate.sh -j 2 -w ghc-8.8.3 -v -s print-config + run: sh validate.sh -j 2 -w ghc-8.8.4 -v -s print-config - name: Validate print-tool-versions - run: sh validate.sh -j 2 -w ghc-8.8.3 -v -s print-tool-versions + run: sh validate.sh -j 2 -w ghc-8.8.4 -v -s print-tool-versions - name: Validate make-cabal-install-dev - run: sh validate.sh -j 2 -w ghc-8.8.3 -v -s make-cabal-install-dev + run: sh validate.sh -j 2 -w ghc-8.8.4 -v -s make-cabal-install-dev - name: Validate build - run: sh validate.sh -j 2 -w ghc-8.8.3 -v -s build + run: sh validate.sh -j 2 -w ghc-8.8.4 -v -s build - name: Validate lib-tests - run: sh validate.sh -j 2 -w ghc-8.8.3 -v -s lib-tests + run: sh validate.sh -j 2 -w ghc-8.8.4 -v -s lib-tests - name: Validate lib-suite - run: sh validate.sh -j 2 -w ghc-8.8.3 -v -s lib-suite + run: sh validate.sh -j 2 -w ghc-8.8.4 -v -s lib-suite - name: Validate cli-tests - run: sh validate.sh -j 2 -w ghc-8.8.3 -v -s cli-tests + run: sh validate.sh -j 2 -w ghc-8.8.4 -v -s cli-tests - name: Validate cli-suite - run: sh validate.sh -j 2 -w ghc-8.8.3 -v -s cli-suite + run: sh validate.sh -j 2 -w ghc-8.8.4 -v -s cli-suite validate-macos-8_6_5: name: validate.sh macos ghc-8.6.5 runs-on: macos-latest - needs: validate-macos-8_8_3 + needs: validate-macos-8_8_4 steps: - name: System info run: | @@ -106,7 +106,7 @@ jobs: - name: Install cabal-plan run: | cd $(mktemp -d) - cabal v2-install cabal-plan --constraint='cabal-plan ^>=0.6.2.0' --constraint='aeson +fast' + cabal v2-install cabal-plan --constraint='cabal-plan ^>=0.6.2.0' --constraint='aeson +fast' --constraint='cabal-plan +exe' - uses: actions/checkout@v2 - name: Validate print-config run: sh validate.sh -j 2 -w ghc-8.6.5 -v -s print-config diff --git a/.github/workflows/quick-jobs.yml b/.github/workflows/quick-jobs.yml index 3ca215a9876..3d4920e365d 100644 --- a/.github/workflows/quick-jobs.yml +++ b/.github/workflows/quick-jobs.yml @@ -24,8 +24,6 @@ jobs: # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path run: | echo "$HOME/.cabal/bin" >> $GITHUB_PATH - echo "/opt/cabal/3.2/bin" >> $GITHUB_PATH - echo "/opt/ghc/8.10.4/bin" >> $GITHUB_PATH - uses: actions/cache@v1 with: path: ~/.cabal/store @@ -53,8 +51,6 @@ jobs: - name: Set PATH run: | echo "$HOME/.cabal/bin" >> $GITHUB_PATH - echo "/opt/cabal/3.2/bin" >> $GITHUB_PATH - echo "/opt/ghc/8.10.4/bin" >> $GITHUB_PATH - name: Install cabal-env run: | mkdir -p $HOME/.cabal/bin diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 00000000000..58ea47d5a93 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,373 @@ +name: Build and release + +on: + push: + tags: + - 'cabal-install-*' + schedule: + - cron: '0 2 * * *' + +jobs: + build-linux: + name: Build linux binaries + runs-on: ubuntu-latest + env: + TARBALL_EXT: tar.xz + ARCH: 64 + DEBIAN_FRONTEND: noninteractive + TZ: Asia/Singapore + GHC_VERSION: 9.2.3 + strategy: + fail-fast: false + matrix: + platform: [ { image: "debian:9" + , installCmd: "sed -i s/deb.debian.org/archive.debian.org/g /etc/apt/sources.list && sed -i 's|security.debian.org|archive.debian.org/|g' /etc/apt/sources.list && sed -i /-updates/d /etc/apt/sources.list && apt-get update && apt-get install -y" + , toolRequirements: "libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl ghc gzip libffi-dev libncurses-dev libncurses5 libtinfo5 patchelf" + , DISTRO: "Debian" + , ARTIFACT: "x86_64-linux-deb9" + , ADD_CABAL_ARGS: "--enable-split-sections" + }, + { image: "debian:10" + , installCmd: "apt-get update && apt-get install -y" + , toolRequirements: "libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl ghc gzip libffi-dev libncurses-dev libncurses5 libtinfo5 patchelf" + , DISTRO: "Debian" + , ARTIFACT: "x86_64-linux-deb10" + , ADD_CABAL_ARGS: "--enable-split-sections" + }, + { image: "debian:11" + , installCmd: "apt-get update && apt-get install -y" + , toolRequirements: "libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl ghc gzip libffi-dev libncurses-dev libncurses5 libtinfo5 patchelf" + , DISTRO: "Debian" + , ARTIFACT: "x86_64-linux-deb11" + , ADD_CABAL_ARGS: "--enable-split-sections" + }, + { image: "ubuntu:18.04" + , installCmd: "apt-get update && apt-get install -y" + , toolRequirements: "libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl ghc gzip libffi-dev libncurses-dev libncurses5 libtinfo5 patchelf" + , DISTRO: "Ubuntu" + , ARTIFACT: "x86_64-linux-ubuntu18.04" + , ADD_CABAL_ARGS: "--enable-split-sections" + }, + { image: "ubuntu:20.04" + , installCmd: "apt-get update && apt-get install -y" + , toolRequirements: "libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl ghc gzip libffi-dev libncurses-dev libncurses5 libtinfo5 patchelf" + , DISTRO: "Ubuntu" + , ARTIFACT: "x86_64-linux-ubuntu20.04" + , ADD_CABAL_ARGS: "--enable-split-sections" + }, + { image: "ubuntu:22.04" + , installCmd: "apt-get update && apt-get install -y" + , toolRequirements: "libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl ghc gzip libffi-dev libncurses-dev libncurses5 libtinfo5 patchelf" + , DISTRO: "Ubuntu" + , ARTIFACT: "x86_64-linux-ubuntu22.04" + , ADD_CABAL_ARGS: "--enable-split-sections" + }, + { image: "linuxmintd/mint19.3-amd64" + , installCmd: "apt-get update && apt-get install -y" + , toolRequirements: "libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl ghc gzip libffi-dev libncurses-dev libncurses5 libtinfo5 patchelf" + , DISTRO: "Mint" + , ARTIFACT: "x86_64-linux-mint19.3" + , ADD_CABAL_ARGS: "--enable-split-sections" + }, + { image: "linuxmintd/mint20.2-amd64" + , installCmd: "apt-get update && apt-get install -y" + , toolRequirements: "libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl ghc gzip libffi-dev libncurses-dev libncurses5 libtinfo5 patchelf" + , DISTRO: "Mint" + , ARTIFACT: "x86_64-linux-mint20.2" + , ADD_CABAL_ARGS: "--enable-split-sections" + }, + { image: "fedora:27" + , installCmd: "dnf install -y" + , toolRequirements: "autoconf automake binutils bzip2 coreutils curl elfutils-devel elfutils-libs findutils gcc gcc-c++ git gmp gmp-devel jq lbzip2 make ncurses ncurses-compat-libs ncurses-devel openssh-clients patch perl pxz python3 sqlite sudo wget which xz zlib-devel patchelf" + , DISTRO: "Fedora" + , ARTIFACT: "x86_64-linux-fedora27" + , ADD_CABAL_ARGS: "--enable-split-sections" + }, + { image: "fedora:33" + , installCmd: "dnf install -y" + , toolRequirements: "autoconf automake binutils bzip2 coreutils curl elfutils-devel elfutils-libs findutils gcc gcc-c++ git gmp gmp-devel jq lbzip2 make ncurses ncurses-compat-libs ncurses-devel openssh-clients patch perl pxz python3 sqlite sudo wget which xz zlib-devel patchelf" + , DISTRO: "Fedora" + , ARTIFACT: "x86_64-linux-fedora33" + , ADD_CABAL_ARGS: "--enable-split-sections" + }, + { image: "centos:7" + , installCmd: "yum -y install epel-release && yum install -y" + , toolRequirements: "autoconf automake binutils bzip2 coreutils curl elfutils-devel elfutils-libs findutils gcc gcc-c++ git gmp gmp-devel jq lbzip2 make ncurses ncurses-compat-libs ncurses-devel openssh-clients patch perl pxz python3 sqlite sudo wget which xz zlib-devel patchelf" + , DISTRO: "CentOS" + , ARTIFACT: "x86_64-linux-centos7" + , ADD_CABAL_ARGS: "--enable-split-sections" + }, + { image: "rockylinux:8" + , installCmd: "yum -y install epel-release && yum install -y --allowerasing" + , toolRequirements: "autoconf automake binutils bzip2 coreutils curl elfutils-devel elfutils-libs findutils gcc gcc-c++ git gmp gmp-devel jq lbzip2 make ncurses ncurses-compat-libs ncurses-devel openssh-clients patch perl pxz python3 sqlite sudo wget which xz zlib-devel patchelf" + , DISTRO: "Unknown" + , ARTIFACT: "x86_64-linux-rocky8" + , ADD_CABAL_ARGS: "--enable-split-sections" + }, + { image: "alpine:latest" + , installCmd: "apk update && apk add" + , toolRequirements: "binutils-gold curl gcc g++ gmp-dev libc-dev libffi-dev make musl-dev ncurses-dev perl tar xz autoconf automake bzip2 coreutils elfutils-dev findutils git jq bzip2-dev patch python3 sqlite sudo wget which zlib-dev patchelf zlib zlib-dev zlib-static" + , DISTRO: "Unknown" + , ARTIFACT: "x86_64-linux-unknown" + , ADD_CABAL_ARGS: "--enable-split-sections --enable-executable-static" + } + + ] + container: + image: ${{ matrix.platform.image }} + steps: + - name: Install requirements + shell: sh + run: | + ${{ matrix.platform.installCmd }} curl bash git ${{ matrix.platform.toolRequirements }} + + - uses: actions/checkout@v3 + + - name: Run build + run: | + bash .github/scripts/build.sh + + env: + ARTIFACT: ${{ matrix.platform.ARTIFACT }} + DISTRO: ${{ matrix.platform.DISTRO }} + ADD_CABAL_ARGS: ${{ matrix.platform.ADD_CABAL_ARGS }} + + - if: always() + name: Upload artifact + uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + retention-days: 2 + name: artifacts + path: | + ./out/* + + build-linux-32bit: + name: Build linux binaries (32bit) + runs-on: ubuntu-latest + env: + TARBALL_EXT: tar.xz + ARCH: 32 + TZ: Asia/Singapore + GHC_VERSION: 9.2.1 + DISTRO: "Unknown" + ARTIFACT: "i386-linux-unknown" + ADD_CABAL_ARGS: "--enable-split-sections --enable-executable-static" + + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + submodules: 'true' + + - name: Run build (32 bit linux) + uses: docker://hasufell/i386-alpine-haskell:3.12 + with: + args: sh -c "apk update && apk add bash binutils-gold curl gcc g++ gmp-dev libc-dev libffi-dev make musl-dev ncurses-dev perl tar xz autoconf automake bzip2 coreutils elfutils-dev findutils git jq bzip2-dev patch python3 sqlite sudo wget which zlib-dev patchelf zlib zlib-dev zlib-static && bash .github/scripts/build.sh" + + - if: always() + name: Upload artifact + uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + retention-days: 2 + name: artifacts + path: | + ./out/* + + build-arm: + name: Build ARM binary + runs-on: ${{ matrix.os }} + env: + TARBALL_EXT: tar.xz + ADD_CABAL_ARGS: "" + DEBIAN_FRONTEND: noninteractive + TZ: Asia/Singapore + ARCH: ARM64 + DISTRO: Ubuntu + GHC_VERSION: 9.2.2 + strategy: + fail-fast: false + matrix: + include: + - os: [self-hosted, Linux, ARM64] + ARCH: ARM + ARTIFACT: "armv7-linux-ubuntu20" + - os: [self-hosted, Linux, ARM64] + ARCH: ARM64 + ARTIFACT: "aarch64-linux-ubuntu20" + steps: + - uses: docker://arm64v8/ubuntu:focal + name: Cleanup (aarch64 linux) + with: + args: "find . -mindepth 1 -maxdepth 1 -exec rm -rf -- {} +" + + - name: git config + run: | + git config --global --get-all safe.directory | grep '^\*$' || git config --global --add safe.directory "*" + shell: bash + + - name: Checkout code + uses: actions/checkout@v3 + + - if: matrix.ARCH == 'ARM' + uses: docker://hasufell/arm32v7-ubuntu-haskell:focal + name: Run build (armv7 linux) + with: + args: bash .github/scripts/build.sh + env: + ARTIFACT: ${{ matrix.ARTIFACT }} + + - if: matrix.ARCH == 'ARM64' + uses: docker://hasufell/arm64v8-ubuntu-haskell:focal + name: Run build (aarch64 linux) + with: + args: bash .github/scripts/build.sh + env: + ARTIFACT: ${{ matrix.ARTIFACT }} + + - if: always() + name: Upload artifact + uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + retention-days: 2 + name: artifacts + path: | + ./out/* + + build-mac-x86_64: + name: Build binary (Mac x86_64) + runs-on: macOS-11 + env: + MACOSX_DEPLOYMENT_TARGET: 10.13 + ADD_CABAL_ARGS: "" + ARTIFACT: "x86_64-apple-darwin" + ARCH: 64 + TARBALL_EXT: tar.xz + DISTRO: na + GHC_VERSION: 9.2.3 + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Run build + run: | + brew install coreutils tree + bash .github/scripts/build.sh + + - if: always() + name: Upload artifact + uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + retention-days: 2 + name: artifacts + path: | + ./out/* + + build-mac-aarch64: + name: Build binary (Mac aarch64) + runs-on: [self-hosted, macOS, ARM64] + env: + MACOSX_DEPLOYMENT_TARGET: 10.13 + ADD_CABAL_ARGS: "" + ARTIFACT: "aarch64-apple-darwin" + ARCH: ARM64 + TARBALL_EXT: tar.xz + DISTRO: na + HOMEBREW_CHANGE_ARCH_TO_ARM: 1 + GHC_VERSION: 9.2.3 + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Run build + run: | + bash .github/scripts/brew.sh git coreutils autoconf automake tree + export PATH="$HOME/.brew/bin:$HOME/.brew/sbin:$PATH" + export LD=ld + bash .github/scripts/build.sh + + - if: always() + name: Upload artifact + uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + retention-days: 2 + name: artifacts + path: | + ./out/* + + build-win: + name: Build binary (Win) + runs-on: windows-latest + env: + ADD_CABAL_ARGS: "" + ARTIFACT: "x86_64-mingw64" + ARCH: 64 + TARBALL_EXT: "zip" + DISTRO: na + GHC_VERSION: 9.2.3 + steps: + - name: install windows deps + shell: pwsh + run: | + C:\msys64\usr\bin\bash -lc "pacman --disable-download-timeout --noconfirm -Syuu" + C:\msys64\usr\bin\bash -lc "pacman --disable-download-timeout --noconfirm -Syuu" + C:\msys64\usr\bin\bash -lc "pacman --disable-download-timeout --noconfirm -S make mingw-w64-x86_64-clang curl autoconf mingw-w64-x86_64-pkgconf ca-certificates base-devel gettext autoconf make libtool automake python p7zip patch unzip zip git" + taskkill /F /FI "MODULES eq msys-2.0.dll" + + - name: Checkout code + uses: actions/checkout@v3 + + - name: Run build (windows) + run: | + $env:CHERE_INVOKING = 1 + $env:MSYS2_PATH_TYPE = "inherit" + $ErrorActionPreference = "Stop" + C:\msys64\usr\bin\bash -lc "bash .github/scripts/build.sh" + shell: pwsh + + - if: always() + name: Upload artifact + uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + retention-days: 2 + name: artifacts + path: | + ./out/* + + release: + name: release + needs: ["build-linux", "build-linux-32bit", "build-arm", "build-mac-x86_64", "build-mac-aarch64", "build-win"] + runs-on: ubuntu-latest + if: startsWith(github.ref, 'refs/tags/') + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Download artifacts + uses: actions/download-artifact@v3 + with: + name: artifacts + path: ./out + + - name: Install requirements + run: | + sudo apt-get update && sudo apt-get install -y tar xz-utils + shell: bash + + - name: build sdists + run: | + cabal sdist -o out all + shell: bash + + - name: Release + uses: softprops/action-gh-release@v1 + with: + draft: true + files: | + ./out/* + diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 5bc427fb423..a4d3b1e6d30 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -23,7 +23,7 @@ jobs: - uses: actions/setup-haskell@v1.1.4 with: ghc-version: '8.6.5' - cabal-version: '3.2.0.0' + cabal-version: '3.4.0.0' - name: Print versions run: | [Environment]::GetEnvironmentVariable("Path") @@ -39,9 +39,12 @@ jobs: - uses: actions/checkout@v2 - name: make cabal-install-dev run: cp cabal-install/cabal-install.cabal.dev cabal-install/cabal-install.cabal - # We cannot ask for all dependencies, but we can for Cabal. - - name: cabal v2-build Cabal --only-dependencies - run: cabal v2-build Cabal --only-dependencies + # all dependencies of Cabal already there (due to GHC depending on Cabal) + - name: cabal v2-build Cabal + run: cabal v2-build Cabal + # We cannot ask for all dependencies, but we can for cabal-install. + - name: cabal v2-build cabal-install --only-dependencies + run: cabal v2-build cabal-install --only-dependencies - name: cabal v2-build run: cabal v2-build all - name: Cabal unit-tests @@ -65,15 +68,59 @@ jobs: cabal v2-run cabal-install:unit-tests -- --pattern "! (/FileMonitor/ || /VCS/ || /Get/)" - name: cabal-tests # Using only one job, -j1, to fail less. - run: cabal v2-run cabal-testsuite:cabal-tests -- -j1 --with-cabal=dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-install-3.5.0.0\x\cabal\build\cabal\cabal.exe - test-windows-8_10_3: - name: test ghc-8.10.3 + run: cabal v2-run cabal-testsuite:cabal-tests -- -j1 --with-cabal=dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-install-3.6.0.0\x\cabal\build\cabal\cabal.exe + + test-windows-8_6_5-dogfood: + name: test ghc-8.6.5 dogfood + runs-on: windows-latest + steps: + - uses: actions/setup-haskell@v1.1.4 + with: + ghc-version: '8.6.5' + cabal-version: '3.4.0.0' + - name: Print versions + run: | + [Environment]::GetEnvironmentVariable("Path") + cabal --version + ghc --version + cabal user-config init -a "http-transport: plain-http" -a "store-dir: C:\SR" -f -v3 + - uses: actions/cache@v1 + with: + path: C:\SR + key: windows-store-meta + - name: Update Hackage index + run: cabal v2-update + - uses: actions/checkout@v2 + # all dependencies of Cabal already there (due to GHC depending on Cabal) + - name: cabal v2-build Cabal + run: cabal v2-build Cabal + # We cannot ask for all dependencies, but we can for cabal-install. + - name: cabal v2-build cabal-install --only-dependencies + run: cabal v2-build cabal-install --only-dependencies + - name: cabal v2-build + run: cabal v2-build all + - name: wipe out cabal store + run: Remove-Item -Recurse -Force C:\SR + - name: eat its own dogfood by building own Cabal source with itself + run: | + cp $(cabal list-bin exe:cabal) ./cabal-exe-current + ./cabal-exe-current --version + ./cabal-exe-current v2-build Cabal + shell: bash + - name: eat its own dogfood by building all deps with itself + run: ./cabal-exe-current v2-build cabal-install --only-dependencies + shell: bash + - name: eat its own dogfood by building own source with itself + run: ./cabal-exe-current v2-build all + shell: bash + test-windows-8_10_4: + name: test ghc-8.10.4 runs-on: windows-latest steps: - uses: actions/setup-haskell@v1.1.4 with: - ghc-version: '8.10.3' - cabal-version: '3.2.0.0' + ghc-version: '8.10.4' + cabal-version: '3.4.0.0' - name: Print versions run: | [Environment]::GetEnvironmentVariable("Path") @@ -89,9 +136,12 @@ jobs: - uses: actions/checkout@v2 - name: make cabal-install-dev run: cp cabal-install/cabal-install.cabal.dev cabal-install/cabal-install.cabal - # We cannot ask for all dependencies, but we can for Cabal. - - name: cabal v2-build Cabal --only-dependencies - run: cabal v2-build Cabal --only-dependencies + # all dependencies of Cabal already there (due to GHC depending on Cabal) + - name: cabal v2-build Cabal + run: cabal v2-build Cabal + # We cannot ask for all dependencies, but we can for cabal-install. + - name: cabal v2-build cabal-install --only-dependencies + run: cabal v2-build cabal-install --only-dependencies - name: cabal v2-build run: cabal v2-build all - name: Cabal unit-tests @@ -115,4 +165,48 @@ jobs: cabal v2-run cabal-install:unit-tests -- --pattern "! (/FileMonitor/ || /VCS/ || /Get/)" - name: cabal-tests # Using only one job, -j1, to fail less. - run: cabal v2-run cabal-testsuite:cabal-tests -- -j1 --with-cabal=dist-newstyle\build\x86_64-windows\ghc-8.10.3\cabal-install-3.5.0.0\x\cabal\build\cabal\cabal.exe + run: cabal v2-run cabal-testsuite:cabal-tests -- -j1 --with-cabal=dist-newstyle\build\x86_64-windows\ghc-8.10.4\cabal-install-3.6.0.0\x\cabal\build\cabal\cabal.exe + + test-windows-8_10_4-dogfood: + name: test ghc-8.10.4 dogfood + runs-on: windows-latest + steps: + - uses: actions/setup-haskell@v1.1.4 + with: + ghc-version: '8.10.4' + cabal-version: '3.4.0.0' + - name: Print versions + run: | + [Environment]::GetEnvironmentVariable("Path") + cabal --version + ghc --version + cabal user-config init -a "http-transport: plain-http" -a "store-dir: C:\SR" -f -v3 + - uses: actions/cache@v1 + with: + path: C:\SR + key: windows-store-meta + - name: Update Hackage index + run: cabal v2-update + - uses: actions/checkout@v2 + # all dependencies of Cabal already there (due to GHC depending on Cabal) + - name: cabal v2-build Cabal + run: cabal v2-build Cabal + # We cannot ask for all dependencies, but we can for cabal-install. + - name: cabal v2-build cabal-install --only-dependencies + run: cabal v2-build cabal-install --only-dependencies + - name: cabal v2-build + run: cabal v2-build all + - name: wipe out cabal store + run: Remove-Item -Recurse -Force C:\SR + - name: eat its own dogfood by building own Cabal source with itself + run: | + cp $(cabal list-bin exe:cabal) ./cabal-exe-current + ./cabal-exe-current --version + ./cabal-exe-current v2-build Cabal + shell: bash + - name: eat its own dogfood by building all deps with itself + run: ./cabal-exe-current v2-build cabal-install --only-dependencies + shell: bash + - name: eat its own dogfood by building own source with itself + run: ./cabal-exe-current v2-build all + shell: bash diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000000..577a52eb8d3 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,161 @@ +variables: + # Commit of ghc/ci-images repository from which to pull Docker images + DOCKER_REV: "853f348f9caf38b08740b280296fbd34e09abb3a" + + GHC_VERSION: 8.10.7 + CABAL_INSTALL_VERSION: 3.6.2.0 + +workflow: + rules: + - if: $CI_COMMIT_TAG + when: always + - if: '$CI_PIPELINE_SOURCE == "web"' + when: always + - when: never + +.build: + script: + - bash .gitlab/ci.sh + artifacts: + expire_in: 2 week + paths: + - out/* + +build-aarch64-linux-deb10: + extends: .build + tags: + - aarch64-linux + image: "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb10:$DOCKER_REV" + variables: + TARBALL_ARCHIVE_SUFFIX: aarch64-linux-deb10 + TARBALL_EXT: tar.xz + ADD_CABAL_ARGS: "" + +build-armv7-linux-deb10: + extends: .build + tags: + - armv7-linux + image: "registry.gitlab.haskell.org/ghc/ci-images/armv7-linux-deb10:$DOCKER_REV" + variables: + TARBALL_ARCHIVE_SUFFIX: armv7-linux-deb1 + TARBALL_EXT: tar.xz + ADD_CABAL_ARGS: "" + # temp, because 3.6.2.0 is broken + CABAL_INSTALL_VERSION: 3.4.0.0 + retry: 2 + +build-x86_64-linux: + extends: .build + tags: + - x86_64-linux + image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV" + variables: + TARBALL_ARCHIVE_SUFFIX: x86_64-linux-deb10 + TARBALL_EXT: tar.xz + ADD_CABAL_ARGS: "--enable-split-sections" + +build-x86_64-linux-alpine: + extends: .build + tags: + - x86_64-linux + before_script: + # for cabal build + - sudo apk add --no-cache zlib zlib-dev zlib-static + image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV" + variables: + TARBALL_ARCHIVE_SUFFIX: x86_64-linux-alpine + TARBALL_EXT: tar.xz + ADD_CABAL_ARGS: "--enable-split-sections --enable-executable-static" + +build-i386-linux-alpine: + extends: .build + tags: + - x86_64-linux + image: "i386/alpine:3.12" + before_script: + # for GHC + - apk add --no-cache bash curl gcc g++ binutils binutils-gold bsd-compat-headers gmp-dev ncurses-dev libffi-dev make xz tar perl + # for cabal build + - apk add --no-cache zlib zlib-dev zlib-static + variables: + TARBALL_ARCHIVE_SUFFIX: i386-linux-alpine + TARBALL_EXT: tar.xz + ADD_CABAL_ARGS: "--enable-split-sections --enable-executable-static" + # temp, because 3.6.2.0 is broken + CABAL_INSTALL_VERSION: 3.4.0.0 + +build-x86_64-freebsd13: + extends: .build + tags: + - x86_64-freebsd13 + variables: + TARBALL_ARCHIVE_SUFFIX: x86_64-freebsd13 + TARBALL_EXT: tar.xz + ADD_CABAL_ARGS: "--enable-split-sections" + +build-x86_64-freebsd12: + extends: .build + tags: + - x86_64-freebsd12 + variables: + TARBALL_ARCHIVE_SUFFIX: x86_64-freebsd12 + TARBALL_EXT: tar.xz + ADD_CABAL_ARGS: "--enable-split-sections" + +build-x86_64-darwin: + extends: .build + tags: + - x86_64-darwin + variables: + TARBALL_ARCHIVE_SUFFIX: x86_64-darwin + TARBALL_EXT: tar.xz + ADD_CABAL_ARGS: "" + +build-aarch64-darwin: + tags: + - aarch64-darwin-m1 + script: | + set -Eeuo pipefail + function runInNixShell() { + time nix-shell $CI_PROJECT_DIR/.gitlab/shell.nix \ + -I nixpkgs=https://github.com/angerman/nixpkgs/archive/75f7281738b.tar.gz \ + --argstr system "aarch64-darwin" \ + --pure \ + --keep CI_PROJECT_DIR \ + --keep MACOSX_DEPLOYMENT_TARGET \ + --keep GHC_VERSION \ + --keep CABAL_INSTALL_VERSION \ + --keep TARBALL_ARCHIVE_SUFFIX \ + --keep TARBALL_EXT \ + --keep ADD_CABAL_ARGS \ + --run "$1" 2>&1 + } + runInNixShell "./.gitlab/ci.sh" 2>&1 + variables: + MACOSX_DEPLOYMENT_TARGET: "10.7" + TARBALL_ARCHIVE_SUFFIX: aarch64-darwin + TARBALL_EXT: tar.xz + ADD_CABAL_ARGS: "" + artifacts: + expire_in: 2 week + paths: + - out/* + +build-x86_64-windows: + extends: .build + script: + - Set-ExecutionPolicy Bypass -Scope Process -Force;[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;Invoke-Command -ScriptBlock ([ScriptBlock]::Create((Invoke-WebRequest https://www.haskell.org/ghcup/sh/bootstrap-haskell.ps1 -UseBasicParsing))) -ArgumentList $false, $true, $true, $false, $false, $false, $false, "$CI_PROJECT_DIR" + - ./ghcup/msys64/usr/bin/bash '-lc' 'pacman --noconfirm -S zip' + - $env:CHERE_INVOKING = "yes" + - ./ghcup/msys64/usr/bin/bash '-lc' "TARBALL_ARCHIVE_SUFFIX=$env:TARBALL_ARCHIVE_SUFFIX TARBALL_EXT=$env:TARBALL_EXT ADD_CABAL_ARGS=$env:ADD_CABAL_ARGS GHC_VERSION=$env:GHC_VERSION CABAL_INSTALL_VERSION=$CABAL_INSTALL_VERSION .gitlab/ci.sh" + after_script: + - "[Environment]::SetEnvironmentVariable('GHCUP_INSTALL_BASE_PREFIX', $null, [System.EnvironmentVariableTarget]::User)" + - "[Environment]::SetEnvironmentVariable('GHCUP_MSYS2', $null, [System.EnvironmentVariableTarget]::User)" + - "[Environment]::SetEnvironmentVariable('CABAL_DIR', $null, [System.EnvironmentVariableTarget]::User)" + tags: + - new-x86_64-windows + variables: + TARBALL_ARCHIVE_SUFFIX: x86_64-windows + TARBALL_EXT: zip + ADD_CABAL_ARGS: "" + retry: 2 diff --git a/.gitlab/ci.sh b/.gitlab/ci.sh new file mode 100755 index 00000000000..19a9f9c4cdf --- /dev/null +++ b/.gitlab/ci.sh @@ -0,0 +1,67 @@ +#!/usr/bin/env bash + +set -Eeuo pipefail + +source "$CI_PROJECT_DIR/.gitlab/common.sh" + + +export GHCUP_INSTALL_BASE_PREFIX="$CI_PROJECT_DIR/toolchain" +export CABAL_DIR="$CI_PROJECT_DIR/cabal" + +case "$(uname)" in + MSYS_*|MINGW*) + export CABAL_DIR="$(cygpath -w "$CABAL_DIR")" + GHCUP_BINDIR="${GHCUP_INSTALL_BASE_PREFIX}/ghcup/bin" + ;; + *) + GHCUP_BINDIR="${GHCUP_INSTALL_BASE_PREFIX}/.ghcup/bin" + ;; +esac + +mkdir -p "$CABAL_DIR" +mkdir -p "$GHCUP_BINDIR" +export PATH="$GHCUP_BINDIR:$PATH" + +export BOOTSTRAP_HASKELL_NONINTERACTIVE=1 +export BOOTSTRAP_HASKELL_GHC_VERSION=$GHC_VERSION +export BOOTSTRAP_HASKELL_CABAL_VERSION=$CABAL_INSTALL_VERSION +export BOOTSTRAP_HASKELL_VERBOSE=1 +export BOOTSTRAP_HASKELL_ADJUST_CABAL_CONFIG=yes + +curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh + +# https://github.com/haskell/cabal/issues/7313#issuecomment-811851884 +if [ "$(getconf LONG_BIT)" == "32" ] ; then + echo 'constraints: lukko -ofd-locking' >> cabal.project.release.local +fi + +args=( + -w "ghc-$GHC_VERSION" + --disable-profiling + --enable-executable-stripping + --project-file=cabal.project.release + ${ADD_CABAL_ARGS} +) + +run cabal v2-build ${args[@]} cabal-install + +mkdir "$CI_PROJECT_DIR/out" +cp "$(cabal list-bin ${args[@]} cabal-install:exe:cabal)" "$CI_PROJECT_DIR/out/cabal" +cp dist-newstyle/cache/plan.json "$CI_PROJECT_DIR/out/plan.json" +cd "$CI_PROJECT_DIR/out/" + +# create tarball/zip +TARBALL_PREFIX="cabal-install-$("$CI_PROJECT_DIR/out/cabal" --numeric-version)" +case "${TARBALL_EXT}" in + zip) + zip "${TARBALL_PREFIX}-${TARBALL_ARCHIVE_SUFFIX}.${TARBALL_EXT}" cabal plan.json + ;; + tar.xz) + tar caf "${TARBALL_PREFIX}-${TARBALL_ARCHIVE_SUFFIX}.${TARBALL_EXT}" cabal plan.json + ;; + *) + fail "Unknown TARBALL_EXT: ${TARBALL_EXT}" + ;; +esac + +rm cabal plan.json diff --git a/.gitlab/common.sh b/.gitlab/common.sh new file mode 100644 index 00000000000..b6bce698c91 --- /dev/null +++ b/.gitlab/common.sh @@ -0,0 +1,49 @@ +# Common bash utilities +# ---------------------- + +# Colors +BLACK="0;30" +GRAY="1;30" +RED="0;31" +LT_RED="1;31" +BROWN="0;33" +LT_BROWN="1;33" +GREEN="0;32" +LT_GREEN="1;32" +BLUE="0;34" +LT_BLUE="1;34" +PURPLE="0;35" +LT_PURPLE="1;35" +CYAN="0;36" +LT_CYAN="1;36" +WHITE="1;37" +LT_GRAY="0;37" + +# GitLab Pipelines log section delimiters +# https://gitlab.com/gitlab-org/gitlab-foss/issues/14664 +start_section() { + name="$1" + echo -e "section_start:$(date +%s):$name\015\033[0K" +} + +end_section() { + name="$1" + echo -e "section_end:$(date +%s):$name\015\033[0K" +} + +echo_color() { + local color="$1" + local msg="$2" + echo -e "\033[${color}m${msg}\033[0m" +} + +error() { echo_color "${RED}" "$1"; } +warn() { echo_color "${LT_BROWN}" "$1"; } +info() { echo_color "${LT_BLUE}" "$1"; } + +fail() { error "error: $1"; exit 1; } + +function run() { + info "Running $*..." + "$@" || ( error "$* failed"; return 1; ) +} diff --git a/.gitlab/shell.nix b/.gitlab/shell.nix new file mode 100644 index 00000000000..33c7c67beee --- /dev/null +++ b/.gitlab/shell.nix @@ -0,0 +1,90 @@ +{ system ? "aarch64-darwin" +#, nixpkgs ? fetchTarball https://github.com/angerman/nixpkgs/archive/257cb120334.tar.gz #apple-silicon.tar.gz +, pkgs ? import { inherit system; } +, compiler ? if system == "aarch64-darwin" then "ghc8103Binary" else "ghc8103" +}: pkgs.mkShell { + # this prevents nix from trying to write the env-vars file. + # we can't really, as NIX_BUILD_TOP/env-vars is not set. + noDumpEnvVars=1; + + # stop polluting LDFLAGS with -liconv + dontAddExtraLibs = true; + + # we need to inject ncurses into --with-curses-libraries. + # the real fix is to teach terminfo to use libcurses on macOS. + # CONFIGURE_ARGS = "--with-intree-gmp --with-curses-libraries=${pkgs.ncurses.out}/lib"; + CONFIGURE_ARGS = "--with-intree-gmp --with-curses-libraries=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib --with-iconv-includes=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include --with-iconv-libraries=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib SH=/bin/bash"; + + # magic speedup pony :facepalm: + # + # nix has the ugly habbit of duplicating ld flags more than necessary. This + # somewhat consolidates this. + shellHook = '' + export NIX_LDFLAGS=$(for a in $NIX_LDFLAGS; do echo $a; done |sort|uniq|xargs) + export NIX_LDFLAGS_FOR_TARGET=$(for a in $NIX_LDFLAGS_FOR_TARGET; do echo $a; done |sort|uniq|xargs) + export NIX_LDFLAGS_FOR_TARGET=$(comm -3 <(for l in $NIX_LDFLAGS_FOR_TARGET; do echo $l; done) <(for l in $NIX_LDFLAGS; do echo $l; done)) + + + # Impurity hack for GHC releases. + ################################# + # We don't want binary releases to depend on nix, thus we'll need to make sure we don't leak in references. + # GHC externally depends only on iconv and curses. However we can't force a specific curses library for + # the terminfo package, as such we'll need to make sure we only look in the system path for the curses library + # and not pick up the tinfo from the nix provided ncurses package. + # + # We also need to force us to use the systems COREFOUNDATION, not the one that nix builds. Again this is impure, + # but it will allow us to have proper binary distributions. + # + # do not use nixpkgs provided core foundation + export NIX_COREFOUNDATION_RPATH=/System/Library/Frameworks + # drop curses from the LDFLAGS, we really want the system ones, not the nix ones. + export NIX_LDFLAGS=$(for lib in $NIX_LDFLAGS; do case "$lib" in *curses*);; *) echo -n "$lib ";; esac; done;) + export NIX_CFLAGS_COMPILE+=" -Wno-nullability-completeness -Wno-availability -Wno-expansion-to-defined -Wno-builtin-requires-header -Wno-unused-command-line-argument" + + # unconditionally add the MacOSX.sdk and TargetConditional.h + export NIX_CFLAGS_COMPILE+=" -isystem /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include" + export NIX_LDFLAGS="-L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib $NIX_LDFLAGS" + + ''; + + nativeBuildInputs = (with pkgs; [ + # This needs to come *before* ghc, + # otherwise we migth end up with the clang from + # the bootstrap GHC in PATH with higher priority. + clang_11 + llvm_11 + + haskell.compiler.${compiler} + haskell.packages.${compiler}.cabal-install + haskell.packages.${compiler}.alex + haskell.packages.${compiler}.happy # _1_19_12 is needed for older GHCs. + + automake + autoconf + m4 + + gmp + zlib.out + zlib.dev + glibcLocales + # locale doesn't build yet :-/ + # locale + + git + + python3 + # python3Full + # python3Packages.sphinx + perl + + which + wget + curl + file + + xz + xlibs.lndir + + cacert ]) + ++ (with pkgs.darwin.apple_sdk.frameworks; [ Foundation Security ]); +} diff --git a/Cabal-QuickCheck/Cabal-QuickCheck.cabal b/Cabal-QuickCheck/Cabal-QuickCheck.cabal index 852c937399a..0f631dbdfdc 100644 --- a/Cabal-QuickCheck/Cabal-QuickCheck.cabal +++ b/Cabal-QuickCheck/Cabal-QuickCheck.cabal @@ -1,6 +1,6 @@ cabal-version: 2.2 name: Cabal-QuickCheck -version: 3.5.0.0 +version: 3.6.0.0 synopsis: QuickCheck instances for types in Cabal category: Testing description: @@ -13,7 +13,7 @@ library build-depends: , base , bytestring - , Cabal ^>=3.5.0.0 + , Cabal ^>=3.6.0.0 , QuickCheck ^>=2.13.2 || ^>=2.14 if !impl(ghc >= 8.0) diff --git a/Cabal-described/Cabal-described.cabal b/Cabal-described/Cabal-described.cabal index 91d8fc1e3eb..e8911f40b1f 100644 --- a/Cabal-described/Cabal-described.cabal +++ b/Cabal-described/Cabal-described.cabal @@ -1,6 +1,6 @@ cabal-version: 2.2 name: Cabal-described -version: 3.5.0.0 +version: 3.6.0.0 synopsis: Described functionality for types in Cabal category: Testing, Parsec description: Provides rere bindings @@ -11,7 +11,7 @@ library ghc-options: -Wall build-depends: , base - , Cabal ^>=3.5.0.0 + , Cabal ^>=3.6.0.0 , containers , pretty , QuickCheck diff --git a/Cabal-tests/Cabal-tests.cabal b/Cabal-tests/Cabal-tests.cabal index 093a552e4ba..a194259817f 100644 --- a/Cabal-tests/Cabal-tests.cabal +++ b/Cabal-tests/Cabal-tests.cabal @@ -1,7 +1,7 @@ cabal-version: >=1.10 name: Cabal-tests version: 3 -copyright: 2003-2020, Cabal Development Team (see AUTHORS file) +copyright: 2003-2021, Cabal Development Team (see AUTHORS file) license: BSD3 license-file: LICENSE author: Cabal Development Team diff --git a/Cabal-tree-diff/Cabal-tree-diff.cabal b/Cabal-tree-diff/Cabal-tree-diff.cabal index 8384ec80ea1..0f2804c6380 100644 --- a/Cabal-tree-diff/Cabal-tree-diff.cabal +++ b/Cabal-tree-diff/Cabal-tree-diff.cabal @@ -1,6 +1,6 @@ cabal-version: 2.2 name: Cabal-tree-diff -version: 3.5.0.0 +version: 3.6.0.0 synopsis: QuickCheck instances for types in Cabal category: Testing description: Provides tree-diff ToExpr instances for some types in Cabal @@ -11,7 +11,7 @@ library ghc-options: -Wall build-depends: , base - , Cabal ^>=3.5.0.0 + , Cabal ^>=3.6.0.0 , tree-diff ^>=0.1 || ^>=0.2 exposed-modules: Data.TreeDiff.Instances.Cabal diff --git a/Cabal/Cabal.cabal b/Cabal/Cabal.cabal index 1adb417f008..eb56782973c 100644 --- a/Cabal/Cabal.cabal +++ b/Cabal/Cabal.cabal @@ -1,7 +1,7 @@ cabal-version: >=1.10 name: Cabal -version: 3.5.0.0 -copyright: 2003-2020, Cabal Development Team (see AUTHORS file) +version: 3.6.2.0 +copyright: 2003-2021, Cabal Development Team (see AUTHORS file) license: BSD3 license-file: LICENSE author: Cabal Development Team diff --git a/Cabal/ChangeLog.md b/Cabal/ChangeLog.md index f2ab5428a94..5c70d3b0505 100644 --- a/Cabal/ChangeLog.md +++ b/Cabal/ChangeLog.md @@ -1,3 +1,23 @@ +# 3.6.2.0 [Emily Pillmore](mailgo:emilypi@cohomolo.gy) October 2021 + * See https://github.com/haskell/cabal/blob/master/release-notes/Cabal-3.6.2.0.md + +# 3.6.1.0 [Emily Pillmore](mailgo:emilypi@cohomolo.gy) August 2021 + * See https://github.com/haskell/cabal/blob/master/release-notes/Cabal-3.6.1.0.md + +# 3.6.0.0 [Emily Pillmore](mailgo:emilypi@cohomolo.gy) August 2021 + * See https://github.com/haskell/cabal/blob/master/release-notes/Cabal-3.6.0.0.md + +# 3.4.0.0 [Oleg Grenrus](mailgo:oleg.grnerus@iki.fi) February 2021 + * See https://github.com/haskell/cabal/blob/master/release-notes/Cabal-3.4.0.0.md + +# 3.2.1.0 [Oleg Grenrus](mailto:oleg.grenris@iki.fi) October 2020 + * Pass `cxx-options` with `-optcxx` for GHC >= 8.10 + * Use process jobs when calling subprocesses + * Require custom-setup for `cabal-version: 1.24` and later + * Accept `linux-androideabi` as an alias for Android + * Fix ghci being launched before other sources are built + * Require cabal-versions >=1.25 to be exact + # 3.2.0.0 [Herbert Valerio Riedel](mailto:hvr@gnu.org) April 2020 * Change free text `String` fields to use `ShortText` in package description and installed package info. diff --git a/Cabal/Makefile b/Cabal/Makefile index 12197fe2e7a..3d5ca7d6e13 100644 --- a/Cabal/Makefile +++ b/Cabal/Makefile @@ -1,4 +1,4 @@ -VERSION=3.5.0.0 +VERSION=3.6.0.0 #KIND=devel KIND=rc diff --git a/Cabal/src/Distribution/PackageDescription/Check.hs b/Cabal/src/Distribution/PackageDescription/Check.hs index 821c61aa71c..108aa9836ad 100644 --- a/Cabal/src/Distribution/PackageDescription/Check.hs +++ b/Cabal/src/Distribution/PackageDescription/Check.hs @@ -539,13 +539,15 @@ checkFields pkg = ++ "for example 'tested-with: GHC==6.10.4, GHC==6.12.3' and not " ++ "'tested-with: GHC==6.10.4 && ==6.12.3'." - , check (not (null depInternalLibraryWithExtraVersion)) $ - PackageBuildWarning $ - "The package has an extraneous version range for a dependency on an " - ++ "internal library: " - ++ commaSep (map prettyShow depInternalLibraryWithExtraVersion) - ++ ". This version range includes the current package but isn't needed " - ++ "as the current package's library will always be used." + -- for more details on why the following was commented out, + -- check https://github.com/haskell/cabal/pull/7470#issuecomment-875878507 + -- , check (not (null depInternalLibraryWithExtraVersion)) $ + -- PackageBuildWarning $ + -- "The package has an extraneous version range for a dependency on an " + -- ++ "internal library: " + -- ++ commaSep (map prettyShow depInternalLibraryWithExtraVersion) + -- ++ ". This version range includes the current package but isn't needed " + -- ++ "as the current package's library will always be used." , check (not (null depInternalLibraryWithImpossibleVersion)) $ PackageBuildImpossible $ @@ -555,13 +557,13 @@ checkFields pkg = ++ ". This version range does not include the current package, and must " ++ "be removed as the current package's library will always be used." - , check (not (null depInternalExecutableWithExtraVersion)) $ - PackageBuildWarning $ - "The package has an extraneous version range for a dependency on an " - ++ "internal executable: " - ++ commaSep (map prettyShow depInternalExecutableWithExtraVersion) - ++ ". This version range includes the current package but isn't needed " - ++ "as the current package's executable will always be used." + -- , check (not (null depInternalExecutableWithExtraVersion)) $ + -- PackageBuildWarning $ + -- "The package has an extraneous version range for a dependency on an " + -- ++ "internal executable: " + -- ++ commaSep (map prettyShow depInternalExecutableWithExtraVersion) + -- ++ ". This version range includes the current package but isn't needed " + -- ++ "as the current package's executable will always be used." , check (not (null depInternalExecutableWithImpossibleVersion)) $ PackageBuildImpossible $ @@ -617,12 +619,12 @@ checkFields pkg = , isInternal pkg dep ] - depInternalLibraryWithExtraVersion = - [ dep - | dep@(Dependency _ versionRange _) <- internalLibDeps - , not $ isAnyVersion versionRange - , packageVersion pkg `withinRange` versionRange - ] + -- depInternalLibraryWithExtraVersion = + -- [ dep + -- | dep@(Dependency _ versionRange _) <- internalLibDeps + -- , not $ isAnyVersion versionRange + -- , packageVersion pkg `withinRange` versionRange + -- ] depInternalLibraryWithImpossibleVersion = [ dep @@ -630,12 +632,12 @@ checkFields pkg = , not $ packageVersion pkg `withinRange` versionRange ] - depInternalExecutableWithExtraVersion = - [ dep - | dep@(ExeDependency _ _ versionRange) <- internalExeDeps - , not $ isAnyVersion versionRange - , packageVersion pkg `withinRange` versionRange - ] + -- depInternalExecutableWithExtraVersion = + -- [ dep + -- | dep@(ExeDependency _ _ versionRange) <- internalExeDeps + -- , not $ isAnyVersion versionRange + -- , packageVersion pkg `withinRange` versionRange + -- ] depInternalExecutableWithImpossibleVersion = [ dep diff --git a/Cabal/src/Distribution/Simple.hs b/Cabal/src/Distribution/Simple.hs index f58d79f0f23..88ede00c462 100644 --- a/Cabal/src/Distribution/Simple.hs +++ b/Cabal/src/Distribution/Simple.hs @@ -1,6 +1,7 @@ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE LambdaCase #-} +{-# LANGUAGE CPP #-} ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple @@ -97,7 +98,11 @@ import Distribution.System (buildPlatform) import System.Environment (getArgs, getProgName) import System.Directory (removeFile, doesFileExist ,doesDirectoryExist, removeDirectoryRecursive) -import System.FilePath (searchPathSeparator, takeDirectory, (), splitDirectories, dropDrive) +import System.FilePath (searchPathSeparator, takeDirectory, (), + splitDirectories, dropDrive) +#ifdef mingw32_HOST_OS +import System.FilePath (normalise, splitDrive) +#endif import Distribution.Compat.ResponseFile (expandResponse) import Distribution.Compat.Directory (makeAbsolute) import Distribution.Compat.Environment (getEnvironment) @@ -698,7 +703,7 @@ runConfigureScript verbosity backwardsCompatHack flags lbi = do -- TODO: We don't check for colons, tildes or leading dashes. We -- also should check the builddir's path, destdir, and all other -- paths as well. - let configureFile' = intercalate "/" $ splitDirectories configureFile + let configureFile' = toUnix configureFile for_ badAutoconfCharacters $ \(c, cname) -> when (c `elem` dropDrive configureFile') $ warn verbosity $ concat @@ -738,6 +743,19 @@ runConfigureScript verbosity backwardsCompatHack flags lbi = do ++ "If you are not on Windows, ensure that an 'sh' command " ++ "is discoverable in your path." +-- | Convert Windows path to Unix ones +toUnix :: String -> String +#ifdef mingw32_HOST_OS +toUnix s = let tmp = normalise s + (l, rest) = case splitDrive tmp of + ([], x) -> ("/" , x) + (h:_, x) -> ('/':h:"/", x) + parts = splitDirectories rest + in l ++ intercalate "/" parts +#else +toUnix s = intercalate "/" $ splitDirectories s +#endif + badAutoconfCharacters :: [(Char, String)] badAutoconfCharacters = [ (' ', "space") diff --git a/Cabal/src/Distribution/Simple/Build/PathsModule.hs b/Cabal/src/Distribution/Simple/Build/PathsModule.hs index 2ec29689222..b2be7e1a8fc 100644 --- a/Cabal/src/Distribution/Simple/Build/PathsModule.hs +++ b/Cabal/src/Distribution/Simple/Build/PathsModule.hs @@ -41,7 +41,6 @@ generatePathsModule pkg_descr lbi clbi = Z.render Z.Z , Z.zVersionDigits = show $ versionNumbers $ packageVersion pkg_descr , Z.zSupportsCpp = supports_cpp , Z.zSupportsNoRebindableSyntax = supports_rebindable_syntax - , Z.zSupportsNoMissingSafeHaskellMode = supports_missing_safehaskell , Z.zAbsolute = absolute , Z.zRelocatable = relocatable lbi , Z.zIsWindows = isWindows @@ -62,7 +61,6 @@ generatePathsModule pkg_descr lbi clbi = Z.render Z.Z supports_cpp = supports_language_pragma supports_rebindable_syntax = ghc_newer_than (mkVersion [7,0,1]) supports_language_pragma = ghc_newer_than (mkVersion [6,6,1]) - supports_missing_safehaskell = ghc_newer_than (mkVersion [8,10,1]) ghc_newer_than minVersion = case compilerCompatVersion GHC (compiler lbi) of diff --git a/Cabal/src/Distribution/Simple/Build/PathsModule/Z.hs b/Cabal/src/Distribution/Simple/Build/PathsModule/Z.hs index 928a8b2d964..69efbda87fe 100644 --- a/Cabal/src/Distribution/Simple/Build/PathsModule/Z.hs +++ b/Cabal/src/Distribution/Simple/Build/PathsModule/Z.hs @@ -6,7 +6,6 @@ data Z zVersionDigits :: String, zSupportsCpp :: Bool, zSupportsNoRebindableSyntax :: Bool, - zSupportsNoMissingSafeHaskellMode :: Bool, zAbsolute :: Bool, zRelocatable :: Bool, zIsWindows :: Bool, @@ -43,12 +42,7 @@ render z_root = execWriter $ do else do return () tell "{-# OPTIONS_GHC -fno-warn-missing-import-lists #-}\n" - if (zSupportsNoMissingSafeHaskellMode z_root) - then do - tell "{-# OPTIONS_GHC -Wno-missing-safe-haskell-mode #-}\n" - return () - else do - return () + tell "{-# OPTIONS_GHC -w #-}\n" tell "module Paths_" tell (zManglePkgName z_root (zPackageName z_root)) tell " (\n" @@ -66,6 +60,7 @@ render z_root = execWriter $ do return () tell "\n" tell "import qualified Control.Exception as Exception\n" + tell "import qualified Data.List as List\n" tell "import Data.Version (Version(..))\n" tell "import System.Environment (getEnv)\n" tell "import Prelude\n" @@ -301,8 +296,8 @@ render z_root = execWriter $ do tell "joinFileName \".\" fname = fname\n" tell "joinFileName dir \"\" = dir\n" tell "joinFileName dir fname\n" - tell " | isPathSeparator (last dir) = dir ++ fname\n" - tell " | otherwise = dir ++ pathSeparator : fname\n" + tell " | isPathSeparator (List.last dir) = dir ++ fname\n" + tell " | otherwise = dir ++ pathSeparator : fname\n" tell "\n" tell "pathSeparator :: Char\n" if (zIsWindows z_root) diff --git a/Cabal/src/Distribution/Simple/Compiler.hs b/Cabal/src/Distribution/Simple/Compiler.hs index 141c33b94f9..c9727e92202 100644 --- a/Cabal/src/Distribution/Simple/Compiler.hs +++ b/Cabal/src/Distribution/Simple/Compiler.hs @@ -62,6 +62,7 @@ module Distribution.Simple.Compiler ( profilingSupported, backpackSupported, arResponseFilesSupported, + arDashLSupported, libraryDynDirSupported, libraryVisibilitySupported, @@ -365,6 +366,12 @@ libraryDynDirSupported comp = case compilerFlavor comp of arResponseFilesSupported :: Compiler -> Bool arResponseFilesSupported = ghcSupported "ar supports at file" +-- | Does this compiler's "ar" command support llvm-ar's -L flag, +-- which compels the archiver to add an input archive's members +-- rather than adding the archive itself. +arDashLSupported :: Compiler -> Bool +arDashLSupported = ghcSupported "ar supports -L" + -- | Does this compiler support Haskell program coverage? coverageSupported :: Compiler -> Bool coverageSupported comp = diff --git a/Cabal/src/Distribution/Simple/Configure.hs b/Cabal/src/Distribution/Simple/Configure.hs index 869b004ee99..1ba3154b952 100644 --- a/Cabal/src/Distribution/Simple/Configure.hs +++ b/Cabal/src/Distribution/Simple/Configure.hs @@ -635,6 +635,22 @@ configure (pkg_descr0, pbi) cfg = do "--enable-split-objs; ignoring") return False + let compilerSupportsGhciLibs :: Bool + compilerSupportsGhciLibs = + case compilerId comp of + CompilerId GHC version + | version > mkVersion [9,3] && windows -> + False + CompilerId GHC _ -> + True + CompilerId GHCJS _ -> + True + _ -> False + where + windows = case compPlatform of + Platform _ Windows -> True + Platform _ _ -> False + let ghciLibByDefault = case compilerId comp of CompilerId GHC _ -> @@ -651,6 +667,15 @@ configure (pkg_descr0, pbi) cfg = do not (GHCJS.isDynamic comp) _ -> False + withGHCiLib_ <- + case fromFlagOrDefault ghciLibByDefault (configGHCiLib cfg) of + True | not compilerSupportsGhciLibs -> do + warn verbosity $ + "--enable-library-for-ghci is no longer supported on Windows with" + ++ " GHC 9.4 and later; ignoring..." + return False + v -> return v + let sharedLibsByDefault | fromFlag (configDynExe cfg) = -- build a shared library if dynamically-linked @@ -746,8 +771,7 @@ configure (pkg_descr0, pbi) cfg = do withProfExeDetail = ProfDetailNone, withOptimization = fromFlag $ configOptimization cfg, withDebugInfo = fromFlag $ configDebugInfo cfg, - withGHCiLib = fromFlagOrDefault ghciLibByDefault $ - configGHCiLib cfg, + withGHCiLib = withGHCiLib_, splitSections = split_sections, splitObjs = split_objs, stripExes = strip_exe, diff --git a/Cabal/src/Distribution/Simple/GHC.hs b/Cabal/src/Distribution/Simple/GHC.hs index a05242464e8..070115f2792 100644 --- a/Cabal/src/Distribution/Simple/GHC.hs +++ b/Cabal/src/Distribution/Simple/GHC.hs @@ -240,10 +240,11 @@ guessToolFromGhcPath tool ghcProg verbosity searchpath | otherwise = [guessGhcVersioned dir suf, guessVersioned dir suf, guessNormal dir] - guesses = mkGuesses given_dir given_suf ++ - if real_path == given_path - then [] - else mkGuesses real_dir real_suf + -- order matters here, see https://github.com/haskell/cabal/issues/7390 + guesses = (if real_path == given_path + then [] + else mkGuesses real_dir real_suf) + ++ mkGuesses given_dir given_suf info verbosity $ "looking for tool " ++ toolname ++ " near compiler in " ++ given_dir debug verbosity $ "candidate locations: " ++ show guesses diff --git a/Cabal/src/Distribution/Simple/Hpc.hs b/Cabal/src/Distribution/Simple/Hpc.hs index b678772c1e6..4e292509d78 100644 --- a/Cabal/src/Distribution/Simple/Hpc.hs +++ b/Cabal/src/Distribution/Simple/Hpc.hs @@ -68,7 +68,29 @@ mixDir :: FilePath -- ^ \"dist/\" prefix -> Way -> FilePath -- ^ Component name -> FilePath -- ^ Directory containing test suite's .mix files -mixDir distPref way name = hpcDir distPref way "mix" name +mixDir distPref way name = hpcDir distPrefBuild way "mix" name + where + -- This is a hack for HPC over test suites, needed to match the directory + -- where HPC saves and reads .mix files when the main library of the same + -- package is being processed, perhaps in a previous cabal run (#5213). + -- E.g., @distPref@ may be + -- @./dist-newstyle/build/x86_64-linux/ghc-9.0.1/cabal-gh5213-0.1/t/tests@ + -- but the path where library mix files reside has two less components + -- at the end (@t/tests@) and this reduced path needs to be passed to + -- both @hpc@ and @ghc@. For non-default optimization levels, the path + -- suffix is one element longer and the extra path element needs + -- to be preserved. + distPrefElements = splitDirectories distPref + distPrefBuild = case drop (length distPrefElements - 3) distPrefElements of + ["t", _, "noopt"] -> + joinPath $ take (length distPrefElements - 3) distPrefElements + ++ ["noopt"] + ["t", _, "opt"] -> + joinPath $ take (length distPrefElements - 3) distPrefElements + ++ ["opt"] + [_, "t", _] -> + joinPath $ take (length distPrefElements - 2) distPrefElements + _ -> distPref tixDir :: FilePath -- ^ \"dist/\" prefix -> Way diff --git a/Cabal/src/Distribution/Simple/Program/Ar.hs b/Cabal/src/Distribution/Simple/Program/Ar.hs index 12fc610e387..7a96c3eb500 100644 --- a/Cabal/src/Distribution/Simple/Program/Ar.hs +++ b/Cabal/src/Distribution/Simple/Program/Ar.hs @@ -24,7 +24,7 @@ import Distribution.Compat.Prelude import qualified Data.ByteString as BS import qualified Data.ByteString.Char8 as BS8 import Distribution.Compat.CopyFile (filesEqual) -import Distribution.Simple.Compiler (arResponseFilesSupported) +import Distribution.Simple.Compiler (arResponseFilesSupported, arDashLSupported) import Distribution.Simple.LocalBuildInfo (LocalBuildInfo(..)) import Distribution.Simple.Program ( ProgramInvocation, arProgram, requireProgram ) @@ -68,17 +68,25 @@ createArLibArchive verbosity lbi targetPath files = do -- do that. We have duplicates because of modules like "A.M" and "B.M" -- both make an object file "M.o" and ar does not consider the directory. -- + -- -- llvm-ar, which GHC >=9.4 uses on Windows, supports a "L" modifier + -- in "q" mode which compels the archiver to add the members of an input + -- archive to the output, rather than the archive itself. This is + -- necessary as GHC may produce .o files that are actually archives. See + -- https://gitlab.haskell.org/ghc/ghc/-/issues/21068. + -- -- Our solution is to use "ar r" in the simple case when one call is enough. -- When we need to call ar multiple times we use "ar q" and for the last -- call on OSX we use "ar qs" so that it'll make the index. let simpleArgs = case hostOS of OSX -> ["-r", "-s"] + _ | dashLSupported -> ["-qL"] _ -> ["-r"] initialArgs = ["-q"] finalArgs = case hostOS of OSX -> ["-q", "-s"] + _ | dashLSupported -> ["-qL"] _ -> ["-q"] extraArgs = verbosityOpts verbosity ++ [tmpPath] @@ -90,8 +98,10 @@ createArLibArchive verbosity lbi targetPath files = do oldVersionManualOverride = fromFlagOrDefault False $ configUseResponseFiles $ configFlags lbi - responseArgumentsNotSupported = + responseArgumentsNotSupported = not (arResponseFilesSupported (compiler lbi)) + dashLSupported = + arDashLSupported (compiler lbi) invokeWithResponesFile :: FilePath -> ProgramInvocation invokeWithResponesFile atFile = diff --git a/Cabal/src/Distribution/Simple/Setup.hs b/Cabal/src/Distribution/Simple/Setup.hs index 9ec4a104596..04cba0e293f 100644 --- a/Cabal/src/Distribution/Simple/Setup.hs +++ b/Cabal/src/Distribution/Simple/Setup.hs @@ -372,8 +372,8 @@ defaultConfigFlags progDb = emptyConfigFlags { configVerbosity = Flag normal, configUserInstall = Flag False, --TODO: reverse this #if defined(mingw32_HOST_OS) - -- See #1589. - configGHCiLib = Flag True, + -- See #8062 and GHC #21019. + configGHCiLib = Flag False, #else configGHCiLib = NoFlag, #endif diff --git a/Cabal/src/Distribution/Utils/Path.hs b/Cabal/src/Distribution/Utils/Path.hs index 7197e0baa13..eb3d11deb96 100644 --- a/Cabal/src/Distribution/Utils/Path.hs +++ b/Cabal/src/Distribution/Utils/Path.hs @@ -35,7 +35,7 @@ import qualified Distribution.Compat.CharParsing as P -- until we interpret them. -- newtype SymbolicPath from to = SymbolicPath FilePath - deriving (Generic, Show, Read, Eq, Typeable, Data) + deriving (Generic, Show, Read, Eq, Ord, Typeable, Data) instance Binary (SymbolicPath from to) instance (Typeable from, Typeable to) => Structured (SymbolicPath from to) diff --git a/Cabal/src/Distribution/Utils/Structured.hs b/Cabal/src/Distribution/Utils/Structured.hs index 560bbf1c015..901047eb5a8 100644 --- a/Cabal/src/Distribution/Utils/Structured.hs +++ b/Cabal/src/Distribution/Utils/Structured.hs @@ -64,6 +64,7 @@ module Distribution.Utils.Structured ( containerStructure, -- * Structure type Structure (..), + Tag (..), TypeName, ConstructorName, TypeVersion, @@ -207,7 +208,7 @@ structureBuilder s0 = State.evalState (go s0) Map.empty where Nothing -> return $ mconcat [ Builder.word8 0, Builder.stringUtf8 (show t) ] Just acc' -> do State.put acc' - k + k goSop :: SopStructure -> State.State (Map.Map String (NonEmpty TypeRep)) Builder.Builder goSop sop = do diff --git a/Makefile b/Makefile index 6c99230f758..5a242886f7d 100644 --- a/Makefile +++ b/Makefile @@ -170,11 +170,11 @@ validate-via-docker-all : validate-via-docker-8.0.2 validate-via-docker-all : validate-via-docker-8.2.2 validate-via-docker-all : validate-via-docker-8.4.4 validate-via-docker-all : validate-via-docker-8.6.5 -validate-via-docker-all : validate-via-docker-8.8.3 -validate-via-docker-all : validate-via-docker-8.10.1 +validate-via-docker-all : validate-via-docker-8.8.4 +validate-via-docker-all : validate-via-docker-8.10.4 -validate-dockerfiles : .docker/validate-8.10.1.dockerfile -validate-dockerfiles : .docker/validate-8.8.3.dockerfile +validate-dockerfiles : .docker/validate-8.10.4.dockerfile +validate-dockerfiles : .docker/validate-8.8.4.dockerfile validate-dockerfiles : .docker/validate-8.6.5.dockerfile validate-dockerfiles : .docker/validate-8.4.4.dockerfile validate-dockerfiles : .docker/validate-8.2.2.dockerfile @@ -211,11 +211,11 @@ validate-via-docker-8.4.4: validate-via-docker-8.6.5: docker build $(DOCKERARGS) -t cabal-validate:8.6.5 -f .docker/validate-8.6.5.dockerfile . -validate-via-docker-8.8.3: - docker build $(DOCKERARGS) -t cabal-validate:8.8.3 -f .docker/validate-8.8.3.dockerfile . +validate-via-docker-8.8.4: + docker build $(DOCKERARGS) -t cabal-validate:8.8.4 -f .docker/validate-8.8.4.dockerfile . -validate-via-docker-8.10.1: - docker build $(DOCKERARGS) -t cabal-validate:8.10.1 -f .docker/validate-8.10.1.dockerfile . +validate-via-docker-8.10.4: + docker build $(DOCKERARGS) -t cabal-validate:8.10.4 -f .docker/validate-8.10.4.dockerfile . validate-via-docker-old: docker build $(DOCKERARGS) -t cabal-validate:older -f .docker/validate-old.dockerfile . @@ -237,23 +237,27 @@ bootstrap-plans-linux: phony @if [ $$(uname) != "Linux" ]; then echo "Not Linux"; false; fi cabal v2-build --project=cabal.project.release --with-compiler ghc-8.6.5 --dry-run cabal-install:exe:cabal cp dist-newstyle/cache/plan.json bootstrap/linux-8.6.5.plan.json - cabal v2-build --project=cabal.project.release --with-compiler ghc-8.8.3 --dry-run cabal-install:exe:cabal - cp dist-newstyle/cache/plan.json bootstrap/linux-8.8.3.plan.json - cabal v2-build --project=cabal.project.release --with-compiler ghc-8.10.1 --dry-run cabal-install:exe:cabal - cp dist-newstyle/cache/plan.json bootstrap/linux-8.10.1.plan.json + cabal v2-build --project=cabal.project.release --with-compiler ghc-8.8.4 --dry-run cabal-install:exe:cabal + cp dist-newstyle/cache/plan.json bootstrap/linux-8.8.4.plan.json + cabal v2-build --project=cabal.project.release --with-compiler ghc-8.10.7 --dry-run cabal-install:exe:cabal + cp dist-newstyle/cache/plan.json bootstrap/linux-8.10.7.plan.json bootstrap-jsons-linux: phony @if [ $$(uname) != "Linux" ]; then echo "Not Linux"; false; fi cabal v2-build --builddir=dist-newstyle-bootstrap --project=cabal.project.bootstrap cabal-bootstrap-gen - cabal v2-run -vnormal+stderr --builddir=dist-newstyle-bootstrap --project=cabal.project.bootstrap cabal-bootstrap-gen -- bootstrap/linux-8.6.5.plan.json | python -m json.tool | tee bootstrap/linux-8.6.5.json - cabal v2-run -vnormal+stderr --builddir=dist-newstyle-bootstrap --project=cabal.project.bootstrap cabal-bootstrap-gen -- bootstrap/linux-8.8.3.plan.json | python -m json.tool | tee bootstrap/linux-8.8.3.json - cabal v2-run -vnormal+stderr --builddir=dist-newstyle-bootstrap --project=cabal.project.bootstrap cabal-bootstrap-gen -- bootstrap/linux-8.10.1.plan.json | python -m json.tool | tee bootstrap/linux-8.10.1.json + cabal v2-run -vnormal+stderr --builddir=dist-newstyle-bootstrap --project=cabal.project.bootstrap cabal-bootstrap-gen -- bootstrap/linux-8.6.5.plan.json | python3 -m json.tool | tee bootstrap/linux-8.6.5.json + cabal v2-run -vnormal+stderr --builddir=dist-newstyle-bootstrap --project=cabal.project.bootstrap cabal-bootstrap-gen -- bootstrap/linux-8.8.4.plan.json | python3 -m json.tool | tee bootstrap/linux-8.8.4.json + cabal v2-run -vnormal+stderr --builddir=dist-newstyle-bootstrap --project=cabal.project.bootstrap cabal-bootstrap-gen -- bootstrap/linux-8.10.7.plan.json | python3 -m json.tool | tee bootstrap/linux-8.10.7.json # documentation ############################################################################## # TODO: when we have sphinx-build2 ? SPHINXCMD:=sphinx-build +# Flag -n ("nitpick") warns about broken references +# Flag -W turns warnings into errors +# Flag --keep-going continues after errors +SPHINX_FLAGS:=-n -W --keep-going -E SPHINX_HTML_OUTDIR:=dist-newstyle/doc/users-guide USERGUIDE_STAMP:=$(SPHINX_HTML_OUTDIR)/index.html @@ -261,7 +265,7 @@ USERGUIDE_STAMP:=$(SPHINX_HTML_OUTDIR)/index.html users-guide: .python-sphinx-virtualenv $(USERGUIDE_STAMP) $(USERGUIDE_STAMP) : doc/*.rst mkdir -p $(SPHINX_HTML_OUTDIR) - (. ./.python-sphinx-virtualenv/bin/activate && pip install -r doc/requirements.txt && $(SPHINXCMD) doc $(SPHINX_HTML_OUTDIR)) + (. ./.python-sphinx-virtualenv/bin/activate && pip install -r doc/requirements.txt && $(SPHINXCMD) $(SPHINX_FLAGS) doc $(SPHINX_HTML_OUTDIR)) .python-sphinx-virtualenv: python3 -m venv .python-sphinx-virtualenv diff --git a/appveyor.yml b/appveyor.yml index 86b93d5e423..a9b365ca859 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -55,7 +55,7 @@ build_script: - cabal %CABOPTS% v2-test Cabal-tests - appveyor-retry cabal %CABOPTS% v2-build exe:cabal exe:cabal-tests --only-dependencies - cabal %CABOPTS% v2-build exe:cabal - - cabal %CABOPTS% v2-run cabal-testsuite:cabal-tests -- -j3 --with-cabal=dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-install-3.5.0.0\x\cabal\build\cabal\cabal.exe + - cabal %CABOPTS% v2-run cabal-testsuite:cabal-tests -- -j3 --with-cabal=dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-install-3.6.0.0\x\cabal\build\cabal\cabal.exe - appveyor-retry cabal %CABOPTS% v2-build cabal-install:tests --only-dependencies - cd cabal-install - cabal %CABOPTS% v2-run cabal-install:memory-usage-tests diff --git a/bootstrap/linux-8.10.1.plan.json b/bootstrap/linux-8.10.1.plan.json deleted file mode 100644 index 22f38b84c0b..00000000000 --- a/bootstrap/linux-8.10.1.plan.json +++ /dev/null @@ -1 +0,0 @@ -{"cabal-version":"3.4.0.0","cabal-lib-version":"3.4.0.0","compiler-id":"ghc-8.10.1","os":"linux","arch":"x86_64","install-plan":[{"type":"configured","id":"Cabal-3.5.0.0-inplace","pkg-name":"Cabal","pkg-version":"3.5.0.0","flags":{"bundled-binary-generic":false},"style":"local","pkg-src":{"type":"local","path":"/code/shared-haskell/cabal/Cabal"},"dist-dir":"/code/shared-haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.1/Cabal-3.5.0.0","depends":["array-0.5.4.0","base-4.14.0.0","binary-0.8.8.0","bytestring-0.10.10.0","containers-0.6.2.1","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","mtl-2.2.2","parsec-3.1.14.0","pretty-1.1.3.6","process-1.6.8.2","text-1.2.3.2","time-1.9.3","transformers-0.5.6.2","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"HTTP-4000.3.14-62fbf88bbfbc7cc9314709de72638706f246f307e01c99e24a31e837876c89d4","pkg-name":"HTTP","pkg-version":"4000.3.14","flags":{"conduit10":false,"mtl1":false,"network-uri":true,"warn-as-error":false,"warp-tests":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3c19975fdfd8d057eae58847bda6a79514ad882fd6f8ead72ac0247af34bdfc6","pkg-src-sha256":"a602d7f30e917164c6a634f8cb1f5df4849048858db01380a0875e16e5aa687b","depends":["array-0.5.4.0","base-4.14.0.0","bytestring-0.10.10.0","mtl-2.2.2","network-3.1.1.1-687472ff05020491920b181bb5aaf65b2a8c0e63c6aca4886c27983fddd81f23","network-uri-2.6.3.0-eb186d87f8a507c0cb1a53e79cf1ba20e1d0bdb44a448a0c491809447a2b5367","parsec-3.1.14.0","time-1.9.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.14.0.0"]},{"type":"configured","id":"async-2.2.2-039e9b1c5c2ed7ba7afc18d3bfeb9daa9474183c00749140a4b3bfceca11ada6","pkg-name":"async","pkg-version":"2.2.2","flags":{"bench":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a178c166856da7ff22fe4500337b54812e94fd2059409452187d72e057ede9cd","pkg-src-sha256":"4b4ab1ac82c45144d82c6daf6cb6ba45eab9957dad44787fa5e869e23d73bbff","depends":["base-4.14.0.0","hashable-1.3.0.0-23eb1730651b09d8636b64cb5af16315693f5bde48cc5de1e9f2cfbd9a2210e2","stm-2.5.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"base-4.14.0.0","pkg-name":"base","pkg-version":"4.14.0.0","depends":["ghc-prim-0.6.1","integer-gmp-1.0.3.0","rts"]},{"type":"configured","id":"base16-bytestring-0.1.1.7-45aecb012963614f5b4123864c17d592472c3d66692a31efb222213d2d7b718e","pkg-name":"base16-bytestring","pkg-version":"0.1.1.7","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"8cbba2505d4da4f6cfc90cd36c8e8ad0c09c056538481ea00e8b10b78f70cb10","pkg-src-sha256":"525689679d5cc80fa532c1d5cfeace0f62bbb54134fad514f1ba00d0e7fe69ba","depends":["base-4.14.0.0","bytestring-0.10.10.0","ghc-prim-0.6.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"base64-bytestring-1.1.0.0-0f7ca8b9a9759304f992cbcb18c26649e0231f6e98ea78a3d1d47c923342536d","pkg-name":"base64-bytestring","pkg-version":"1.1.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"190264fef9e65d9085f00ccda419137096d1dc94777c58272bc96821dc7f37c3","pkg-src-sha256":"210d6c9042241ca52ee5d89cf221dbeb4d0e64b37391345369035ad2d9b4aca9","depends":["base-4.14.0.0","bytestring-0.10.10.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.8.0","pkg-name":"binary","pkg-version":"0.8.8.0","depends":["array-0.5.4.0","base-4.14.0.0","bytestring-0.10.10.0","containers-0.6.2.1"]},{"type":"pre-existing","id":"bytestring-0.10.10.0","pkg-name":"bytestring","pkg-version":"0.10.10.0","depends":["base-4.14.0.0","deepseq-1.4.4.0","ghc-prim-0.6.1","integer-gmp-1.0.3.0"]},{"type":"configured","id":"cabal-install-3.5.0.0-inplace-cabal","pkg-name":"cabal-install","pkg-version":"3.5.0.0","flags":{"debug-conflict-sets":false,"debug-expensive-assertions":false,"debug-tracetree":false,"lukko":true,"native-dns":true},"style":"local","pkg-src":{"type":"local","path":"/code/shared-haskell/cabal/cabal-install"},"dist-dir":"/code/shared-haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.1/cabal-install-3.5.0.0/x/cabal","depends":["Cabal-3.5.0.0-inplace","HTTP-4000.3.14-62fbf88bbfbc7cc9314709de72638706f246f307e01c99e24a31e837876c89d4","array-0.5.4.0","async-2.2.2-039e9b1c5c2ed7ba7afc18d3bfeb9daa9474183c00749140a4b3bfceca11ada6","base-4.14.0.0","base16-bytestring-0.1.1.7-45aecb012963614f5b4123864c17d592472c3d66692a31efb222213d2d7b718e","binary-0.8.8.0","bytestring-0.10.10.0","containers-0.6.2.1","cryptohash-sha256-0.11.101.0-6336682cdf1c37560251d08e58928da9a94ca2fc442f86267c89390ca1572220","deepseq-1.4.4.0","directory-1.3.6.0","echo-0.1.3-c1463d86a95302d766f059ac133288807d5638c3adbd29bcc1897b1381b69416","edit-distance-0.2.2.1-1bd75fb8588511009a33d2f0819cab437790892d0050436aa03049500f17f3c5","filepath-1.4.2.1","hackage-security-0.6.0.1-inplace","hashable-1.3.0.0-23eb1730651b09d8636b64cb5af16315693f5bde48cc5de1e9f2cfbd9a2210e2","lukko-0.1.1.2-dc6bc37f00c449a518a0676776d4efb1f77a1f02a4fc4a3c4bf8397a7285d1ba","mtl-2.2.2","network-uri-2.6.3.0-eb186d87f8a507c0cb1a53e79cf1ba20e1d0bdb44a448a0c491809447a2b5367","parsec-3.1.14.0","pretty-1.1.3.6","process-1.6.8.2","random-1.2.0-0111e8a509486ebbe72c2f95230153887a3bfa08f18e4bab3ec2296d269d2f5a","regex-base-0.94.0.0-880b261b95caae4d6aed489fde000d18fd31c819210c38754b42b95be05afc63","regex-posix-0.96.0.0-090f3f1d8576ce217dae470b4d309b29a426886c9621cf0edf618990ee0eb3c0","resolv-0.1.2.0-f978f8cf449b020a148b5e9fa445ee284b7981aa2e729c41d1b826700c382f3b","stm-2.5.0.0","tar-0.5.1.1-798366f125bc82c314283cecdf4d8eb8575f55bc23f9aecba1ac2408dd0b473c","text-1.2.3.2","time-1.9.3","transformers-0.5.6.2","unix-2.7.2.2","zlib-0.6.2.1-1576f6a1be8e968423e3a1c071eb9df3d2389dc99d7e996f541db68da28743a7"],"exe-depends":[],"component-name":"exe:cabal","bin-file":"/code/shared-haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.1/cabal-install-3.5.0.0/x/cabal/build/cabal/cabal"},{"type":"pre-existing","id":"containers-0.6.2.1","pkg-name":"containers","pkg-version":"0.6.2.1","depends":["array-0.5.4.0","base-4.14.0.0","deepseq-1.4.4.0"]},{"type":"configured","id":"cryptohash-sha256-0.11.101.0-6336682cdf1c37560251d08e58928da9a94ca2fc442f86267c89390ca1572220","pkg-name":"cryptohash-sha256","pkg-version":"0.11.101.0","flags":{"exe":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b963d6308db096362d73d9c603b331cf188aa69310195f479dfedf6045d7e602","pkg-src-sha256":"52756435dbea248e344fbcbcc5df5307f60dfacf337dfd11ae30f1c7a4da05dd","depends":["base-4.14.0.0","bytestring-0.10.10.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.4.0","pkg-name":"deepseq","pkg-version":"1.4.4.0","depends":["array-0.5.4.0","base-4.14.0.0"]},{"type":"pre-existing","id":"directory-1.3.6.0","pkg-name":"directory","pkg-version":"1.3.6.0","depends":["base-4.14.0.0","filepath-1.4.2.1","time-1.9.3","unix-2.7.2.2"]},{"type":"configured","id":"echo-0.1.3-c1463d86a95302d766f059ac133288807d5638c3adbd29bcc1897b1381b69416","pkg-name":"echo","pkg-version":"0.1.3","flags":{"example":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"5490be9cfbea95e14a7a68b7d055ae8d295822e0b146d2ac8285b3e5a3e3282f","pkg-src-sha256":"704f07310f8272d170f8ab7fb2a2c13f15d8501ef8310801e36964c8eff485ef","depends":["base-4.14.0.0","process-1.6.8.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ed25519-0.0.5.0-6f0ad0c09aacc30000c49b60c301213bd4c98a176abf44fd5a6f1b0a55598bc1","pkg-name":"ed25519","pkg-version":"0.0.5.0","flags":{"no-donna":true,"test-doctests":true,"test-hlint":true,"test-properties":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"fb98b08de467d51f788f8bd9391f0e9ab9bd4d8dfc264296b895ffea0d822dfa","pkg-src-sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","depends":["base-4.14.0.0","bytestring-0.10.10.0","ghc-prim-0.6.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"edit-distance-0.2.2.1-1bd75fb8588511009a33d2f0819cab437790892d0050436aa03049500f17f3c5","pkg-name":"edit-distance","pkg-version":"0.2.2.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","pkg-src-sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","depends":["array-0.5.4.0","base-4.14.0.0","containers-0.6.2.1","random-1.2.0-0111e8a509486ebbe72c2f95230153887a3bfa08f18e4bab3ec2296d269d2f5a"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.1","pkg-name":"filepath","pkg-version":"1.4.2.1","depends":["base-4.14.0.0"]},{"type":"pre-existing","id":"ghc-boot-th-8.10.1","pkg-name":"ghc-boot-th","pkg-version":"8.10.1","depends":["base-4.14.0.0"]},{"type":"pre-existing","id":"ghc-prim-0.6.1","pkg-name":"ghc-prim","pkg-version":"0.6.1","depends":["rts"]},{"type":"configured","id":"hackage-security-0.6.0.1-inplace","pkg-name":"hackage-security","pkg-version":"0.6.0.1","flags":{"base48":true,"lukko":true,"mtl21":false,"old-directory":false,"use-network-uri":true},"style":"inplace","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"692c385c085baa2813046ae58e31df21c250346b81c882431b5ffef76451a18a","pkg-src-sha256":"9162b473af5a21c1ff32a50b972b9acf51f4c901604a22cf08a2dccac2f82f17","dist-dir":"/code/shared-haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.1/hackage-security-0.6.0.1","depends":["Cabal-3.5.0.0-inplace","base-4.14.0.0","base16-bytestring-0.1.1.7-45aecb012963614f5b4123864c17d592472c3d66692a31efb222213d2d7b718e","base64-bytestring-1.1.0.0-0f7ca8b9a9759304f992cbcb18c26649e0231f6e98ea78a3d1d47c923342536d","bytestring-0.10.10.0","containers-0.6.2.1","cryptohash-sha256-0.11.101.0-6336682cdf1c37560251d08e58928da9a94ca2fc442f86267c89390ca1572220","directory-1.3.6.0","ed25519-0.0.5.0-6f0ad0c09aacc30000c49b60c301213bd4c98a176abf44fd5a6f1b0a55598bc1","filepath-1.4.2.1","ghc-prim-0.6.1","lukko-0.1.1.2-dc6bc37f00c449a518a0676776d4efb1f77a1f02a4fc4a3c4bf8397a7285d1ba","mtl-2.2.2","network-3.1.1.1-687472ff05020491920b181bb5aaf65b2a8c0e63c6aca4886c27983fddd81f23","network-uri-2.6.3.0-eb186d87f8a507c0cb1a53e79cf1ba20e1d0bdb44a448a0c491809447a2b5367","parsec-3.1.14.0","pretty-1.1.3.6","tar-0.5.1.1-798366f125bc82c314283cecdf4d8eb8575f55bc23f9aecba1ac2408dd0b473c","template-haskell-2.16.0.0","time-1.9.3","transformers-0.5.6.2","zlib-0.6.2.1-1576f6a1be8e968423e3a1c071eb9df3d2389dc99d7e996f541db68da28743a7"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hashable-1.3.0.0-23eb1730651b09d8636b64cb5af16315693f5bde48cc5de1e9f2cfbd9a2210e2","pkg-name":"hashable","pkg-version":"1.3.0.0","flags":{"examples":false,"integer-gmp":true,"sse2":true,"sse41":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c70f1407881059e93550d3742191254296b2737b793a742bd901348fb3e1fb1","pkg-src-sha256":"822e5413fbccca6ae884d3aba4066422c8b5d58d23d18b9ecb5c03273bb19ab4","depends":["base-4.14.0.0","bytestring-0.10.10.0","deepseq-1.4.4.0","ghc-prim-0.6.1","integer-gmp-1.0.3.0","text-1.2.3.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hsc2hs-0.68.7-e-hsc2hs-4ca5cdaea5a2df0c68f0eaf145a148350c9225dd25449894dbaadf06848c090f","pkg-name":"hsc2hs","pkg-version":"0.68.7","flags":{"in-ghc-tree":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"6a9419c04ca31a5931c77bd129789d4ceafcd8c9275551da237df341b8944540","pkg-src-sha256":"fd7915e41e3ed3bc7750fee0e8add2b4f32dcac8b7c544cfdf5542293223894a","depends":["base-4.14.0.0","containers-0.6.2.1","directory-1.3.6.0","filepath-1.4.2.1","process-1.6.8.2"],"exe-depends":[],"component-name":"exe:hsc2hs","bin-file":"/cabal/store/ghc-8.10.1/hsc2hs-0.68.7-e-hsc2hs-4ca5cdaea5a2df0c68f0eaf145a148350c9225dd25449894dbaadf06848c090f/bin/hsc2hs"},{"type":"pre-existing","id":"integer-gmp-1.0.3.0","pkg-name":"integer-gmp","pkg-version":"1.0.3.0","depends":["ghc-prim-0.6.1"]},{"type":"configured","id":"lukko-0.1.1.2-dc6bc37f00c449a518a0676776d4efb1f77a1f02a4fc4a3c4bf8397a7285d1ba","pkg-name":"lukko","pkg-version":"0.1.1.2","flags":{"ofd-locking":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"c9d3fa30fb6ab2ba16e037586ca79be6e57ec5f00381b6ee5f293400dbdf5515","pkg-src-sha256":"8a79d113dc0ccef16c24d83379cc457485943027e777529c46362fecc06607d2","depends":["base-4.14.0.0"],"exe-depends":["hsc2hs-0.68.7-e-hsc2hs-4ca5cdaea5a2df0c68f0eaf145a148350c9225dd25449894dbaadf06848c090f"],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.14.0.0","transformers-0.5.6.2"]},{"type":"configured","id":"network-3.1.1.1-687472ff05020491920b181bb5aaf65b2a8c0e63c6aca4886c27983fddd81f23","pkg-name":"network","pkg-version":"3.1.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b704cb6676c03e98267190df797497587576a2e96094550ea143415239bbe66e","pkg-src-sha256":"d7ef590173fff2ab522fbc167f3fafb867e4ecfca279eb3ef0d137b51f142c9a","components":{"lib":{"depends":["base-4.14.0.0","bytestring-0.10.10.0","deepseq-1.4.4.0"],"exe-depends":["hsc2hs-0.68.7-e-hsc2hs-4ca5cdaea5a2df0c68f0eaf145a148350c9225dd25449894dbaadf06848c090f"]}}},{"type":"configured","id":"network-uri-2.6.3.0-eb186d87f8a507c0cb1a53e79cf1ba20e1d0bdb44a448a0c491809447a2b5367","pkg-name":"network-uri","pkg-version":"2.6.3.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d2d9ff3a80d9b2d1ff317a354bc0c56cc109c69a4c2449e5fc712d3ddce83ede","pkg-src-sha256":"a01c1389f15d2cc2e847914737f706133bb11f0c5f8ee89711a36a25b7afa723","depends":["base-4.14.0.0","deepseq-1.4.4.0","parsec-3.1.14.0","template-haskell-2.16.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"parsec-3.1.14.0","pkg-name":"parsec","pkg-version":"3.1.14.0","depends":["base-4.14.0.0","bytestring-0.10.10.0","mtl-2.2.2","text-1.2.3.2"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.14.0.0","deepseq-1.4.4.0","ghc-prim-0.6.1"]},{"type":"pre-existing","id":"process-1.6.8.2","pkg-name":"process","pkg-version":"1.6.8.2","depends":["base-4.14.0.0","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.0-0111e8a509486ebbe72c2f95230153887a3bfa08f18e4bab3ec2296d269d2f5a","pkg-name":"random","pkg-version":"1.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"5ca8674e95c46c7eb90f520c26aea22d403625c97697275434afba66ebd32b05","pkg-src-sha256":"e4519cf7c058bfd5bdbe4acc782284acc9e25e74487208619ca83cbcd63fb9de","depends":["base-4.14.0.0","bytestring-0.10.10.0","deepseq-1.4.4.0","mtl-2.2.2","splitmix-0.1-ac05718de636727c6d4d2df61378ab1816909d005c9f089bbc07492e8f65669b"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-base-0.94.0.0-880b261b95caae4d6aed489fde000d18fd31c819210c38754b42b95be05afc63","pkg-name":"regex-base","pkg-version":"0.94.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"44aa95ca762294ffbb28cf0af9c567d93b5d2c56e4f38ce5385a257d899f968e","pkg-src-sha256":"c41f82f5fc1157c961a4cbdc0cd5561e5aa44f339ce6e706d978d97e0ca6b914","depends":["array-0.5.4.0","base-4.14.0.0","bytestring-0.10.10.0","containers-0.6.2.1","mtl-2.2.2","text-1.2.3.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-posix-0.96.0.0-090f3f1d8576ce217dae470b4d309b29a426886c9621cf0edf618990ee0eb3c0","pkg-name":"regex-posix","pkg-version":"0.96.0.0","flags":{"_regex-posix-clib":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"690d1366e9ea6df71ded3daf49ca3d53c63eda3f95937962299b2391824dc3b3","pkg-src-sha256":"251300f1a6bb2e91abb8bf513a21981f8fab79c98a65acea2bb6d6a524414521","depends":["array-0.5.4.0","base-4.14.0.0","bytestring-0.10.10.0","containers-0.6.2.1","regex-base-0.94.0.0-880b261b95caae4d6aed489fde000d18fd31c819210c38754b42b95be05afc63"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"resolv-0.1.2.0-f978f8cf449b020a148b5e9fa445ee284b7981aa2e729c41d1b826700c382f3b","pkg-name":"resolv","pkg-version":"0.1.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"0a9a6dd29706258ae60a5c22aecc140a40743b8f08fc324fd9984e7dfbf3a80d","pkg-src-sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","components":{"lib":{"depends":["base-4.14.0.0","base16-bytestring-0.1.1.7-45aecb012963614f5b4123864c17d592472c3d66692a31efb222213d2d7b718e","binary-0.8.8.0","bytestring-0.10.10.0","containers-0.6.2.1"],"exe-depends":[]}}},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0","depends":[]},{"type":"configured","id":"splitmix-0.1-ac05718de636727c6d4d2df61378ab1816909d005c9f089bbc07492e8f65669b","pkg-name":"splitmix","pkg-version":"0.1","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d50c4d0801a35be7875a040470c09863342514930c82a7d25780a6c2efc4fda9","pkg-src-sha256":"1c11c87352ddbb13365380fe163f99bb8f8845ebc96ca1d572e5d3a9bf810bfa","depends":["base-4.14.0.0","deepseq-1.4.4.0","time-1.9.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"stm-2.5.0.0","pkg-name":"stm","pkg-version":"2.5.0.0","depends":["array-0.5.4.0","base-4.14.0.0"]},{"type":"configured","id":"tar-0.5.1.1-798366f125bc82c314283cecdf4d8eb8575f55bc23f9aecba1ac2408dd0b473c","pkg-name":"tar","pkg-version":"0.5.1.1","flags":{"old-bytestring":false,"old-time":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"7a715414c4d494c9048cfb6d7634e07e7732ca154cb8938dc85f6ea192192e8c","pkg-src-sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","depends":["array-0.5.4.0","base-4.14.0.0","bytestring-0.10.10.0","containers-0.6.2.1","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","time-1.9.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.16.0.0","pkg-name":"template-haskell","pkg-version":"2.16.0.0","depends":["base-4.14.0.0","ghc-boot-th-8.10.1","ghc-prim-0.6.1","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-1.2.3.2","pkg-name":"text","pkg-version":"1.2.3.2","depends":["array-0.5.4.0","base-4.14.0.0","binary-0.8.8.0","bytestring-0.10.10.0","deepseq-1.4.4.0","ghc-prim-0.6.1","integer-gmp-1.0.3.0"]},{"type":"pre-existing","id":"time-1.9.3","pkg-name":"time","pkg-version":"1.9.3","depends":["base-4.14.0.0","deepseq-1.4.4.0"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.14.0.0"]},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.14.0.0","bytestring-0.10.10.0","time-1.9.3"]},{"type":"configured","id":"zlib-0.6.2.1-1576f6a1be8e968423e3a1c071eb9df3d2389dc99d7e996f541db68da28743a7","pkg-name":"zlib","pkg-version":"0.6.2.1","flags":{"non-blocking-ffi":false,"pkg-config":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d34ddf5fece4d1e9d471b5298f36335bb3cfe12cb5a1b8525c42f0b665382f45","pkg-src-sha256":"f0f810ff173560b60392db448455c0513b3239f48e43cb494b3733aa559621d0","depends":["base-4.14.0.0","bytestring-0.10.10.0"],"exe-depends":[],"component-name":"lib"}]} \ No newline at end of file diff --git a/bootstrap/linux-8.10.4.json b/bootstrap/linux-8.10.4.json deleted file mode 100644 index 1a41cfbf965..00000000000 --- a/bootstrap/linux-8.10.4.json +++ /dev/null @@ -1 +0,0 @@ -{"dependencies":[{"source":"local","package":"Cabal","version":"3.5.0.0","flags":["-bundled-binary-generic"],"cabal_sha256":null,"src_sha256":null,"revision":null},{"source":"hackage","package":"splitmix","version":"0.1.0.3","flags":["-optimised-mixer"],"cabal_sha256":"fc3aae74c467f4b608050bef53aec17904a618731df9407e655d8f3bf8c32d5c","src_sha256":"46009f4b000c9e6613377767b8718bf38476469f2a8e2162d98cc246882d5a35","revision":0},{"source":"hackage","package":"random","version":"1.2.0","flags":[],"cabal_sha256":"30d72df4cc1d2fe2d445c88f0ee9d21965af7ce86660c43a6c32a6a1d90d51c9","src_sha256":"e4519cf7c058bfd5bdbe4acc782284acc9e25e74487208619ca83cbcd63fb9de","revision":5},{"source":"hackage","package":"hashable","version":"1.3.1.0","flags":["+integer-gmp"],"cabal_sha256":"d965e098e06cc585b201da6137dcb31c40f35eb7a937b833903969447985c076","src_sha256":"8061823a4ac521b53912edcba36b956f3159cb885b07ec119af295a6568ca7c4","revision":0},{"source":"hackage","package":"async","version":"2.2.3","flags":["-bench"],"cabal_sha256":"0cbefb8247308b38e397e675f832b9bd5317ff1872001d5358f213654423c55b","src_sha256":"467af3a0037947a5232ecf5f4efbd4cf2118aaa2310566d7f40ac82b0e32935c","revision":0},{"source":"hackage","package":"tar","version":"0.5.1.1","flags":["-old-bytestring","-old-time"],"cabal_sha256":"94ded05718fe75b88c98e7113feeb9fca50688a7e59b6aefd80a6f48438c5062","src_sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","revision":3},{"source":"hackage","package":"network","version":"3.1.2.1","flags":["-devel"],"cabal_sha256":"188d6daea8cd91bc3553efd5a90a1e7c6d0425fa66a53baa74db5b6d9fd75c8b","src_sha256":"fcaa954445cb575ff04d088e719452e356324b6acb98c5aefd2541a069439d4a","revision":1},{"source":"hackage","package":"th-compat","version":"0.1.1","flags":[],"cabal_sha256":"62f2dbddb23e0af39a4ea2f185911b172bc7533df3ca9b6ac9a6b22fc69e5831","src_sha256":"95fa20583ac236bc9ec6ba01350483e87a121a7893b4158651c700a60af603f9","revision":0},{"source":"hackage","package":"network-uri","version":"2.6.4.1","flags":[],"cabal_sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","src_sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","revision":0},{"source":"hackage","package":"HTTP","version":"4000.3.15","flags":["-conduit10","-mtl1","+network-uri","-warn-as-error","-warp-tests"],"cabal_sha256":"2ba9cfc40afbb231326c4ff685ae678c4454e449fd41672e5ca75fd757fe6ae6","src_sha256":"0d6b368e43001c046660e0e209bf9795dc990cb45016447fcf92e822c22e1594","revision":2},{"source":"hackage","package":"base16-bytestring","version":"0.1.1.7","flags":[],"cabal_sha256":"0021256a9628971c08da95cb8f4d0d72192f3bb8a7b30b55c080562d17c43dd3","src_sha256":"525689679d5cc80fa532c1d5cfeace0f62bbb54134fad514f1ba00d0e7fe69ba","revision":3},{"source":"hackage","package":"base64-bytestring","version":"1.2.0.1","flags":[],"cabal_sha256":"f4f998235fc0825ab636ca9241b827de5805b336625eb1c7822f1798a238b6ac","src_sha256":"af09b17d072eb1391d91e30b4186dd1797330647ef79268ecd7fcce8f5afc638","revision":0},{"source":"hackage","package":"cryptohash-sha256","version":"0.11.102.0","flags":["-exe","+use-cbits"],"cabal_sha256":"daa34001f8221bf550a3afb278ee9ac3a7257dba187cd7ec4bd5436264b26424","src_sha256":"8ad6e9875a9128f6cd66d65d80f9f85dd0559c73ac00bb37f71fbee820d10519","revision":0},{"source":"hackage","package":"echo","version":"0.1.4","flags":["-example"],"cabal_sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","src_sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","revision":0},{"source":"hackage","package":"edit-distance","version":"0.2.2.1","flags":[],"cabal_sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","src_sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","revision":1},{"source":"hackage","package":"ed25519","version":"0.0.5.0","flags":["+no-donna","+test-doctests","+test-hlint","+test-properties"],"cabal_sha256":"fb98b08de467d51f788f8bd9391f0e9ab9bd4d8dfc264296b895ffea0d822dfa","src_sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","revision":3},{"source":"hackage","package":"lukko","version":"0.1.1.3","flags":["+ofd-locking"],"cabal_sha256":"2db49b6cb6632a46ec446fc51870cd0d49e0a66d1c5d2063f46ae52a100eb856","src_sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","revision":1},{"source":"hackage","package":"zlib","version":"0.6.2.3","flags":["-bundled-c-zlib","-non-blocking-ffi","-pkg-config"],"cabal_sha256":"28f4d460c260e074cab833625454564b9783a3389b7bb91fd54da2790b39592c","src_sha256":"807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88","revision":0},{"source":"hackage","package":"hackage-security","version":"0.6.0.1","flags":["+base48","+lukko","-mtl21","-old-directory","+use-network-uri"],"cabal_sha256":"25e49fa21996bb3db92e2a978fc01586e6f4053fe86a5069d7312b7c2beea419","src_sha256":"9162b473af5a21c1ff32a50b972b9acf51f4c901604a22cf08a2dccac2f82f17","revision":4},{"source":"hackage","package":"regex-base","version":"0.94.0.1","flags":[],"cabal_sha256":"6e3546b73cd5489201d481aa645a531f2c61aa317984e31c5f379ac0bcbfbfad","src_sha256":"71b1d96fff201f31fe8cd4532f056aca03a21cd486890256dc3007dd73adedd9","revision":0},{"source":"hackage","package":"regex-posix","version":"0.96.0.0","flags":["-_regex-posix-clib"],"cabal_sha256":"bd870f983a21bb474bd96449736f011c599981ce70da808a21ec1a28292e5481","src_sha256":"251300f1a6bb2e91abb8bf513a21981f8fab79c98a65acea2bb6d6a524414521","revision":2},{"source":"hackage","package":"resolv","version":"0.1.2.0","flags":[],"cabal_sha256":"4d61a65ac5522a869d9dd32c2a67c796f054abe3e4c70df2a13e6e241e23f5a6","src_sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","revision":1},{"source":"local","package":"cabal-install","version":"3.5.0.0","flags":["-debug-conflict-sets","-debug-expensive-assertions","-debug-tracetree","+lukko","+native-dns"],"cabal_sha256":null,"src_sha256":null,"revision":null}],"builtin":[{"package":"rts","version":"1.0"},{"package":"ghc-prim","version":"0.6.1"},{"package":"integer-gmp","version":"1.0.3.0"},{"package":"base","version":"4.14.1.0"},{"package":"array","version":"0.5.4.0"},{"package":"deepseq","version":"1.4.4.0"},{"package":"bytestring","version":"0.10.12.0"},{"package":"containers","version":"0.6.2.1"},{"package":"binary","version":"0.8.8.0"},{"package":"filepath","version":"1.4.2.1"},{"package":"time","version":"1.9.3"},{"package":"unix","version":"2.7.2.2"},{"package":"directory","version":"1.3.6.0"},{"package":"transformers","version":"0.5.6.2"},{"package":"mtl","version":"2.2.2"},{"package":"ghc-boot-th","version":"8.10.4"},{"package":"pretty","version":"1.1.3.6"},{"package":"template-haskell","version":"2.16.0.0"},{"package":"text","version":"1.2.4.1"},{"package":"parsec","version":"3.1.14.0"},{"package":"process","version":"1.6.9.0"},{"package":"stm","version":"2.5.0.0"}]} \ No newline at end of file diff --git a/bootstrap/linux-8.10.4.plan.json b/bootstrap/linux-8.10.4.plan.json deleted file mode 100644 index 90762eff2e6..00000000000 --- a/bootstrap/linux-8.10.4.plan.json +++ /dev/null @@ -1 +0,0 @@ -{"cabal-version":"3.5.0.0","cabal-lib-version":"3.5.0.0","compiler-id":"ghc-8.10.4","os":"linux","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"Cabal-3.2.1.0","pkg-name":"Cabal","pkg-version":"3.2.1.0","depends":["array-0.5.4.0","base-4.14.1.0","binary-0.8.8.0","bytestring-0.10.12.0","containers-0.6.2.1","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","mtl-2.2.2","parsec-3.1.14.0","pretty-1.1.3.6","process-1.6.9.0","text-1.2.4.1","time-1.9.3","transformers-0.5.6.2","unix-2.7.2.2"]},{"type":"configured","id":"Cabal-3.5.0.0-inplace","pkg-name":"Cabal","pkg-version":"3.5.0.0","flags":{"bundled-binary-generic":false},"style":"local","pkg-src":{"type":"local","path":"/home/fgaz/cabal/Cabal"},"dist-dir":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/Cabal-3.5.0.0","depends":["array-0.5.4.0","base-4.14.1.0","binary-0.8.8.0","bytestring-0.10.12.0","containers-0.6.2.1","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","mtl-2.2.2","parsec-3.1.14.0","pretty-1.1.3.6","process-1.6.9.0","text-1.2.4.1","time-1.9.3","transformers-0.5.6.2","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"Cabal-QuickCheck-3.5.0.0-inplace","pkg-name":"Cabal-QuickCheck","pkg-version":"3.5.0.0","flags":{},"style":"local","pkg-src":{"type":"local","path":"/home/fgaz/cabal/Cabal-QuickCheck"},"dist-dir":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/Cabal-QuickCheck-3.5.0.0","depends":["Cabal-3.5.0.0-inplace","QuickCheck-2.14.2-1ff9bae85831dc0b6952a57b65e5655191418d456f323fac5ce787579a76b0b0","base-4.14.1.0","bytestring-0.10.12.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"Cabal-described-3.5.0.0-inplace","pkg-name":"Cabal-described","pkg-version":"3.5.0.0","flags":{},"style":"local","pkg-src":{"type":"local","path":"/home/fgaz/cabal/Cabal-described"},"dist-dir":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/Cabal-described-3.5.0.0","depends":["Cabal-3.5.0.0-inplace","QuickCheck-2.14.2-1ff9bae85831dc0b6952a57b65e5655191418d456f323fac5ce787579a76b0b0","base-4.14.1.0","containers-0.6.2.1","pretty-1.1.3.6","rere-0.1-d0827b8705da710e99865120158b7b757c75f642cb47d729d28eadc3a9e10fec","tasty-1.3.1-d698bf858dbd57ed2c77e791cd0c281e7c06b9ecfa07e32125d5758aa84aa84b","tasty-quickcheck-0.10.1.2-0a4084d2d1543545a4778d9bd1f647981ae3ebc8269110b3aa810293d62c32c0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"Cabal-tests-3-inplace-check-tests","pkg-name":"Cabal-tests","pkg-version":"3","flags":{},"style":"local","pkg-src":{"type":"local","path":"/home/fgaz/cabal/Cabal-tests"},"dist-dir":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/Cabal-tests-3/t/check-tests","depends":["Cabal-3.5.0.0-inplace","Diff-0.4.0-c8d2989495a8b49cbed90eeed7a25baba031906040c8c27d8bd11aee58e28a7f","base-4.14.1.0","bytestring-0.10.12.0","directory-1.3.6.0","filepath-1.4.2.1","tasty-1.3.1-d698bf858dbd57ed2c77e791cd0c281e7c06b9ecfa07e32125d5758aa84aa84b","tasty-golden-2.3.4-9c76ecb0033978a60858318ae86318410e68513604911d2bd98c9f2da8983391"],"exe-depends":[],"component-name":"test:check-tests","bin-file":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/Cabal-tests-3/t/check-tests/build/check-tests/check-tests"},{"type":"configured","id":"Cabal-tests-3-inplace-custom-setup-tests","pkg-name":"Cabal-tests","pkg-version":"3","flags":{},"style":"local","pkg-src":{"type":"local","path":"/home/fgaz/cabal/Cabal-tests"},"dist-dir":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/Cabal-tests-3/t/custom-setup-tests","depends":["Cabal-3.5.0.0-inplace","base-4.14.1.0","directory-1.3.6.0","filepath-1.4.2.1","process-1.6.9.0"],"exe-depends":[],"component-name":"test:custom-setup-tests","bin-file":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/Cabal-tests-3/t/custom-setup-tests/build/custom-setup-tests/custom-setup-tests"},{"type":"configured","id":"Cabal-tests-3-inplace-hackage-tests","pkg-name":"Cabal-tests","pkg-version":"3","flags":{},"style":"local","pkg-src":{"type":"local","path":"/home/fgaz/cabal/Cabal-tests"},"dist-dir":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/Cabal-tests-3/t/hackage-tests","depends":["Cabal-3.5.0.0-inplace","Cabal-tree-diff-3.5.0.0-inplace","base-4.14.1.0","base-compat-0.11.2-7b66297a21dbcdaeb313bb6c4bf210761a72eeb81195a8c6cfe9cdcc747bf2e1","base-orphans-0.8.4-eeb451e194a17dcb8216f6c9dba63debe95fc3e2e0f94caf9105889da9f83ff5","bytestring-0.10.12.0","clock-0.8.2-6b0474766238ffdedd4e520e87f3571bf523807bb3d02cc63bbe924ea35d10f6","containers-0.6.2.1","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","optparse-applicative-0.16.1.0-695090be56707f5e966ba6e34f8db479b2a5c64ac032d36b37583cef2b533a20","stm-2.5.0.0","tar-0.5.1.1-18946a119ecc2a1fbcf68d5238b97fbf3bba2eafaf966c3c485e77eb1e2830cc","tree-diff-0.1-ce6c6e01a7cbffe3633ec2bb94765bb3d5bbe1ba2e21036d89b370e2db219d7c"],"exe-depends":[],"component-name":"test:hackage-tests","bin-file":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/Cabal-tests-3/t/hackage-tests/build/hackage-tests/hackage-tests"},{"type":"configured","id":"Cabal-tests-3-inplace-no-thunks-test","pkg-name":"Cabal-tests","pkg-version":"3","flags":{},"style":"local","pkg-src":{"type":"local","path":"/home/fgaz/cabal/Cabal-tests"},"dist-dir":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/Cabal-tests-3/t/no-thunks-test","depends":["Cabal-3.5.0.0-inplace","base-4.14.1.0","bytestring-0.10.12.0","nothunks-0.1.2-5ab3e0f24f2d68f477201a829f2d05cc69979942ba011fe33ee94b3947c27ff2","tasty-1.3.1-d698bf858dbd57ed2c77e791cd0c281e7c06b9ecfa07e32125d5758aa84aa84b","tasty-hunit-0.10.0.3-63f86fb1c5d6ba33dc04d8db3e3ef892d36591e72a3f420db266dfb5e3f3d508"],"exe-depends":[],"component-name":"test:no-thunks-test","bin-file":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/Cabal-tests-3/t/no-thunks-test/build/no-thunks-test/no-thunks-test"},{"type":"configured","id":"Cabal-tests-3-inplace-parser-tests","pkg-name":"Cabal-tests","pkg-version":"3","flags":{},"style":"local","pkg-src":{"type":"local","path":"/home/fgaz/cabal/Cabal-tests"},"dist-dir":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/Cabal-tests-3/t/parser-tests","depends":["Cabal-3.5.0.0-inplace","Cabal-tree-diff-3.5.0.0-inplace","Diff-0.4.0-c8d2989495a8b49cbed90eeed7a25baba031906040c8c27d8bd11aee58e28a7f","base-4.14.1.0","base-compat-0.11.2-7b66297a21dbcdaeb313bb6c4bf210761a72eeb81195a8c6cfe9cdcc747bf2e1","bytestring-0.10.12.0","directory-1.3.6.0","filepath-1.4.2.1","tasty-1.3.1-d698bf858dbd57ed2c77e791cd0c281e7c06b9ecfa07e32125d5758aa84aa84b","tasty-golden-2.3.4-9c76ecb0033978a60858318ae86318410e68513604911d2bd98c9f2da8983391","tasty-hunit-0.10.0.3-63f86fb1c5d6ba33dc04d8db3e3ef892d36591e72a3f420db266dfb5e3f3d508","tasty-quickcheck-0.10.1.2-0a4084d2d1543545a4778d9bd1f647981ae3ebc8269110b3aa810293d62c32c0","tree-diff-0.1-ce6c6e01a7cbffe3633ec2bb94765bb3d5bbe1ba2e21036d89b370e2db219d7c"],"exe-depends":[],"component-name":"test:parser-tests","bin-file":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/Cabal-tests-3/t/parser-tests/build/parser-tests/parser-tests"},{"type":"configured","id":"Cabal-tests-3-inplace-rpmvercmp","pkg-name":"Cabal-tests","pkg-version":"3","flags":{},"style":"local","pkg-src":{"type":"local","path":"/home/fgaz/cabal/Cabal-tests"},"dist-dir":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/Cabal-tests-3/t/rpmvercmp","depends":["Cabal-3.5.0.0-inplace","QuickCheck-2.14.2-1ff9bae85831dc0b6952a57b65e5655191418d456f323fac5ce787579a76b0b0","base-4.14.1.0","bytestring-0.10.12.0","tasty-1.3.1-d698bf858dbd57ed2c77e791cd0c281e7c06b9ecfa07e32125d5758aa84aa84b","tasty-hunit-0.10.0.3-63f86fb1c5d6ba33dc04d8db3e3ef892d36591e72a3f420db266dfb5e3f3d508","tasty-quickcheck-0.10.1.2-0a4084d2d1543545a4778d9bd1f647981ae3ebc8269110b3aa810293d62c32c0"],"exe-depends":[],"component-name":"test:rpmvercmp","bin-file":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/Cabal-tests-3/t/rpmvercmp/build/rpmvercmp/rpmvercmp"},{"type":"configured","id":"Cabal-tests-3-inplace-unit-tests","pkg-name":"Cabal-tests","pkg-version":"3","flags":{},"style":"local","pkg-src":{"type":"local","path":"/home/fgaz/cabal/Cabal-tests"},"dist-dir":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/Cabal-tests-3/t/unit-tests","depends":["Cabal-3.5.0.0-inplace","Cabal-QuickCheck-3.5.0.0-inplace","Cabal-described-3.5.0.0-inplace","Diff-0.4.0-c8d2989495a8b49cbed90eeed7a25baba031906040c8c27d8bd11aee58e28a7f","QuickCheck-2.14.2-1ff9bae85831dc0b6952a57b65e5655191418d456f323fac5ce787579a76b0b0","array-0.5.4.0","async-2.2.3-236a4dc2f1b240551dae7a0b57a37c7de0b8dd5dcd25a2be0640dfd6e7afc562","base-4.14.1.0","binary-0.8.8.0","bytestring-0.10.12.0","containers-0.6.2.1","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","integer-logarithms-1.0.3.1-780fa13e0316555e4c1e813717c6e51c3758f69d12d35fdc579d97a3f09b84f2","pretty-1.1.3.6","rere-0.1-d0827b8705da710e99865120158b7b757c75f642cb47d729d28eadc3a9e10fec","tagged-0.8.6.1-70cc2d2bc355253a90e391c971cde5870aa7c58bb15fafafa648420ed0bd7e19","tasty-1.3.1-d698bf858dbd57ed2c77e791cd0c281e7c06b9ecfa07e32125d5758aa84aa84b","tasty-hunit-0.10.0.3-63f86fb1c5d6ba33dc04d8db3e3ef892d36591e72a3f420db266dfb5e3f3d508","tasty-quickcheck-0.10.1.2-0a4084d2d1543545a4778d9bd1f647981ae3ebc8269110b3aa810293d62c32c0","temporary-1.3-a870b10d10e3800961a93913d9c37da92d28c08ca7a0c3225a7c147f8ef979b9","text-1.2.4.1","transformers-0.5.6.2"],"exe-depends":[],"component-name":"test:unit-tests","bin-file":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/Cabal-tests-3/t/unit-tests/build/unit-tests/unit-tests"},{"type":"configured","id":"Cabal-tree-diff-3.5.0.0-inplace","pkg-name":"Cabal-tree-diff","pkg-version":"3.5.0.0","flags":{},"style":"local","pkg-src":{"type":"local","path":"/home/fgaz/cabal/Cabal-tree-diff"},"dist-dir":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/Cabal-tree-diff-3.5.0.0","depends":["Cabal-3.5.0.0-inplace","base-4.14.1.0","tree-diff-0.1-ce6c6e01a7cbffe3633ec2bb94765bb3d5bbe1ba2e21036d89b370e2db219d7c"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"Diff-0.4.0-c8d2989495a8b49cbed90eeed7a25baba031906040c8c27d8bd11aee58e28a7f","pkg-name":"Diff","pkg-version":"0.4.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b5cfbeed498f555a18774ffd549bbeff7a24bdfe5984154dcfc9f4328a3c2847","pkg-src-sha256":"7290ac098ad8b4748b9c10e494cc85ba54af688226ae69a465aa7b4c73f149c7","depends":["array-0.5.4.0","base-4.14.1.0","pretty-1.1.3.6"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"Glob-0.10.1-4fb60efd4a91a0b66c7e7ee78f2ccb491541afe789a99484cd5b79547daa4f5f","pkg-name":"Glob","pkg-version":"0.10.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"424bf82768d0471562b34ffcac6b73e658f655aac957dfbcbb945603899a40fd","pkg-src-sha256":"cae4476d944947010705e0b00cf3e36c90ef407f968861f6771b931056b6d315","depends":["base-4.14.1.0","containers-0.6.2.1","directory-1.3.6.0","dlist-1.0-3096200b3cc66f3bd1f1db32b3940d79da8df57b99c6508873d6a31a6e3caa55","filepath-1.4.2.1","transformers-0.5.6.2","transformers-compat-0.6.6-b11e75b39009a45f2d7101a7c0acff0f91d4f07252d584fddb38ee1ce37fa625"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"HTTP-4000.3.15-0a98355328e4ad3930c76d69417b3cc74690be02feec2274495f28f0fa7b9946","pkg-name":"HTTP","pkg-version":"4000.3.15","flags":{"conduit10":false,"mtl1":false,"network-uri":true,"warn-as-error":false,"warp-tests":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2ba9cfc40afbb231326c4ff685ae678c4454e449fd41672e5ca75fd757fe6ae6","pkg-src-sha256":"0d6b368e43001c046660e0e209bf9795dc990cb45016447fcf92e822c22e1594","depends":["array-0.5.4.0","base-4.14.1.0","bytestring-0.10.12.0","mtl-2.2.2","network-3.1.2.1-d925f232bfe30f4c52bb06fb2656ff45a62084528801e8f75c8eaf5f22089ff2","network-uri-2.6.4.1-c774712ff2b7be1486922b542f45deb7830d933c918882dc756f44e6de2a5fc0","parsec-3.1.14.0","time-1.9.3"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"Only-0.1-ab2d15d5e7f147a8aa0e0a50859350deb69248675c6e6af36eb02021188458d3","pkg-name":"Only","pkg-version":"0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f92f5da97e647451f1ee7f5bf44914fb75062d08ccd3f36b2000d649c63d13aa","pkg-src-sha256":"ab7aa193e8c257d3bda6b0b3c1cbcf74cdaa85ab08cb20c2dd62ba248c1ab265","depends":["base-4.14.1.0","deepseq-1.4.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"QuickCheck-2.14.2-1ff9bae85831dc0b6952a57b65e5655191418d456f323fac5ce787579a76b0b0","pkg-name":"QuickCheck","pkg-version":"2.14.2","flags":{"old-random":false,"templatehaskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa","pkg-src-sha256":"d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3","depends":["base-4.14.1.0","containers-0.6.2.1","deepseq-1.4.4.0","random-1.2.0-821b8d1dbfd6e71abc1db66ac7846a36093b1f4ea533fe3af624349f163573ad","splitmix-0.1.0.3-50ec55b0f09ac3f0d066c466987b99709f10e5609d166e51ea3e13c78b1d5ed2","template-haskell-2.16.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"abstract-deque-0.3-ce6b8ec46296da90a98e7802967c8168e941f8c0d41d13ca015bec14c33f72a5","pkg-name":"abstract-deque","pkg-version":"0.3","flags":{"usecas":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"308bff92bb8b6621ed1dae718e859da145c8f31b8a9050aeacac40a8a21c9c90","pkg-src-sha256":"09aa10f38193a8275a7791b92a4f3a7192a304874637e2a35c897dde25d75ca2","depends":["array-0.5.4.0","base-4.14.1.0","containers-0.6.2.1","random-1.2.0-821b8d1dbfd6e71abc1db66ac7846a36093b1f4ea533fe3af624349f163573ad","time-1.9.3"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"abstract-par-0.3.3-7e648bb96703ec4a4c84840d14914ef46b21667890c4696d2c3eeb6eec3da4f2","pkg-name":"abstract-par","pkg-version":"0.3.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2c80c194429e8ed9a8f37a4c58a61b36b11e04c637d3e0bfb32d111978fd8885","pkg-src-sha256":"248a8739bd902462cb16755b690b55660e196e58cc7e6ef8157a72c2a3d5d860","depends":["base-4.14.1.0","deepseq-1.4.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"aeson-1.5.6.0-447cf4be086297b37c3bf69491f70d5fe4fc65b2240f3f1678edd400829eb174","pkg-name":"aeson","pkg-version":"1.5.6.0","flags":{"bytestring-builder":false,"cffi":false,"developer":false,"fast":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"962e5a407bb292585a5283d736e6846e8bd613650a6f8e0275883d10b86f56f1","pkg-src-sha256":"0361c34be3d2ec945201f02501693436fbda10dcc549469481a084b2de22bfe8","depends":["attoparsec-0.13.2.5-d25a5dd2588894a14d2bae233a4fcb72e50147763f995af2de858d4af56a4616","base-4.14.1.0","base-compat-batteries-0.11.2-acfe784937c72378ce13b616d781b956a1c667a0eac9d6fe50d7891443d629bd","bytestring-0.10.12.0","containers-0.6.2.1","data-fix-0.3.1-08a094bb7b050df795bee7c81792f03ef71fbd8d967ae3a02ce9941882d9ba72","deepseq-1.4.4.0","dlist-1.0-3096200b3cc66f3bd1f1db32b3940d79da8df57b99c6508873d6a31a6e3caa55","ghc-prim-0.6.1","hashable-1.3.1.0-d6843a1c354b03ec345a56de12b120cc2558ac419378e59c75471c08f0c9e3bb","primitive-0.7.1.0-57016f0038ed9bc68ae4ba8a0bf5334da1a65f93f4331980931e581cdbba846c","scientific-0.3.6.2-e93e3f666210ea472bcfba3c150692c34101d365d8ab4de460bde5e83bd421e5","strict-0.4.0.1-6933f9451cb1ac615848f29f59c40a38854302f2e18d4164a9e868f10eb5f3a6","tagged-0.8.6.1-70cc2d2bc355253a90e391c971cde5870aa7c58bb15fafafa648420ed0bd7e19","template-haskell-2.16.0.0","text-1.2.4.1","th-abstraction-0.4.2.0-0d7316e661a22fb4db768739356fe46622fb6b658b89803a5d3b128c100319f0","these-1.1.1.1-512cb98bbd90d6220bc03c0fdc44e7ad0acb0c9b533808e62255eb4a7ff19446","time-1.9.3","time-compat-1.9.5-46785c5bb0da0ef784bcff927a8dc6746a4797d521f0f2a53931bec24c7aa9b6","unordered-containers-0.2.13.0-25a25c80a274cafa04144e390819c8940e24acb3e26f2c4ae170825b997e9e77","uuid-types-1.0.4-5818046324226ec90721eea4b7822bb4e00d0c3db14e472f609185635b1ac3d1","vector-0.12.2.0-86eb6a029b46eb5eca20ef0fec94419c8aadb2fcbc9f31db86321e75f381084b"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ansi-terminal-0.11-1fba04fc83ca8f5aa12e706247009b38e05f3d6377e22013ef037bf3aa01ce71","pkg-name":"ansi-terminal","pkg-version":"0.11","flags":{"example":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"97470250c92aae14c4c810d7f664c532995ba8910e2ad797b29f22ad0d2d0194","pkg-src-sha256":"c6611b9e51add41db3f79eac30066c06b33a6ca2a09e586b4b361d7f98303793","depends":["base-4.14.1.0","colour-2.3.5-bd722e112a4e2c76759d1fcbbc32b0e1663f997f0bfcf230091d24c21aebeb46"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ansi-wl-pprint-0.6.9-32266bd23b5b3d4933a4a36254a196a700dec99400ef2042d3917cf311e4b1b4","pkg-name":"ansi-wl-pprint","pkg-version":"0.6.9","flags":{"example":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"20d30674f137d43aa0279c2c2cc5e45a5f1c3c57e301852494906158b6313bf7","pkg-src-sha256":"a7b2e8e7cd3f02f2954e8b17dc60a0ccd889f49e2068ebb15abfa1d42f7a4eac","depends":["ansi-terminal-0.11-1fba04fc83ca8f5aa12e706247009b38e05f3d6377e22013ef037bf3aa01ce71","base-4.14.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.14.1.0"]},{"type":"configured","id":"assoc-1.0.2-4e15c8155cf33e143df86c438d8e7fd29061cce7e934bb29e997aeae2524634a","pkg-name":"assoc","pkg-version":"1.0.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a824e4f615469a27ad949dbf4907ba258bd6b459deebec00524c7bcb3f65cc9f","pkg-src-sha256":"d8988dc6e8718c7a3456515b769c9336aeeec730cf86fc5175247969ff8f144f","depends":["base-4.14.1.0","bifunctors-5.5.10-5b71a2572d85f79cadd113b65aa9d4e6d6e413b755f91d8eb110e70f94094890","tagged-0.8.6.1-70cc2d2bc355253a90e391c971cde5870aa7c58bb15fafafa648420ed0bd7e19"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"async-2.2.3-236a4dc2f1b240551dae7a0b57a37c7de0b8dd5dcd25a2be0640dfd6e7afc562","pkg-name":"async","pkg-version":"2.2.3","flags":{"bench":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"0cbefb8247308b38e397e675f832b9bd5317ff1872001d5358f213654423c55b","pkg-src-sha256":"467af3a0037947a5232ecf5f4efbd4cf2118aaa2310566d7f40ac82b0e32935c","depends":["base-4.14.1.0","hashable-1.3.1.0-d6843a1c354b03ec345a56de12b120cc2558ac419378e59c75471c08f0c9e3bb","stm-2.5.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"attoparsec-0.13.2.5-d25a5dd2588894a14d2bae233a4fcb72e50147763f995af2de858d4af56a4616","pkg-name":"attoparsec","pkg-version":"0.13.2.5","flags":{"developer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"7c88195c3f3243c6abe356c1bc872cf40818a8c7b0e261a8f8e6868fe42819a0","pkg-src-sha256":"21e0f38eaa1957bf471276afa17651c125a38924575f12c2cbd2fa534b45686f","depends":["array-0.5.4.0","base-4.14.1.0","bytestring-0.10.12.0","containers-0.6.2.1","deepseq-1.4.4.0","ghc-prim-0.6.1","scientific-0.3.6.2-e93e3f666210ea472bcfba3c150692c34101d365d8ab4de460bde5e83bd421e5","text-1.2.4.1","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"base-4.14.1.0","pkg-name":"base","pkg-version":"4.14.1.0","depends":["ghc-prim-0.6.1","integer-gmp-1.0.3.0","rts"]},{"type":"configured","id":"base-compat-0.11.2-7b66297a21dbcdaeb313bb6c4bf210761a72eeb81195a8c6cfe9cdcc747bf2e1","pkg-name":"base-compat","pkg-version":"0.11.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f95374022a56e8c74a289e2b70ec50a1365f58b5f1f50f5c7f0fc14edf88f30e","pkg-src-sha256":"53a6b5145442fba5a4bad6db2bcdede17f164642b48bc39b95015422a39adbdb","depends":["base-4.14.1.0","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"base-compat-batteries-0.11.2-acfe784937c72378ce13b616d781b956a1c667a0eac9d6fe50d7891443d629bd","pkg-name":"base-compat-batteries","pkg-version":"0.11.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"eb3b976007754ddc16e8d4afacdd1e575ae746edb57dcd0a1a728ccd4b372a69","pkg-src-sha256":"31e066a5aa96af94fe6465adb959c38d63a49e01357641aa4322c754a94d3023","depends":["base-4.14.1.0","base-compat-0.11.2-7b66297a21dbcdaeb313bb6c4bf210761a72eeb81195a8c6cfe9cdcc747bf2e1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"base-orphans-0.8.4-eeb451e194a17dcb8216f6c9dba63debe95fc3e2e0f94caf9105889da9f83ff5","pkg-name":"base-orphans","pkg-version":"0.8.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9a70dc95761ab9a9d49a038a4599b7b7945d486d80ed1678f347445bc336f3e0","pkg-src-sha256":"37b2b59356c03400a2d509862677393c5ff706a0aabf826c104f6fe03d93bbb3","depends":["base-4.14.1.0","ghc-prim-0.6.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"base16-bytestring-0.1.1.7-4213aa5aacc84ac6fa707d6e73c5cacf97a1d194e57a56f6ab46e368f83f4298","pkg-name":"base16-bytestring","pkg-version":"0.1.1.7","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"0021256a9628971c08da95cb8f4d0d72192f3bb8a7b30b55c080562d17c43dd3","pkg-src-sha256":"525689679d5cc80fa532c1d5cfeace0f62bbb54134fad514f1ba00d0e7fe69ba","depends":["base-4.14.1.0","bytestring-0.10.12.0","ghc-prim-0.6.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"base64-bytestring-1.2.0.1-3bbfe0b77c5dbe44d79a576c26560df60c953de74de14900388d0f281e08e3e0","pkg-name":"base64-bytestring","pkg-version":"1.2.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f4f998235fc0825ab636ca9241b827de5805b336625eb1c7822f1798a238b6ac","pkg-src-sha256":"af09b17d072eb1391d91e30b4186dd1797330647ef79268ecd7fcce8f5afc638","depends":["base-4.14.1.0","bytestring-0.10.12.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"bifunctors-5.5.10-5b71a2572d85f79cadd113b65aa9d4e6d6e413b755f91d8eb110e70f94094890","pkg-name":"bifunctors","pkg-version":"5.5.10","flags":{"semigroups":true,"tagged":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"52ae8b959de7bb2d5ec38750b9bc2782c90b5bf48805d635eb6ac0cfeb5b1bd6","pkg-src-sha256":"e7729cfd8b6af5cecd7dd509e4e493eec0f1522876cc0ccf4f5805495c33a90d","depends":["base-4.14.1.0","base-orphans-0.8.4-eeb451e194a17dcb8216f6c9dba63debe95fc3e2e0f94caf9105889da9f83ff5","comonad-5.0.8-262f0f0e2af8c9f7f652caeb56486ae4062916e480b6d049a87f84bc93964829","containers-0.6.2.1","tagged-0.8.6.1-70cc2d2bc355253a90e391c971cde5870aa7c58bb15fafafa648420ed0bd7e19","template-haskell-2.16.0.0","th-abstraction-0.4.2.0-0d7316e661a22fb4db768739356fe46622fb6b658b89803a5d3b128c100319f0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.8.0","pkg-name":"binary","pkg-version":"0.8.8.0","depends":["array-0.5.4.0","base-4.14.1.0","bytestring-0.10.12.0","containers-0.6.2.1"]},{"type":"configured","id":"binary-orphans-1.0.1-f71d677d79b9fe6f20a856b4ee2319f7f4f386157c568069e1135d94ad4b5892","pkg-name":"binary-orphans","pkg-version":"1.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"c6c9d3d482b30b532b56414bcc395887249a30b1325a7873b29c65f7f5194dc0","pkg-src-sha256":"431ad40b8d812bada186c68935c0a69aa2904ca3bc57d957e1b0fb7d73b1753d","depends":["base-4.14.1.0","binary-0.8.8.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"bytestring-0.10.12.0","pkg-name":"bytestring","pkg-version":"0.10.12.0","depends":["base-4.14.1.0","deepseq-1.4.4.0","ghc-prim-0.6.1","integer-gmp-1.0.3.0"]},{"type":"configured","id":"bytestring-builder-0.10.8.2.0-fd1e23c1e35e7efc590b487f3041ee753f8ee156d6a045f6ef4b2bc3fee82692","pkg-name":"bytestring-builder","pkg-version":"0.10.8.2.0","flags":{"bytestring_has_builder":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"6b2b812cdac53f5a2c82376a416dde04adbb5ca3e1604c0d075368a0498f762b","pkg-src-sha256":"27faef6db27c5be5a3715fd68b93725853e0e668849eaf92ce7c33cef9cb2c3f","depends":["base-4.14.1.0","bytestring-0.10.12.0","deepseq-1.4.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"cabal-benchmarks-3-inplace-cabal-benchmarks","pkg-name":"cabal-benchmarks","pkg-version":"3","flags":{},"style":"local","pkg-src":{"type":"local","path":"/home/fgaz/cabal/cabal-benchmarks"},"dist-dir":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/cabal-benchmarks-3/t/cabal-benchmarks","depends":["Cabal-3.5.0.0-inplace","base-4.14.1.0","bytestring-0.10.12.0","criterion-1.5.9.0-8205e225c9bfb4d0eaa1f907ce7dfe301af62f2b030a541e9583077c0cbc16d1"],"exe-depends":[],"component-name":"test:cabal-benchmarks","bin-file":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/cabal-benchmarks-3/t/cabal-benchmarks/build/cabal-benchmarks/cabal-benchmarks"},{"type":"configured","id":"cabal-doctest-1.0.8-inplace","pkg-name":"cabal-doctest","pkg-version":"1.0.8","flags":{},"style":"local","pkg-src":{"type":"local","path":"/home/fgaz/cabal/vendor/cabal-doctest-1.0.8"},"dist-dir":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/cabal-doctest-1.0.8","depends":["Cabal-3.5.0.0-inplace","base-4.14.1.0","directory-1.3.6.0","filepath-1.4.2.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"cabal-install-3.5.0.0-inplace-cabal","pkg-name":"cabal-install","pkg-version":"3.5.0.0","flags":{"debug-conflict-sets":false,"debug-expensive-assertions":false,"debug-tracetree":false,"lukko":true,"native-dns":true},"style":"local","pkg-src":{"type":"local","path":"/home/fgaz/cabal/cabal-install"},"dist-dir":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/cabal-install-3.5.0.0/x/cabal","depends":["Cabal-3.5.0.0-inplace","HTTP-4000.3.15-0a98355328e4ad3930c76d69417b3cc74690be02feec2274495f28f0fa7b9946","array-0.5.4.0","async-2.2.3-236a4dc2f1b240551dae7a0b57a37c7de0b8dd5dcd25a2be0640dfd6e7afc562","base-4.14.1.0","base16-bytestring-0.1.1.7-4213aa5aacc84ac6fa707d6e73c5cacf97a1d194e57a56f6ab46e368f83f4298","binary-0.8.8.0","bytestring-0.10.12.0","containers-0.6.2.1","cryptohash-sha256-0.11.102.0-e3c853fa4ea0102e499fbc43891eb19b41a4ac25e5dec8777e34a69c6472cf05","deepseq-1.4.4.0","directory-1.3.6.0","echo-0.1.4-056f93ec01984a04fb99c784891ca07a3473b93f661b36841ba17fe6be2f045f","edit-distance-0.2.2.1-077e65ead225b91e1cef78b456f39d531161707b4657eba6e4b5e8b6a11b9e00","filepath-1.4.2.1","hackage-security-0.6.0.1-inplace","hashable-1.3.1.0-d6843a1c354b03ec345a56de12b120cc2558ac419378e59c75471c08f0c9e3bb","lukko-0.1.1.3-9f8e3d93d3cda8c84063d31c8e069269620a0160c76e8d5b0fb6c4eac8e4c061","mtl-2.2.2","network-uri-2.6.4.1-c774712ff2b7be1486922b542f45deb7830d933c918882dc756f44e6de2a5fc0","parsec-3.1.14.0","pretty-1.1.3.6","process-1.6.9.0","random-1.2.0-821b8d1dbfd6e71abc1db66ac7846a36093b1f4ea533fe3af624349f163573ad","regex-base-0.94.0.1-d7ecf1728220a8259ba5638c70181eac3f04d86abb4c365efed75b12866a10b7","regex-posix-0.96.0.0-6af01c95f06c7ebb72377839fe7de37fe6fdc73bb6a11fa6098a884ffb4b7d80","resolv-0.1.2.0-f7130ba39006660e2f0899b15f14d3654bca76b234a6607b1643326908e0093d","stm-2.5.0.0","tar-0.5.1.1-18946a119ecc2a1fbcf68d5238b97fbf3bba2eafaf966c3c485e77eb1e2830cc","text-1.2.4.1","time-1.9.3","transformers-0.5.6.2","unix-2.7.2.2","zlib-0.6.2.3-b90c97183f6e42dc293d8b34d805d69af638a7db92db9e9b43261f163fd100d1"],"exe-depends":[],"component-name":"exe:cabal","bin-file":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/cabal-install-3.5.0.0/x/cabal/build/cabal/cabal"},{"type":"configured","id":"cabal-install-solver-3.5.0.0-inplace","pkg-name":"cabal-install-solver","pkg-version":"3.5.0.0","flags":{"debug-conflict-sets":false,"debug-expensive-assertions":false,"debug-tracetree":false},"style":"local","pkg-src":{"type":"local","path":"/home/fgaz/cabal/cabal-install/cabal-install-solver"},"dist-dir":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/cabal-install-solver-3.5.0.0","depends":["Cabal-3.5.0.0-inplace","array-0.5.4.0","base-4.14.1.0","binary-0.8.8.0","bytestring-0.10.12.0","containers-0.6.2.1","filepath-1.4.2.1","mtl-2.2.2","pretty-1.1.3.6","text-1.2.4.1","time-1.9.3","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"cabal-testsuite-3-inplace","pkg-name":"cabal-testsuite","pkg-version":"3","flags":{},"style":"local","pkg-src":{"type":"local","path":"/home/fgaz/cabal/cabal-testsuite"},"dist-dir":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/cabal-testsuite-3","components":{"lib":{"depends":["Cabal-3.5.0.0-inplace","aeson-1.5.6.0-447cf4be086297b37c3bf69491f70d5fe4fc65b2240f3f1678edd400829eb174","async-2.2.3-236a4dc2f1b240551dae7a0b57a37c7de0b8dd5dcd25a2be0640dfd6e7afc562","attoparsec-0.13.2.5-d25a5dd2588894a14d2bae233a4fcb72e50147763f995af2de858d4af56a4616","base-4.14.1.0","base16-bytestring-0.1.1.7-4213aa5aacc84ac6fa707d6e73c5cacf97a1d194e57a56f6ab46e368f83f4298","bytestring-0.10.12.0","containers-0.6.2.1","cryptohash-sha256-0.11.102.0-e3c853fa4ea0102e499fbc43891eb19b41a4ac25e5dec8777e34a69c6472cf05","directory-1.3.6.0","exceptions-0.10.4","filepath-1.4.2.1","optparse-applicative-0.16.1.0-695090be56707f5e966ba6e34f8db479b2a5c64ac032d36b37583cef2b533a20","process-1.6.9.0","regex-compat-tdfa-0.95.1.4-5507a33b28b3156adbc313721da0213efd0431d98c8534de4532b073cd50aa5d","regex-tdfa-1.3.1.0-0d01be209325a276760b944b29515f826985246d91d45cc619cf4d8fe625fe87","temporary-1.3-a870b10d10e3800961a93913d9c37da92d28c08ca7a0c3225a7c147f8ef979b9","text-1.2.4.1","transformers-0.5.6.2","unix-2.7.2.2"],"exe-depends":[]},"exe:cabal-tests":{"depends":["Cabal-3.5.0.0-inplace","async-2.2.3-236a4dc2f1b240551dae7a0b57a37c7de0b8dd5dcd25a2be0640dfd6e7afc562","base-4.14.1.0","clock-0.8.2-6b0474766238ffdedd4e520e87f3571bf523807bb3d02cc63bbe924ea35d10f6","exceptions-0.10.4","filepath-1.4.2.1","optparse-applicative-0.16.1.0-695090be56707f5e966ba6e34f8db479b2a5c64ac032d36b37583cef2b533a20","process-1.6.9.0","transformers-0.5.6.2"],"exe-depends":[],"bin-file":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/cabal-testsuite-3/build/cabal-tests/cabal-tests"},"exe:setup":{"depends":["Cabal-3.5.0.0-inplace","base-4.14.1.0"],"exe-depends":[],"bin-file":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/cabal-testsuite-3/build/setup/setup"},"setup":{"depends":["Cabal-3.2.1.0","base-4.14.1.0","directory-1.3.6.0","filepath-1.4.2.1"],"exe-depends":[]}}},{"type":"configured","id":"call-stack-0.3.0-384d190b7cefdc9f1db6b1b721e863b97e61dab01540e7977f1291fe50f74156","pkg-name":"call-stack","pkg-version":"0.3.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dc369179410fd39542efde04778d1c4a18a015b3cf4b1703d9c88e07d58ece20","pkg-src-sha256":"b80e8de2b87f01922b23b328655ad2f843f42495f3e1033ae907aade603c716a","depends":["base-4.14.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"cassava-0.5.2.0-1e61885299b3ac2d22f7739aee6cad65b061d5990b0da42188deb16679c19322","pkg-name":"cassava","pkg-version":"0.5.2.0","flags":{"bytestring--lt-0_10_4":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"772c748fdbe7fe7631a56199a2738575f3cf5d7c5d08b11b15737a618cd10943","pkg-src-sha256":"b30d2ad5894519e364130c0510f167a4ffaf0e08a1e24c9a64238c855bfe0106","depends":["Only-0.1-ab2d15d5e7f147a8aa0e0a50859350deb69248675c6e6af36eb02021188458d3","array-0.5.4.0","attoparsec-0.13.2.5-d25a5dd2588894a14d2bae233a4fcb72e50147763f995af2de858d4af56a4616","base-4.14.1.0","bytestring-0.10.12.0","containers-0.6.2.1","deepseq-1.4.4.0","hashable-1.3.1.0-d6843a1c354b03ec345a56de12b120cc2558ac419378e59c75471c08f0c9e3bb","scientific-0.3.6.2-e93e3f666210ea472bcfba3c150692c34101d365d8ab4de460bde5e83bd421e5","text-1.2.4.1","text-short-0.1.3-2d76290a8547ba78c11ae6c32158f441b5465bbca0c4e59b794260630ac1cea4","transformers-0.5.6.2","unordered-containers-0.2.13.0-25a25c80a274cafa04144e390819c8940e24acb3e26f2c4ae170825b997e9e77","vector-0.12.2.0-86eb6a029b46eb5eca20ef0fec94419c8aadb2fcbc9f31db86321e75f381084b"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"cereal-0.5.8.1-8025614784aa0ff91dd7f550d85659b182026592039b8dc1aabc1b309d0d4570","pkg-name":"cereal","pkg-version":"0.5.8.1","flags":{"bytestring-builder":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"37cb7a78c84412e94592a658768320c41f015f2b8707a433de835afb8ebc18d7","pkg-src-sha256":"2d9e88ac934b9ebc058097c72011ff59f3f146176310e1c957a0e4cf63681bd7","depends":["array-0.5.4.0","base-4.14.1.0","bytestring-0.10.12.0","containers-0.6.2.1","ghc-prim-0.6.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"charset-0.3.8-de395e8b9684550ca69d4ff8cac4ccacc0c9b5eda37ee35f518b3b943eeec786","pkg-name":"charset","pkg-version":"0.3.8","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"5e3a51797914c180fcab3c6a0a482bf9186f419541f86d65d3da728c407d51e7","pkg-src-sha256":"7aaaa3e79b527dd46ee43b274f25d7ba18b4d3e698db404b5c923e6da3f086e7","depends":["array-0.5.4.0","base-4.14.1.0","bytestring-0.10.12.0","containers-0.6.2.1","unordered-containers-0.2.13.0-25a25c80a274cafa04144e390819c8940e24acb3e26f2c4ae170825b997e9e77"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"clock-0.8.2-6b0474766238ffdedd4e520e87f3571bf523807bb3d02cc63bbe924ea35d10f6","pkg-name":"clock","pkg-version":"0.8.2","flags":{"llvm":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"473ffd59765cc67634bdc55b63c699a85addf3a024089073ec2a862881e83e2a","pkg-src-sha256":"0b5db110c703e68b251d5883253a934b012110b45393fc65df1b095eb9a4e461","depends":["base-4.14.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"code-page-0.2.1-a1432748acccc96ec047f0b2aa19302d2ca7e64efea033a766aedafd76c653c1","pkg-name":"code-page","pkg-version":"0.2.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"fe596b0f421abd2894fdb7049b3d76230eb1de6e04e9f635e2695dd55ded856e","pkg-src-sha256":"b2f90e19c61ed8a6ff7295f7f123d4a9913c790d4cf2c6029bc299293fdb2aaa","depends":["base-4.14.1.0"],"exe-depends":["hsc2hs-0.68.7-e-hsc2hs-a54e898f36feb5209908d7942eb1f2ba686bb25c99af0ac9b04c8f9f55182b1e"],"component-name":"lib"},{"type":"configured","id":"colour-2.3.5-bd722e112a4e2c76759d1fcbbc32b0e1663f997f0bfcf230091d24c21aebeb46","pkg-name":"colour","pkg-version":"2.3.5","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b27db0a3ad40d70bdbd8510a104269f8707592e80757a1abc66a22ba25e5a42f","pkg-src-sha256":"3b8d471979617dce7c193523743c9782df63433d8e87e3ef6d97922e0da104e7","depends":["base-4.14.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"comonad-5.0.8-262f0f0e2af8c9f7f652caeb56486ae4062916e480b6d049a87f84bc93964829","pkg-name":"comonad","pkg-version":"5.0.8","flags":{"containers":true,"distributive":true,"indexed-traversable":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a3a140be7a21d6ba16bf9102bf4c79455ff3213679311587bac45ba0723c8d7a","pkg-src-sha256":"ef6cdf2cc292cc43ee6aa96c581b235fdea8ab44a0bffb24dc79ae2b2ef33d13","depends":["base-4.14.1.0","containers-0.6.2.1","distributive-0.6.2.1-744776ee91045549e0fe4c724bd0101ffbc636f653bf4f8705fcd75219ee4124","indexed-traversable-0.1.1-b8bdd98e18280942285c9969685748374c1e2494d8faf679621d06040c71004c","tagged-0.8.6.1-70cc2d2bc355253a90e391c971cde5870aa7c58bb15fafafa648420ed0bd7e19","transformers-0.5.6.2","transformers-compat-0.6.6-b11e75b39009a45f2d7101a7c0acff0f91d4f07252d584fddb38ee1ce37fa625"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.6.2.1","pkg-name":"containers","pkg-version":"0.6.2.1","depends":["array-0.5.4.0","base-4.14.1.0","deepseq-1.4.4.0"]},{"type":"configured","id":"criterion-1.5.9.0-8205e225c9bfb4d0eaa1f907ce7dfe301af62f2b030a541e9583077c0cbc16d1","pkg-name":"criterion","pkg-version":"1.5.9.0","flags":{"embed-data-files":false,"fast":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f17c2f70e72609ddb6ed3510bc5fcbc62c49d9080c99a02ed6bb188e2f210490","pkg-src-sha256":"21e3f781bbefb7ea165968f3b606e00f049bdb031bc76ae6dfa3059521f51462","depends":["Glob-0.10.1-4fb60efd4a91a0b66c7e7ee78f2ccb491541afe789a99484cd5b79547daa4f5f","aeson-1.5.6.0-447cf4be086297b37c3bf69491f70d5fe4fc65b2240f3f1678edd400829eb174","ansi-wl-pprint-0.6.9-32266bd23b5b3d4933a4a36254a196a700dec99400ef2042d3917cf311e4b1b4","base-4.14.1.0","base-compat-batteries-0.11.2-acfe784937c72378ce13b616d781b956a1c667a0eac9d6fe50d7891443d629bd","binary-0.8.8.0","binary-orphans-1.0.1-f71d677d79b9fe6f20a856b4ee2319f7f4f386157c568069e1135d94ad4b5892","bytestring-0.10.12.0","cassava-0.5.2.0-1e61885299b3ac2d22f7739aee6cad65b061d5990b0da42188deb16679c19322","code-page-0.2.1-a1432748acccc96ec047f0b2aa19302d2ca7e64efea033a766aedafd76c653c1","containers-0.6.2.1","criterion-measurement-0.1.2.0-1191c22680a971baace4acb4f8ea69a8273b6c2cc407651f732a17f763e5ea5c","deepseq-1.4.4.0","directory-1.3.6.0","exceptions-0.10.4","filepath-1.4.2.1","js-chart-2.9.4.1-3449a66d0e4bb17fb8d6ae16255e070fb200f4a4c1a70a2fbdd676298e47c691","microstache-1.0.1.2-6188b2d1becbe64e4f2bd691482ca7d7f8d10a4b905f9a9b05a4c127dd30d354","mtl-2.2.2","mwc-random-0.15.0.1-14a296c849a255780bc8b8e6924cd938a9494cbafd09e0af17cee54816bd8f62","optparse-applicative-0.16.1.0-695090be56707f5e966ba6e34f8db479b2a5c64ac032d36b37583cef2b533a20","parsec-3.1.14.0","statistics-0.15.2.0-69c3785eaa950aff8e5fd23d84745ebb1af868a29c022e22aacfbf2e51c341a4","text-1.2.4.1","time-1.9.3","transformers-0.5.6.2","transformers-compat-0.6.6-b11e75b39009a45f2d7101a7c0acff0f91d4f07252d584fddb38ee1ce37fa625","vector-0.12.2.0-86eb6a029b46eb5eca20ef0fec94419c8aadb2fcbc9f31db86321e75f381084b","vector-algorithms-0.8.0.4-9907f3822272a8d9c27361f3d824bb72fb71da73da56e9ed5e931b15a5dfc9a5"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"criterion-1.5.9.0-e-criterion-report-5088c63330574ebdf7223c8e447b81c119e95eff1740e2436c96b492f7d13cd5","pkg-name":"criterion","pkg-version":"1.5.9.0","flags":{"embed-data-files":false,"fast":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f17c2f70e72609ddb6ed3510bc5fcbc62c49d9080c99a02ed6bb188e2f210490","pkg-src-sha256":"21e3f781bbefb7ea165968f3b606e00f049bdb031bc76ae6dfa3059521f51462","depends":["base-4.14.1.0","base-compat-batteries-0.11.2-acfe784937c72378ce13b616d781b956a1c667a0eac9d6fe50d7891443d629bd","criterion-1.5.9.0-8205e225c9bfb4d0eaa1f907ce7dfe301af62f2b030a541e9583077c0cbc16d1","optparse-applicative-0.16.1.0-695090be56707f5e966ba6e34f8db479b2a5c64ac032d36b37583cef2b533a20"],"exe-depends":[],"component-name":"exe:criterion-report","bin-file":"/home/fgaz/.cabal/store/ghc-8.10.4/criterion-1.5.9.0-e-criterion-report-5088c63330574ebdf7223c8e447b81c119e95eff1740e2436c96b492f7d13cd5/bin/criterion-report"},{"type":"configured","id":"criterion-measurement-0.1.2.0-1191c22680a971baace4acb4f8ea69a8273b6c2cc407651f732a17f763e5ea5c","pkg-name":"criterion-measurement","pkg-version":"0.1.2.0","flags":{"fast":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"128b778bea62b60a98be25331ab3e07095c9df1f8e91340be160b34432d30f0e","pkg-src-sha256":"74a433da656c298608c514b962b915ec83915983197ae06c4b5d3a6b5d0de70e","depends":["aeson-1.5.6.0-447cf4be086297b37c3bf69491f70d5fe4fc65b2240f3f1678edd400829eb174","base-4.14.1.0","base-compat-0.11.2-7b66297a21dbcdaeb313bb6c4bf210761a72eeb81195a8c6cfe9cdcc747bf2e1","binary-0.8.8.0","containers-0.6.2.1","deepseq-1.4.4.0","vector-0.12.2.0-86eb6a029b46eb5eca20ef0fec94419c8aadb2fcbc9f31db86321e75f381084b"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"cryptohash-sha256-0.11.102.0-e3c853fa4ea0102e499fbc43891eb19b41a4ac25e5dec8777e34a69c6472cf05","pkg-name":"cryptohash-sha256","pkg-version":"0.11.102.0","flags":{"exe":false,"use-cbits":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"daa34001f8221bf550a3afb278ee9ac3a7257dba187cd7ec4bd5436264b26424","pkg-src-sha256":"8ad6e9875a9128f6cd66d65d80f9f85dd0559c73ac00bb37f71fbee820d10519","depends":["base-4.14.1.0","bytestring-0.10.12.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"data-default-class-0.1.2.0-b59d16fdeef7ba7e2bbf2c69e6b5cb28afa040d1534798ab406651e4c0f1e0cd","pkg-name":"data-default-class","pkg-version":"0.1.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"63e62120b7efd733a5a17cf59ceb43268e9a929c748127172d7d42f4a336e327","pkg-src-sha256":"4f01b423f000c3e069aaf52a348564a6536797f31498bb85c3db4bd2d0973e56","components":{"lib":{"depends":["base-4.14.1.0"],"exe-depends":[]}}},{"type":"configured","id":"data-fix-0.3.1-08a094bb7b050df795bee7c81792f03ef71fbd8d967ae3a02ce9941882d9ba72","pkg-name":"data-fix","pkg-version":"0.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"7aee2c0633632479cef93c8000befd5bc950ba7c329d69e918ca520944164e27","pkg-src-sha256":"9b45c040472922c197bb33190197b5895afac6318203b2afb30251d4df8bcc79","depends":["base-4.14.1.0","deepseq-1.4.4.0","hashable-1.3.1.0-d6843a1c354b03ec345a56de12b120cc2558ac419378e59c75471c08f0c9e3bb"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.4.0","pkg-name":"deepseq","pkg-version":"1.4.4.0","depends":["array-0.5.4.0","base-4.14.1.0"]},{"type":"configured","id":"dense-linear-algebra-0.1.0.0-311d877dc799fb258727d3141e2a95bc947c6def81c3c41943bb4a4cdf74476f","pkg-name":"dense-linear-algebra","pkg-version":"0.1.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"918e5fa7e367a58446dcd2b2288a7d84113b0820b5b5e1cef5bd1bdc601b4368","pkg-src-sha256":"f7777a7931b40332ebbc716f64abb63697cbab0128e5c1228d47760c5597f2d4","depends":["base-4.14.1.0","deepseq-1.4.4.0","math-functions-0.3.4.1-8735ea9faa2ca25bbded2fbfe700ea2fdc3d3d7cd5235d3dfb94f858deb0cd30","primitive-0.7.1.0-57016f0038ed9bc68ae4ba8a0bf5334da1a65f93f4331980931e581cdbba846c","vector-0.12.2.0-86eb6a029b46eb5eca20ef0fec94419c8aadb2fcbc9f31db86321e75f381084b","vector-algorithms-0.8.0.4-9907f3822272a8d9c27361f3d824bb72fb71da73da56e9ed5e931b15a5dfc9a5","vector-binary-instances-0.2.5.1-3c50694cd69b0015f73aefc5131403a667dac2c23c04f4a4ae50391404b619f0","vector-th-unbox-0.2.1.9-0780f228bd39e12d2eb8a0890f9a61219f59a157748eb5b4b36c33d603eac64c"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"directory-1.3.6.0","pkg-name":"directory","pkg-version":"1.3.6.0","depends":["base-4.14.1.0","filepath-1.4.2.1","time-1.9.3","unix-2.7.2.2"]},{"type":"configured","id":"distributive-0.6.2.1-744776ee91045549e0fe4c724bd0101ffbc636f653bf4f8705fcd75219ee4124","pkg-name":"distributive","pkg-version":"0.6.2.1","flags":{"semigroups":true,"tagged":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2823eff05c6b093492efe804027e7cf82757221f934964c76106ac3248899b89","pkg-src-sha256":"d7351392e078f58caa46630a4b9c643e1e2e9dddee45848c5c8358e7b1316b91","depends":["base-4.14.1.0","base-orphans-0.8.4-eeb451e194a17dcb8216f6c9dba63debe95fc3e2e0f94caf9105889da9f83ff5","tagged-0.8.6.1-70cc2d2bc355253a90e391c971cde5870aa7c58bb15fafafa648420ed0bd7e19","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"dlist-1.0-3096200b3cc66f3bd1f1db32b3940d79da8df57b99c6508873d6a31a6e3caa55","pkg-name":"dlist","pkg-version":"1.0","flags":{"werror":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"124cb3aa1decebd5171b46601b1f74cca6cfae12d266ace3799b86dd05ef7cb4","pkg-src-sha256":"173d637328bb173fcc365f30d29ff4a94292a1e0e5558aeb3dfc11de81510115","depends":["base-4.14.1.0","deepseq-1.4.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"echo-0.1.4-056f93ec01984a04fb99c784891ca07a3473b93f661b36841ba17fe6be2f045f","pkg-name":"echo","pkg-version":"0.1.4","flags":{"example":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","pkg-src-sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","depends":["base-4.14.1.0","process-1.6.9.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ed25519-0.0.5.0-56f93ac72dc7a0d24f6c1b41f80017bb8a25990dacfd60db4318b0cca4bddacb","pkg-name":"ed25519","pkg-version":"0.0.5.0","flags":{"no-donna":true,"test-doctests":true,"test-hlint":true,"test-properties":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"fb98b08de467d51f788f8bd9391f0e9ab9bd4d8dfc264296b895ffea0d822dfa","pkg-src-sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","depends":["base-4.14.1.0","bytestring-0.10.12.0","ghc-prim-0.6.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"edit-distance-0.2.2.1-077e65ead225b91e1cef78b456f39d531161707b4657eba6e4b5e8b6a11b9e00","pkg-name":"edit-distance","pkg-version":"0.2.2.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","pkg-src-sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","depends":["array-0.5.4.0","base-4.14.1.0","containers-0.6.2.1","random-1.2.0-821b8d1dbfd6e71abc1db66ac7846a36093b1f4ea533fe3af624349f163573ad"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"exceptions-0.10.4","pkg-name":"exceptions","pkg-version":"0.10.4","depends":["base-4.14.1.0","mtl-2.2.2","stm-2.5.0.0","template-haskell-2.16.0.0","transformers-0.5.6.2"]},{"type":"pre-existing","id":"filepath-1.4.2.1","pkg-name":"filepath","pkg-version":"1.4.2.1","depends":["base-4.14.1.0"]},{"type":"pre-existing","id":"ghc-boot-th-8.10.4","pkg-name":"ghc-boot-th","pkg-version":"8.10.4","depends":["base-4.14.1.0"]},{"type":"pre-existing","id":"ghc-heap-8.10.4","pkg-name":"ghc-heap","pkg-version":"8.10.4","depends":["base-4.14.1.0","ghc-prim-0.6.1","rts"]},{"type":"pre-existing","id":"ghc-prim-0.6.1","pkg-name":"ghc-prim","pkg-version":"0.6.1","depends":["rts"]},{"type":"configured","id":"hackage-security-0.6.0.1-inplace","pkg-name":"hackage-security","pkg-version":"0.6.0.1","flags":{"base48":true,"lukko":true,"mtl21":false,"old-directory":false,"use-network-uri":true},"style":"inplace","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"25e49fa21996bb3db92e2a978fc01586e6f4053fe86a5069d7312b7c2beea419","pkg-src-sha256":"9162b473af5a21c1ff32a50b972b9acf51f4c901604a22cf08a2dccac2f82f17","dist-dir":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/hackage-security-0.6.0.1","depends":["Cabal-3.5.0.0-inplace","base-4.14.1.0","base16-bytestring-0.1.1.7-4213aa5aacc84ac6fa707d6e73c5cacf97a1d194e57a56f6ab46e368f83f4298","base64-bytestring-1.2.0.1-3bbfe0b77c5dbe44d79a576c26560df60c953de74de14900388d0f281e08e3e0","bytestring-0.10.12.0","containers-0.6.2.1","cryptohash-sha256-0.11.102.0-e3c853fa4ea0102e499fbc43891eb19b41a4ac25e5dec8777e34a69c6472cf05","directory-1.3.6.0","ed25519-0.0.5.0-56f93ac72dc7a0d24f6c1b41f80017bb8a25990dacfd60db4318b0cca4bddacb","filepath-1.4.2.1","ghc-prim-0.6.1","lukko-0.1.1.3-9f8e3d93d3cda8c84063d31c8e069269620a0160c76e8d5b0fb6c4eac8e4c061","mtl-2.2.2","network-3.1.2.1-d925f232bfe30f4c52bb06fb2656ff45a62084528801e8f75c8eaf5f22089ff2","network-uri-2.6.4.1-c774712ff2b7be1486922b542f45deb7830d933c918882dc756f44e6de2a5fc0","parsec-3.1.14.0","pretty-1.1.3.6","tar-0.5.1.1-18946a119ecc2a1fbcf68d5238b97fbf3bba2eafaf966c3c485e77eb1e2830cc","template-haskell-2.16.0.0","time-1.9.3","transformers-0.5.6.2","zlib-0.6.2.3-b90c97183f6e42dc293d8b34d805d69af638a7db92db9e9b43261f163fd100d1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hashable-1.3.1.0-d6843a1c354b03ec345a56de12b120cc2558ac419378e59c75471c08f0c9e3bb","pkg-name":"hashable","pkg-version":"1.3.1.0","flags":{"integer-gmp":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d965e098e06cc585b201da6137dcb31c40f35eb7a937b833903969447985c076","pkg-src-sha256":"8061823a4ac521b53912edcba36b956f3159cb885b07ec119af295a6568ca7c4","depends":["base-4.14.1.0","bytestring-0.10.12.0","deepseq-1.4.4.0","ghc-prim-0.6.1","integer-gmp-1.0.3.0","text-1.2.4.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hsc2hs-0.68.7-e-hsc2hs-a54e898f36feb5209908d7942eb1f2ba686bb25c99af0ac9b04c8f9f55182b1e","pkg-name":"hsc2hs","pkg-version":"0.68.7","flags":{"in-ghc-tree":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4a0f6860a17e7c245646975e3c2981416afdcb6a7b3553c31005eb3641a7f55b","pkg-src-sha256":"fd7915e41e3ed3bc7750fee0e8add2b4f32dcac8b7c544cfdf5542293223894a","depends":["base-4.14.1.0","containers-0.6.2.1","directory-1.3.6.0","filepath-1.4.2.1","process-1.6.9.0"],"exe-depends":[],"component-name":"exe:hsc2hs","bin-file":"/home/fgaz/.cabal/store/ghc-8.10.4/hsc2hs-0.68.7-e-hsc2hs-a54e898f36feb5209908d7942eb1f2ba686bb25c99af0ac9b04c8f9f55182b1e/bin/hsc2hs"},{"type":"configured","id":"indexed-traversable-0.1.1-b8bdd98e18280942285c9969685748374c1e2494d8faf679621d06040c71004c","pkg-name":"indexed-traversable","pkg-version":"0.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"e330ec1ab336ee2fb1eff117ebe3480d1663396fecd981f185b7123dc7941ae1","pkg-src-sha256":"7ac36ae3153cbe7a8e99eacffd065367b87544953cc92997f424a150db468139","depends":["array-0.5.4.0","base-4.14.1.0","containers-0.6.2.1","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"integer-gmp-1.0.3.0","pkg-name":"integer-gmp","pkg-version":"1.0.3.0","depends":["ghc-prim-0.6.1"]},{"type":"configured","id":"integer-logarithms-1.0.3.1-780fa13e0316555e4c1e813717c6e51c3758f69d12d35fdc579d97a3f09b84f2","pkg-name":"integer-logarithms","pkg-version":"1.0.3.1","flags":{"check-bounds":false,"integer-gmp":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"888fb6c4fbd79ed2e8f8b94b61bccac25f7fab2b13b32b496e86828bc60b17cf","pkg-src-sha256":"9b0a9f9fab609b15cd015865721fb05f744a1bc77ae92fd133872de528bbea7f","depends":["array-0.5.4.0","base-4.14.1.0","ghc-prim-0.6.1","integer-gmp-1.0.3.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"js-chart-2.9.4.1-3449a66d0e4bb17fb8d6ae16255e070fb200f4a4c1a70a2fbdd676298e47c691","pkg-name":"js-chart","pkg-version":"2.9.4.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"0f4bc23d19ac869ec0cbdbd7596a5074ba4be68e85fa5bb76a3bed559907b3bc","pkg-src-sha256":"0a08efdd35bd1b8f293f9163f59305f31835304b74c3e3a1a840fc94bbc9bd0e","depends":["base-4.14.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"lukko-0.1.1.3-9f8e3d93d3cda8c84063d31c8e069269620a0160c76e8d5b0fb6c4eac8e4c061","pkg-name":"lukko","pkg-version":"0.1.1.3","flags":{"ofd-locking":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2db49b6cb6632a46ec446fc51870cd0d49e0a66d1c5d2063f46ae52a100eb856","pkg-src-sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","depends":["base-4.14.1.0"],"exe-depends":["hsc2hs-0.68.7-e-hsc2hs-a54e898f36feb5209908d7942eb1f2ba686bb25c99af0ac9b04c8f9f55182b1e"],"component-name":"lib"},{"type":"configured","id":"math-functions-0.3.4.1-8735ea9faa2ca25bbded2fbfe700ea2fdc3d3d7cd5235d3dfb94f858deb0cd30","pkg-name":"math-functions","pkg-version":"0.3.4.1","flags":{"system-erf":true,"system-expm1":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a6e458d2a78f03e83440062e8803c0baf7c1474dc2687489661690f4c6d46416","pkg-src-sha256":"e20a0afc03d3431610d5f4e57ec3a71822bf6cb1c598e8f2ad1b336533e4a48f","depends":["base-4.14.1.0","data-default-class-0.1.2.0-b59d16fdeef7ba7e2bbf2c69e6b5cb28afa040d1534798ab406651e4c0f1e0cd","deepseq-1.4.4.0","primitive-0.7.1.0-57016f0038ed9bc68ae4ba8a0bf5334da1a65f93f4331980931e581cdbba846c","vector-0.12.2.0-86eb6a029b46eb5eca20ef0fec94419c8aadb2fcbc9f31db86321e75f381084b"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"microstache-1.0.1.2-6188b2d1becbe64e4f2bd691482ca7d7f8d10a4b905f9a9b05a4c127dd30d354","pkg-name":"microstache","pkg-version":"1.0.1.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d4f5398b4855ae32e6a33c6934575d54d2433b7c57f4263e807d9a9c9763e2d0","pkg-src-sha256":"336e2505889b9af2ea8939a606ec35bc67bab1c9f0eb26bcdbc7b3f24350acf5","depends":["aeson-1.5.6.0-447cf4be086297b37c3bf69491f70d5fe4fc65b2240f3f1678edd400829eb174","base-4.14.1.0","containers-0.6.2.1","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","parsec-3.1.14.0","text-1.2.4.1","transformers-0.5.6.2","unordered-containers-0.2.13.0-25a25c80a274cafa04144e390819c8940e24acb3e26f2c4ae170825b997e9e77","vector-0.12.2.0-86eb6a029b46eb5eca20ef0fec94419c8aadb2fcbc9f31db86321e75f381084b"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"monad-par-0.3.5-761868e48882df206cb3c5f84b91fb8dbe411373b8ca86deb41c79028251f3ae","pkg-name":"monad-par","pkg-version":"0.3.5","flags":{"chaselev":false,"newgeneric":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"553316052d7890be549f319264e368a9a77d34e591e01b7895381637bdfc879e","pkg-src-sha256":"823ad5666cbcaefe2c6e0ff131daa0713dff9b3b534fb809643b869e5e4a15a9","depends":["abstract-deque-0.3-ce6b8ec46296da90a98e7802967c8168e941f8c0d41d13ca015bec14c33f72a5","abstract-par-0.3.3-7e648bb96703ec4a4c84840d14914ef46b21667890c4696d2c3eeb6eec3da4f2","array-0.5.4.0","base-4.14.1.0","containers-0.6.2.1","deepseq-1.4.4.0","monad-par-extras-0.3.3-f9cdaa332c5da349de2c93aaf20f1c21fd6bb27986df68c97c8bf6d37c38141f","mtl-2.2.2","mwc-random-0.15.0.1-14a296c849a255780bc8b8e6924cd938a9494cbafd09e0af17cee54816bd8f62","parallel-3.2.2.0-71831c2e77bdea769aade12da21bfb3c5c3219b2e8fc0a65a18949ed6b86ae8f"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"monad-par-extras-0.3.3-f9cdaa332c5da349de2c93aaf20f1c21fd6bb27986df68c97c8bf6d37c38141f","pkg-name":"monad-par-extras","pkg-version":"0.3.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b448c7565958ba5dfe8a0f88f17574059176cbd26e632e40c361520e63a206fd","pkg-src-sha256":"e21e33190bc248afa4ae467287ac37d24037ef3de6050c44fd85b52f4d5b842e","depends":["abstract-par-0.3.3-7e648bb96703ec4a4c84840d14914ef46b21667890c4696d2c3eeb6eec3da4f2","base-4.14.1.0","cereal-0.5.8.1-8025614784aa0ff91dd7f550d85659b182026592039b8dc1aabc1b309d0d4570","deepseq-1.4.4.0","mtl-2.2.2","random-1.2.0-821b8d1dbfd6e71abc1db66ac7846a36093b1f4ea533fe3af624349f163573ad","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.14.1.0","transformers-0.5.6.2"]},{"type":"configured","id":"mwc-random-0.15.0.1-14a296c849a255780bc8b8e6924cd938a9494cbafd09e0af17cee54816bd8f62","pkg-name":"mwc-random","pkg-version":"0.15.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"841c86f132c45cb81116e1d3a8a150cecc27820c2b4e38f8cf86e3fe7735c2ab","pkg-src-sha256":"030b05f658f2f574dd073e50338c8982a4cc8cbd2fa7111548539c05c92b0cdd","depends":["base-4.14.1.0","math-functions-0.3.4.1-8735ea9faa2ca25bbded2fbfe700ea2fdc3d3d7cd5235d3dfb94f858deb0cd30","primitive-0.7.1.0-57016f0038ed9bc68ae4ba8a0bf5334da1a65f93f4331980931e581cdbba846c","random-1.2.0-821b8d1dbfd6e71abc1db66ac7846a36093b1f4ea533fe3af624349f163573ad","time-1.9.3","vector-0.12.2.0-86eb6a029b46eb5eca20ef0fec94419c8aadb2fcbc9f31db86321e75f381084b"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"network-3.1.2.1-d925f232bfe30f4c52bb06fb2656ff45a62084528801e8f75c8eaf5f22089ff2","pkg-name":"network","pkg-version":"3.1.2.1","flags":{"devel":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"188d6daea8cd91bc3553efd5a90a1e7c6d0425fa66a53baa74db5b6d9fd75c8b","pkg-src-sha256":"fcaa954445cb575ff04d088e719452e356324b6acb98c5aefd2541a069439d4a","components":{"lib":{"depends":["base-4.14.1.0","bytestring-0.10.12.0","deepseq-1.4.4.0","directory-1.3.6.0"],"exe-depends":["hsc2hs-0.68.7-e-hsc2hs-a54e898f36feb5209908d7942eb1f2ba686bb25c99af0ac9b04c8f9f55182b1e"]}}},{"type":"configured","id":"network-uri-2.6.4.1-c774712ff2b7be1486922b542f45deb7830d933c918882dc756f44e6de2a5fc0","pkg-name":"network-uri","pkg-version":"2.6.4.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","pkg-src-sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","depends":["base-4.14.1.0","deepseq-1.4.4.0","parsec-3.1.14.0","template-haskell-2.16.0.0","th-compat-0.1.1-14a94eb127a4e835c1d484952096d81eb98ca7e0034e50950c36f82b92624ccf"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"nothunks-0.1.2-5ab3e0f24f2d68f477201a829f2d05cc69979942ba011fe33ee94b3947c27ff2","pkg-name":"nothunks","pkg-version":"0.1.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dff801c9f08ed2fcfb24e029b96a235b89f98623bb2b4df43f8b3b50b30706a3","pkg-src-sha256":"5ebc8d2da19e3f6da9d9f3c454b0404ee8d9fbb405bbcc1b237311de2a552c7d","depends":["base-4.14.1.0","bytestring-0.10.12.0","containers-0.6.2.1","ghc-heap-8.10.4","stm-2.5.0.0","text-1.2.4.1","time-1.9.3","vector-0.12.2.0-86eb6a029b46eb5eca20ef0fec94419c8aadb2fcbc9f31db86321e75f381084b"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"optparse-applicative-0.16.1.0-695090be56707f5e966ba6e34f8db479b2a5c64ac032d36b37583cef2b533a20","pkg-name":"optparse-applicative","pkg-version":"0.16.1.0","flags":{"process":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d410cc76e288b93d4ee7e06addc0381a7eaea43bcee0c3ced03f05cadec2f2fc","pkg-src-sha256":"6205278362f333c52256b9dd3edf5f8fe0f84f00cb9ee000291089f6eaccd69a","depends":["ansi-wl-pprint-0.6.9-32266bd23b5b3d4933a4a36254a196a700dec99400ef2042d3917cf311e4b1b4","base-4.14.1.0","process-1.6.9.0","transformers-0.5.6.2","transformers-compat-0.6.6-b11e75b39009a45f2d7101a7c0acff0f91d4f07252d584fddb38ee1ce37fa625"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"parallel-3.2.2.0-71831c2e77bdea769aade12da21bfb3c5c3219b2e8fc0a65a18949ed6b86ae8f","pkg-name":"parallel","pkg-version":"3.2.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"421ce1717610bab82969572b96be89d83ea8d8afe7751cb54d80b996fff063d3","pkg-src-sha256":"170453a71a2a8b31cca63125533f7771d7debeb639700bdabdd779c34d8a6ef6","depends":["array-0.5.4.0","base-4.14.1.0","containers-0.6.2.1","deepseq-1.4.4.0","ghc-prim-0.6.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"parsec-3.1.14.0","pkg-name":"parsec","pkg-version":"3.1.14.0","depends":["base-4.14.1.0","bytestring-0.10.12.0","mtl-2.2.2","text-1.2.4.1"]},{"type":"configured","id":"parsers-0.12.10-f92c3896b3794a1f8f5d65554d9b23053cf3657ca5e7be48f552006daebb6675","pkg-name":"parsers","pkg-version":"0.12.10","flags":{"attoparsec":true,"binary":true,"parsec":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3b0d9f15a64cb9a0c66b79b8653e9074e21a1c96d96cfad63ef2984219323499","pkg-src-sha256":"17b91f1318ca54679395b382a056df633fdb44fbb962eca66b1787f957af1a6c","depends":["attoparsec-0.13.2.5-d25a5dd2588894a14d2bae233a4fcb72e50147763f995af2de858d4af56a4616","base-4.14.1.0","base-orphans-0.8.4-eeb451e194a17dcb8216f6c9dba63debe95fc3e2e0f94caf9105889da9f83ff5","binary-0.8.8.0","charset-0.3.8-de395e8b9684550ca69d4ff8cac4ccacc0c9b5eda37ee35f518b3b943eeec786","containers-0.6.2.1","mtl-2.2.2","parsec-3.1.14.0","scientific-0.3.6.2-e93e3f666210ea472bcfba3c150692c34101d365d8ab4de460bde5e83bd421e5","semigroups-0.19.1-9bd2a5a836db517f37cc75e4855c48fac208d217260aee35dd472bf6367f488b","text-1.2.4.1","transformers-0.5.6.2","unordered-containers-0.2.13.0-25a25c80a274cafa04144e390819c8940e24acb3e26f2c4ae170825b997e9e77"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.14.1.0","deepseq-1.4.4.0","ghc-prim-0.6.1"]},{"type":"configured","id":"primitive-0.7.1.0-57016f0038ed9bc68ae4ba8a0bf5334da1a65f93f4331980931e581cdbba846c","pkg-name":"primitive","pkg-version":"0.7.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f6357d5720c1c665096c3e011467daf443198b786a708d2ff926958a24d508d4","pkg-src-sha256":"6bebecfdf2a57787d9fd5231bfd612b65a92edd7b33a973b2a0f11312b89a3f0","depends":["base-4.14.1.0","deepseq-1.4.4.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.9.0","pkg-name":"process","pkg-version":"1.6.9.0","depends":["base-4.14.1.0","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.0-821b8d1dbfd6e71abc1db66ac7846a36093b1f4ea533fe3af624349f163573ad","pkg-name":"random","pkg-version":"1.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"30d72df4cc1d2fe2d445c88f0ee9d21965af7ce86660c43a6c32a6a1d90d51c9","pkg-src-sha256":"e4519cf7c058bfd5bdbe4acc782284acc9e25e74487208619ca83cbcd63fb9de","depends":["base-4.14.1.0","bytestring-0.10.12.0","deepseq-1.4.4.0","mtl-2.2.2","splitmix-0.1.0.3-50ec55b0f09ac3f0d066c466987b99709f10e5609d166e51ea3e13c78b1d5ed2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-base-0.94.0.1-d7ecf1728220a8259ba5638c70181eac3f04d86abb4c365efed75b12866a10b7","pkg-name":"regex-base","pkg-version":"0.94.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"6e3546b73cd5489201d481aa645a531f2c61aa317984e31c5f379ac0bcbfbfad","pkg-src-sha256":"71b1d96fff201f31fe8cd4532f056aca03a21cd486890256dc3007dd73adedd9","depends":["array-0.5.4.0","base-4.14.1.0","bytestring-0.10.12.0","containers-0.6.2.1","mtl-2.2.2","text-1.2.4.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-compat-tdfa-0.95.1.4-5507a33b28b3156adbc313721da0213efd0431d98c8534de4532b073cd50aa5d","pkg-name":"regex-compat-tdfa","pkg-version":"0.95.1.4","flags":{"newbase":true,"splitbase":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f4e4ca4b5151d59fe2e8c832f0be8400577b0ae882ade9779190e684e69884cc","pkg-src-sha256":"4fa38ed24ae390eeffe6eef04bbe632d7ecd02b9123729e976e7420f927520dd","components":{"lib":{"depends":["array-0.5.4.0","base-4.14.1.0","regex-base-0.94.0.1-d7ecf1728220a8259ba5638c70181eac3f04d86abb4c365efed75b12866a10b7","regex-tdfa-1.3.1.0-0d01be209325a276760b944b29515f826985246d91d45cc619cf4d8fe625fe87"],"exe-depends":[]}}},{"type":"configured","id":"regex-posix-0.96.0.0-6af01c95f06c7ebb72377839fe7de37fe6fdc73bb6a11fa6098a884ffb4b7d80","pkg-name":"regex-posix","pkg-version":"0.96.0.0","flags":{"_regex-posix-clib":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"bd870f983a21bb474bd96449736f011c599981ce70da808a21ec1a28292e5481","pkg-src-sha256":"251300f1a6bb2e91abb8bf513a21981f8fab79c98a65acea2bb6d6a524414521","depends":["array-0.5.4.0","base-4.14.1.0","bytestring-0.10.12.0","containers-0.6.2.1","regex-base-0.94.0.1-d7ecf1728220a8259ba5638c70181eac3f04d86abb4c365efed75b12866a10b7"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-tdfa-1.3.1.0-0d01be209325a276760b944b29515f826985246d91d45cc619cf4d8fe625fe87","pkg-name":"regex-tdfa","pkg-version":"1.3.1.0","flags":{"force-o2":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"eb8d0f007cf45faca8574f56f0d19c9b02bc529ef1688d8f8a9751ce7dc36cc3","pkg-src-sha256":"15c376783d397b3b9933cf35980808feddde273bd6f2445babbccb2f76a42ec0","depends":["array-0.5.4.0","base-4.14.1.0","bytestring-0.10.12.0","containers-0.6.2.1","mtl-2.2.2","parsec-3.1.14.0","regex-base-0.94.0.1-d7ecf1728220a8259ba5638c70181eac3f04d86abb4c365efed75b12866a10b7","text-1.2.4.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"rere-0.1-d0827b8705da710e99865120158b7b757c75f642cb47d729d28eadc3a9e10fec","pkg-name":"rere","pkg-version":"0.1","flags":{"rere-cfg":false,"rere-intersection":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"8f4b56dc6ea9d1a5aabbd4662449474fcc140398987de0d7188ed14612634e4c","pkg-src-sha256":"4c79e0e8d7101e0e0177716d0b912aa7a2bbdeb91533b599e6b4e24e55b35343","depends":["QuickCheck-2.14.2-1ff9bae85831dc0b6952a57b65e5655191418d456f323fac5ce787579a76b0b0","base-4.14.1.0","containers-0.6.2.1","parsec-3.1.14.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"resolv-0.1.2.0-f7130ba39006660e2f0899b15f14d3654bca76b234a6607b1643326908e0093d","pkg-name":"resolv","pkg-version":"0.1.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4d61a65ac5522a869d9dd32c2a67c796f054abe3e4c70df2a13e6e241e23f5a6","pkg-src-sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","components":{"lib":{"depends":["base-4.14.1.0","base16-bytestring-0.1.1.7-4213aa5aacc84ac6fa707d6e73c5cacf97a1d194e57a56f6ab46e368f83f4298","binary-0.8.8.0","bytestring-0.10.12.0","containers-0.6.2.1"],"exe-depends":[]}}},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0","depends":[]},{"type":"configured","id":"scientific-0.3.6.2-e93e3f666210ea472bcfba3c150692c34101d365d8ab4de460bde5e83bd421e5","pkg-name":"scientific","pkg-version":"0.3.6.2","flags":{"bytestring-builder":false,"integer-simple":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dd49abc76bd8e2b57e7a057dc2bb742a00527b4bf9350f9374be03b5934e55d8","pkg-src-sha256":"278d0afc87450254f8a76eab21b5583af63954efc9b74844a17a21a68013140f","depends":["base-4.14.1.0","binary-0.8.8.0","bytestring-0.10.12.0","containers-0.6.2.1","deepseq-1.4.4.0","hashable-1.3.1.0-d6843a1c354b03ec345a56de12b120cc2558ac419378e59c75471c08f0c9e3bb","integer-gmp-1.0.3.0","integer-logarithms-1.0.3.1-780fa13e0316555e4c1e813717c6e51c3758f69d12d35fdc579d97a3f09b84f2","primitive-0.7.1.0-57016f0038ed9bc68ae4ba8a0bf5334da1a65f93f4331980931e581cdbba846c","text-1.2.4.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"semigroups-0.19.1-9bd2a5a836db517f37cc75e4855c48fac208d217260aee35dd472bf6367f488b","pkg-name":"semigroups","pkg-version":"0.19.1","flags":{"binary":true,"bytestring":true,"bytestring-builder":false,"containers":true,"deepseq":true,"hashable":true,"tagged":true,"template-haskell":true,"text":true,"transformers":true,"unordered-containers":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ecae129621e0d2f77bef2f01e4458c2e0567ab6e1f39579c61d7cec8058ebb0e","pkg-src-sha256":"79e761e64b862564a3470d5d356cb6b060b14452d675859aed3b2d1e14646648","depends":["base-4.14.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"solver-benchmarks-3-inplace","pkg-name":"solver-benchmarks","pkg-version":"3","flags":{},"style":"local","pkg-src":{"type":"local","path":"/home/fgaz/cabal/solver-benchmarks"},"dist-dir":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/solver-benchmarks-3","depends":["Cabal-3.5.0.0-inplace","async-2.2.3-236a4dc2f1b240551dae7a0b57a37c7de0b8dd5dcd25a2be0640dfd6e7afc562","base-4.14.1.0","bytestring-0.10.12.0","containers-0.6.2.1","directory-1.3.6.0","filepath-1.4.2.1","optparse-applicative-0.16.1.0-695090be56707f5e966ba6e34f8db479b2a5c64ac032d36b37583cef2b533a20","process-1.6.9.0","statistics-0.15.2.0-69c3785eaa950aff8e5fd23d84745ebb1af868a29c022e22aacfbf2e51c341a4","time-1.9.3","vector-0.12.2.0-86eb6a029b46eb5eca20ef0fec94419c8aadb2fcbc9f31db86321e75f381084b"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"solver-benchmarks-3-inplace-hackage-benchmark","pkg-name":"solver-benchmarks","pkg-version":"3","flags":{},"style":"local","pkg-src":{"type":"local","path":"/home/fgaz/cabal/solver-benchmarks"},"dist-dir":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/solver-benchmarks-3/x/hackage-benchmark","depends":["base-4.14.1.0","solver-benchmarks-3-inplace"],"exe-depends":[],"component-name":"exe:hackage-benchmark","bin-file":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/solver-benchmarks-3/x/hackage-benchmark/build/hackage-benchmark/hackage-benchmark"},{"type":"configured","id":"solver-benchmarks-3-inplace-unit-tests","pkg-name":"solver-benchmarks","pkg-version":"3","flags":{},"style":"local","pkg-src":{"type":"local","path":"/home/fgaz/cabal/solver-benchmarks"},"dist-dir":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/solver-benchmarks-3/t/unit-tests","depends":["base-4.14.1.0","solver-benchmarks-3-inplace","statistics-0.15.2.0-69c3785eaa950aff8e5fd23d84745ebb1af868a29c022e22aacfbf2e51c341a4","tasty-1.3.1-d698bf858dbd57ed2c77e791cd0c281e7c06b9ecfa07e32125d5758aa84aa84b","tasty-hunit-0.10.0.3-63f86fb1c5d6ba33dc04d8db3e3ef892d36591e72a3f420db266dfb5e3f3d508"],"exe-depends":[],"component-name":"test:unit-tests","bin-file":"/home/fgaz/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.4/solver-benchmarks-3/t/unit-tests/build/unit-tests/unit-tests"},{"type":"configured","id":"splitmix-0.1.0.3-50ec55b0f09ac3f0d066c466987b99709f10e5609d166e51ea3e13c78b1d5ed2","pkg-name":"splitmix","pkg-version":"0.1.0.3","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"fc3aae74c467f4b608050bef53aec17904a618731df9407e655d8f3bf8c32d5c","pkg-src-sha256":"46009f4b000c9e6613377767b8718bf38476469f2a8e2162d98cc246882d5a35","depends":["base-4.14.1.0","deepseq-1.4.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"statistics-0.15.2.0-69c3785eaa950aff8e5fd23d84745ebb1af868a29c022e22aacfbf2e51c341a4","pkg-name":"statistics","pkg-version":"0.15.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"6bca4f8f9663db10642354f269b6f5c7384d8bbab8719b59daca08b188e5726d","pkg-src-sha256":"c496dbb8767a65ea3c352fd08ce1918200a0cc9d8f8b5f262aebbb43dee22a49","depends":["aeson-1.5.6.0-447cf4be086297b37c3bf69491f70d5fe4fc65b2240f3f1678edd400829eb174","async-2.2.3-236a4dc2f1b240551dae7a0b57a37c7de0b8dd5dcd25a2be0640dfd6e7afc562","base-4.14.1.0","base-orphans-0.8.4-eeb451e194a17dcb8216f6c9dba63debe95fc3e2e0f94caf9105889da9f83ff5","binary-0.8.8.0","data-default-class-0.1.2.0-b59d16fdeef7ba7e2bbf2c69e6b5cb28afa040d1534798ab406651e4c0f1e0cd","deepseq-1.4.4.0","dense-linear-algebra-0.1.0.0-311d877dc799fb258727d3141e2a95bc947c6def81c3c41943bb4a4cdf74476f","math-functions-0.3.4.1-8735ea9faa2ca25bbded2fbfe700ea2fdc3d3d7cd5235d3dfb94f858deb0cd30","monad-par-0.3.5-761868e48882df206cb3c5f84b91fb8dbe411373b8ca86deb41c79028251f3ae","mwc-random-0.15.0.1-14a296c849a255780bc8b8e6924cd938a9494cbafd09e0af17cee54816bd8f62","primitive-0.7.1.0-57016f0038ed9bc68ae4ba8a0bf5334da1a65f93f4331980931e581cdbba846c","vector-0.12.2.0-86eb6a029b46eb5eca20ef0fec94419c8aadb2fcbc9f31db86321e75f381084b","vector-algorithms-0.8.0.4-9907f3822272a8d9c27361f3d824bb72fb71da73da56e9ed5e931b15a5dfc9a5","vector-binary-instances-0.2.5.1-3c50694cd69b0015f73aefc5131403a667dac2c23c04f4a4ae50391404b619f0","vector-th-unbox-0.2.1.9-0780f228bd39e12d2eb8a0890f9a61219f59a157748eb5b4b36c33d603eac64c"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"stm-2.5.0.0","pkg-name":"stm","pkg-version":"2.5.0.0","depends":["array-0.5.4.0","base-4.14.1.0"]},{"type":"configured","id":"strict-0.4.0.1-6933f9451cb1ac615848f29f59c40a38854302f2e18d4164a9e868f10eb5f3a6","pkg-name":"strict","pkg-version":"0.4.0.1","flags":{"assoc":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"08cf72ad570fddfe3b3424117bf20a303a1fb21047b40c1d6c8004c0e3e02a0b","pkg-src-sha256":"dff6abc08ad637e51891bb8b475778c40926c51219eda60fd64f0d9680226241","depends":["assoc-1.0.2-4e15c8155cf33e143df86c438d8e7fd29061cce7e934bb29e997aeae2524634a","base-4.14.1.0","binary-0.8.8.0","bytestring-0.10.12.0","deepseq-1.4.4.0","ghc-prim-0.6.1","hashable-1.3.1.0-d6843a1c354b03ec345a56de12b120cc2558ac419378e59c75471c08f0c9e3bb","text-1.2.4.1","these-1.1.1.1-512cb98bbd90d6220bc03c0fdc44e7ad0acb0c9b533808e62255eb4a7ff19446","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"tagged-0.8.6.1-70cc2d2bc355253a90e391c971cde5870aa7c58bb15fafafa648420ed0bd7e19","pkg-name":"tagged","pkg-version":"0.8.6.1","flags":{"deepseq":true,"transformers":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"98e446479bd3fe5bdc5fa63fec2a2f6998e1bb8cb6db1dee611716f588b3ab28","pkg-src-sha256":"f5e0fcf95f0bb4aa63f428f2c01955a41ea1a42cfcf39145ed631f59a9616c02","depends":["base-4.14.1.0","deepseq-1.4.4.0","template-haskell-2.16.0.0","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"tar-0.5.1.1-18946a119ecc2a1fbcf68d5238b97fbf3bba2eafaf966c3c485e77eb1e2830cc","pkg-name":"tar","pkg-version":"0.5.1.1","flags":{"old-bytestring":false,"old-time":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"94ded05718fe75b88c98e7113feeb9fca50688a7e59b6aefd80a6f48438c5062","pkg-src-sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","depends":["array-0.5.4.0","base-4.14.1.0","bytestring-0.10.12.0","containers-0.6.2.1","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","time-1.9.3"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"tasty-1.3.1-d698bf858dbd57ed2c77e791cd0c281e7c06b9ecfa07e32125d5758aa84aa84b","pkg-name":"tasty","pkg-version":"1.3.1","flags":{"clock":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"01e35c97f7ee5ccbc28f21debea02a38cd010d53b4c3087f5677c5d06617a507","pkg-src-sha256":"1cd5dff4a13527dfd9460134ae168a55c821e5bb9aece7ad9d00a1d03cc014dd","depends":["ansi-terminal-0.11-1fba04fc83ca8f5aa12e706247009b38e05f3d6377e22013ef037bf3aa01ce71","async-2.2.3-236a4dc2f1b240551dae7a0b57a37c7de0b8dd5dcd25a2be0640dfd6e7afc562","base-4.14.1.0","clock-0.8.2-6b0474766238ffdedd4e520e87f3571bf523807bb3d02cc63bbe924ea35d10f6","containers-0.6.2.1","mtl-2.2.2","optparse-applicative-0.16.1.0-695090be56707f5e966ba6e34f8db479b2a5c64ac032d36b37583cef2b533a20","stm-2.5.0.0","tagged-0.8.6.1-70cc2d2bc355253a90e391c971cde5870aa7c58bb15fafafa648420ed0bd7e19","unbounded-delays-0.1.1.1-d86026da17eff8d39b5791caf6010e734ea76e68f38c7634c3be8bee8c5e62e9","unix-2.7.2.2","wcwidth-0.0.2-b8ec8a432d714b701732cef6a2c3e6c02ce3f2e4848ef368e32d2bb99ea43eb5"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"tasty-golden-2.3.4-9c76ecb0033978a60858318ae86318410e68513604911d2bd98c9f2da8983391","pkg-name":"tasty-golden","pkg-version":"2.3.4","flags":{"build-example":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"1e3658c03d5c99f35c4c8fa0e06f8c6abb6b3c714da26fc159e87d4ddbe49f7e","pkg-src-sha256":"f6f2bd6cd8ef1ca5b47ed08fb4a9cda4484e7fac0c30830f67a177f7f05653db","depends":["async-2.2.3-236a4dc2f1b240551dae7a0b57a37c7de0b8dd5dcd25a2be0640dfd6e7afc562","base-4.14.1.0","bytestring-0.10.12.0","containers-0.6.2.1","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","mtl-2.2.2","optparse-applicative-0.16.1.0-695090be56707f5e966ba6e34f8db479b2a5c64ac032d36b37583cef2b533a20","process-1.6.9.0","tagged-0.8.6.1-70cc2d2bc355253a90e391c971cde5870aa7c58bb15fafafa648420ed0bd7e19","tasty-1.3.1-d698bf858dbd57ed2c77e791cd0c281e7c06b9ecfa07e32125d5758aa84aa84b","temporary-1.3-a870b10d10e3800961a93913d9c37da92d28c08ca7a0c3225a7c147f8ef979b9","text-1.2.4.1","unix-compat-0.5.3-08b69e228b62706858a1ad5ab3c7e2bec1ea89a3a3b8fc8557de0654ca77e3bd"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"tasty-hunit-0.10.0.3-63f86fb1c5d6ba33dc04d8db3e3ef892d36591e72a3f420db266dfb5e3f3d508","pkg-name":"tasty-hunit","pkg-version":"0.10.0.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ba774024f3a26100c559dbef41e030bdf443408ed848691f7b9aa85b6fb218c3","pkg-src-sha256":"b7ef1912ece25b9396d2c69c31e63f82facc95edac8fc1abbf84e8c3c7ffe63f","depends":["base-4.14.1.0","call-stack-0.3.0-384d190b7cefdc9f1db6b1b721e863b97e61dab01540e7977f1291fe50f74156","tasty-1.3.1-d698bf858dbd57ed2c77e791cd0c281e7c06b9ecfa07e32125d5758aa84aa84b"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"tasty-quickcheck-0.10.1.2-0a4084d2d1543545a4778d9bd1f647981ae3ebc8269110b3aa810293d62c32c0","pkg-name":"tasty-quickcheck","pkg-version":"0.10.1.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"45c8125e5de19570359784def5946dec759b7431e3beccc61cd09d661daf19ed","pkg-src-sha256":"89601c0a670ff11dbef6294fd12842630a5bb2a7b126a22fffd8fe830a3a3144","depends":["QuickCheck-2.14.2-1ff9bae85831dc0b6952a57b65e5655191418d456f323fac5ce787579a76b0b0","base-4.14.1.0","optparse-applicative-0.16.1.0-695090be56707f5e966ba6e34f8db479b2a5c64ac032d36b37583cef2b533a20","random-1.2.0-821b8d1dbfd6e71abc1db66ac7846a36093b1f4ea533fe3af624349f163573ad","tagged-0.8.6.1-70cc2d2bc355253a90e391c971cde5870aa7c58bb15fafafa648420ed0bd7e19","tasty-1.3.1-d698bf858dbd57ed2c77e791cd0c281e7c06b9ecfa07e32125d5758aa84aa84b"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.16.0.0","pkg-name":"template-haskell","pkg-version":"2.16.0.0","depends":["base-4.14.1.0","ghc-boot-th-8.10.4","ghc-prim-0.6.1","pretty-1.1.3.6"]},{"type":"configured","id":"temporary-1.3-a870b10d10e3800961a93913d9c37da92d28c08ca7a0c3225a7c147f8ef979b9","pkg-name":"temporary","pkg-version":"1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3a66c136f700dbf42f3c5000ca93e80b26dead51e54322c83272b236c1ec8ef1","pkg-src-sha256":"8c442993694b5ffca823ce864af95bd2841fb5264ee511c61cf48cc71d879890","depends":["base-4.14.1.0","directory-1.3.6.0","exceptions-0.10.4","filepath-1.4.2.1","random-1.2.0-821b8d1dbfd6e71abc1db66ac7846a36093b1f4ea533fe3af624349f163573ad","transformers-0.5.6.2","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"text-1.2.4.1","pkg-name":"text","pkg-version":"1.2.4.1","depends":["array-0.5.4.0","base-4.14.1.0","binary-0.8.8.0","bytestring-0.10.12.0","deepseq-1.4.4.0","ghc-prim-0.6.1","integer-gmp-1.0.3.0","template-haskell-2.16.0.0"]},{"type":"configured","id":"text-short-0.1.3-2d76290a8547ba78c11ae6c32158f441b5465bbca0c4e59b794260630ac1cea4","pkg-name":"text-short","pkg-version":"0.1.3","flags":{"asserts":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"db924a1fffb3cf20f2cb6b32d8bc1281b181a57c1a84b1c8c8ff4608234a5ef2","pkg-src-sha256":"bf5b9fedb7d0301e8fdf33e3223d10ca940e9e72c18bac135be80b6016edd977","depends":["base-4.14.1.0","binary-0.8.8.0","bytestring-0.10.12.0","deepseq-1.4.4.0","ghc-prim-0.6.1","hashable-1.3.1.0-d6843a1c354b03ec345a56de12b120cc2558ac419378e59c75471c08f0c9e3bb","text-1.2.4.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"th-abstraction-0.4.2.0-0d7316e661a22fb4db768739356fe46622fb6b658b89803a5d3b128c100319f0","pkg-name":"th-abstraction","pkg-version":"0.4.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2c754cd15370f8c59c8e6c37d44428a78d0b4afc94e13b3958a1a50cd16f6e84","pkg-src-sha256":"ea06b2cda25fc4b52dac48cc23e5a756f997df8985ecaee5a554202508a11c40","depends":["base-4.14.1.0","containers-0.6.2.1","ghc-prim-0.6.1","template-haskell-2.16.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"th-compat-0.1.1-14a94eb127a4e835c1d484952096d81eb98ca7e0034e50950c36f82b92624ccf","pkg-name":"th-compat","pkg-version":"0.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"62f2dbddb23e0af39a4ea2f185911b172bc7533df3ca9b6ac9a6b22fc69e5831","pkg-src-sha256":"95fa20583ac236bc9ec6ba01350483e87a121a7893b4158651c700a60af603f9","depends":["base-4.14.1.0","template-haskell-2.16.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"these-1.1.1.1-512cb98bbd90d6220bc03c0fdc44e7ad0acb0c9b533808e62255eb4a7ff19446","pkg-name":"these","pkg-version":"1.1.1.1","flags":{"assoc":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"e981c65228db5ae77a043631f74a1e4a4b770f7213866f584e3476b52512f1af","pkg-src-sha256":"d798c9f56e17def441e8f51e54cc11afdb3e76c6a9d1e9ee154e9a78da0bf508","depends":["base-4.14.1.0","binary-0.8.8.0","deepseq-1.4.4.0","hashable-1.3.1.0-d6843a1c354b03ec345a56de12b120cc2558ac419378e59c75471c08f0c9e3bb"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"time-1.9.3","pkg-name":"time","pkg-version":"1.9.3","depends":["base-4.14.1.0","deepseq-1.4.4.0"]},{"type":"configured","id":"time-compat-1.9.5-46785c5bb0da0ef784bcff927a8dc6746a4797d521f0f2a53931bec24c7aa9b6","pkg-name":"time-compat","pkg-version":"1.9.5","flags":{"old-locale":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a586bd5a59b47ea0c9eafc55c6936ede11126f4a6e619d6d7aeefee73c43d9b8","pkg-src-sha256":"3126b267d19f31d52a3c36f13a8788be03242f829a5bddd8a3084e134d01e3a6","depends":["base-4.14.1.0","base-orphans-0.8.4-eeb451e194a17dcb8216f6c9dba63debe95fc3e2e0f94caf9105889da9f83ff5","deepseq-1.4.4.0","time-1.9.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.14.1.0"]},{"type":"configured","id":"transformers-compat-0.6.6-b11e75b39009a45f2d7101a7c0acff0f91d4f07252d584fddb38ee1ce37fa625","pkg-name":"transformers-compat","pkg-version":"0.6.6","flags":{"five":false,"five-three":true,"four":false,"generic-deriving":true,"mtl":true,"three":false,"two":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"510709db2b12d1510d70de824ee544ca0a9e6f27aa7e299218cbacc0750b4a5e","pkg-src-sha256":"7e2e0251e5e6d28142615a4b950a3fabac9c0b7804b1ec4a4ae985f19519a9f9","depends":["base-4.14.1.0","ghc-prim-0.6.1","transformers-0.5.6.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"tree-diff-0.1-ce6c6e01a7cbffe3633ec2bb94765bb3d5bbe1ba2e21036d89b370e2db219d7c","pkg-name":"tree-diff","pkg-version":"0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"0d280959fc98f1b68908bef998e28487a45993f0471594cd7e2f55600c530ef3","pkg-src-sha256":"e3d901ad6f3e2732f07e0dafcafb27bef2f2cadec46bf9c9a5c95e60f1b2a684","depends":["QuickCheck-2.14.2-1ff9bae85831dc0b6952a57b65e5655191418d456f323fac5ce787579a76b0b0","aeson-1.5.6.0-447cf4be086297b37c3bf69491f70d5fe4fc65b2240f3f1678edd400829eb174","ansi-terminal-0.11-1fba04fc83ca8f5aa12e706247009b38e05f3d6377e22013ef037bf3aa01ce71","ansi-wl-pprint-0.6.9-32266bd23b5b3d4933a4a36254a196a700dec99400ef2042d3917cf311e4b1b4","base-4.14.1.0","base-compat-0.11.2-7b66297a21dbcdaeb313bb6c4bf210761a72eeb81195a8c6cfe9cdcc747bf2e1","bytestring-0.10.12.0","bytestring-builder-0.10.8.2.0-fd1e23c1e35e7efc590b487f3041ee753f8ee156d6a045f6ef4b2bc3fee82692","containers-0.6.2.1","hashable-1.3.1.0-d6843a1c354b03ec345a56de12b120cc2558ac419378e59c75471c08f0c9e3bb","parsec-3.1.14.0","parsers-0.12.10-f92c3896b3794a1f8f5d65554d9b23053cf3657ca5e7be48f552006daebb6675","pretty-1.1.3.6","scientific-0.3.6.2-e93e3f666210ea472bcfba3c150692c34101d365d8ab4de460bde5e83bd421e5","tagged-0.8.6.1-70cc2d2bc355253a90e391c971cde5870aa7c58bb15fafafa648420ed0bd7e19","text-1.2.4.1","time-1.9.3","unordered-containers-0.2.13.0-25a25c80a274cafa04144e390819c8940e24acb3e26f2c4ae170825b997e9e77","uuid-types-1.0.4-5818046324226ec90721eea4b7822bb4e00d0c3db14e472f609185635b1ac3d1","vector-0.12.2.0-86eb6a029b46eb5eca20ef0fec94419c8aadb2fcbc9f31db86321e75f381084b"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"unbounded-delays-0.1.1.1-d86026da17eff8d39b5791caf6010e734ea76e68f38c7634c3be8bee8c5e62e9","pkg-name":"unbounded-delays","pkg-version":"0.1.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d7a2a49f15bdff2a8bdbd76f9d204580ea4be5a9def500c6371d51d8111cbcbe","pkg-src-sha256":"59ad7e53bfe32ffbf0e703b31490d41d14c70e4745ed49e8adf592ed68dd6185","depends":["base-4.14.1.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.14.1.0","bytestring-0.10.12.0","time-1.9.3"]},{"type":"configured","id":"unix-compat-0.5.3-08b69e228b62706858a1ad5ab3c7e2bec1ea89a3a3b8fc8557de0654ca77e3bd","pkg-name":"unix-compat","pkg-version":"0.5.3","flags":{"old-time":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"60be4a0b2e1cd873e5ad5f0cc9e53575b77640567abb43ef700d5b323ca2ac49","pkg-src-sha256":"0893b597ea0db406429d0d563506af6755728eface0e1981f9392122db88e5c8","depends":["base-4.14.1.0","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"unordered-containers-0.2.13.0-25a25c80a274cafa04144e390819c8940e24acb3e26f2c4ae170825b997e9e77","pkg-name":"unordered-containers","pkg-version":"0.2.13.0","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"6310c636f92ed4908fdd0de582b6be31c2851c7b5f2ec14e9f416eb94df7a078","pkg-src-sha256":"86b01369ab8eb311383a052d389337e2cd71a63088323f02932754df4aa37b55","depends":["base-4.14.1.0","deepseq-1.4.4.0","hashable-1.3.1.0-d6843a1c354b03ec345a56de12b120cc2558ac419378e59c75471c08f0c9e3bb"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"uuid-types-1.0.4-5818046324226ec90721eea4b7822bb4e00d0c3db14e472f609185635b1ac3d1","pkg-name":"uuid-types","pkg-version":"1.0.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"34de8cf688e30f668cba5e5d79e907eb7f65bca2538ce927fddb42d74840036b","pkg-src-sha256":"c2aa2ccaa3a74259aca1f57cc1c277822086430814ce5e4f38cfd868fe48ec06","depends":["base-4.14.1.0","binary-0.8.8.0","bytestring-0.10.12.0","deepseq-1.4.4.0","hashable-1.3.1.0-d6843a1c354b03ec345a56de12b120cc2558ac419378e59c75471c08f0c9e3bb","random-1.2.0-821b8d1dbfd6e71abc1db66ac7846a36093b1f4ea533fe3af624349f163573ad","text-1.2.4.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"vector-0.12.2.0-86eb6a029b46eb5eca20ef0fec94419c8aadb2fcbc9f31db86321e75f381084b","pkg-name":"vector","pkg-version":"0.12.2.0","flags":{"boundschecks":true,"internalchecks":false,"unsafechecks":false,"wall":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"6e81683c2c19b4aea58f1f453547cb03851b3cfd4031b8eb82abfa4643a13494","pkg-src-sha256":"17ab0b84c87859333ff681bb9f768368779677925bd589ff4baa05be3fd26b50","depends":["base-4.14.1.0","deepseq-1.4.4.0","ghc-prim-0.6.1","primitive-0.7.1.0-57016f0038ed9bc68ae4ba8a0bf5334da1a65f93f4331980931e581cdbba846c"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"vector-algorithms-0.8.0.4-9907f3822272a8d9c27361f3d824bb72fb71da73da56e9ed5e931b15a5dfc9a5","pkg-name":"vector-algorithms","pkg-version":"0.8.0.4","flags":{"bench":true,"boundschecks":true,"internalchecks":false,"llvm":false,"properties":true,"unsafechecks":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"bf4760b23a0fee09abb8c9e3c952c870f5dc9780876e9d7e38ab2bdd98c8f283","pkg-src-sha256":"76176a56778bf30a275b1089ee6db24ec6c67d92525145f8dfe215b80137af3b","depends":["base-4.14.1.0","bytestring-0.10.12.0","primitive-0.7.1.0-57016f0038ed9bc68ae4ba8a0bf5334da1a65f93f4331980931e581cdbba846c","vector-0.12.2.0-86eb6a029b46eb5eca20ef0fec94419c8aadb2fcbc9f31db86321e75f381084b"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"vector-binary-instances-0.2.5.1-3c50694cd69b0015f73aefc5131403a667dac2c23c04f4a4ae50391404b619f0","pkg-name":"vector-binary-instances","pkg-version":"0.2.5.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dde16050ebc4f6da36a75f10b8b933742793e94366086cc752636679f0894945","pkg-src-sha256":"3945b99f8efd319c837700b7cef5163ee23e656e89227357e0b7a41d2a66c512","depends":["base-4.14.1.0","binary-0.8.8.0","vector-0.12.2.0-86eb6a029b46eb5eca20ef0fec94419c8aadb2fcbc9f31db86321e75f381084b"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"vector-th-unbox-0.2.1.9-0780f228bd39e12d2eb8a0890f9a61219f59a157748eb5b4b36c33d603eac64c","pkg-name":"vector-th-unbox","pkg-version":"0.2.1.9","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"5723d9c8a8a941dfeeb59dc42b84b924e4548ab6b5a4afe5b62b39f54667c2dd","pkg-src-sha256":"d4e337f52fffe7c3c5b2b9fd4f9cc1a61c488aa4371a082ab27d86d4c2a87f49","depends":["base-4.14.1.0","template-haskell-2.16.0.0","vector-0.12.2.0-86eb6a029b46eb5eca20ef0fec94419c8aadb2fcbc9f31db86321e75f381084b"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"wcwidth-0.0.2-b8ec8a432d714b701732cef6a2c3e6c02ce3f2e4848ef368e32d2bb99ea43eb5","pkg-name":"wcwidth","pkg-version":"0.0.2","flags":{"cli":false,"split-base":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"77531eb6683c505c22ab3fa11bbc43d3ce1e7dac21401d4d5a19677d348bb5f3","pkg-src-sha256":"ffc68736a3bbde3e8157710f29f4a99c0ca593c41194579c54a92c62f6c12ed8","components":{"lib":{"depends":["base-4.14.1.0","containers-0.6.2.1"],"exe-depends":[]}}},{"type":"configured","id":"zlib-0.6.2.3-b90c97183f6e42dc293d8b34d805d69af638a7db92db9e9b43261f163fd100d1","pkg-name":"zlib","pkg-version":"0.6.2.3","flags":{"bundled-c-zlib":false,"non-blocking-ffi":false,"pkg-config":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"28f4d460c260e074cab833625454564b9783a3389b7bb91fd54da2790b39592c","pkg-src-sha256":"807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88","depends":["base-4.14.1.0","bytestring-0.10.12.0"],"exe-depends":[],"component-name":"lib"}]} \ No newline at end of file diff --git a/bootstrap/linux-8.10.1.json b/bootstrap/linux-8.10.7.json similarity index 54% rename from bootstrap/linux-8.10.1.json rename to bootstrap/linux-8.10.7.json index a51badba2f3..fdd8878395f 100644 --- a/bootstrap/linux-8.10.1.json +++ b/bootstrap/linux-8.10.7.json @@ -1,126 +1,49 @@ { - "builtin": [ - { - "package": "rts", - "version": "1.0" - }, - { - "package": "ghc-prim", - "version": "0.6.1" - }, - { - "package": "integer-gmp", - "version": "1.0.3.0" - }, - { - "package": "base", - "version": "4.14.0.0" - }, - { - "package": "array", - "version": "0.5.4.0" - }, - { - "package": "deepseq", - "version": "1.4.4.0" - }, - { - "package": "bytestring", - "version": "0.10.10.0" - }, - { - "package": "containers", - "version": "0.6.2.1" - }, - { - "package": "binary", - "version": "0.8.8.0" - }, - { - "package": "filepath", - "version": "1.4.2.1" - }, - { - "package": "time", - "version": "1.9.3" - }, - { - "package": "unix", - "version": "2.7.2.2" - }, - { - "package": "directory", - "version": "1.3.6.0" - }, - { - "package": "transformers", - "version": "0.5.6.2" - }, - { - "package": "mtl", - "version": "2.2.2" - }, - { - "package": "text", - "version": "1.2.3.2" - }, - { - "package": "parsec", - "version": "3.1.14.0" - }, - { - "package": "pretty", - "version": "1.1.3.6" - }, - { - "package": "process", - "version": "1.6.8.2" - }, - { - "package": "ghc-boot-th", - "version": "8.10.1" - }, - { - "package": "template-haskell", - "version": "2.16.0.0" - }, - { - "package": "stm", - "version": "2.5.0.0" - } - ], "dependencies": [ { - "cabal_sha256": null, + "source": "local", + "package": "Cabal", + "version": "3.6.2.0", "flags": [ "-bundled-binary-generic" ], - "package": "Cabal", - "revision": null, - "source": "local", + "cabal_sha256": null, "src_sha256": null, - "version": "3.5.0.0" + "revision": null }, { - "cabal_sha256": "b704cb6676c03e98267190df797497587576a2e96094550ea143415239bbe66e", - "flags": [], - "package": "network", - "revision": 0, "source": "hackage", - "src_sha256": "d7ef590173fff2ab522fbc167f3fafb867e4ecfca279eb3ef0d137b51f142c9a", - "version": "3.1.1.1" + "package": "network", + "version": "3.1.2.2", + "flags": [ + "-devel" + ], + "cabal_sha256": "218e2968e03d99c40f32a2ef7cc41a848969096ba1c780ff2e57997a00246b06", + "src_sha256": "55012c0b22f9c7548b1f7b3bacc2c6ec7058c7f92238a69561528f1a0fa60eb6", + "revision": 0 }, { - "cabal_sha256": "d2d9ff3a80d9b2d1ff317a354bc0c56cc109c69a4c2449e5fc712d3ddce83ede", + "source": "hackage", + "package": "th-compat", + "version": "0.1.3", "flags": [], - "package": "network-uri", - "revision": 0, + "cabal_sha256": "a16dd922947a6877defe52c4c38d1ab48ed3f85a826930f5d1a568741d619993", + "src_sha256": "6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6", + "revision": 0 + }, + { "source": "hackage", - "src_sha256": "a01c1389f15d2cc2e847914737f706133bb11f0c5f8ee89711a36a25b7afa723", - "version": "2.6.3.0" + "package": "network-uri", + "version": "2.6.4.1", + "flags": [], + "cabal_sha256": "a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d", + "src_sha256": "57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584", + "revision": 0 }, { - "cabal_sha256": "3c19975fdfd8d057eae58847bda6a79514ad882fd6f8ead72ac0247af34bdfc6", + "source": "hackage", + "package": "HTTP", + "version": "4000.3.16", "flags": [ "-conduit10", "-mtl1", @@ -128,157 +51,157 @@ "-warn-as-error", "-warp-tests" ], - "package": "HTTP", - "revision": 1, - "source": "hackage", - "src_sha256": "a602d7f30e917164c6a634f8cb1f5df4849048858db01380a0875e16e5aa687b", - "version": "4000.3.14" + "cabal_sha256": "4265b1966b2bbb302a8a80d7b485197694785ec1496d5d9314b4b5931ffbd093", + "src_sha256": "d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d", + "revision": 0 }, { - "cabal_sha256": "4c70f1407881059e93550d3742191254296b2737b793a742bd901348fb3e1fb1", + "source": "hackage", + "package": "hashable", + "version": "1.3.3.0", "flags": [ - "-examples", "+integer-gmp", - "+sse2", - "-sse41" + "-random-initial-seed" ], - "package": "hashable", - "revision": 1, - "source": "hackage", - "src_sha256": "822e5413fbccca6ae884d3aba4066422c8b5d58d23d18b9ecb5c03273bb19ab4", - "version": "1.3.0.0" + "cabal_sha256": "7f3b67151162a1dfe8472dc30430af98ed5470801d3f4b6c9b8d7a7443c920d4", + "src_sha256": "99a578e58fb6a869593841e4b3184f5b52c921bcb0d661d2b3a06e6526cb85dc", + "revision": 0 }, { - "cabal_sha256": "a178c166856da7ff22fe4500337b54812e94fd2059409452187d72e057ede9cd", + "source": "hackage", + "package": "async", + "version": "2.2.3", "flags": [ "-bench" ], - "package": "async", - "revision": 1, - "source": "hackage", - "src_sha256": "4b4ab1ac82c45144d82c6daf6cb6ba45eab9957dad44787fa5e869e23d73bbff", - "version": "2.2.2" + "cabal_sha256": "0cbefb8247308b38e397e675f832b9bd5317ff1872001d5358f213654423c55b", + "src_sha256": "467af3a0037947a5232ecf5f4efbd4cf2118aaa2310566d7f40ac82b0e32935c", + "revision": 0 }, { - "cabal_sha256": "8cbba2505d4da4f6cfc90cd36c8e8ad0c09c056538481ea00e8b10b78f70cb10", - "flags": [], - "package": "base16-bytestring", - "revision": 0, "source": "hackage", - "src_sha256": "525689679d5cc80fa532c1d5cfeace0f62bbb54134fad514f1ba00d0e7fe69ba", - "version": "0.1.1.7" + "package": "base16-bytestring", + "version": "1.0.1.0", + "flags": [], + "cabal_sha256": "33b9d57afa334d06485033e930c6b13fc760baf88fd8f715ae2f9a4b46e19a54", + "src_sha256": "c0c70a4b58be53d36971bd7361ba300f82a5d5ebf7f50e1a2d7bfc8838bdd6fa", + "revision": 0 }, { - "cabal_sha256": "190264fef9e65d9085f00ccda419137096d1dc94777c58272bc96821dc7f37c3", - "flags": [], - "package": "base64-bytestring", - "revision": 0, "source": "hackage", - "src_sha256": "210d6c9042241ca52ee5d89cf221dbeb4d0e64b37391345369035ad2d9b4aca9", - "version": "1.1.0.0" + "package": "base64-bytestring", + "version": "1.2.1.0", + "flags": [], + "cabal_sha256": "50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8", + "src_sha256": "fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9", + "revision": 0 }, { - "cabal_sha256": "b963d6308db096362d73d9c603b331cf188aa69310195f479dfedf6045d7e602", + "source": "hackage", + "package": "cryptohash-sha256", + "version": "0.11.102.0", "flags": [ - "-exe" + "-exe", + "+use-cbits" ], - "package": "cryptohash-sha256", - "revision": 4, - "source": "hackage", - "src_sha256": "52756435dbea248e344fbcbcc5df5307f60dfacf337dfd11ae30f1c7a4da05dd", - "version": "0.11.101.0" + "cabal_sha256": "797a0af7b8a0e654cbddd3df6b9de02d2cbfcb2292cf001399ab53910fbbb76c", + "src_sha256": "8ad6e9875a9128f6cd66d65d80f9f85dd0559c73ac00bb37f71fbee820d10519", + "revision": 1 }, { - "cabal_sha256": "5490be9cfbea95e14a7a68b7d055ae8d295822e0b146d2ac8285b3e5a3e3282f", + "source": "hackage", + "package": "echo", + "version": "0.1.4", "flags": [ "-example" ], - "package": "echo", - "revision": 1, - "source": "hackage", - "src_sha256": "704f07310f8272d170f8ab7fb2a2c13f15d8501ef8310801e36964c8eff485ef", - "version": "0.1.3" + "cabal_sha256": "ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42", + "src_sha256": "c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43", + "revision": 0 }, { - "cabal_sha256": "d50c4d0801a35be7875a040470c09863342514930c82a7d25780a6c2efc4fda9", + "source": "hackage", + "package": "splitmix", + "version": "0.1.0.3", "flags": [ "-optimised-mixer" ], - "package": "splitmix", - "revision": 0, - "source": "hackage", - "src_sha256": "1c11c87352ddbb13365380fe163f99bb8f8845ebc96ca1d572e5d3a9bf810bfa", - "version": "0.1" + "cabal_sha256": "fc3aae74c467f4b608050bef53aec17904a618731df9407e655d8f3bf8c32d5c", + "src_sha256": "46009f4b000c9e6613377767b8718bf38476469f2a8e2162d98cc246882d5a35", + "revision": 0 }, { - "cabal_sha256": "5ca8674e95c46c7eb90f520c26aea22d403625c97697275434afba66ebd32b05", - "flags": [], - "package": "random", - "revision": 0, "source": "hackage", + "package": "random", + "version": "1.2.0", + "flags": [], + "cabal_sha256": "195506fedaa7c31c1fa2a747e9b49b4a5d1f0b09dd8f1291f23a771656faeec3", "src_sha256": "e4519cf7c058bfd5bdbe4acc782284acc9e25e74487208619ca83cbcd63fb9de", - "version": "1.2.0" + "revision": 6 }, { - "cabal_sha256": "4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee", - "flags": [], - "package": "edit-distance", - "revision": 1, "source": "hackage", + "package": "edit-distance", + "version": "0.2.2.1", + "flags": [], + "cabal_sha256": "4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee", "src_sha256": "3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a", - "version": "0.2.2.1" + "revision": 1 }, { - "cabal_sha256": "fb98b08de467d51f788f8bd9391f0e9ab9bd4d8dfc264296b895ffea0d822dfa", + "source": "hackage", + "package": "ed25519", + "version": "0.0.5.0", "flags": [ "+no-donna", "+test-doctests", "+test-hlint", "+test-properties" ], - "package": "ed25519", - "revision": 3, - "source": "hackage", + "cabal_sha256": "fb98b08de467d51f788f8bd9391f0e9ab9bd4d8dfc264296b895ffea0d822dfa", "src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d", - "version": "0.0.5.0" + "revision": 3 }, { - "cabal_sha256": "c9d3fa30fb6ab2ba16e037586ca79be6e57ec5f00381b6ee5f293400dbdf5515", + "source": "hackage", + "package": "lukko", + "version": "0.1.1.3", "flags": [ "+ofd-locking" ], - "package": "lukko", - "revision": 0, - "source": "hackage", - "src_sha256": "8a79d113dc0ccef16c24d83379cc457485943027e777529c46362fecc06607d2", - "version": "0.1.1.2" + "cabal_sha256": "2db49b6cb6632a46ec446fc51870cd0d49e0a66d1c5d2063f46ae52a100eb856", + "src_sha256": "a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f", + "revision": 1 }, { - "cabal_sha256": "7a715414c4d494c9048cfb6d7634e07e7732ca154cb8938dc85f6ea192192e8c", + "source": "hackage", + "package": "tar", + "version": "0.5.1.1", "flags": [ "-old-bytestring", "-old-time" ], - "package": "tar", - "revision": 2, - "source": "hackage", + "cabal_sha256": "94ded05718fe75b88c98e7113feeb9fca50688a7e59b6aefd80a6f48438c5062", "src_sha256": "b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de", - "version": "0.5.1.1" + "revision": 3 }, { - "cabal_sha256": "d34ddf5fece4d1e9d471b5298f36335bb3cfe12cb5a1b8525c42f0b665382f45", + "source": "hackage", + "package": "zlib", + "version": "0.6.2.3", "flags": [ + "-bundled-c-zlib", "-non-blocking-ffi", "-pkg-config" ], - "package": "zlib", - "revision": 1, - "source": "hackage", - "src_sha256": "f0f810ff173560b60392db448455c0513b3239f48e43cb494b3733aa559621d0", - "version": "0.6.2.1" + "cabal_sha256": "28f4d460c260e074cab833625454564b9783a3389b7bb91fd54da2790b39592c", + "src_sha256": "807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88", + "revision": 0 }, { - "cabal_sha256": "692c385c085baa2813046ae58e31df21c250346b81c882431b5ffef76451a18a", + "source": "hackage", + "package": "hackage-security", + "version": "0.6.0.1", "flags": [ "+base48", "+lukko", @@ -286,43 +209,43 @@ "-old-directory", "+use-network-uri" ], - "package": "hackage-security", - "revision": 2, - "source": "hackage", + "cabal_sha256": "ae6cdda307237c0b7efeebfb0bf23ff8a26c30f5ba295dce5e4f81ef6e63fff6", "src_sha256": "9162b473af5a21c1ff32a50b972b9acf51f4c901604a22cf08a2dccac2f82f17", - "version": "0.6.0.1" + "revision": 8 }, { - "cabal_sha256": "44aa95ca762294ffbb28cf0af9c567d93b5d2c56e4f38ce5385a257d899f968e", - "flags": [], - "package": "regex-base", - "revision": 1, "source": "hackage", - "src_sha256": "c41f82f5fc1157c961a4cbdc0cd5561e5aa44f339ce6e706d978d97e0ca6b914", - "version": "0.94.0.0" + "package": "regex-base", + "version": "0.94.0.1", + "flags": [], + "cabal_sha256": "35ff2d13c0e3ac364469c19e4c7c8775f5148977d8fcef58a424df0a10a53fa7", + "src_sha256": "71b1d96fff201f31fe8cd4532f056aca03a21cd486890256dc3007dd73adedd9", + "revision": 1 }, { - "cabal_sha256": "690d1366e9ea6df71ded3daf49ca3d53c63eda3f95937962299b2391824dc3b3", + "source": "hackage", + "package": "regex-posix", + "version": "0.96.0.1", "flags": [ "-_regex-posix-clib" ], - "package": "regex-posix", - "revision": 1, - "source": "hackage", - "src_sha256": "251300f1a6bb2e91abb8bf513a21981f8fab79c98a65acea2bb6d6a524414521", - "version": "0.96.0.0" + "cabal_sha256": "b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca", + "src_sha256": "c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c", + "revision": 0 }, { - "cabal_sha256": "0a9a6dd29706258ae60a5c22aecc140a40743b8f08fc324fd9984e7dfbf3a80d", - "flags": [], - "package": "resolv", - "revision": 0, "source": "hackage", + "package": "resolv", + "version": "0.1.2.0", + "flags": [], + "cabal_sha256": "25c6e802dc342307e78e5e60433f5e20d03aa783b08b009a399100eb9b6ec529", "src_sha256": "81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671", - "version": "0.1.2.0" + "revision": 3 }, { - "cabal_sha256": null, + "source": "local", + "package": "cabal-install", + "version": "3.6.2.0", "flags": [ "-debug-conflict-sets", "-debug-expensive-assertions", @@ -330,11 +253,99 @@ "+lukko", "+native-dns" ], - "package": "cabal-install", - "revision": null, - "source": "local", + "cabal_sha256": null, "src_sha256": null, - "version": "3.5.0.0" + "revision": null + } + ], + "builtin": [ + { + "package": "rts", + "version": "1.0.1" + }, + { + "package": "ghc-prim", + "version": "0.6.1" + }, + { + "package": "integer-gmp", + "version": "1.0.3.0" + }, + { + "package": "base", + "version": "4.14.3.0" + }, + { + "package": "array", + "version": "0.5.4.0" + }, + { + "package": "deepseq", + "version": "1.4.4.0" + }, + { + "package": "bytestring", + "version": "0.10.12.0" + }, + { + "package": "containers", + "version": "0.6.5.1" + }, + { + "package": "binary", + "version": "0.8.8.0" + }, + { + "package": "filepath", + "version": "1.4.2.1" + }, + { + "package": "time", + "version": "1.9.3" + }, + { + "package": "unix", + "version": "2.7.2.2" + }, + { + "package": "directory", + "version": "1.3.6.0" + }, + { + "package": "transformers", + "version": "0.5.6.2" + }, + { + "package": "mtl", + "version": "2.2.2" + }, + { + "package": "ghc-boot-th", + "version": "8.10.7" + }, + { + "package": "pretty", + "version": "1.1.3.6" + }, + { + "package": "template-haskell", + "version": "2.16.0.0" + }, + { + "package": "text", + "version": "1.2.4.1" + }, + { + "package": "parsec", + "version": "3.1.14.0" + }, + { + "package": "process", + "version": "1.6.13.2" + }, + { + "package": "stm", + "version": "2.5.0.1" } ] } diff --git a/bootstrap/linux-8.10.7.plan.json b/bootstrap/linux-8.10.7.plan.json new file mode 100644 index 00000000000..f8a8fcf853f --- /dev/null +++ b/bootstrap/linux-8.10.7.plan.json @@ -0,0 +1 @@ +{"cabal-version":"3.6.0.0","cabal-lib-version":"3.6.1.0","compiler-id":"ghc-8.10.7","os":"linux","arch":"x86_64","install-plan":[{"type":"configured","id":"Cabal-3.6.2.0-inplace","pkg-name":"Cabal","pkg-version":"3.6.2.0","flags":{"bundled-binary-generic":false},"style":"local","pkg-src":{"type":"local","path":"/home/tapas/haskell/cabal/Cabal"},"dist-dir":"/home/tapas/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.7/Cabal-3.6.2.0","depends":["array-0.5.4.0","base-4.14.3.0","binary-0.8.8.0","bytestring-0.10.12.0","containers-0.6.5.1","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","mtl-2.2.2","parsec-3.1.14.0","pretty-1.1.3.6","process-1.6.13.2","text-1.2.4.1","time-1.9.3","transformers-0.5.6.2","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"HTTP-4000.3.16-5f6275caecf12e48f2f9d06c53a350d94b720cb4adb35ff683a388d13ba52990","pkg-name":"HTTP","pkg-version":"4000.3.16","flags":{"conduit10":false,"mtl1":false,"network-uri":true,"warn-as-error":false,"warp-tests":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4265b1966b2bbb302a8a80d7b485197694785ec1496d5d9314b4b5931ffbd093","pkg-src-sha256":"d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d","depends":["array-0.5.4.0","base-4.14.3.0","bytestring-0.10.12.0","mtl-2.2.2","network-3.1.2.2-262febe9ef65c35ced416bacadd25d649d9ab8c2a9a504839ff86de761757f4a","network-uri-2.6.4.1-83ef2aa9e12d97ddc73af743c315b887e7060efd79836112c6521d8d9d36b32f","parsec-3.1.14.0","time-1.9.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.14.3.0"]},{"type":"configured","id":"async-2.2.3-da75efb87ab7f2c69a101643f42f1d30b2728f802b30b2730accc0175acf016f","pkg-name":"async","pkg-version":"2.2.3","flags":{"bench":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"0cbefb8247308b38e397e675f832b9bd5317ff1872001d5358f213654423c55b","pkg-src-sha256":"467af3a0037947a5232ecf5f4efbd4cf2118aaa2310566d7f40ac82b0e32935c","depends":["base-4.14.3.0","hashable-1.3.3.0-c0a83c9c666c94a79beac26cd24fc04e8dc31aa85c322e17cd0027b0166ce8e6","stm-2.5.0.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"base-4.14.3.0","pkg-name":"base","pkg-version":"4.14.3.0","depends":["ghc-prim-0.6.1","integer-gmp-1.0.3.0","rts"]},{"type":"configured","id":"base16-bytestring-1.0.1.0-9f7154b7f7d06919d79343ebbbbe280334d69830821da9445ad3e00eacd30fb3","pkg-name":"base16-bytestring","pkg-version":"1.0.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"33b9d57afa334d06485033e930c6b13fc760baf88fd8f715ae2f9a4b46e19a54","pkg-src-sha256":"c0c70a4b58be53d36971bd7361ba300f82a5d5ebf7f50e1a2d7bfc8838bdd6fa","depends":["base-4.14.3.0","bytestring-0.10.12.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"base64-bytestring-1.2.1.0-3545a003991d706deff106a156708d03bce06cbc505ffc2e134f4db41d4ee516","pkg-name":"base64-bytestring","pkg-version":"1.2.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","pkg-src-sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","depends":["base-4.14.3.0","bytestring-0.10.12.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.8.0","pkg-name":"binary","pkg-version":"0.8.8.0","depends":["array-0.5.4.0","base-4.14.3.0","bytestring-0.10.12.0","containers-0.6.5.1"]},{"type":"pre-existing","id":"bytestring-0.10.12.0","pkg-name":"bytestring","pkg-version":"0.10.12.0","depends":["base-4.14.3.0","deepseq-1.4.4.0","ghc-prim-0.6.1","integer-gmp-1.0.3.0"]},{"type":"configured","id":"cabal-install-3.6.2.0-inplace-cabal","pkg-name":"cabal-install","pkg-version":"3.6.2.0","flags":{"debug-conflict-sets":false,"debug-expensive-assertions":false,"debug-tracetree":false,"lukko":true,"native-dns":true},"style":"local","pkg-src":{"type":"local","path":"/home/tapas/haskell/cabal/cabal-install"},"dist-dir":"/home/tapas/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.7/cabal-install-3.6.2.0/x/cabal","depends":["Cabal-3.6.2.0-inplace","HTTP-4000.3.16-5f6275caecf12e48f2f9d06c53a350d94b720cb4adb35ff683a388d13ba52990","array-0.5.4.0","async-2.2.3-da75efb87ab7f2c69a101643f42f1d30b2728f802b30b2730accc0175acf016f","base-4.14.3.0","base16-bytestring-1.0.1.0-9f7154b7f7d06919d79343ebbbbe280334d69830821da9445ad3e00eacd30fb3","binary-0.8.8.0","bytestring-0.10.12.0","containers-0.6.5.1","cryptohash-sha256-0.11.102.0-7ede55e8f681c4bbc4f5d9a648ce190900523cd894b8d10f67ccbf83d4ccd23f","deepseq-1.4.4.0","directory-1.3.6.0","echo-0.1.4-7ee54070fd174539a296bbc77835204facc0491ba831396041bbe74e8939fe61","edit-distance-0.2.2.1-cd09713a9167df2f517b6f7ca3fca0adeea52cdfee278163f94d16190cd83471","filepath-1.4.2.1","hackage-security-0.6.0.1-inplace","hashable-1.3.3.0-c0a83c9c666c94a79beac26cd24fc04e8dc31aa85c322e17cd0027b0166ce8e6","lukko-0.1.1.3-a3ea51561117192240c4423ac62c7f6e82fd5d4825df2f632af4060e08bcf80d","mtl-2.2.2","network-uri-2.6.4.1-83ef2aa9e12d97ddc73af743c315b887e7060efd79836112c6521d8d9d36b32f","parsec-3.1.14.0","pretty-1.1.3.6","process-1.6.13.2","random-1.2.0-2243011942dde842d48362369219b18eb7cc062f1688de6916b30e595e924a4f","regex-base-0.94.0.1-aec0d1cd77c52ad52bb81a441e0796b77bcfc931a47279a760d00b5aa5d1dd4c","regex-posix-0.96.0.1-b01c35d5901f0e00932574b92090724cbef08dfb70433d0bf47d4cb40bfbfaaa","resolv-0.1.2.0-fa5d5cb715ba5691e47799dacf9a47c356bdfa2966301a030531d89096a6167d","stm-2.5.0.1","tar-0.5.1.1-13b72cfc0dd17a5610bf310d94e58bf563420a9714095f04e966cb92173d2b24","text-1.2.4.1","time-1.9.3","transformers-0.5.6.2","unix-2.7.2.2","zlib-0.6.2.3-def443548e978facc1ac2e0de278eca4693b87b4f14d6e73f4b00178d6270d82"],"exe-depends":[],"component-name":"exe:cabal","bin-file":"/home/tapas/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.7/cabal-install-3.6.2.0/x/cabal/build/cabal/cabal"},{"type":"pre-existing","id":"containers-0.6.5.1","pkg-name":"containers","pkg-version":"0.6.5.1","depends":["array-0.5.4.0","base-4.14.3.0","deepseq-1.4.4.0"]},{"type":"configured","id":"cryptohash-sha256-0.11.102.0-7ede55e8f681c4bbc4f5d9a648ce190900523cd894b8d10f67ccbf83d4ccd23f","pkg-name":"cryptohash-sha256","pkg-version":"0.11.102.0","flags":{"exe":false,"use-cbits":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"797a0af7b8a0e654cbddd3df6b9de02d2cbfcb2292cf001399ab53910fbbb76c","pkg-src-sha256":"8ad6e9875a9128f6cd66d65d80f9f85dd0559c73ac00bb37f71fbee820d10519","depends":["base-4.14.3.0","bytestring-0.10.12.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.4.0","pkg-name":"deepseq","pkg-version":"1.4.4.0","depends":["array-0.5.4.0","base-4.14.3.0"]},{"type":"pre-existing","id":"directory-1.3.6.0","pkg-name":"directory","pkg-version":"1.3.6.0","depends":["base-4.14.3.0","filepath-1.4.2.1","time-1.9.3","unix-2.7.2.2"]},{"type":"configured","id":"echo-0.1.4-7ee54070fd174539a296bbc77835204facc0491ba831396041bbe74e8939fe61","pkg-name":"echo","pkg-version":"0.1.4","flags":{"example":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","pkg-src-sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","depends":["base-4.14.3.0","process-1.6.13.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ed25519-0.0.5.0-4ae151eea836514248981a8a7fe1e1cf84de2cc9b054f6d836ce1317368af85e","pkg-name":"ed25519","pkg-version":"0.0.5.0","flags":{"no-donna":true,"test-doctests":true,"test-hlint":true,"test-properties":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"fb98b08de467d51f788f8bd9391f0e9ab9bd4d8dfc264296b895ffea0d822dfa","pkg-src-sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","depends":["base-4.14.3.0","bytestring-0.10.12.0","ghc-prim-0.6.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"edit-distance-0.2.2.1-cd09713a9167df2f517b6f7ca3fca0adeea52cdfee278163f94d16190cd83471","pkg-name":"edit-distance","pkg-version":"0.2.2.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","pkg-src-sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","depends":["array-0.5.4.0","base-4.14.3.0","containers-0.6.5.1","random-1.2.0-2243011942dde842d48362369219b18eb7cc062f1688de6916b30e595e924a4f"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.1","pkg-name":"filepath","pkg-version":"1.4.2.1","depends":["base-4.14.3.0"]},{"type":"pre-existing","id":"ghc-boot-th-8.10.7","pkg-name":"ghc-boot-th","pkg-version":"8.10.7","depends":["base-4.14.3.0"]},{"type":"pre-existing","id":"ghc-prim-0.6.1","pkg-name":"ghc-prim","pkg-version":"0.6.1","depends":["rts"]},{"type":"configured","id":"hackage-security-0.6.0.1-inplace","pkg-name":"hackage-security","pkg-version":"0.6.0.1","flags":{"base48":true,"lukko":true,"mtl21":false,"old-directory":false,"use-network-uri":true},"style":"inplace","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ae6cdda307237c0b7efeebfb0bf23ff8a26c30f5ba295dce5e4f81ef6e63fff6","pkg-src-sha256":"9162b473af5a21c1ff32a50b972b9acf51f4c901604a22cf08a2dccac2f82f17","dist-dir":"/home/tapas/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.10.7/hackage-security-0.6.0.1","depends":["Cabal-3.6.2.0-inplace","base-4.14.3.0","base16-bytestring-1.0.1.0-9f7154b7f7d06919d79343ebbbbe280334d69830821da9445ad3e00eacd30fb3","base64-bytestring-1.2.1.0-3545a003991d706deff106a156708d03bce06cbc505ffc2e134f4db41d4ee516","bytestring-0.10.12.0","containers-0.6.5.1","cryptohash-sha256-0.11.102.0-7ede55e8f681c4bbc4f5d9a648ce190900523cd894b8d10f67ccbf83d4ccd23f","directory-1.3.6.0","ed25519-0.0.5.0-4ae151eea836514248981a8a7fe1e1cf84de2cc9b054f6d836ce1317368af85e","filepath-1.4.2.1","ghc-prim-0.6.1","lukko-0.1.1.3-a3ea51561117192240c4423ac62c7f6e82fd5d4825df2f632af4060e08bcf80d","mtl-2.2.2","network-3.1.2.2-262febe9ef65c35ced416bacadd25d649d9ab8c2a9a504839ff86de761757f4a","network-uri-2.6.4.1-83ef2aa9e12d97ddc73af743c315b887e7060efd79836112c6521d8d9d36b32f","parsec-3.1.14.0","pretty-1.1.3.6","tar-0.5.1.1-13b72cfc0dd17a5610bf310d94e58bf563420a9714095f04e966cb92173d2b24","template-haskell-2.16.0.0","time-1.9.3","transformers-0.5.6.2","zlib-0.6.2.3-def443548e978facc1ac2e0de278eca4693b87b4f14d6e73f4b00178d6270d82"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hashable-1.3.3.0-c0a83c9c666c94a79beac26cd24fc04e8dc31aa85c322e17cd0027b0166ce8e6","pkg-name":"hashable","pkg-version":"1.3.3.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"7f3b67151162a1dfe8472dc30430af98ed5470801d3f4b6c9b8d7a7443c920d4","pkg-src-sha256":"99a578e58fb6a869593841e4b3184f5b52c921bcb0d661d2b3a06e6526cb85dc","depends":["base-4.14.3.0","bytestring-0.10.12.0","deepseq-1.4.4.0","ghc-prim-0.6.1","integer-gmp-1.0.3.0","text-1.2.4.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hsc2hs-0.68.7-e-hsc2hs-942b72c285cd1add7568e1b55b618d53063a7389d5646db06036773fbe1a6107","pkg-name":"hsc2hs","pkg-version":"0.68.7","flags":{"in-ghc-tree":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4a0f6860a17e7c245646975e3c2981416afdcb6a7b3553c31005eb3641a7f55b","pkg-src-sha256":"fd7915e41e3ed3bc7750fee0e8add2b4f32dcac8b7c544cfdf5542293223894a","depends":["base-4.14.3.0","containers-0.6.5.1","directory-1.3.6.0","filepath-1.4.2.1","process-1.6.13.2"],"exe-depends":[],"component-name":"exe:hsc2hs","bin-file":"/home/tapas/.cabal/store/ghc-8.10.7/hsc2hs-0.68.7-e-hsc2hs-942b72c285cd1add7568e1b55b618d53063a7389d5646db06036773fbe1a6107/bin/hsc2hs"},{"type":"pre-existing","id":"integer-gmp-1.0.3.0","pkg-name":"integer-gmp","pkg-version":"1.0.3.0","depends":["ghc-prim-0.6.1"]},{"type":"configured","id":"lukko-0.1.1.3-a3ea51561117192240c4423ac62c7f6e82fd5d4825df2f632af4060e08bcf80d","pkg-name":"lukko","pkg-version":"0.1.1.3","flags":{"ofd-locking":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2db49b6cb6632a46ec446fc51870cd0d49e0a66d1c5d2063f46ae52a100eb856","pkg-src-sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","depends":["base-4.14.3.0"],"exe-depends":["hsc2hs-0.68.7-e-hsc2hs-942b72c285cd1add7568e1b55b618d53063a7389d5646db06036773fbe1a6107"],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.14.3.0","transformers-0.5.6.2"]},{"type":"configured","id":"network-3.1.2.2-262febe9ef65c35ced416bacadd25d649d9ab8c2a9a504839ff86de761757f4a","pkg-name":"network","pkg-version":"3.1.2.2","flags":{"devel":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"218e2968e03d99c40f32a2ef7cc41a848969096ba1c780ff2e57997a00246b06","pkg-src-sha256":"55012c0b22f9c7548b1f7b3bacc2c6ec7058c7f92238a69561528f1a0fa60eb6","components":{"lib":{"depends":["base-4.14.3.0","bytestring-0.10.12.0","deepseq-1.4.4.0","directory-1.3.6.0"],"exe-depends":["hsc2hs-0.68.7-e-hsc2hs-942b72c285cd1add7568e1b55b618d53063a7389d5646db06036773fbe1a6107"]}}},{"type":"configured","id":"network-uri-2.6.4.1-83ef2aa9e12d97ddc73af743c315b887e7060efd79836112c6521d8d9d36b32f","pkg-name":"network-uri","pkg-version":"2.6.4.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","pkg-src-sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","depends":["base-4.14.3.0","deepseq-1.4.4.0","parsec-3.1.14.0","template-haskell-2.16.0.0","th-compat-0.1.3-d507952cde6d55d939b1b2ff34361d8e74e0ef8337a11eee106f6cd982028e56"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"parsec-3.1.14.0","pkg-name":"parsec","pkg-version":"3.1.14.0","depends":["base-4.14.3.0","bytestring-0.10.12.0","mtl-2.2.2","text-1.2.4.1"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.14.3.0","deepseq-1.4.4.0","ghc-prim-0.6.1"]},{"type":"pre-existing","id":"process-1.6.13.2","pkg-name":"process","pkg-version":"1.6.13.2","depends":["base-4.14.3.0","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.0-2243011942dde842d48362369219b18eb7cc062f1688de6916b30e595e924a4f","pkg-name":"random","pkg-version":"1.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"195506fedaa7c31c1fa2a747e9b49b4a5d1f0b09dd8f1291f23a771656faeec3","pkg-src-sha256":"e4519cf7c058bfd5bdbe4acc782284acc9e25e74487208619ca83cbcd63fb9de","depends":["base-4.14.3.0","bytestring-0.10.12.0","deepseq-1.4.4.0","mtl-2.2.2","splitmix-0.1.0.3-ea3085a505c71722909b9aaac572a309c1a1430c785391ad5df25c21334bd11f"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-base-0.94.0.1-aec0d1cd77c52ad52bb81a441e0796b77bcfc931a47279a760d00b5aa5d1dd4c","pkg-name":"regex-base","pkg-version":"0.94.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"35ff2d13c0e3ac364469c19e4c7c8775f5148977d8fcef58a424df0a10a53fa7","pkg-src-sha256":"71b1d96fff201f31fe8cd4532f056aca03a21cd486890256dc3007dd73adedd9","depends":["array-0.5.4.0","base-4.14.3.0","bytestring-0.10.12.0","containers-0.6.5.1","mtl-2.2.2","text-1.2.4.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-posix-0.96.0.1-b01c35d5901f0e00932574b92090724cbef08dfb70433d0bf47d4cb40bfbfaaa","pkg-name":"regex-posix","pkg-version":"0.96.0.1","flags":{"_regex-posix-clib":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca","pkg-src-sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","depends":["array-0.5.4.0","base-4.14.3.0","bytestring-0.10.12.0","containers-0.6.5.1","regex-base-0.94.0.1-aec0d1cd77c52ad52bb81a441e0796b77bcfc931a47279a760d00b5aa5d1dd4c"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"resolv-0.1.2.0-fa5d5cb715ba5691e47799dacf9a47c356bdfa2966301a030531d89096a6167d","pkg-name":"resolv","pkg-version":"0.1.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"25c6e802dc342307e78e5e60433f5e20d03aa783b08b009a399100eb9b6ec529","pkg-src-sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","components":{"lib":{"depends":["base-4.14.3.0","base16-bytestring-1.0.1.0-9f7154b7f7d06919d79343ebbbbe280334d69830821da9445ad3e00eacd30fb3","binary-0.8.8.0","bytestring-0.10.12.0","containers-0.6.5.1"],"exe-depends":[]}}},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0.1","depends":[]},{"type":"configured","id":"splitmix-0.1.0.3-ea3085a505c71722909b9aaac572a309c1a1430c785391ad5df25c21334bd11f","pkg-name":"splitmix","pkg-version":"0.1.0.3","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"fc3aae74c467f4b608050bef53aec17904a618731df9407e655d8f3bf8c32d5c","pkg-src-sha256":"46009f4b000c9e6613377767b8718bf38476469f2a8e2162d98cc246882d5a35","depends":["base-4.14.3.0","deepseq-1.4.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"stm-2.5.0.1","pkg-name":"stm","pkg-version":"2.5.0.1","depends":["array-0.5.4.0","base-4.14.3.0"]},{"type":"configured","id":"tar-0.5.1.1-13b72cfc0dd17a5610bf310d94e58bf563420a9714095f04e966cb92173d2b24","pkg-name":"tar","pkg-version":"0.5.1.1","flags":{"old-bytestring":false,"old-time":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"94ded05718fe75b88c98e7113feeb9fca50688a7e59b6aefd80a6f48438c5062","pkg-src-sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","depends":["array-0.5.4.0","base-4.14.3.0","bytestring-0.10.12.0","containers-0.6.5.1","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","time-1.9.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.16.0.0","pkg-name":"template-haskell","pkg-version":"2.16.0.0","depends":["base-4.14.3.0","ghc-boot-th-8.10.7","ghc-prim-0.6.1","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-1.2.4.1","pkg-name":"text","pkg-version":"1.2.4.1","depends":["array-0.5.4.0","base-4.14.3.0","binary-0.8.8.0","bytestring-0.10.12.0","deepseq-1.4.4.0","ghc-prim-0.6.1","integer-gmp-1.0.3.0","template-haskell-2.16.0.0"]},{"type":"configured","id":"th-compat-0.1.3-d507952cde6d55d939b1b2ff34361d8e74e0ef8337a11eee106f6cd982028e56","pkg-name":"th-compat","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a16dd922947a6877defe52c4c38d1ab48ed3f85a826930f5d1a568741d619993","pkg-src-sha256":"6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6","depends":["base-4.14.3.0","template-haskell-2.16.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"time-1.9.3","pkg-name":"time","pkg-version":"1.9.3","depends":["base-4.14.3.0","deepseq-1.4.4.0"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.14.3.0"]},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.14.3.0","bytestring-0.10.12.0","time-1.9.3"]},{"type":"configured","id":"zlib-0.6.2.3-def443548e978facc1ac2e0de278eca4693b87b4f14d6e73f4b00178d6270d82","pkg-name":"zlib","pkg-version":"0.6.2.3","flags":{"bundled-c-zlib":false,"non-blocking-ffi":false,"pkg-config":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"28f4d460c260e074cab833625454564b9783a3389b7bb91fd54da2790b39592c","pkg-src-sha256":"807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88","depends":["base-4.14.3.0","bytestring-0.10.12.0"],"exe-depends":[],"component-name":"lib"}]} \ No newline at end of file diff --git a/bootstrap/linux-8.6.5.json b/bootstrap/linux-8.6.5.json index 06cac115fb0..738b91ca09e 100644 --- a/bootstrap/linux-8.6.5.json +++ b/bootstrap/linux-8.6.5.json @@ -1,126 +1,49 @@ { - "builtin": [ - { - "package": "rts", - "version": "1.0" - }, - { - "package": "ghc-prim", - "version": "0.5.3" - }, - { - "package": "integer-gmp", - "version": "1.0.2.0" - }, - { - "package": "base", - "version": "4.12.0.0" - }, - { - "package": "array", - "version": "0.5.3.0" - }, - { - "package": "deepseq", - "version": "1.4.4.0" - }, - { - "package": "bytestring", - "version": "0.10.8.2" - }, - { - "package": "containers", - "version": "0.6.0.1" - }, - { - "package": "binary", - "version": "0.8.6.0" - }, - { - "package": "filepath", - "version": "1.4.2.1" - }, - { - "package": "time", - "version": "1.8.0.2" - }, - { - "package": "unix", - "version": "2.7.2.2" - }, - { - "package": "directory", - "version": "1.3.3.0" - }, - { - "package": "transformers", - "version": "0.5.6.2" - }, - { - "package": "mtl", - "version": "2.2.2" - }, - { - "package": "text", - "version": "1.2.3.1" - }, - { - "package": "parsec", - "version": "3.1.13.0" - }, - { - "package": "pretty", - "version": "1.1.3.6" - }, - { - "package": "process", - "version": "1.6.5.0" - }, - { - "package": "ghc-boot-th", - "version": "8.6.5" - }, - { - "package": "template-haskell", - "version": "2.14.0.0" - }, - { - "package": "stm", - "version": "2.5.0.0" - } - ], "dependencies": [ { - "cabal_sha256": null, + "source": "local", + "package": "Cabal", + "version": "3.6.2.0", "flags": [ "-bundled-binary-generic" ], - "package": "Cabal", - "revision": null, - "source": "local", + "cabal_sha256": null, "src_sha256": null, - "version": "3.5.0.0" + "revision": null }, { - "cabal_sha256": "b704cb6676c03e98267190df797497587576a2e96094550ea143415239bbe66e", - "flags": [], - "package": "network", - "revision": 0, "source": "hackage", - "src_sha256": "d7ef590173fff2ab522fbc167f3fafb867e4ecfca279eb3ef0d137b51f142c9a", - "version": "3.1.1.1" + "package": "network", + "version": "3.1.2.2", + "flags": [ + "-devel" + ], + "cabal_sha256": "218e2968e03d99c40f32a2ef7cc41a848969096ba1c780ff2e57997a00246b06", + "src_sha256": "55012c0b22f9c7548b1f7b3bacc2c6ec7058c7f92238a69561528f1a0fa60eb6", + "revision": 0 }, { - "cabal_sha256": "d2d9ff3a80d9b2d1ff317a354bc0c56cc109c69a4c2449e5fc712d3ddce83ede", + "source": "hackage", + "package": "th-compat", + "version": "0.1.3", "flags": [], - "package": "network-uri", - "revision": 0, + "cabal_sha256": "a16dd922947a6877defe52c4c38d1ab48ed3f85a826930f5d1a568741d619993", + "src_sha256": "6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6", + "revision": 0 + }, + { "source": "hackage", - "src_sha256": "a01c1389f15d2cc2e847914737f706133bb11f0c5f8ee89711a36a25b7afa723", - "version": "2.6.3.0" + "package": "network-uri", + "version": "2.6.4.1", + "flags": [], + "cabal_sha256": "a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d", + "src_sha256": "57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584", + "revision": 0 }, { - "cabal_sha256": "3c19975fdfd8d057eae58847bda6a79514ad882fd6f8ead72ac0247af34bdfc6", + "source": "hackage", + "package": "HTTP", + "version": "4000.3.16", "flags": [ "-conduit10", "-mtl1", @@ -128,157 +51,157 @@ "-warn-as-error", "-warp-tests" ], - "package": "HTTP", - "revision": 1, - "source": "hackage", - "src_sha256": "a602d7f30e917164c6a634f8cb1f5df4849048858db01380a0875e16e5aa687b", - "version": "4000.3.14" + "cabal_sha256": "4265b1966b2bbb302a8a80d7b485197694785ec1496d5d9314b4b5931ffbd093", + "src_sha256": "d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d", + "revision": 0 }, { - "cabal_sha256": "4c70f1407881059e93550d3742191254296b2737b793a742bd901348fb3e1fb1", + "source": "hackage", + "package": "hashable", + "version": "1.3.3.0", "flags": [ - "-examples", "+integer-gmp", - "+sse2", - "-sse41" + "-random-initial-seed" ], - "package": "hashable", - "revision": 1, - "source": "hackage", - "src_sha256": "822e5413fbccca6ae884d3aba4066422c8b5d58d23d18b9ecb5c03273bb19ab4", - "version": "1.3.0.0" + "cabal_sha256": "7f3b67151162a1dfe8472dc30430af98ed5470801d3f4b6c9b8d7a7443c920d4", + "src_sha256": "99a578e58fb6a869593841e4b3184f5b52c921bcb0d661d2b3a06e6526cb85dc", + "revision": 0 }, { - "cabal_sha256": "a178c166856da7ff22fe4500337b54812e94fd2059409452187d72e057ede9cd", + "source": "hackage", + "package": "async", + "version": "2.2.3", "flags": [ "-bench" ], - "package": "async", - "revision": 1, - "source": "hackage", - "src_sha256": "4b4ab1ac82c45144d82c6daf6cb6ba45eab9957dad44787fa5e869e23d73bbff", - "version": "2.2.2" + "cabal_sha256": "0cbefb8247308b38e397e675f832b9bd5317ff1872001d5358f213654423c55b", + "src_sha256": "467af3a0037947a5232ecf5f4efbd4cf2118aaa2310566d7f40ac82b0e32935c", + "revision": 0 }, { - "cabal_sha256": "8cbba2505d4da4f6cfc90cd36c8e8ad0c09c056538481ea00e8b10b78f70cb10", - "flags": [], - "package": "base16-bytestring", - "revision": 0, "source": "hackage", - "src_sha256": "525689679d5cc80fa532c1d5cfeace0f62bbb54134fad514f1ba00d0e7fe69ba", - "version": "0.1.1.7" + "package": "base16-bytestring", + "version": "1.0.1.0", + "flags": [], + "cabal_sha256": "33b9d57afa334d06485033e930c6b13fc760baf88fd8f715ae2f9a4b46e19a54", + "src_sha256": "c0c70a4b58be53d36971bd7361ba300f82a5d5ebf7f50e1a2d7bfc8838bdd6fa", + "revision": 0 }, { - "cabal_sha256": "190264fef9e65d9085f00ccda419137096d1dc94777c58272bc96821dc7f37c3", - "flags": [], - "package": "base64-bytestring", - "revision": 0, "source": "hackage", - "src_sha256": "210d6c9042241ca52ee5d89cf221dbeb4d0e64b37391345369035ad2d9b4aca9", - "version": "1.1.0.0" + "package": "base64-bytestring", + "version": "1.2.1.0", + "flags": [], + "cabal_sha256": "50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8", + "src_sha256": "fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9", + "revision": 0 }, { - "cabal_sha256": "b963d6308db096362d73d9c603b331cf188aa69310195f479dfedf6045d7e602", + "source": "hackage", + "package": "cryptohash-sha256", + "version": "0.11.102.0", "flags": [ - "-exe" + "-exe", + "+use-cbits" ], - "package": "cryptohash-sha256", - "revision": 4, - "source": "hackage", - "src_sha256": "52756435dbea248e344fbcbcc5df5307f60dfacf337dfd11ae30f1c7a4da05dd", - "version": "0.11.101.0" + "cabal_sha256": "797a0af7b8a0e654cbddd3df6b9de02d2cbfcb2292cf001399ab53910fbbb76c", + "src_sha256": "8ad6e9875a9128f6cd66d65d80f9f85dd0559c73ac00bb37f71fbee820d10519", + "revision": 1 }, { - "cabal_sha256": "5490be9cfbea95e14a7a68b7d055ae8d295822e0b146d2ac8285b3e5a3e3282f", + "source": "hackage", + "package": "echo", + "version": "0.1.4", "flags": [ "-example" ], - "package": "echo", - "revision": 1, - "source": "hackage", - "src_sha256": "704f07310f8272d170f8ab7fb2a2c13f15d8501ef8310801e36964c8eff485ef", - "version": "0.1.3" + "cabal_sha256": "ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42", + "src_sha256": "c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43", + "revision": 0 }, { - "cabal_sha256": "d50c4d0801a35be7875a040470c09863342514930c82a7d25780a6c2efc4fda9", + "source": "hackage", + "package": "splitmix", + "version": "0.1.0.3", "flags": [ "-optimised-mixer" ], - "package": "splitmix", - "revision": 0, - "source": "hackage", - "src_sha256": "1c11c87352ddbb13365380fe163f99bb8f8845ebc96ca1d572e5d3a9bf810bfa", - "version": "0.1" + "cabal_sha256": "fc3aae74c467f4b608050bef53aec17904a618731df9407e655d8f3bf8c32d5c", + "src_sha256": "46009f4b000c9e6613377767b8718bf38476469f2a8e2162d98cc246882d5a35", + "revision": 0 }, { - "cabal_sha256": "5ca8674e95c46c7eb90f520c26aea22d403625c97697275434afba66ebd32b05", - "flags": [], - "package": "random", - "revision": 0, "source": "hackage", + "package": "random", + "version": "1.2.0", + "flags": [], + "cabal_sha256": "195506fedaa7c31c1fa2a747e9b49b4a5d1f0b09dd8f1291f23a771656faeec3", "src_sha256": "e4519cf7c058bfd5bdbe4acc782284acc9e25e74487208619ca83cbcd63fb9de", - "version": "1.2.0" + "revision": 6 }, { - "cabal_sha256": "4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee", - "flags": [], - "package": "edit-distance", - "revision": 1, "source": "hackage", + "package": "edit-distance", + "version": "0.2.2.1", + "flags": [], + "cabal_sha256": "4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee", "src_sha256": "3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a", - "version": "0.2.2.1" + "revision": 1 }, { - "cabal_sha256": "fb98b08de467d51f788f8bd9391f0e9ab9bd4d8dfc264296b895ffea0d822dfa", + "source": "hackage", + "package": "ed25519", + "version": "0.0.5.0", "flags": [ "+no-donna", "+test-doctests", "+test-hlint", "+test-properties" ], - "package": "ed25519", - "revision": 3, - "source": "hackage", + "cabal_sha256": "fb98b08de467d51f788f8bd9391f0e9ab9bd4d8dfc264296b895ffea0d822dfa", "src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d", - "version": "0.0.5.0" + "revision": 3 }, { - "cabal_sha256": "c9d3fa30fb6ab2ba16e037586ca79be6e57ec5f00381b6ee5f293400dbdf5515", + "source": "hackage", + "package": "lukko", + "version": "0.1.1.3", "flags": [ "+ofd-locking" ], - "package": "lukko", - "revision": 0, - "source": "hackage", - "src_sha256": "8a79d113dc0ccef16c24d83379cc457485943027e777529c46362fecc06607d2", - "version": "0.1.1.2" + "cabal_sha256": "2db49b6cb6632a46ec446fc51870cd0d49e0a66d1c5d2063f46ae52a100eb856", + "src_sha256": "a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f", + "revision": 1 }, { - "cabal_sha256": "7a715414c4d494c9048cfb6d7634e07e7732ca154cb8938dc85f6ea192192e8c", + "source": "hackage", + "package": "tar", + "version": "0.5.1.1", "flags": [ "-old-bytestring", "-old-time" ], - "package": "tar", - "revision": 2, - "source": "hackage", + "cabal_sha256": "94ded05718fe75b88c98e7113feeb9fca50688a7e59b6aefd80a6f48438c5062", "src_sha256": "b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de", - "version": "0.5.1.1" + "revision": 3 }, { - "cabal_sha256": "d34ddf5fece4d1e9d471b5298f36335bb3cfe12cb5a1b8525c42f0b665382f45", + "source": "hackage", + "package": "zlib", + "version": "0.6.2.3", "flags": [ + "-bundled-c-zlib", "-non-blocking-ffi", "-pkg-config" ], - "package": "zlib", - "revision": 1, - "source": "hackage", - "src_sha256": "f0f810ff173560b60392db448455c0513b3239f48e43cb494b3733aa559621d0", - "version": "0.6.2.1" + "cabal_sha256": "28f4d460c260e074cab833625454564b9783a3389b7bb91fd54da2790b39592c", + "src_sha256": "807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88", + "revision": 0 }, { - "cabal_sha256": "692c385c085baa2813046ae58e31df21c250346b81c882431b5ffef76451a18a", + "source": "hackage", + "package": "hackage-security", + "version": "0.6.0.1", "flags": [ "+base48", "+lukko", @@ -286,43 +209,43 @@ "-old-directory", "+use-network-uri" ], - "package": "hackage-security", - "revision": 2, - "source": "hackage", + "cabal_sha256": "ae6cdda307237c0b7efeebfb0bf23ff8a26c30f5ba295dce5e4f81ef6e63fff6", "src_sha256": "9162b473af5a21c1ff32a50b972b9acf51f4c901604a22cf08a2dccac2f82f17", - "version": "0.6.0.1" + "revision": 8 }, { - "cabal_sha256": "44aa95ca762294ffbb28cf0af9c567d93b5d2c56e4f38ce5385a257d899f968e", - "flags": [], - "package": "regex-base", - "revision": 1, "source": "hackage", - "src_sha256": "c41f82f5fc1157c961a4cbdc0cd5561e5aa44f339ce6e706d978d97e0ca6b914", - "version": "0.94.0.0" + "package": "regex-base", + "version": "0.94.0.1", + "flags": [], + "cabal_sha256": "35ff2d13c0e3ac364469c19e4c7c8775f5148977d8fcef58a424df0a10a53fa7", + "src_sha256": "71b1d96fff201f31fe8cd4532f056aca03a21cd486890256dc3007dd73adedd9", + "revision": 1 }, { - "cabal_sha256": "690d1366e9ea6df71ded3daf49ca3d53c63eda3f95937962299b2391824dc3b3", + "source": "hackage", + "package": "regex-posix", + "version": "0.96.0.1", "flags": [ "-_regex-posix-clib" ], - "package": "regex-posix", - "revision": 1, - "source": "hackage", - "src_sha256": "251300f1a6bb2e91abb8bf513a21981f8fab79c98a65acea2bb6d6a524414521", - "version": "0.96.0.0" + "cabal_sha256": "b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca", + "src_sha256": "c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c", + "revision": 0 }, { - "cabal_sha256": "0a9a6dd29706258ae60a5c22aecc140a40743b8f08fc324fd9984e7dfbf3a80d", - "flags": [], - "package": "resolv", - "revision": 0, "source": "hackage", + "package": "resolv", + "version": "0.1.2.0", + "flags": [], + "cabal_sha256": "25c6e802dc342307e78e5e60433f5e20d03aa783b08b009a399100eb9b6ec529", "src_sha256": "81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671", - "version": "0.1.2.0" + "revision": 3 }, { - "cabal_sha256": null, + "source": "local", + "package": "cabal-install", + "version": "3.6.2.0", "flags": [ "-debug-conflict-sets", "-debug-expensive-assertions", @@ -330,11 +253,99 @@ "+lukko", "+native-dns" ], - "package": "cabal-install", - "revision": null, - "source": "local", + "cabal_sha256": null, "src_sha256": null, - "version": "3.5.0.0" + "revision": null + } + ], + "builtin": [ + { + "package": "rts", + "version": "1.0" + }, + { + "package": "ghc-prim", + "version": "0.5.3" + }, + { + "package": "integer-gmp", + "version": "1.0.2.0" + }, + { + "package": "base", + "version": "4.12.0.0" + }, + { + "package": "array", + "version": "0.5.3.0" + }, + { + "package": "deepseq", + "version": "1.4.4.0" + }, + { + "package": "bytestring", + "version": "0.10.8.2" + }, + { + "package": "containers", + "version": "0.6.0.1" + }, + { + "package": "binary", + "version": "0.8.6.0" + }, + { + "package": "filepath", + "version": "1.4.2.1" + }, + { + "package": "time", + "version": "1.8.0.2" + }, + { + "package": "unix", + "version": "2.7.2.2" + }, + { + "package": "directory", + "version": "1.3.3.0" + }, + { + "package": "transformers", + "version": "0.5.6.2" + }, + { + "package": "mtl", + "version": "2.2.2" + }, + { + "package": "text", + "version": "1.2.3.1" + }, + { + "package": "parsec", + "version": "3.1.13.0" + }, + { + "package": "pretty", + "version": "1.1.3.6" + }, + { + "package": "process", + "version": "1.6.5.0" + }, + { + "package": "ghc-boot-th", + "version": "8.6.5" + }, + { + "package": "template-haskell", + "version": "2.14.0.0" + }, + { + "package": "stm", + "version": "2.5.0.0" } ] } diff --git a/bootstrap/linux-8.6.5.plan.json b/bootstrap/linux-8.6.5.plan.json index 2ed045b1e2b..a1c368f0dba 100644 --- a/bootstrap/linux-8.6.5.plan.json +++ b/bootstrap/linux-8.6.5.plan.json @@ -1 +1 @@ -{"cabal-version":"3.4.0.0","cabal-lib-version":"3.4.0.0","compiler-id":"ghc-8.6.5","os":"linux","arch":"x86_64","install-plan":[{"type":"configured","id":"Cabal-3.5.0.0-inplace","pkg-name":"Cabal","pkg-version":"3.5.0.0","flags":{"bundled-binary-generic":false},"style":"local","pkg-src":{"type":"local","path":"/code/shared-haskell/cabal/Cabal"},"dist-dir":"/code/shared-haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.6.5/Cabal-3.5.0.0","depends":["array-0.5.3.0","base-4.12.0.0","binary-0.8.6.0","bytestring-0.10.8.2","containers-0.6.0.1","deepseq-1.4.4.0","directory-1.3.3.0","filepath-1.4.2.1","mtl-2.2.2","parsec-3.1.13.0","pretty-1.1.3.6","process-1.6.5.0","text-1.2.3.1","time-1.8.0.2","transformers-0.5.6.2","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"HTTP-4000.3.14-790a9652afacb3426e95805c4d31658a3fecd2a83abd9352c3aa3f054d0d0e2f","pkg-name":"HTTP","pkg-version":"4000.3.14","flags":{"conduit10":false,"mtl1":false,"network-uri":true,"warn-as-error":false,"warp-tests":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3c19975fdfd8d057eae58847bda6a79514ad882fd6f8ead72ac0247af34bdfc6","pkg-src-sha256":"a602d7f30e917164c6a634f8cb1f5df4849048858db01380a0875e16e5aa687b","depends":["array-0.5.3.0","base-4.12.0.0","bytestring-0.10.8.2","mtl-2.2.2","network-3.1.1.1-4939b3cef5a9e8a050f13943c66c49d8199f5edb4c8acb469a21cd7f8aae1a00","network-uri-2.6.3.0-512f05dc0374923712941f8950e12cc2a1707e8a87357d7e286ccde1953144e5","parsec-3.1.13.0","time-1.8.0.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.3.0","pkg-name":"array","pkg-version":"0.5.3.0","depends":["base-4.12.0.0"]},{"type":"configured","id":"async-2.2.2-d821efe0c7dce18409389aa2f56f54967d3cf730dcc0b01f8f2a56acf0049649","pkg-name":"async","pkg-version":"2.2.2","flags":{"bench":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a178c166856da7ff22fe4500337b54812e94fd2059409452187d72e057ede9cd","pkg-src-sha256":"4b4ab1ac82c45144d82c6daf6cb6ba45eab9957dad44787fa5e869e23d73bbff","depends":["base-4.12.0.0","hashable-1.3.0.0-f0497ed6dc3b89a4ddc96ef33aef5f64eaa584fcb9d5bf6da06e0dacb177c8f6","stm-2.5.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"base-4.12.0.0","pkg-name":"base","pkg-version":"4.12.0.0","depends":["ghc-prim-0.5.3","integer-gmp-1.0.2.0","rts"]},{"type":"configured","id":"base16-bytestring-0.1.1.7-1c6dcde90355116a6bd3d6d942680d6e5781af1b18a2b0c3a7731813fafec43d","pkg-name":"base16-bytestring","pkg-version":"0.1.1.7","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"8cbba2505d4da4f6cfc90cd36c8e8ad0c09c056538481ea00e8b10b78f70cb10","pkg-src-sha256":"525689679d5cc80fa532c1d5cfeace0f62bbb54134fad514f1ba00d0e7fe69ba","depends":["base-4.12.0.0","bytestring-0.10.8.2","ghc-prim-0.5.3"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"base64-bytestring-1.1.0.0-cd0fbc582434f7abba096a3124f8a90979ca8fa48b9730de02a035de19e50b0f","pkg-name":"base64-bytestring","pkg-version":"1.1.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"190264fef9e65d9085f00ccda419137096d1dc94777c58272bc96821dc7f37c3","pkg-src-sha256":"210d6c9042241ca52ee5d89cf221dbeb4d0e64b37391345369035ad2d9b4aca9","depends":["base-4.12.0.0","bytestring-0.10.8.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.6.0","pkg-name":"binary","pkg-version":"0.8.6.0","depends":["array-0.5.3.0","base-4.12.0.0","bytestring-0.10.8.2","containers-0.6.0.1"]},{"type":"pre-existing","id":"bytestring-0.10.8.2","pkg-name":"bytestring","pkg-version":"0.10.8.2","depends":["base-4.12.0.0","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0"]},{"type":"configured","id":"cabal-install-3.5.0.0-inplace-cabal","pkg-name":"cabal-install","pkg-version":"3.5.0.0","flags":{"debug-conflict-sets":false,"debug-expensive-assertions":false,"debug-tracetree":false,"lukko":true,"native-dns":true},"style":"local","pkg-src":{"type":"local","path":"/code/shared-haskell/cabal/cabal-install"},"dist-dir":"/code/shared-haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.6.5/cabal-install-3.5.0.0/x/cabal","depends":["Cabal-3.5.0.0-inplace","HTTP-4000.3.14-790a9652afacb3426e95805c4d31658a3fecd2a83abd9352c3aa3f054d0d0e2f","array-0.5.3.0","async-2.2.2-d821efe0c7dce18409389aa2f56f54967d3cf730dcc0b01f8f2a56acf0049649","base-4.12.0.0","base16-bytestring-0.1.1.7-1c6dcde90355116a6bd3d6d942680d6e5781af1b18a2b0c3a7731813fafec43d","binary-0.8.6.0","bytestring-0.10.8.2","containers-0.6.0.1","cryptohash-sha256-0.11.101.0-672df49aeb8f00e269bc8f003b8bf84a83fe557f0ac7c977f6776a97491a955e","deepseq-1.4.4.0","directory-1.3.3.0","echo-0.1.3-0aa444d1be9406439b2acf2158866a15b09805c8788d9945aead993e2d97d6ad","edit-distance-0.2.2.1-3ee9066a02ddd83fb02b975c6cbe4e48cfa58432df9a58e28f4d3117cc114e94","filepath-1.4.2.1","hackage-security-0.6.0.1-inplace","hashable-1.3.0.0-f0497ed6dc3b89a4ddc96ef33aef5f64eaa584fcb9d5bf6da06e0dacb177c8f6","lukko-0.1.1.2-15fdd1a837b209eef09d6df1acec1d26c8a95712fa902c19b288dceede1e623a","mtl-2.2.2","network-uri-2.6.3.0-512f05dc0374923712941f8950e12cc2a1707e8a87357d7e286ccde1953144e5","parsec-3.1.13.0","pretty-1.1.3.6","process-1.6.5.0","random-1.2.0-f0994fc834469fbb09d3fb78fa43c9173070bd28fae87d2ccb1f145d8b044188","regex-base-0.94.0.0-83cf4d8eac97e9aa145a3d27ac67bed98c4e85b4079681c563b9474b72d6c8c0","regex-posix-0.96.0.0-dc0bdb2738aaeebb56a1c073495ba842a9dd4d5dad088e0e0eeb5e2292c1e0b8","resolv-0.1.2.0-9223654e337d641bc8cfe29ee10796f5e3821f9d84e0e63d4c16d74a309e0622","stm-2.5.0.0","tar-0.5.1.1-2bac801a527e5793b7752115b282082cf46ce8f20e48fb17bd96599f96366b21","text-1.2.3.1","time-1.8.0.2","transformers-0.5.6.2","unix-2.7.2.2","zlib-0.6.2.1-3d450e620fbe0e654eb7e97cd33cb6273bfb8229af0302c8890c078792ee1342"],"exe-depends":[],"component-name":"exe:cabal","bin-file":"/code/shared-haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.6.5/cabal-install-3.5.0.0/x/cabal/build/cabal/cabal"},{"type":"pre-existing","id":"containers-0.6.0.1","pkg-name":"containers","pkg-version":"0.6.0.1","depends":["array-0.5.3.0","base-4.12.0.0","deepseq-1.4.4.0","ghc-prim-0.5.3"]},{"type":"configured","id":"cryptohash-sha256-0.11.101.0-672df49aeb8f00e269bc8f003b8bf84a83fe557f0ac7c977f6776a97491a955e","pkg-name":"cryptohash-sha256","pkg-version":"0.11.101.0","flags":{"exe":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b963d6308db096362d73d9c603b331cf188aa69310195f479dfedf6045d7e602","pkg-src-sha256":"52756435dbea248e344fbcbcc5df5307f60dfacf337dfd11ae30f1c7a4da05dd","depends":["base-4.12.0.0","bytestring-0.10.8.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.4.0","pkg-name":"deepseq","pkg-version":"1.4.4.0","depends":["array-0.5.3.0","base-4.12.0.0"]},{"type":"pre-existing","id":"directory-1.3.3.0","pkg-name":"directory","pkg-version":"1.3.3.0","depends":["base-4.12.0.0","filepath-1.4.2.1","time-1.8.0.2","unix-2.7.2.2"]},{"type":"configured","id":"echo-0.1.3-0aa444d1be9406439b2acf2158866a15b09805c8788d9945aead993e2d97d6ad","pkg-name":"echo","pkg-version":"0.1.3","flags":{"example":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"5490be9cfbea95e14a7a68b7d055ae8d295822e0b146d2ac8285b3e5a3e3282f","pkg-src-sha256":"704f07310f8272d170f8ab7fb2a2c13f15d8501ef8310801e36964c8eff485ef","depends":["base-4.12.0.0","process-1.6.5.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ed25519-0.0.5.0-751e5a5744fdd2d7ce2245bc124b15133d0dff1db6b0441d93ced591450d9edb","pkg-name":"ed25519","pkg-version":"0.0.5.0","flags":{"no-donna":true,"test-doctests":true,"test-hlint":true,"test-properties":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"fb98b08de467d51f788f8bd9391f0e9ab9bd4d8dfc264296b895ffea0d822dfa","pkg-src-sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","depends":["base-4.12.0.0","bytestring-0.10.8.2","ghc-prim-0.5.3"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"edit-distance-0.2.2.1-3ee9066a02ddd83fb02b975c6cbe4e48cfa58432df9a58e28f4d3117cc114e94","pkg-name":"edit-distance","pkg-version":"0.2.2.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","pkg-src-sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","depends":["array-0.5.3.0","base-4.12.0.0","containers-0.6.0.1","random-1.2.0-f0994fc834469fbb09d3fb78fa43c9173070bd28fae87d2ccb1f145d8b044188"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.1","pkg-name":"filepath","pkg-version":"1.4.2.1","depends":["base-4.12.0.0"]},{"type":"pre-existing","id":"ghc-boot-th-8.6.5","pkg-name":"ghc-boot-th","pkg-version":"8.6.5","depends":["base-4.12.0.0"]},{"type":"pre-existing","id":"ghc-prim-0.5.3","pkg-name":"ghc-prim","pkg-version":"0.5.3","depends":["rts"]},{"type":"configured","id":"hackage-security-0.6.0.1-inplace","pkg-name":"hackage-security","pkg-version":"0.6.0.1","flags":{"base48":true,"lukko":true,"mtl21":false,"old-directory":false,"use-network-uri":true},"style":"inplace","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"692c385c085baa2813046ae58e31df21c250346b81c882431b5ffef76451a18a","pkg-src-sha256":"9162b473af5a21c1ff32a50b972b9acf51f4c901604a22cf08a2dccac2f82f17","dist-dir":"/code/shared-haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.6.5/hackage-security-0.6.0.1","depends":["Cabal-3.5.0.0-inplace","base-4.12.0.0","base16-bytestring-0.1.1.7-1c6dcde90355116a6bd3d6d942680d6e5781af1b18a2b0c3a7731813fafec43d","base64-bytestring-1.1.0.0-cd0fbc582434f7abba096a3124f8a90979ca8fa48b9730de02a035de19e50b0f","bytestring-0.10.8.2","containers-0.6.0.1","cryptohash-sha256-0.11.101.0-672df49aeb8f00e269bc8f003b8bf84a83fe557f0ac7c977f6776a97491a955e","directory-1.3.3.0","ed25519-0.0.5.0-751e5a5744fdd2d7ce2245bc124b15133d0dff1db6b0441d93ced591450d9edb","filepath-1.4.2.1","ghc-prim-0.5.3","lukko-0.1.1.2-15fdd1a837b209eef09d6df1acec1d26c8a95712fa902c19b288dceede1e623a","mtl-2.2.2","network-3.1.1.1-4939b3cef5a9e8a050f13943c66c49d8199f5edb4c8acb469a21cd7f8aae1a00","network-uri-2.6.3.0-512f05dc0374923712941f8950e12cc2a1707e8a87357d7e286ccde1953144e5","parsec-3.1.13.0","pretty-1.1.3.6","tar-0.5.1.1-2bac801a527e5793b7752115b282082cf46ce8f20e48fb17bd96599f96366b21","template-haskell-2.14.0.0","time-1.8.0.2","transformers-0.5.6.2","zlib-0.6.2.1-3d450e620fbe0e654eb7e97cd33cb6273bfb8229af0302c8890c078792ee1342"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hashable-1.3.0.0-f0497ed6dc3b89a4ddc96ef33aef5f64eaa584fcb9d5bf6da06e0dacb177c8f6","pkg-name":"hashable","pkg-version":"1.3.0.0","flags":{"examples":false,"integer-gmp":true,"sse2":true,"sse41":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c70f1407881059e93550d3742191254296b2737b793a742bd901348fb3e1fb1","pkg-src-sha256":"822e5413fbccca6ae884d3aba4066422c8b5d58d23d18b9ecb5c03273bb19ab4","depends":["base-4.12.0.0","bytestring-0.10.8.2","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0","text-1.2.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hsc2hs-0.68.7-e-hsc2hs-0c4585ed41291b35ebc895b38398cb967e27e28d827b43b63adf9034d1517144","pkg-name":"hsc2hs","pkg-version":"0.68.7","flags":{"in-ghc-tree":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"6a9419c04ca31a5931c77bd129789d4ceafcd8c9275551da237df341b8944540","pkg-src-sha256":"fd7915e41e3ed3bc7750fee0e8add2b4f32dcac8b7c544cfdf5542293223894a","depends":["base-4.12.0.0","containers-0.6.0.1","directory-1.3.3.0","filepath-1.4.2.1","process-1.6.5.0"],"exe-depends":[],"component-name":"exe:hsc2hs","bin-file":"/cabal/store/ghc-8.6.5/hsc2hs-0.68.7-e-hsc2hs-0c4585ed41291b35ebc895b38398cb967e27e28d827b43b63adf9034d1517144/bin/hsc2hs"},{"type":"pre-existing","id":"integer-gmp-1.0.2.0","pkg-name":"integer-gmp","pkg-version":"1.0.2.0","depends":["ghc-prim-0.5.3"]},{"type":"configured","id":"lukko-0.1.1.2-15fdd1a837b209eef09d6df1acec1d26c8a95712fa902c19b288dceede1e623a","pkg-name":"lukko","pkg-version":"0.1.1.2","flags":{"ofd-locking":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"c9d3fa30fb6ab2ba16e037586ca79be6e57ec5f00381b6ee5f293400dbdf5515","pkg-src-sha256":"8a79d113dc0ccef16c24d83379cc457485943027e777529c46362fecc06607d2","depends":["base-4.12.0.0"],"exe-depends":["hsc2hs-0.68.7-e-hsc2hs-0c4585ed41291b35ebc895b38398cb967e27e28d827b43b63adf9034d1517144"],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.12.0.0","transformers-0.5.6.2"]},{"type":"configured","id":"network-3.1.1.1-4939b3cef5a9e8a050f13943c66c49d8199f5edb4c8acb469a21cd7f8aae1a00","pkg-name":"network","pkg-version":"3.1.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b704cb6676c03e98267190df797497587576a2e96094550ea143415239bbe66e","pkg-src-sha256":"d7ef590173fff2ab522fbc167f3fafb867e4ecfca279eb3ef0d137b51f142c9a","components":{"lib":{"depends":["base-4.12.0.0","bytestring-0.10.8.2","deepseq-1.4.4.0"],"exe-depends":["hsc2hs-0.68.7-e-hsc2hs-0c4585ed41291b35ebc895b38398cb967e27e28d827b43b63adf9034d1517144"]}}},{"type":"configured","id":"network-uri-2.6.3.0-512f05dc0374923712941f8950e12cc2a1707e8a87357d7e286ccde1953144e5","pkg-name":"network-uri","pkg-version":"2.6.3.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d2d9ff3a80d9b2d1ff317a354bc0c56cc109c69a4c2449e5fc712d3ddce83ede","pkg-src-sha256":"a01c1389f15d2cc2e847914737f706133bb11f0c5f8ee89711a36a25b7afa723","depends":["base-4.12.0.0","deepseq-1.4.4.0","parsec-3.1.13.0","template-haskell-2.14.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"parsec-3.1.13.0","pkg-name":"parsec","pkg-version":"3.1.13.0","depends":["base-4.12.0.0","bytestring-0.10.8.2","mtl-2.2.2","text-1.2.3.1"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.12.0.0","deepseq-1.4.4.0","ghc-prim-0.5.3"]},{"type":"pre-existing","id":"process-1.6.5.0","pkg-name":"process","pkg-version":"1.6.5.0","depends":["base-4.12.0.0","deepseq-1.4.4.0","directory-1.3.3.0","filepath-1.4.2.1","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.0-f0994fc834469fbb09d3fb78fa43c9173070bd28fae87d2ccb1f145d8b044188","pkg-name":"random","pkg-version":"1.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"5ca8674e95c46c7eb90f520c26aea22d403625c97697275434afba66ebd32b05","pkg-src-sha256":"e4519cf7c058bfd5bdbe4acc782284acc9e25e74487208619ca83cbcd63fb9de","depends":["base-4.12.0.0","bytestring-0.10.8.2","deepseq-1.4.4.0","mtl-2.2.2","splitmix-0.1-3e60b38b41c8bde822762030b4373375791f98915e3d10eaf33ceadaeeb94a21"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-base-0.94.0.0-83cf4d8eac97e9aa145a3d27ac67bed98c4e85b4079681c563b9474b72d6c8c0","pkg-name":"regex-base","pkg-version":"0.94.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"44aa95ca762294ffbb28cf0af9c567d93b5d2c56e4f38ce5385a257d899f968e","pkg-src-sha256":"c41f82f5fc1157c961a4cbdc0cd5561e5aa44f339ce6e706d978d97e0ca6b914","depends":["array-0.5.3.0","base-4.12.0.0","bytestring-0.10.8.2","containers-0.6.0.1","mtl-2.2.2","text-1.2.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-posix-0.96.0.0-dc0bdb2738aaeebb56a1c073495ba842a9dd4d5dad088e0e0eeb5e2292c1e0b8","pkg-name":"regex-posix","pkg-version":"0.96.0.0","flags":{"_regex-posix-clib":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"690d1366e9ea6df71ded3daf49ca3d53c63eda3f95937962299b2391824dc3b3","pkg-src-sha256":"251300f1a6bb2e91abb8bf513a21981f8fab79c98a65acea2bb6d6a524414521","depends":["array-0.5.3.0","base-4.12.0.0","bytestring-0.10.8.2","containers-0.6.0.1","regex-base-0.94.0.0-83cf4d8eac97e9aa145a3d27ac67bed98c4e85b4079681c563b9474b72d6c8c0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"resolv-0.1.2.0-9223654e337d641bc8cfe29ee10796f5e3821f9d84e0e63d4c16d74a309e0622","pkg-name":"resolv","pkg-version":"0.1.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"0a9a6dd29706258ae60a5c22aecc140a40743b8f08fc324fd9984e7dfbf3a80d","pkg-src-sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","components":{"lib":{"depends":["base-4.12.0.0","base16-bytestring-0.1.1.7-1c6dcde90355116a6bd3d6d942680d6e5781af1b18a2b0c3a7731813fafec43d","binary-0.8.6.0","bytestring-0.10.8.2","containers-0.6.0.1"],"exe-depends":[]}}},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0","depends":[]},{"type":"configured","id":"splitmix-0.1-3e60b38b41c8bde822762030b4373375791f98915e3d10eaf33ceadaeeb94a21","pkg-name":"splitmix","pkg-version":"0.1","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d50c4d0801a35be7875a040470c09863342514930c82a7d25780a6c2efc4fda9","pkg-src-sha256":"1c11c87352ddbb13365380fe163f99bb8f8845ebc96ca1d572e5d3a9bf810bfa","depends":["base-4.12.0.0","deepseq-1.4.4.0","time-1.8.0.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"stm-2.5.0.0","pkg-name":"stm","pkg-version":"2.5.0.0","depends":["array-0.5.3.0","base-4.12.0.0"]},{"type":"configured","id":"tar-0.5.1.1-2bac801a527e5793b7752115b282082cf46ce8f20e48fb17bd96599f96366b21","pkg-name":"tar","pkg-version":"0.5.1.1","flags":{"old-bytestring":false,"old-time":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"7a715414c4d494c9048cfb6d7634e07e7732ca154cb8938dc85f6ea192192e8c","pkg-src-sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","depends":["array-0.5.3.0","base-4.12.0.0","bytestring-0.10.8.2","containers-0.6.0.1","deepseq-1.4.4.0","directory-1.3.3.0","filepath-1.4.2.1","time-1.8.0.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.14.0.0","pkg-name":"template-haskell","pkg-version":"2.14.0.0","depends":["base-4.12.0.0","ghc-boot-th-8.6.5","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-1.2.3.1","pkg-name":"text","pkg-version":"1.2.3.1","depends":["array-0.5.3.0","base-4.12.0.0","binary-0.8.6.0","bytestring-0.10.8.2","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0"]},{"type":"pre-existing","id":"time-1.8.0.2","pkg-name":"time","pkg-version":"1.8.0.2","depends":["base-4.12.0.0","deepseq-1.4.4.0"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.12.0.0"]},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.12.0.0","bytestring-0.10.8.2","time-1.8.0.2"]},{"type":"configured","id":"zlib-0.6.2.1-3d450e620fbe0e654eb7e97cd33cb6273bfb8229af0302c8890c078792ee1342","pkg-name":"zlib","pkg-version":"0.6.2.1","flags":{"non-blocking-ffi":false,"pkg-config":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d34ddf5fece4d1e9d471b5298f36335bb3cfe12cb5a1b8525c42f0b665382f45","pkg-src-sha256":"f0f810ff173560b60392db448455c0513b3239f48e43cb494b3733aa559621d0","depends":["base-4.12.0.0","bytestring-0.10.8.2"],"exe-depends":[],"component-name":"lib"}]} \ No newline at end of file +{"cabal-version":"3.6.0.0","cabal-lib-version":"3.6.1.0","compiler-id":"ghc-8.6.5","os":"linux","arch":"x86_64","install-plan":[{"type":"configured","id":"Cabal-3.6.2.0-inplace","pkg-name":"Cabal","pkg-version":"3.6.2.0","flags":{"bundled-binary-generic":false},"style":"local","pkg-src":{"type":"local","path":"/home/tapas/haskell/cabal/Cabal"},"dist-dir":"/home/tapas/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.6.5/Cabal-3.6.2.0","depends":["array-0.5.3.0","base-4.12.0.0","binary-0.8.6.0","bytestring-0.10.8.2","containers-0.6.0.1","deepseq-1.4.4.0","directory-1.3.3.0","filepath-1.4.2.1","mtl-2.2.2","parsec-3.1.13.0","pretty-1.1.3.6","process-1.6.5.0","text-1.2.3.1","time-1.8.0.2","transformers-0.5.6.2","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"HTTP-4000.3.16-3772b289391b85de3f38f4dc62bcf7b47c3a6d5037d66240c90e09ad75a8be87","pkg-name":"HTTP","pkg-version":"4000.3.16","flags":{"conduit10":false,"mtl1":false,"network-uri":true,"warn-as-error":false,"warp-tests":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4265b1966b2bbb302a8a80d7b485197694785ec1496d5d9314b4b5931ffbd093","pkg-src-sha256":"d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d","depends":["array-0.5.3.0","base-4.12.0.0","bytestring-0.10.8.2","mtl-2.2.2","network-3.1.2.2-e8d4773e65d0f16d3942eb1877af759e0a58a9aaef78126451fa386eedff18d4","network-uri-2.6.4.1-1ea82a3597d0b27f910fe28cd07d2295bf4279881a22385691ec6e13df200f23","parsec-3.1.13.0","time-1.8.0.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.3.0","pkg-name":"array","pkg-version":"0.5.3.0","depends":["base-4.12.0.0"]},{"type":"configured","id":"async-2.2.3-0c4091e504ff98e8c820c0865b3e3b6eddd24b20180944c90fbc3ed5e9775e03","pkg-name":"async","pkg-version":"2.2.3","flags":{"bench":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"0cbefb8247308b38e397e675f832b9bd5317ff1872001d5358f213654423c55b","pkg-src-sha256":"467af3a0037947a5232ecf5f4efbd4cf2118aaa2310566d7f40ac82b0e32935c","depends":["base-4.12.0.0","hashable-1.3.3.0-b8dd70fc149835278463564d165c0f0e95d5dc026ad4c6e566275f5872a57471","stm-2.5.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"base-4.12.0.0","pkg-name":"base","pkg-version":"4.12.0.0","depends":["ghc-prim-0.5.3","integer-gmp-1.0.2.0","rts"]},{"type":"configured","id":"base16-bytestring-1.0.1.0-1746bcc67bba177c17e33a8fba687adf44ffb730cb52632e82c956e36819a4f9","pkg-name":"base16-bytestring","pkg-version":"1.0.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"33b9d57afa334d06485033e930c6b13fc760baf88fd8f715ae2f9a4b46e19a54","pkg-src-sha256":"c0c70a4b58be53d36971bd7361ba300f82a5d5ebf7f50e1a2d7bfc8838bdd6fa","depends":["base-4.12.0.0","bytestring-0.10.8.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"base64-bytestring-1.2.1.0-e1989b0c1836f2ac91441b02489a8f60fd9e999173e0514288fd57f7dd0829de","pkg-name":"base64-bytestring","pkg-version":"1.2.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","pkg-src-sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","depends":["base-4.12.0.0","bytestring-0.10.8.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.6.0","pkg-name":"binary","pkg-version":"0.8.6.0","depends":["array-0.5.3.0","base-4.12.0.0","bytestring-0.10.8.2","containers-0.6.0.1"]},{"type":"pre-existing","id":"bytestring-0.10.8.2","pkg-name":"bytestring","pkg-version":"0.10.8.2","depends":["base-4.12.0.0","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0"]},{"type":"configured","id":"cabal-install-3.6.2.0-inplace-cabal","pkg-name":"cabal-install","pkg-version":"3.6.2.0","flags":{"debug-conflict-sets":false,"debug-expensive-assertions":false,"debug-tracetree":false,"lukko":true,"native-dns":true},"style":"local","pkg-src":{"type":"local","path":"/home/tapas/haskell/cabal/cabal-install"},"dist-dir":"/home/tapas/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.6.5/cabal-install-3.6.2.0/x/cabal","depends":["Cabal-3.6.2.0-inplace","HTTP-4000.3.16-3772b289391b85de3f38f4dc62bcf7b47c3a6d5037d66240c90e09ad75a8be87","array-0.5.3.0","async-2.2.3-0c4091e504ff98e8c820c0865b3e3b6eddd24b20180944c90fbc3ed5e9775e03","base-4.12.0.0","base16-bytestring-1.0.1.0-1746bcc67bba177c17e33a8fba687adf44ffb730cb52632e82c956e36819a4f9","binary-0.8.6.0","bytestring-0.10.8.2","containers-0.6.0.1","cryptohash-sha256-0.11.102.0-1788be3651f34f47baf624f708f86ea7d6db2d13268558e536d0a1bd2b97e074","deepseq-1.4.4.0","directory-1.3.3.0","echo-0.1.4-f2f39bb54e76ea77d5753fd796c4b4126a9c4a7d8b34fbeb350261c52821e0f3","edit-distance-0.2.2.1-7bd6af1f732ef2a1f2b04b4f27ad793f3ed3fa5623ddc8e07a4e489f60cbcee8","filepath-1.4.2.1","hackage-security-0.6.0.1-inplace","hashable-1.3.3.0-b8dd70fc149835278463564d165c0f0e95d5dc026ad4c6e566275f5872a57471","lukko-0.1.1.3-4c76677eee1fcca961ba3794c92e0a1f4e9c3ced333a9c3f048e6f3f312cb890","mtl-2.2.2","network-uri-2.6.4.1-1ea82a3597d0b27f910fe28cd07d2295bf4279881a22385691ec6e13df200f23","parsec-3.1.13.0","pretty-1.1.3.6","process-1.6.5.0","random-1.2.0-f975454f78491c8b834a9026806b59ad4e6cbebac633684d977c1bf1bb394421","regex-base-0.94.0.1-8daf12dc69a5224d3cb7813e6280b915706276fe3b3671583aa6b7ad031b7344","regex-posix-0.96.0.1-eba6c312f830e3ee4415cc4d263d6351a350a7d7b5aa3c618242a1bc64eeeece","resolv-0.1.2.0-839f45c81c7fff34820bc93f39bf071c78acc518c5fdaa3e3cfdbf27d1f5e16d","stm-2.5.0.0","tar-0.5.1.1-2bac801a527e5793b7752115b282082cf46ce8f20e48fb17bd96599f96366b21","text-1.2.3.1","time-1.8.0.2","transformers-0.5.6.2","unix-2.7.2.2","zlib-0.6.2.3-ed437c4dad11e2d9e8074a8f3cc6b184779db7ddfdf413b593887e96726d7450"],"exe-depends":[],"component-name":"exe:cabal","bin-file":"/home/tapas/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.6.5/cabal-install-3.6.2.0/x/cabal/build/cabal/cabal"},{"type":"pre-existing","id":"containers-0.6.0.1","pkg-name":"containers","pkg-version":"0.6.0.1","depends":["array-0.5.3.0","base-4.12.0.0","deepseq-1.4.4.0","ghc-prim-0.5.3"]},{"type":"configured","id":"cryptohash-sha256-0.11.102.0-1788be3651f34f47baf624f708f86ea7d6db2d13268558e536d0a1bd2b97e074","pkg-name":"cryptohash-sha256","pkg-version":"0.11.102.0","flags":{"exe":false,"use-cbits":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"797a0af7b8a0e654cbddd3df6b9de02d2cbfcb2292cf001399ab53910fbbb76c","pkg-src-sha256":"8ad6e9875a9128f6cd66d65d80f9f85dd0559c73ac00bb37f71fbee820d10519","depends":["base-4.12.0.0","bytestring-0.10.8.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.4.0","pkg-name":"deepseq","pkg-version":"1.4.4.0","depends":["array-0.5.3.0","base-4.12.0.0"]},{"type":"pre-existing","id":"directory-1.3.3.0","pkg-name":"directory","pkg-version":"1.3.3.0","depends":["base-4.12.0.0","filepath-1.4.2.1","time-1.8.0.2","unix-2.7.2.2"]},{"type":"configured","id":"echo-0.1.4-f2f39bb54e76ea77d5753fd796c4b4126a9c4a7d8b34fbeb350261c52821e0f3","pkg-name":"echo","pkg-version":"0.1.4","flags":{"example":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","pkg-src-sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","depends":["base-4.12.0.0","process-1.6.5.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ed25519-0.0.5.0-751e5a5744fdd2d7ce2245bc124b15133d0dff1db6b0441d93ced591450d9edb","pkg-name":"ed25519","pkg-version":"0.0.5.0","flags":{"no-donna":true,"test-doctests":true,"test-hlint":true,"test-properties":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"fb98b08de467d51f788f8bd9391f0e9ab9bd4d8dfc264296b895ffea0d822dfa","pkg-src-sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","depends":["base-4.12.0.0","bytestring-0.10.8.2","ghc-prim-0.5.3"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"edit-distance-0.2.2.1-7bd6af1f732ef2a1f2b04b4f27ad793f3ed3fa5623ddc8e07a4e489f60cbcee8","pkg-name":"edit-distance","pkg-version":"0.2.2.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","pkg-src-sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","depends":["array-0.5.3.0","base-4.12.0.0","containers-0.6.0.1","random-1.2.0-f975454f78491c8b834a9026806b59ad4e6cbebac633684d977c1bf1bb394421"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.1","pkg-name":"filepath","pkg-version":"1.4.2.1","depends":["base-4.12.0.0"]},{"type":"pre-existing","id":"ghc-boot-th-8.6.5","pkg-name":"ghc-boot-th","pkg-version":"8.6.5","depends":["base-4.12.0.0"]},{"type":"pre-existing","id":"ghc-prim-0.5.3","pkg-name":"ghc-prim","pkg-version":"0.5.3","depends":["rts"]},{"type":"configured","id":"hackage-security-0.6.0.1-inplace","pkg-name":"hackage-security","pkg-version":"0.6.0.1","flags":{"base48":true,"lukko":true,"mtl21":false,"old-directory":false,"use-network-uri":true},"style":"inplace","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ae6cdda307237c0b7efeebfb0bf23ff8a26c30f5ba295dce5e4f81ef6e63fff6","pkg-src-sha256":"9162b473af5a21c1ff32a50b972b9acf51f4c901604a22cf08a2dccac2f82f17","dist-dir":"/home/tapas/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.6.5/hackage-security-0.6.0.1","depends":["Cabal-3.6.2.0-inplace","base-4.12.0.0","base16-bytestring-1.0.1.0-1746bcc67bba177c17e33a8fba687adf44ffb730cb52632e82c956e36819a4f9","base64-bytestring-1.2.1.0-e1989b0c1836f2ac91441b02489a8f60fd9e999173e0514288fd57f7dd0829de","bytestring-0.10.8.2","containers-0.6.0.1","cryptohash-sha256-0.11.102.0-1788be3651f34f47baf624f708f86ea7d6db2d13268558e536d0a1bd2b97e074","directory-1.3.3.0","ed25519-0.0.5.0-751e5a5744fdd2d7ce2245bc124b15133d0dff1db6b0441d93ced591450d9edb","filepath-1.4.2.1","ghc-prim-0.5.3","lukko-0.1.1.3-4c76677eee1fcca961ba3794c92e0a1f4e9c3ced333a9c3f048e6f3f312cb890","mtl-2.2.2","network-3.1.2.2-e8d4773e65d0f16d3942eb1877af759e0a58a9aaef78126451fa386eedff18d4","network-uri-2.6.4.1-1ea82a3597d0b27f910fe28cd07d2295bf4279881a22385691ec6e13df200f23","parsec-3.1.13.0","pretty-1.1.3.6","tar-0.5.1.1-2bac801a527e5793b7752115b282082cf46ce8f20e48fb17bd96599f96366b21","template-haskell-2.14.0.0","time-1.8.0.2","transformers-0.5.6.2","zlib-0.6.2.3-ed437c4dad11e2d9e8074a8f3cc6b184779db7ddfdf413b593887e96726d7450"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hashable-1.3.3.0-b8dd70fc149835278463564d165c0f0e95d5dc026ad4c6e566275f5872a57471","pkg-name":"hashable","pkg-version":"1.3.3.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"7f3b67151162a1dfe8472dc30430af98ed5470801d3f4b6c9b8d7a7443c920d4","pkg-src-sha256":"99a578e58fb6a869593841e4b3184f5b52c921bcb0d661d2b3a06e6526cb85dc","depends":["base-4.12.0.0","bytestring-0.10.8.2","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0","text-1.2.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hsc2hs-0.68.7-e-hsc2hs-0c4585ed41291b35ebc895b38398cb967e27e28d827b43b63adf9034d1517144","pkg-name":"hsc2hs","pkg-version":"0.68.7","flags":{"in-ghc-tree":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4a0f6860a17e7c245646975e3c2981416afdcb6a7b3553c31005eb3641a7f55b","pkg-src-sha256":"fd7915e41e3ed3bc7750fee0e8add2b4f32dcac8b7c544cfdf5542293223894a","depends":["base-4.12.0.0","containers-0.6.0.1","directory-1.3.3.0","filepath-1.4.2.1","process-1.6.5.0"],"exe-depends":[],"component-name":"exe:hsc2hs","bin-file":"/home/tapas/.cabal/store/ghc-8.6.5/hsc2hs-0.68.7-e-hsc2hs-0c4585ed41291b35ebc895b38398cb967e27e28d827b43b63adf9034d1517144/bin/hsc2hs"},{"type":"pre-existing","id":"integer-gmp-1.0.2.0","pkg-name":"integer-gmp","pkg-version":"1.0.2.0","depends":["ghc-prim-0.5.3"]},{"type":"configured","id":"lukko-0.1.1.3-4c76677eee1fcca961ba3794c92e0a1f4e9c3ced333a9c3f048e6f3f312cb890","pkg-name":"lukko","pkg-version":"0.1.1.3","flags":{"ofd-locking":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2db49b6cb6632a46ec446fc51870cd0d49e0a66d1c5d2063f46ae52a100eb856","pkg-src-sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","depends":["base-4.12.0.0"],"exe-depends":["hsc2hs-0.68.7-e-hsc2hs-0c4585ed41291b35ebc895b38398cb967e27e28d827b43b63adf9034d1517144"],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.12.0.0","transformers-0.5.6.2"]},{"type":"configured","id":"network-3.1.2.2-e8d4773e65d0f16d3942eb1877af759e0a58a9aaef78126451fa386eedff18d4","pkg-name":"network","pkg-version":"3.1.2.2","flags":{"devel":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"218e2968e03d99c40f32a2ef7cc41a848969096ba1c780ff2e57997a00246b06","pkg-src-sha256":"55012c0b22f9c7548b1f7b3bacc2c6ec7058c7f92238a69561528f1a0fa60eb6","components":{"lib":{"depends":["base-4.12.0.0","bytestring-0.10.8.2","deepseq-1.4.4.0","directory-1.3.3.0"],"exe-depends":["hsc2hs-0.68.7-e-hsc2hs-0c4585ed41291b35ebc895b38398cb967e27e28d827b43b63adf9034d1517144"]}}},{"type":"configured","id":"network-uri-2.6.4.1-1ea82a3597d0b27f910fe28cd07d2295bf4279881a22385691ec6e13df200f23","pkg-name":"network-uri","pkg-version":"2.6.4.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","pkg-src-sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","depends":["base-4.12.0.0","deepseq-1.4.4.0","parsec-3.1.13.0","template-haskell-2.14.0.0","th-compat-0.1.3-3993e898202db77d5b0e79335b47707ded51b247ac894267abbadc505eec7786"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"parsec-3.1.13.0","pkg-name":"parsec","pkg-version":"3.1.13.0","depends":["base-4.12.0.0","bytestring-0.10.8.2","mtl-2.2.2","text-1.2.3.1"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.12.0.0","deepseq-1.4.4.0","ghc-prim-0.5.3"]},{"type":"pre-existing","id":"process-1.6.5.0","pkg-name":"process","pkg-version":"1.6.5.0","depends":["base-4.12.0.0","deepseq-1.4.4.0","directory-1.3.3.0","filepath-1.4.2.1","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.0-f975454f78491c8b834a9026806b59ad4e6cbebac633684d977c1bf1bb394421","pkg-name":"random","pkg-version":"1.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"195506fedaa7c31c1fa2a747e9b49b4a5d1f0b09dd8f1291f23a771656faeec3","pkg-src-sha256":"e4519cf7c058bfd5bdbe4acc782284acc9e25e74487208619ca83cbcd63fb9de","depends":["base-4.12.0.0","bytestring-0.10.8.2","deepseq-1.4.4.0","mtl-2.2.2","splitmix-0.1.0.3-495ff5a958a036b388c5fb1ec95d09b6e221914366e7c53f4e181bd8dbef71f9"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-base-0.94.0.1-8daf12dc69a5224d3cb7813e6280b915706276fe3b3671583aa6b7ad031b7344","pkg-name":"regex-base","pkg-version":"0.94.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"35ff2d13c0e3ac364469c19e4c7c8775f5148977d8fcef58a424df0a10a53fa7","pkg-src-sha256":"71b1d96fff201f31fe8cd4532f056aca03a21cd486890256dc3007dd73adedd9","depends":["array-0.5.3.0","base-4.12.0.0","bytestring-0.10.8.2","containers-0.6.0.1","mtl-2.2.2","text-1.2.3.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-posix-0.96.0.1-eba6c312f830e3ee4415cc4d263d6351a350a7d7b5aa3c618242a1bc64eeeece","pkg-name":"regex-posix","pkg-version":"0.96.0.1","flags":{"_regex-posix-clib":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca","pkg-src-sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","depends":["array-0.5.3.0","base-4.12.0.0","bytestring-0.10.8.2","containers-0.6.0.1","regex-base-0.94.0.1-8daf12dc69a5224d3cb7813e6280b915706276fe3b3671583aa6b7ad031b7344"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"resolv-0.1.2.0-839f45c81c7fff34820bc93f39bf071c78acc518c5fdaa3e3cfdbf27d1f5e16d","pkg-name":"resolv","pkg-version":"0.1.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"25c6e802dc342307e78e5e60433f5e20d03aa783b08b009a399100eb9b6ec529","pkg-src-sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","components":{"lib":{"depends":["base-4.12.0.0","base16-bytestring-1.0.1.0-1746bcc67bba177c17e33a8fba687adf44ffb730cb52632e82c956e36819a4f9","binary-0.8.6.0","bytestring-0.10.8.2","containers-0.6.0.1"],"exe-depends":[]}}},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0","depends":[]},{"type":"configured","id":"splitmix-0.1.0.3-495ff5a958a036b388c5fb1ec95d09b6e221914366e7c53f4e181bd8dbef71f9","pkg-name":"splitmix","pkg-version":"0.1.0.3","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"fc3aae74c467f4b608050bef53aec17904a618731df9407e655d8f3bf8c32d5c","pkg-src-sha256":"46009f4b000c9e6613377767b8718bf38476469f2a8e2162d98cc246882d5a35","depends":["base-4.12.0.0","deepseq-1.4.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"stm-2.5.0.0","pkg-name":"stm","pkg-version":"2.5.0.0","depends":["array-0.5.3.0","base-4.12.0.0"]},{"type":"configured","id":"tar-0.5.1.1-2bac801a527e5793b7752115b282082cf46ce8f20e48fb17bd96599f96366b21","pkg-name":"tar","pkg-version":"0.5.1.1","flags":{"old-bytestring":false,"old-time":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"94ded05718fe75b88c98e7113feeb9fca50688a7e59b6aefd80a6f48438c5062","pkg-src-sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","depends":["array-0.5.3.0","base-4.12.0.0","bytestring-0.10.8.2","containers-0.6.0.1","deepseq-1.4.4.0","directory-1.3.3.0","filepath-1.4.2.1","time-1.8.0.2"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.14.0.0","pkg-name":"template-haskell","pkg-version":"2.14.0.0","depends":["base-4.12.0.0","ghc-boot-th-8.6.5","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-1.2.3.1","pkg-name":"text","pkg-version":"1.2.3.1","depends":["array-0.5.3.0","base-4.12.0.0","binary-0.8.6.0","bytestring-0.10.8.2","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0"]},{"type":"configured","id":"th-compat-0.1.3-3993e898202db77d5b0e79335b47707ded51b247ac894267abbadc505eec7786","pkg-name":"th-compat","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a16dd922947a6877defe52c4c38d1ab48ed3f85a826930f5d1a568741d619993","pkg-src-sha256":"6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6","depends":["base-4.12.0.0","template-haskell-2.14.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"time-1.8.0.2","pkg-name":"time","pkg-version":"1.8.0.2","depends":["base-4.12.0.0","deepseq-1.4.4.0"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.12.0.0"]},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.12.0.0","bytestring-0.10.8.2","time-1.8.0.2"]},{"type":"configured","id":"zlib-0.6.2.3-ed437c4dad11e2d9e8074a8f3cc6b184779db7ddfdf413b593887e96726d7450","pkg-name":"zlib","pkg-version":"0.6.2.3","flags":{"bundled-c-zlib":false,"non-blocking-ffi":false,"pkg-config":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"28f4d460c260e074cab833625454564b9783a3389b7bb91fd54da2790b39592c","pkg-src-sha256":"807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88","depends":["base-4.12.0.0","bytestring-0.10.8.2"],"exe-depends":[],"component-name":"lib"}]} \ No newline at end of file diff --git a/bootstrap/linux-8.8.3.plan.json b/bootstrap/linux-8.8.3.plan.json deleted file mode 100644 index 232c390f235..00000000000 --- a/bootstrap/linux-8.8.3.plan.json +++ /dev/null @@ -1 +0,0 @@ -{"cabal-version":"3.4.0.0","cabal-lib-version":"3.4.0.0","compiler-id":"ghc-8.8.3","os":"linux","arch":"x86_64","install-plan":[{"type":"configured","id":"Cabal-3.5.0.0-inplace","pkg-name":"Cabal","pkg-version":"3.5.0.0","flags":{"bundled-binary-generic":false},"style":"local","pkg-src":{"type":"local","path":"/code/shared-haskell/cabal/Cabal"},"dist-dir":"/code/shared-haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.8.3/Cabal-3.5.0.0","depends":["array-0.5.4.0","base-4.13.0.0","binary-0.8.7.0","bytestring-0.10.10.0","containers-0.6.2.1","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","mtl-2.2.2","parsec-3.1.14.0","pretty-1.1.3.6","process-1.6.8.0","text-1.2.4.0","time-1.9.3","transformers-0.5.6.2","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"HTTP-4000.3.14-f460299e88aa49810cd9dc25e73fbdab9c44aa8b7818f8b546a747329d7395f5","pkg-name":"HTTP","pkg-version":"4000.3.14","flags":{"conduit10":false,"mtl1":false,"network-uri":true,"warn-as-error":false,"warp-tests":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3c19975fdfd8d057eae58847bda6a79514ad882fd6f8ead72ac0247af34bdfc6","pkg-src-sha256":"a602d7f30e917164c6a634f8cb1f5df4849048858db01380a0875e16e5aa687b","depends":["array-0.5.4.0","base-4.13.0.0","bytestring-0.10.10.0","mtl-2.2.2","network-3.1.1.1-75ec4a739825da74cd53dd8a2c9f5c6857c183e04546f06c99d5f10872868284","network-uri-2.6.3.0-4d6ad0b3f63022f7c8ea4ad47630fed7f49434756f1690741be33ad2b2b21df7","parsec-3.1.14.0","time-1.9.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.13.0.0"]},{"type":"configured","id":"async-2.2.2-9d2b87ab988f3212d9f3db79688b3a06a34ac2fd89c02094fa1e5d27e279ab6c","pkg-name":"async","pkg-version":"2.2.2","flags":{"bench":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a178c166856da7ff22fe4500337b54812e94fd2059409452187d72e057ede9cd","pkg-src-sha256":"4b4ab1ac82c45144d82c6daf6cb6ba45eab9957dad44787fa5e869e23d73bbff","depends":["base-4.13.0.0","hashable-1.3.0.0-4217007f5f0bf4136fcd26e76997dc0a397c1c39e14f47ad3842fe5c875081c3","stm-2.5.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"base-4.13.0.0","pkg-name":"base","pkg-version":"4.13.0.0","depends":["ghc-prim-0.5.3","integer-gmp-1.0.2.0","rts"]},{"type":"configured","id":"base16-bytestring-0.1.1.7-38cd8500a7e3b63c9a5329c9d74eb4bd5168db90a799d1a83b2695a4844b5f38","pkg-name":"base16-bytestring","pkg-version":"0.1.1.7","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"8cbba2505d4da4f6cfc90cd36c8e8ad0c09c056538481ea00e8b10b78f70cb10","pkg-src-sha256":"525689679d5cc80fa532c1d5cfeace0f62bbb54134fad514f1ba00d0e7fe69ba","depends":["base-4.13.0.0","bytestring-0.10.10.0","ghc-prim-0.5.3"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"base64-bytestring-1.1.0.0-92e28b939a06e636626589daf5b704cc5b90f51ec93bcf0aa0e48f44e2ca8a2c","pkg-name":"base64-bytestring","pkg-version":"1.1.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"190264fef9e65d9085f00ccda419137096d1dc94777c58272bc96821dc7f37c3","pkg-src-sha256":"210d6c9042241ca52ee5d89cf221dbeb4d0e64b37391345369035ad2d9b4aca9","depends":["base-4.13.0.0","bytestring-0.10.10.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.7.0","pkg-name":"binary","pkg-version":"0.8.7.0","depends":["array-0.5.4.0","base-4.13.0.0","bytestring-0.10.10.0","containers-0.6.2.1"]},{"type":"pre-existing","id":"bytestring-0.10.10.0","pkg-name":"bytestring","pkg-version":"0.10.10.0","depends":["base-4.13.0.0","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0"]},{"type":"configured","id":"cabal-install-3.5.0.0-inplace-cabal","pkg-name":"cabal-install","pkg-version":"3.5.0.0","flags":{"debug-conflict-sets":false,"debug-expensive-assertions":false,"debug-tracetree":false,"lukko":true,"native-dns":true},"style":"local","pkg-src":{"type":"local","path":"/code/shared-haskell/cabal/cabal-install"},"dist-dir":"/code/shared-haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.8.3/cabal-install-3.5.0.0/x/cabal","depends":["Cabal-3.5.0.0-inplace","HTTP-4000.3.14-f460299e88aa49810cd9dc25e73fbdab9c44aa8b7818f8b546a747329d7395f5","array-0.5.4.0","async-2.2.2-9d2b87ab988f3212d9f3db79688b3a06a34ac2fd89c02094fa1e5d27e279ab6c","base-4.13.0.0","base16-bytestring-0.1.1.7-38cd8500a7e3b63c9a5329c9d74eb4bd5168db90a799d1a83b2695a4844b5f38","binary-0.8.7.0","bytestring-0.10.10.0","containers-0.6.2.1","cryptohash-sha256-0.11.101.0-e38cd14823c779f359a2ecfb81b23dddf1692160dd7ac991e12385b9d7d244e1","deepseq-1.4.4.0","directory-1.3.6.0","echo-0.1.3-bc21ceb5a58cb5584318ee5da16fa1b9a90520a6f649d826f5291c6898f2a9ba","edit-distance-0.2.2.1-644dcc4e5434eae0baeb8b0783a2175b001a4db0129b8bc84b89dda23ceaa42c","filepath-1.4.2.1","hackage-security-0.6.0.1-inplace","hashable-1.3.0.0-4217007f5f0bf4136fcd26e76997dc0a397c1c39e14f47ad3842fe5c875081c3","lukko-0.1.1.2-f346d46d825649274c9638badf45ad751fecd2420968b725529bef25e409bb47","mtl-2.2.2","network-uri-2.6.3.0-4d6ad0b3f63022f7c8ea4ad47630fed7f49434756f1690741be33ad2b2b21df7","parsec-3.1.14.0","pretty-1.1.3.6","process-1.6.8.0","random-1.2.0-fd36da364fdcfa1a533602ccd4fc5ca6704ef2e7e140bc67f02828d9c124e016","regex-base-0.94.0.0-d12900765c8b9ad0a55410250f99bd7612a2292691eae0c10488fc87ab8dda31","regex-posix-0.96.0.0-7b4936c610ae9af1744faeb54bf9d495c2ed3af19e4d8483a04c8a37f6a414cd","resolv-0.1.2.0-94ad696306267ade080c4d7c8f2e013a3ebd6e8255c4838de370a606e5b7e1ec","stm-2.5.0.0","tar-0.5.1.1-702e93ec465f95c8f81e6f14a5db213aab07025dc02855ec5695acdf5073c76e","text-1.2.4.0","time-1.9.3","transformers-0.5.6.2","unix-2.7.2.2","zlib-0.6.2.1-e10c6f6d2a8e73a7cdd78d69c8f5627eab2f12ff3b12dc0266b860787481d282"],"exe-depends":[],"component-name":"exe:cabal","bin-file":"/code/shared-haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.8.3/cabal-install-3.5.0.0/x/cabal/build/cabal/cabal"},{"type":"pre-existing","id":"containers-0.6.2.1","pkg-name":"containers","pkg-version":"0.6.2.1","depends":["array-0.5.4.0","base-4.13.0.0","deepseq-1.4.4.0"]},{"type":"configured","id":"cryptohash-sha256-0.11.101.0-e38cd14823c779f359a2ecfb81b23dddf1692160dd7ac991e12385b9d7d244e1","pkg-name":"cryptohash-sha256","pkg-version":"0.11.101.0","flags":{"exe":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b963d6308db096362d73d9c603b331cf188aa69310195f479dfedf6045d7e602","pkg-src-sha256":"52756435dbea248e344fbcbcc5df5307f60dfacf337dfd11ae30f1c7a4da05dd","depends":["base-4.13.0.0","bytestring-0.10.10.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.4.0","pkg-name":"deepseq","pkg-version":"1.4.4.0","depends":["array-0.5.4.0","base-4.13.0.0"]},{"type":"pre-existing","id":"directory-1.3.6.0","pkg-name":"directory","pkg-version":"1.3.6.0","depends":["base-4.13.0.0","filepath-1.4.2.1","time-1.9.3","unix-2.7.2.2"]},{"type":"configured","id":"echo-0.1.3-bc21ceb5a58cb5584318ee5da16fa1b9a90520a6f649d826f5291c6898f2a9ba","pkg-name":"echo","pkg-version":"0.1.3","flags":{"example":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"5490be9cfbea95e14a7a68b7d055ae8d295822e0b146d2ac8285b3e5a3e3282f","pkg-src-sha256":"704f07310f8272d170f8ab7fb2a2c13f15d8501ef8310801e36964c8eff485ef","depends":["base-4.13.0.0","process-1.6.8.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ed25519-0.0.5.0-1affb65cd501a5fb6ffa132d3cd0bb596d26bf0b3ca5421f3e179148f0243629","pkg-name":"ed25519","pkg-version":"0.0.5.0","flags":{"no-donna":true,"test-doctests":true,"test-hlint":true,"test-properties":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"fb98b08de467d51f788f8bd9391f0e9ab9bd4d8dfc264296b895ffea0d822dfa","pkg-src-sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","depends":["base-4.13.0.0","bytestring-0.10.10.0","ghc-prim-0.5.3"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"edit-distance-0.2.2.1-644dcc4e5434eae0baeb8b0783a2175b001a4db0129b8bc84b89dda23ceaa42c","pkg-name":"edit-distance","pkg-version":"0.2.2.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","pkg-src-sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","depends":["array-0.5.4.0","base-4.13.0.0","containers-0.6.2.1","random-1.2.0-fd36da364fdcfa1a533602ccd4fc5ca6704ef2e7e140bc67f02828d9c124e016"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.1","pkg-name":"filepath","pkg-version":"1.4.2.1","depends":["base-4.13.0.0"]},{"type":"pre-existing","id":"ghc-boot-th-8.8.3","pkg-name":"ghc-boot-th","pkg-version":"8.8.3","depends":["base-4.13.0.0"]},{"type":"pre-existing","id":"ghc-prim-0.5.3","pkg-name":"ghc-prim","pkg-version":"0.5.3","depends":["rts"]},{"type":"configured","id":"hackage-security-0.6.0.1-inplace","pkg-name":"hackage-security","pkg-version":"0.6.0.1","flags":{"base48":true,"lukko":true,"mtl21":false,"old-directory":false,"use-network-uri":true},"style":"inplace","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"692c385c085baa2813046ae58e31df21c250346b81c882431b5ffef76451a18a","pkg-src-sha256":"9162b473af5a21c1ff32a50b972b9acf51f4c901604a22cf08a2dccac2f82f17","dist-dir":"/code/shared-haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.8.3/hackage-security-0.6.0.1","depends":["Cabal-3.5.0.0-inplace","base-4.13.0.0","base16-bytestring-0.1.1.7-38cd8500a7e3b63c9a5329c9d74eb4bd5168db90a799d1a83b2695a4844b5f38","base64-bytestring-1.1.0.0-92e28b939a06e636626589daf5b704cc5b90f51ec93bcf0aa0e48f44e2ca8a2c","bytestring-0.10.10.0","containers-0.6.2.1","cryptohash-sha256-0.11.101.0-e38cd14823c779f359a2ecfb81b23dddf1692160dd7ac991e12385b9d7d244e1","directory-1.3.6.0","ed25519-0.0.5.0-1affb65cd501a5fb6ffa132d3cd0bb596d26bf0b3ca5421f3e179148f0243629","filepath-1.4.2.1","ghc-prim-0.5.3","lukko-0.1.1.2-f346d46d825649274c9638badf45ad751fecd2420968b725529bef25e409bb47","mtl-2.2.2","network-3.1.1.1-75ec4a739825da74cd53dd8a2c9f5c6857c183e04546f06c99d5f10872868284","network-uri-2.6.3.0-4d6ad0b3f63022f7c8ea4ad47630fed7f49434756f1690741be33ad2b2b21df7","parsec-3.1.14.0","pretty-1.1.3.6","tar-0.5.1.1-702e93ec465f95c8f81e6f14a5db213aab07025dc02855ec5695acdf5073c76e","template-haskell-2.15.0.0","time-1.9.3","transformers-0.5.6.2","zlib-0.6.2.1-e10c6f6d2a8e73a7cdd78d69c8f5627eab2f12ff3b12dc0266b860787481d282"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hashable-1.3.0.0-4217007f5f0bf4136fcd26e76997dc0a397c1c39e14f47ad3842fe5c875081c3","pkg-name":"hashable","pkg-version":"1.3.0.0","flags":{"examples":false,"integer-gmp":true,"sse2":true,"sse41":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4c70f1407881059e93550d3742191254296b2737b793a742bd901348fb3e1fb1","pkg-src-sha256":"822e5413fbccca6ae884d3aba4066422c8b5d58d23d18b9ecb5c03273bb19ab4","depends":["base-4.13.0.0","bytestring-0.10.10.0","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0","text-1.2.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hsc2hs-0.68.7-e-hsc2hs-dec1fb4761be5e8b66609ed9b08771479f664af118ad67830697414ce02e0ea1","pkg-name":"hsc2hs","pkg-version":"0.68.7","flags":{"in-ghc-tree":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"6a9419c04ca31a5931c77bd129789d4ceafcd8c9275551da237df341b8944540","pkg-src-sha256":"fd7915e41e3ed3bc7750fee0e8add2b4f32dcac8b7c544cfdf5542293223894a","depends":["base-4.13.0.0","containers-0.6.2.1","directory-1.3.6.0","filepath-1.4.2.1","process-1.6.8.0"],"exe-depends":[],"component-name":"exe:hsc2hs","bin-file":"/cabal/store/ghc-8.8.3/hsc2hs-0.68.7-e-hsc2hs-dec1fb4761be5e8b66609ed9b08771479f664af118ad67830697414ce02e0ea1/bin/hsc2hs"},{"type":"pre-existing","id":"integer-gmp-1.0.2.0","pkg-name":"integer-gmp","pkg-version":"1.0.2.0","depends":["ghc-prim-0.5.3"]},{"type":"configured","id":"lukko-0.1.1.2-f346d46d825649274c9638badf45ad751fecd2420968b725529bef25e409bb47","pkg-name":"lukko","pkg-version":"0.1.1.2","flags":{"ofd-locking":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"c9d3fa30fb6ab2ba16e037586ca79be6e57ec5f00381b6ee5f293400dbdf5515","pkg-src-sha256":"8a79d113dc0ccef16c24d83379cc457485943027e777529c46362fecc06607d2","depends":["base-4.13.0.0"],"exe-depends":["hsc2hs-0.68.7-e-hsc2hs-dec1fb4761be5e8b66609ed9b08771479f664af118ad67830697414ce02e0ea1"],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.13.0.0","transformers-0.5.6.2"]},{"type":"configured","id":"network-3.1.1.1-75ec4a739825da74cd53dd8a2c9f5c6857c183e04546f06c99d5f10872868284","pkg-name":"network","pkg-version":"3.1.1.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b704cb6676c03e98267190df797497587576a2e96094550ea143415239bbe66e","pkg-src-sha256":"d7ef590173fff2ab522fbc167f3fafb867e4ecfca279eb3ef0d137b51f142c9a","components":{"lib":{"depends":["base-4.13.0.0","bytestring-0.10.10.0","deepseq-1.4.4.0"],"exe-depends":["hsc2hs-0.68.7-e-hsc2hs-dec1fb4761be5e8b66609ed9b08771479f664af118ad67830697414ce02e0ea1"]}}},{"type":"configured","id":"network-uri-2.6.3.0-4d6ad0b3f63022f7c8ea4ad47630fed7f49434756f1690741be33ad2b2b21df7","pkg-name":"network-uri","pkg-version":"2.6.3.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d2d9ff3a80d9b2d1ff317a354bc0c56cc109c69a4c2449e5fc712d3ddce83ede","pkg-src-sha256":"a01c1389f15d2cc2e847914737f706133bb11f0c5f8ee89711a36a25b7afa723","depends":["base-4.13.0.0","deepseq-1.4.4.0","parsec-3.1.14.0","template-haskell-2.15.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"parsec-3.1.14.0","pkg-name":"parsec","pkg-version":"3.1.14.0","depends":["base-4.13.0.0","bytestring-0.10.10.0","mtl-2.2.2","text-1.2.4.0"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.13.0.0","deepseq-1.4.4.0","ghc-prim-0.5.3"]},{"type":"pre-existing","id":"process-1.6.8.0","pkg-name":"process","pkg-version":"1.6.8.0","depends":["base-4.13.0.0","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.0-fd36da364fdcfa1a533602ccd4fc5ca6704ef2e7e140bc67f02828d9c124e016","pkg-name":"random","pkg-version":"1.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"5ca8674e95c46c7eb90f520c26aea22d403625c97697275434afba66ebd32b05","pkg-src-sha256":"e4519cf7c058bfd5bdbe4acc782284acc9e25e74487208619ca83cbcd63fb9de","depends":["base-4.13.0.0","bytestring-0.10.10.0","deepseq-1.4.4.0","mtl-2.2.2","splitmix-0.1-a17861e0d93a877843fd4847135d575087e8875b71207614f4b04c7d8f45f745"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-base-0.94.0.0-d12900765c8b9ad0a55410250f99bd7612a2292691eae0c10488fc87ab8dda31","pkg-name":"regex-base","pkg-version":"0.94.0.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"44aa95ca762294ffbb28cf0af9c567d93b5d2c56e4f38ce5385a257d899f968e","pkg-src-sha256":"c41f82f5fc1157c961a4cbdc0cd5561e5aa44f339ce6e706d978d97e0ca6b914","depends":["array-0.5.4.0","base-4.13.0.0","bytestring-0.10.10.0","containers-0.6.2.1","mtl-2.2.2","text-1.2.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-posix-0.96.0.0-7b4936c610ae9af1744faeb54bf9d495c2ed3af19e4d8483a04c8a37f6a414cd","pkg-name":"regex-posix","pkg-version":"0.96.0.0","flags":{"_regex-posix-clib":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"690d1366e9ea6df71ded3daf49ca3d53c63eda3f95937962299b2391824dc3b3","pkg-src-sha256":"251300f1a6bb2e91abb8bf513a21981f8fab79c98a65acea2bb6d6a524414521","depends":["array-0.5.4.0","base-4.13.0.0","bytestring-0.10.10.0","containers-0.6.2.1","regex-base-0.94.0.0-d12900765c8b9ad0a55410250f99bd7612a2292691eae0c10488fc87ab8dda31"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"resolv-0.1.2.0-94ad696306267ade080c4d7c8f2e013a3ebd6e8255c4838de370a606e5b7e1ec","pkg-name":"resolv","pkg-version":"0.1.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"0a9a6dd29706258ae60a5c22aecc140a40743b8f08fc324fd9984e7dfbf3a80d","pkg-src-sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","components":{"lib":{"depends":["base-4.13.0.0","base16-bytestring-0.1.1.7-38cd8500a7e3b63c9a5329c9d74eb4bd5168db90a799d1a83b2695a4844b5f38","binary-0.8.7.0","bytestring-0.10.10.0","containers-0.6.2.1"],"exe-depends":[]}}},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0","depends":[]},{"type":"configured","id":"splitmix-0.1-a17861e0d93a877843fd4847135d575087e8875b71207614f4b04c7d8f45f745","pkg-name":"splitmix","pkg-version":"0.1","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d50c4d0801a35be7875a040470c09863342514930c82a7d25780a6c2efc4fda9","pkg-src-sha256":"1c11c87352ddbb13365380fe163f99bb8f8845ebc96ca1d572e5d3a9bf810bfa","depends":["base-4.13.0.0","deepseq-1.4.4.0","time-1.9.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"stm-2.5.0.0","pkg-name":"stm","pkg-version":"2.5.0.0","depends":["array-0.5.4.0","base-4.13.0.0"]},{"type":"configured","id":"tar-0.5.1.1-702e93ec465f95c8f81e6f14a5db213aab07025dc02855ec5695acdf5073c76e","pkg-name":"tar","pkg-version":"0.5.1.1","flags":{"old-bytestring":false,"old-time":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"7a715414c4d494c9048cfb6d7634e07e7732ca154cb8938dc85f6ea192192e8c","pkg-src-sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","depends":["array-0.5.4.0","base-4.13.0.0","bytestring-0.10.10.0","containers-0.6.2.1","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","time-1.9.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.15.0.0","pkg-name":"template-haskell","pkg-version":"2.15.0.0","depends":["base-4.13.0.0","ghc-boot-th-8.8.3","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-1.2.4.0","pkg-name":"text","pkg-version":"1.2.4.0","depends":["array-0.5.4.0","base-4.13.0.0","binary-0.8.7.0","bytestring-0.10.10.0","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0","template-haskell-2.15.0.0"]},{"type":"pre-existing","id":"time-1.9.3","pkg-name":"time","pkg-version":"1.9.3","depends":["base-4.13.0.0","deepseq-1.4.4.0"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.13.0.0"]},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.13.0.0","bytestring-0.10.10.0","time-1.9.3"]},{"type":"configured","id":"zlib-0.6.2.1-e10c6f6d2a8e73a7cdd78d69c8f5627eab2f12ff3b12dc0266b860787481d282","pkg-name":"zlib","pkg-version":"0.6.2.1","flags":{"non-blocking-ffi":false,"pkg-config":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d34ddf5fece4d1e9d471b5298f36335bb3cfe12cb5a1b8525c42f0b665382f45","pkg-src-sha256":"f0f810ff173560b60392db448455c0513b3239f48e43cb494b3733aa559621d0","depends":["base-4.13.0.0","bytestring-0.10.10.0"],"exe-depends":[],"component-name":"lib"}]} \ No newline at end of file diff --git a/bootstrap/linux-8.8.3.json b/bootstrap/linux-8.8.4.json similarity index 56% rename from bootstrap/linux-8.8.3.json rename to bootstrap/linux-8.8.4.json index a1ab06c9bcd..9eb53a45037 100644 --- a/bootstrap/linux-8.8.3.json +++ b/bootstrap/linux-8.8.4.json @@ -1,126 +1,49 @@ { - "builtin": [ - { - "package": "rts", - "version": "1.0" - }, - { - "package": "ghc-prim", - "version": "0.5.3" - }, - { - "package": "integer-gmp", - "version": "1.0.2.0" - }, - { - "package": "base", - "version": "4.13.0.0" - }, - { - "package": "array", - "version": "0.5.4.0" - }, - { - "package": "deepseq", - "version": "1.4.4.0" - }, - { - "package": "bytestring", - "version": "0.10.10.0" - }, - { - "package": "containers", - "version": "0.6.2.1" - }, - { - "package": "binary", - "version": "0.8.7.0" - }, - { - "package": "filepath", - "version": "1.4.2.1" - }, - { - "package": "time", - "version": "1.9.3" - }, - { - "package": "unix", - "version": "2.7.2.2" - }, - { - "package": "directory", - "version": "1.3.6.0" - }, - { - "package": "transformers", - "version": "0.5.6.2" - }, - { - "package": "mtl", - "version": "2.2.2" - }, - { - "package": "ghc-boot-th", - "version": "8.8.3" - }, - { - "package": "pretty", - "version": "1.1.3.6" - }, - { - "package": "template-haskell", - "version": "2.15.0.0" - }, - { - "package": "text", - "version": "1.2.4.0" - }, - { - "package": "parsec", - "version": "3.1.14.0" - }, - { - "package": "process", - "version": "1.6.8.0" - }, - { - "package": "stm", - "version": "2.5.0.0" - } - ], "dependencies": [ { - "cabal_sha256": null, + "source": "local", + "package": "Cabal", + "version": "3.6.2.0", "flags": [ "-bundled-binary-generic" ], - "package": "Cabal", - "revision": null, - "source": "local", + "cabal_sha256": null, "src_sha256": null, - "version": "3.5.0.0" + "revision": null }, { - "cabal_sha256": "b704cb6676c03e98267190df797497587576a2e96094550ea143415239bbe66e", - "flags": [], - "package": "network", - "revision": 0, "source": "hackage", - "src_sha256": "d7ef590173fff2ab522fbc167f3fafb867e4ecfca279eb3ef0d137b51f142c9a", - "version": "3.1.1.1" + "package": "network", + "version": "3.1.2.2", + "flags": [ + "-devel" + ], + "cabal_sha256": "218e2968e03d99c40f32a2ef7cc41a848969096ba1c780ff2e57997a00246b06", + "src_sha256": "55012c0b22f9c7548b1f7b3bacc2c6ec7058c7f92238a69561528f1a0fa60eb6", + "revision": 0 }, { - "cabal_sha256": "d2d9ff3a80d9b2d1ff317a354bc0c56cc109c69a4c2449e5fc712d3ddce83ede", + "source": "hackage", + "package": "th-compat", + "version": "0.1.3", "flags": [], - "package": "network-uri", - "revision": 0, + "cabal_sha256": "a16dd922947a6877defe52c4c38d1ab48ed3f85a826930f5d1a568741d619993", + "src_sha256": "6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6", + "revision": 0 + }, + { "source": "hackage", - "src_sha256": "a01c1389f15d2cc2e847914737f706133bb11f0c5f8ee89711a36a25b7afa723", - "version": "2.6.3.0" + "package": "network-uri", + "version": "2.6.4.1", + "flags": [], + "cabal_sha256": "a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d", + "src_sha256": "57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584", + "revision": 0 }, { - "cabal_sha256": "3c19975fdfd8d057eae58847bda6a79514ad882fd6f8ead72ac0247af34bdfc6", + "source": "hackage", + "package": "HTTP", + "version": "4000.3.16", "flags": [ "-conduit10", "-mtl1", @@ -128,157 +51,157 @@ "-warn-as-error", "-warp-tests" ], - "package": "HTTP", - "revision": 1, - "source": "hackage", - "src_sha256": "a602d7f30e917164c6a634f8cb1f5df4849048858db01380a0875e16e5aa687b", - "version": "4000.3.14" + "cabal_sha256": "4265b1966b2bbb302a8a80d7b485197694785ec1496d5d9314b4b5931ffbd093", + "src_sha256": "d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d", + "revision": 0 }, { - "cabal_sha256": "4c70f1407881059e93550d3742191254296b2737b793a742bd901348fb3e1fb1", + "source": "hackage", + "package": "hashable", + "version": "1.3.3.0", "flags": [ - "-examples", "+integer-gmp", - "+sse2", - "-sse41" + "-random-initial-seed" ], - "package": "hashable", - "revision": 1, - "source": "hackage", - "src_sha256": "822e5413fbccca6ae884d3aba4066422c8b5d58d23d18b9ecb5c03273bb19ab4", - "version": "1.3.0.0" + "cabal_sha256": "7f3b67151162a1dfe8472dc30430af98ed5470801d3f4b6c9b8d7a7443c920d4", + "src_sha256": "99a578e58fb6a869593841e4b3184f5b52c921bcb0d661d2b3a06e6526cb85dc", + "revision": 0 }, { - "cabal_sha256": "a178c166856da7ff22fe4500337b54812e94fd2059409452187d72e057ede9cd", + "source": "hackage", + "package": "async", + "version": "2.2.3", "flags": [ "-bench" ], - "package": "async", - "revision": 1, - "source": "hackage", - "src_sha256": "4b4ab1ac82c45144d82c6daf6cb6ba45eab9957dad44787fa5e869e23d73bbff", - "version": "2.2.2" + "cabal_sha256": "0cbefb8247308b38e397e675f832b9bd5317ff1872001d5358f213654423c55b", + "src_sha256": "467af3a0037947a5232ecf5f4efbd4cf2118aaa2310566d7f40ac82b0e32935c", + "revision": 0 }, { - "cabal_sha256": "8cbba2505d4da4f6cfc90cd36c8e8ad0c09c056538481ea00e8b10b78f70cb10", - "flags": [], - "package": "base16-bytestring", - "revision": 0, "source": "hackage", - "src_sha256": "525689679d5cc80fa532c1d5cfeace0f62bbb54134fad514f1ba00d0e7fe69ba", - "version": "0.1.1.7" + "package": "base16-bytestring", + "version": "1.0.1.0", + "flags": [], + "cabal_sha256": "33b9d57afa334d06485033e930c6b13fc760baf88fd8f715ae2f9a4b46e19a54", + "src_sha256": "c0c70a4b58be53d36971bd7361ba300f82a5d5ebf7f50e1a2d7bfc8838bdd6fa", + "revision": 0 }, { - "cabal_sha256": "190264fef9e65d9085f00ccda419137096d1dc94777c58272bc96821dc7f37c3", - "flags": [], - "package": "base64-bytestring", - "revision": 0, "source": "hackage", - "src_sha256": "210d6c9042241ca52ee5d89cf221dbeb4d0e64b37391345369035ad2d9b4aca9", - "version": "1.1.0.0" + "package": "base64-bytestring", + "version": "1.2.1.0", + "flags": [], + "cabal_sha256": "50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8", + "src_sha256": "fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9", + "revision": 0 }, { - "cabal_sha256": "b963d6308db096362d73d9c603b331cf188aa69310195f479dfedf6045d7e602", + "source": "hackage", + "package": "cryptohash-sha256", + "version": "0.11.102.0", "flags": [ - "-exe" + "-exe", + "+use-cbits" ], - "package": "cryptohash-sha256", - "revision": 4, - "source": "hackage", - "src_sha256": "52756435dbea248e344fbcbcc5df5307f60dfacf337dfd11ae30f1c7a4da05dd", - "version": "0.11.101.0" + "cabal_sha256": "797a0af7b8a0e654cbddd3df6b9de02d2cbfcb2292cf001399ab53910fbbb76c", + "src_sha256": "8ad6e9875a9128f6cd66d65d80f9f85dd0559c73ac00bb37f71fbee820d10519", + "revision": 1 }, { - "cabal_sha256": "5490be9cfbea95e14a7a68b7d055ae8d295822e0b146d2ac8285b3e5a3e3282f", + "source": "hackage", + "package": "echo", + "version": "0.1.4", "flags": [ "-example" ], - "package": "echo", - "revision": 1, - "source": "hackage", - "src_sha256": "704f07310f8272d170f8ab7fb2a2c13f15d8501ef8310801e36964c8eff485ef", - "version": "0.1.3" + "cabal_sha256": "ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42", + "src_sha256": "c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43", + "revision": 0 }, { - "cabal_sha256": "d50c4d0801a35be7875a040470c09863342514930c82a7d25780a6c2efc4fda9", + "source": "hackage", + "package": "splitmix", + "version": "0.1.0.3", "flags": [ "-optimised-mixer" ], - "package": "splitmix", - "revision": 0, - "source": "hackage", - "src_sha256": "1c11c87352ddbb13365380fe163f99bb8f8845ebc96ca1d572e5d3a9bf810bfa", - "version": "0.1" + "cabal_sha256": "fc3aae74c467f4b608050bef53aec17904a618731df9407e655d8f3bf8c32d5c", + "src_sha256": "46009f4b000c9e6613377767b8718bf38476469f2a8e2162d98cc246882d5a35", + "revision": 0 }, { - "cabal_sha256": "5ca8674e95c46c7eb90f520c26aea22d403625c97697275434afba66ebd32b05", - "flags": [], - "package": "random", - "revision": 0, "source": "hackage", + "package": "random", + "version": "1.2.0", + "flags": [], + "cabal_sha256": "195506fedaa7c31c1fa2a747e9b49b4a5d1f0b09dd8f1291f23a771656faeec3", "src_sha256": "e4519cf7c058bfd5bdbe4acc782284acc9e25e74487208619ca83cbcd63fb9de", - "version": "1.2.0" + "revision": 6 }, { - "cabal_sha256": "4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee", - "flags": [], - "package": "edit-distance", - "revision": 1, "source": "hackage", + "package": "edit-distance", + "version": "0.2.2.1", + "flags": [], + "cabal_sha256": "4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee", "src_sha256": "3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a", - "version": "0.2.2.1" + "revision": 1 }, { - "cabal_sha256": "fb98b08de467d51f788f8bd9391f0e9ab9bd4d8dfc264296b895ffea0d822dfa", + "source": "hackage", + "package": "ed25519", + "version": "0.0.5.0", "flags": [ "+no-donna", "+test-doctests", "+test-hlint", "+test-properties" ], - "package": "ed25519", - "revision": 3, - "source": "hackage", + "cabal_sha256": "fb98b08de467d51f788f8bd9391f0e9ab9bd4d8dfc264296b895ffea0d822dfa", "src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d", - "version": "0.0.5.0" + "revision": 3 }, { - "cabal_sha256": "c9d3fa30fb6ab2ba16e037586ca79be6e57ec5f00381b6ee5f293400dbdf5515", + "source": "hackage", + "package": "lukko", + "version": "0.1.1.3", "flags": [ "+ofd-locking" ], - "package": "lukko", - "revision": 0, - "source": "hackage", - "src_sha256": "8a79d113dc0ccef16c24d83379cc457485943027e777529c46362fecc06607d2", - "version": "0.1.1.2" + "cabal_sha256": "2db49b6cb6632a46ec446fc51870cd0d49e0a66d1c5d2063f46ae52a100eb856", + "src_sha256": "a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f", + "revision": 1 }, { - "cabal_sha256": "7a715414c4d494c9048cfb6d7634e07e7732ca154cb8938dc85f6ea192192e8c", + "source": "hackage", + "package": "tar", + "version": "0.5.1.1", "flags": [ "-old-bytestring", "-old-time" ], - "package": "tar", - "revision": 2, - "source": "hackage", + "cabal_sha256": "94ded05718fe75b88c98e7113feeb9fca50688a7e59b6aefd80a6f48438c5062", "src_sha256": "b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de", - "version": "0.5.1.1" + "revision": 3 }, { - "cabal_sha256": "d34ddf5fece4d1e9d471b5298f36335bb3cfe12cb5a1b8525c42f0b665382f45", + "source": "hackage", + "package": "zlib", + "version": "0.6.2.3", "flags": [ + "-bundled-c-zlib", "-non-blocking-ffi", "-pkg-config" ], - "package": "zlib", - "revision": 1, - "source": "hackage", - "src_sha256": "f0f810ff173560b60392db448455c0513b3239f48e43cb494b3733aa559621d0", - "version": "0.6.2.1" + "cabal_sha256": "28f4d460c260e074cab833625454564b9783a3389b7bb91fd54da2790b39592c", + "src_sha256": "807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88", + "revision": 0 }, { - "cabal_sha256": "692c385c085baa2813046ae58e31df21c250346b81c882431b5ffef76451a18a", + "source": "hackage", + "package": "hackage-security", + "version": "0.6.0.1", "flags": [ "+base48", "+lukko", @@ -286,43 +209,43 @@ "-old-directory", "+use-network-uri" ], - "package": "hackage-security", - "revision": 2, - "source": "hackage", + "cabal_sha256": "ae6cdda307237c0b7efeebfb0bf23ff8a26c30f5ba295dce5e4f81ef6e63fff6", "src_sha256": "9162b473af5a21c1ff32a50b972b9acf51f4c901604a22cf08a2dccac2f82f17", - "version": "0.6.0.1" + "revision": 8 }, { - "cabal_sha256": "44aa95ca762294ffbb28cf0af9c567d93b5d2c56e4f38ce5385a257d899f968e", - "flags": [], - "package": "regex-base", - "revision": 1, "source": "hackage", - "src_sha256": "c41f82f5fc1157c961a4cbdc0cd5561e5aa44f339ce6e706d978d97e0ca6b914", - "version": "0.94.0.0" + "package": "regex-base", + "version": "0.94.0.1", + "flags": [], + "cabal_sha256": "35ff2d13c0e3ac364469c19e4c7c8775f5148977d8fcef58a424df0a10a53fa7", + "src_sha256": "71b1d96fff201f31fe8cd4532f056aca03a21cd486890256dc3007dd73adedd9", + "revision": 1 }, { - "cabal_sha256": "690d1366e9ea6df71ded3daf49ca3d53c63eda3f95937962299b2391824dc3b3", + "source": "hackage", + "package": "regex-posix", + "version": "0.96.0.1", "flags": [ "-_regex-posix-clib" ], - "package": "regex-posix", - "revision": 1, - "source": "hackage", - "src_sha256": "251300f1a6bb2e91abb8bf513a21981f8fab79c98a65acea2bb6d6a524414521", - "version": "0.96.0.0" + "cabal_sha256": "b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca", + "src_sha256": "c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c", + "revision": 0 }, { - "cabal_sha256": "0a9a6dd29706258ae60a5c22aecc140a40743b8f08fc324fd9984e7dfbf3a80d", - "flags": [], - "package": "resolv", - "revision": 0, "source": "hackage", + "package": "resolv", + "version": "0.1.2.0", + "flags": [], + "cabal_sha256": "25c6e802dc342307e78e5e60433f5e20d03aa783b08b009a399100eb9b6ec529", "src_sha256": "81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671", - "version": "0.1.2.0" + "revision": 3 }, { - "cabal_sha256": null, + "source": "local", + "package": "cabal-install", + "version": "3.6.2.0", "flags": [ "-debug-conflict-sets", "-debug-expensive-assertions", @@ -330,11 +253,99 @@ "+lukko", "+native-dns" ], - "package": "cabal-install", - "revision": null, - "source": "local", + "cabal_sha256": null, "src_sha256": null, - "version": "3.5.0.0" + "revision": null + } + ], + "builtin": [ + { + "package": "rts", + "version": "1.0" + }, + { + "package": "ghc-prim", + "version": "0.5.3" + }, + { + "package": "integer-gmp", + "version": "1.0.2.0" + }, + { + "package": "base", + "version": "4.13.0.0" + }, + { + "package": "array", + "version": "0.5.4.0" + }, + { + "package": "deepseq", + "version": "1.4.4.0" + }, + { + "package": "bytestring", + "version": "0.10.10.1" + }, + { + "package": "containers", + "version": "0.6.2.1" + }, + { + "package": "binary", + "version": "0.8.7.0" + }, + { + "package": "filepath", + "version": "1.4.2.1" + }, + { + "package": "time", + "version": "1.9.3" + }, + { + "package": "unix", + "version": "2.7.2.2" + }, + { + "package": "directory", + "version": "1.3.6.0" + }, + { + "package": "transformers", + "version": "0.5.6.2" + }, + { + "package": "mtl", + "version": "2.2.2" + }, + { + "package": "ghc-boot-th", + "version": "8.8.4" + }, + { + "package": "pretty", + "version": "1.1.3.6" + }, + { + "package": "template-haskell", + "version": "2.15.0.0" + }, + { + "package": "text", + "version": "1.2.4.0" + }, + { + "package": "parsec", + "version": "3.1.14.0" + }, + { + "package": "process", + "version": "1.6.9.0" + }, + { + "package": "stm", + "version": "2.5.0.0" } ] } diff --git a/bootstrap/linux-8.8.4.plan.json b/bootstrap/linux-8.8.4.plan.json new file mode 100644 index 00000000000..4a312eea754 --- /dev/null +++ b/bootstrap/linux-8.8.4.plan.json @@ -0,0 +1 @@ +{"cabal-version":"3.6.0.0","cabal-lib-version":"3.6.1.0","compiler-id":"ghc-8.8.4","os":"linux","arch":"x86_64","install-plan":[{"type":"configured","id":"Cabal-3.6.2.0-inplace","pkg-name":"Cabal","pkg-version":"3.6.2.0","flags":{"bundled-binary-generic":false},"style":"local","pkg-src":{"type":"local","path":"/home/tapas/haskell/cabal/Cabal"},"dist-dir":"/home/tapas/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.8.4/Cabal-3.6.2.0","depends":["array-0.5.4.0","base-4.13.0.0","binary-0.8.7.0","bytestring-0.10.10.1","containers-0.6.2.1","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","mtl-2.2.2","parsec-3.1.14.0","pretty-1.1.3.6","process-1.6.9.0","text-1.2.4.0","time-1.9.3","transformers-0.5.6.2","unix-2.7.2.2"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"HTTP-4000.3.16-f8ab0b17e78d25b4f7cc5cdcdeb5a191e9e74f9a8a046874d800acbe5788faec","pkg-name":"HTTP","pkg-version":"4000.3.16","flags":{"conduit10":false,"mtl1":false,"network-uri":true,"warn-as-error":false,"warp-tests":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4265b1966b2bbb302a8a80d7b485197694785ec1496d5d9314b4b5931ffbd093","pkg-src-sha256":"d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d","depends":["array-0.5.4.0","base-4.13.0.0","bytestring-0.10.10.1","mtl-2.2.2","network-3.1.2.2-252ed935ce669c59353b7e22b4963aa9a2aec2afed28f38f914470b684fc93cb","network-uri-2.6.4.1-74661a9098fb28a4f280e239c0c875f92e2d82856b86af222ea7661126e8bc3f","parsec-3.1.14.0","time-1.9.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.4.0","pkg-name":"array","pkg-version":"0.5.4.0","depends":["base-4.13.0.0"]},{"type":"configured","id":"async-2.2.3-c2e6ae2e358b6f3876c922c0c82fed7f4976a1340e6a85f419bf9521f1e7e405","pkg-name":"async","pkg-version":"2.2.3","flags":{"bench":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"0cbefb8247308b38e397e675f832b9bd5317ff1872001d5358f213654423c55b","pkg-src-sha256":"467af3a0037947a5232ecf5f4efbd4cf2118aaa2310566d7f40ac82b0e32935c","depends":["base-4.13.0.0","hashable-1.3.3.0-ad1181a209aa37281dd31f62d21469418263e4fe1bbca8f2722f194defb868f6","stm-2.5.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"base-4.13.0.0","pkg-name":"base","pkg-version":"4.13.0.0","depends":["ghc-prim-0.5.3","integer-gmp-1.0.2.0","rts"]},{"type":"configured","id":"base16-bytestring-1.0.1.0-7012dade26da6d9b1d19ca2cf95148bf35a7e0ea382d566d5646f82e667be147","pkg-name":"base16-bytestring","pkg-version":"1.0.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"33b9d57afa334d06485033e930c6b13fc760baf88fd8f715ae2f9a4b46e19a54","pkg-src-sha256":"c0c70a4b58be53d36971bd7361ba300f82a5d5ebf7f50e1a2d7bfc8838bdd6fa","depends":["base-4.13.0.0","bytestring-0.10.10.1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"base64-bytestring-1.2.1.0-0cf4b8b273c4e23586ab1eecc01e5fbd9d12067d68634ff113df996e89264e35","pkg-name":"base64-bytestring","pkg-version":"1.2.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"50ec0e229255d4c45cbdd568da011311b8887f304b931564886016f4984334d8","pkg-src-sha256":"fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9","depends":["base-4.13.0.0","bytestring-0.10.10.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.7.0","pkg-name":"binary","pkg-version":"0.8.7.0","depends":["array-0.5.4.0","base-4.13.0.0","bytestring-0.10.10.1","containers-0.6.2.1"]},{"type":"pre-existing","id":"bytestring-0.10.10.1","pkg-name":"bytestring","pkg-version":"0.10.10.1","depends":["base-4.13.0.0","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0"]},{"type":"configured","id":"cabal-install-3.6.2.0-inplace-cabal","pkg-name":"cabal-install","pkg-version":"3.6.2.0","flags":{"debug-conflict-sets":false,"debug-expensive-assertions":false,"debug-tracetree":false,"lukko":true,"native-dns":true},"style":"local","pkg-src":{"type":"local","path":"/home/tapas/haskell/cabal/cabal-install"},"dist-dir":"/home/tapas/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.8.4/cabal-install-3.6.2.0/x/cabal","depends":["Cabal-3.6.2.0-inplace","HTTP-4000.3.16-f8ab0b17e78d25b4f7cc5cdcdeb5a191e9e74f9a8a046874d800acbe5788faec","array-0.5.4.0","async-2.2.3-c2e6ae2e358b6f3876c922c0c82fed7f4976a1340e6a85f419bf9521f1e7e405","base-4.13.0.0","base16-bytestring-1.0.1.0-7012dade26da6d9b1d19ca2cf95148bf35a7e0ea382d566d5646f82e667be147","binary-0.8.7.0","bytestring-0.10.10.1","containers-0.6.2.1","cryptohash-sha256-0.11.102.0-ecb5cca3663b9524a6b30ab33ce0061346401ec1f94afa114cc152601b84a79e","deepseq-1.4.4.0","directory-1.3.6.0","echo-0.1.4-9c1f3a8af8235ad05535c43c85982dd7fe0208633ce4975ceb102f8a3799400d","edit-distance-0.2.2.1-50b8e1485c1ff01d540cdd1aa590c5d92e9b3c94c8538c733e03d22f5d7e351e","filepath-1.4.2.1","hackage-security-0.6.0.1-inplace","hashable-1.3.3.0-ad1181a209aa37281dd31f62d21469418263e4fe1bbca8f2722f194defb868f6","lukko-0.1.1.3-517002f0b210062f4e6ab03f0458ca2f5b7bfdd7f33c0a8d4df9c9bec797413f","mtl-2.2.2","network-uri-2.6.4.1-74661a9098fb28a4f280e239c0c875f92e2d82856b86af222ea7661126e8bc3f","parsec-3.1.14.0","pretty-1.1.3.6","process-1.6.9.0","random-1.2.0-00764634d8a1b2874f13ca39a40464d39214f25dd481d12f12f5c40b7f887c49","regex-base-0.94.0.1-ff8164d6ad36836390efbf15f7317bb988cb4208316f2c7841d59d899c865eaf","regex-posix-0.96.0.1-72585e261c0ecf752820fa53f859ec4ccf7745e5822441b073c0cb1ac2276a07","resolv-0.1.2.0-d6b4fb5161bd01de4f6fa4fb792d43776d825fb0ffe766aeed40cb88444683fc","stm-2.5.0.0","tar-0.5.1.1-0bd85e90ebf89c52e78480bbecaf5ad02969a024727ef8111c090654f0e411e2","text-1.2.4.0","time-1.9.3","transformers-0.5.6.2","unix-2.7.2.2","zlib-0.6.2.3-737348e0ac53db8d94cfe31351192c9de7b9c2e3ab4308187f0012c2eee81a64"],"exe-depends":[],"component-name":"exe:cabal","bin-file":"/home/tapas/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.8.4/cabal-install-3.6.2.0/x/cabal/build/cabal/cabal"},{"type":"pre-existing","id":"containers-0.6.2.1","pkg-name":"containers","pkg-version":"0.6.2.1","depends":["array-0.5.4.0","base-4.13.0.0","deepseq-1.4.4.0"]},{"type":"configured","id":"cryptohash-sha256-0.11.102.0-ecb5cca3663b9524a6b30ab33ce0061346401ec1f94afa114cc152601b84a79e","pkg-name":"cryptohash-sha256","pkg-version":"0.11.102.0","flags":{"exe":false,"use-cbits":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"797a0af7b8a0e654cbddd3df6b9de02d2cbfcb2292cf001399ab53910fbbb76c","pkg-src-sha256":"8ad6e9875a9128f6cd66d65d80f9f85dd0559c73ac00bb37f71fbee820d10519","depends":["base-4.13.0.0","bytestring-0.10.10.1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.4.4.0","pkg-name":"deepseq","pkg-version":"1.4.4.0","depends":["array-0.5.4.0","base-4.13.0.0"]},{"type":"pre-existing","id":"directory-1.3.6.0","pkg-name":"directory","pkg-version":"1.3.6.0","depends":["base-4.13.0.0","filepath-1.4.2.1","time-1.9.3","unix-2.7.2.2"]},{"type":"configured","id":"echo-0.1.4-9c1f3a8af8235ad05535c43c85982dd7fe0208633ce4975ceb102f8a3799400d","pkg-name":"echo","pkg-version":"0.1.4","flags":{"example":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42","pkg-src-sha256":"c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43","depends":["base-4.13.0.0","process-1.6.9.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ed25519-0.0.5.0-3c827a886147bcd76622b6d3edb2c4ce11d32d2cc77c7a407f27f4d80ffdb697","pkg-name":"ed25519","pkg-version":"0.0.5.0","flags":{"no-donna":true,"test-doctests":true,"test-hlint":true,"test-properties":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"fb98b08de467d51f788f8bd9391f0e9ab9bd4d8dfc264296b895ffea0d822dfa","pkg-src-sha256":"d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d","depends":["base-4.13.0.0","bytestring-0.10.10.1","ghc-prim-0.5.3"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"edit-distance-0.2.2.1-50b8e1485c1ff01d540cdd1aa590c5d92e9b3c94c8538c733e03d22f5d7e351e","pkg-name":"edit-distance","pkg-version":"0.2.2.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee","pkg-src-sha256":"3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a","depends":["array-0.5.4.0","base-4.13.0.0","containers-0.6.2.1","random-1.2.0-00764634d8a1b2874f13ca39a40464d39214f25dd481d12f12f5c40b7f887c49"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"filepath-1.4.2.1","pkg-name":"filepath","pkg-version":"1.4.2.1","depends":["base-4.13.0.0"]},{"type":"pre-existing","id":"ghc-boot-th-8.8.4","pkg-name":"ghc-boot-th","pkg-version":"8.8.4","depends":["base-4.13.0.0"]},{"type":"pre-existing","id":"ghc-prim-0.5.3","pkg-name":"ghc-prim","pkg-version":"0.5.3","depends":["rts"]},{"type":"configured","id":"hackage-security-0.6.0.1-inplace","pkg-name":"hackage-security","pkg-version":"0.6.0.1","flags":{"base48":true,"lukko":true,"mtl21":false,"old-directory":false,"use-network-uri":true},"style":"inplace","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ae6cdda307237c0b7efeebfb0bf23ff8a26c30f5ba295dce5e4f81ef6e63fff6","pkg-src-sha256":"9162b473af5a21c1ff32a50b972b9acf51f4c901604a22cf08a2dccac2f82f17","dist-dir":"/home/tapas/haskell/cabal/dist-newstyle/build/x86_64-linux/ghc-8.8.4/hackage-security-0.6.0.1","depends":["Cabal-3.6.2.0-inplace","base-4.13.0.0","base16-bytestring-1.0.1.0-7012dade26da6d9b1d19ca2cf95148bf35a7e0ea382d566d5646f82e667be147","base64-bytestring-1.2.1.0-0cf4b8b273c4e23586ab1eecc01e5fbd9d12067d68634ff113df996e89264e35","bytestring-0.10.10.1","containers-0.6.2.1","cryptohash-sha256-0.11.102.0-ecb5cca3663b9524a6b30ab33ce0061346401ec1f94afa114cc152601b84a79e","directory-1.3.6.0","ed25519-0.0.5.0-3c827a886147bcd76622b6d3edb2c4ce11d32d2cc77c7a407f27f4d80ffdb697","filepath-1.4.2.1","ghc-prim-0.5.3","lukko-0.1.1.3-517002f0b210062f4e6ab03f0458ca2f5b7bfdd7f33c0a8d4df9c9bec797413f","mtl-2.2.2","network-3.1.2.2-252ed935ce669c59353b7e22b4963aa9a2aec2afed28f38f914470b684fc93cb","network-uri-2.6.4.1-74661a9098fb28a4f280e239c0c875f92e2d82856b86af222ea7661126e8bc3f","parsec-3.1.14.0","pretty-1.1.3.6","tar-0.5.1.1-0bd85e90ebf89c52e78480bbecaf5ad02969a024727ef8111c090654f0e411e2","template-haskell-2.15.0.0","time-1.9.3","transformers-0.5.6.2","zlib-0.6.2.3-737348e0ac53db8d94cfe31351192c9de7b9c2e3ab4308187f0012c2eee81a64"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hashable-1.3.3.0-ad1181a209aa37281dd31f62d21469418263e4fe1bbca8f2722f194defb868f6","pkg-name":"hashable","pkg-version":"1.3.3.0","flags":{"integer-gmp":true,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"7f3b67151162a1dfe8472dc30430af98ed5470801d3f4b6c9b8d7a7443c920d4","pkg-src-sha256":"99a578e58fb6a869593841e4b3184f5b52c921bcb0d661d2b3a06e6526cb85dc","depends":["base-4.13.0.0","bytestring-0.10.10.1","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0","text-1.2.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"hsc2hs-0.68.7-e-hsc2hs-f6f788927ffeeb5d8adadd6f30814abea8aa3565f6db7ef56781774e99834fce","pkg-name":"hsc2hs","pkg-version":"0.68.7","flags":{"in-ghc-tree":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4a0f6860a17e7c245646975e3c2981416afdcb6a7b3553c31005eb3641a7f55b","pkg-src-sha256":"fd7915e41e3ed3bc7750fee0e8add2b4f32dcac8b7c544cfdf5542293223894a","depends":["base-4.13.0.0","containers-0.6.2.1","directory-1.3.6.0","filepath-1.4.2.1","process-1.6.9.0"],"exe-depends":[],"component-name":"exe:hsc2hs","bin-file":"/home/tapas/.cabal/store/ghc-8.8.4/hsc2hs-0.68.7-e-hsc2hs-f6f788927ffeeb5d8adadd6f30814abea8aa3565f6db7ef56781774e99834fce/bin/hsc2hs"},{"type":"pre-existing","id":"integer-gmp-1.0.2.0","pkg-name":"integer-gmp","pkg-version":"1.0.2.0","depends":["ghc-prim-0.5.3"]},{"type":"configured","id":"lukko-0.1.1.3-517002f0b210062f4e6ab03f0458ca2f5b7bfdd7f33c0a8d4df9c9bec797413f","pkg-name":"lukko","pkg-version":"0.1.1.3","flags":{"ofd-locking":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2db49b6cb6632a46ec446fc51870cd0d49e0a66d1c5d2063f46ae52a100eb856","pkg-src-sha256":"a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f","depends":["base-4.13.0.0"],"exe-depends":["hsc2hs-0.68.7-e-hsc2hs-f6f788927ffeeb5d8adadd6f30814abea8aa3565f6db7ef56781774e99834fce"],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.2.2","pkg-name":"mtl","pkg-version":"2.2.2","depends":["base-4.13.0.0","transformers-0.5.6.2"]},{"type":"configured","id":"network-3.1.2.2-252ed935ce669c59353b7e22b4963aa9a2aec2afed28f38f914470b684fc93cb","pkg-name":"network","pkg-version":"3.1.2.2","flags":{"devel":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"218e2968e03d99c40f32a2ef7cc41a848969096ba1c780ff2e57997a00246b06","pkg-src-sha256":"55012c0b22f9c7548b1f7b3bacc2c6ec7058c7f92238a69561528f1a0fa60eb6","components":{"lib":{"depends":["base-4.13.0.0","bytestring-0.10.10.1","deepseq-1.4.4.0","directory-1.3.6.0"],"exe-depends":["hsc2hs-0.68.7-e-hsc2hs-f6f788927ffeeb5d8adadd6f30814abea8aa3565f6db7ef56781774e99834fce"]}}},{"type":"configured","id":"network-uri-2.6.4.1-74661a9098fb28a4f280e239c0c875f92e2d82856b86af222ea7661126e8bc3f","pkg-name":"network-uri","pkg-version":"2.6.4.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a4765164ed0a2d1668446eb2e03460ce98645fbf083598c690846af79b7de10d","pkg-src-sha256":"57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584","depends":["base-4.13.0.0","deepseq-1.4.4.0","parsec-3.1.14.0","template-haskell-2.15.0.0","th-compat-0.1.3-ce4fcc960f1a9b2e575107a112c50af3442f1709b1eac7b202540cd819c83744"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"parsec-3.1.14.0","pkg-name":"parsec","pkg-version":"3.1.14.0","depends":["base-4.13.0.0","bytestring-0.10.10.1","mtl-2.2.2","text-1.2.4.0"]},{"type":"pre-existing","id":"pretty-1.1.3.6","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.13.0.0","deepseq-1.4.4.0","ghc-prim-0.5.3"]},{"type":"pre-existing","id":"process-1.6.9.0","pkg-name":"process","pkg-version":"1.6.9.0","depends":["base-4.13.0.0","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","unix-2.7.2.2"]},{"type":"configured","id":"random-1.2.0-00764634d8a1b2874f13ca39a40464d39214f25dd481d12f12f5c40b7f887c49","pkg-name":"random","pkg-version":"1.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"195506fedaa7c31c1fa2a747e9b49b4a5d1f0b09dd8f1291f23a771656faeec3","pkg-src-sha256":"e4519cf7c058bfd5bdbe4acc782284acc9e25e74487208619ca83cbcd63fb9de","depends":["base-4.13.0.0","bytestring-0.10.10.1","deepseq-1.4.4.0","mtl-2.2.2","splitmix-0.1.0.3-01ccb9e40655e60a16f8df99e9c7ed102c60657b8bef9f5184f2cbf3d7c8f298"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-base-0.94.0.1-ff8164d6ad36836390efbf15f7317bb988cb4208316f2c7841d59d899c865eaf","pkg-name":"regex-base","pkg-version":"0.94.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"35ff2d13c0e3ac364469c19e4c7c8775f5148977d8fcef58a424df0a10a53fa7","pkg-src-sha256":"71b1d96fff201f31fe8cd4532f056aca03a21cd486890256dc3007dd73adedd9","depends":["array-0.5.4.0","base-4.13.0.0","bytestring-0.10.10.1","containers-0.6.2.1","mtl-2.2.2","text-1.2.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"regex-posix-0.96.0.1-72585e261c0ecf752820fa53f859ec4ccf7745e5822441b073c0cb1ac2276a07","pkg-name":"regex-posix","pkg-version":"0.96.0.1","flags":{"_regex-posix-clib":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b6421e5356766b0c0a78b6094ae2e3a6259b42c147b717283c03c1cb09163dca","pkg-src-sha256":"c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c","depends":["array-0.5.4.0","base-4.13.0.0","bytestring-0.10.10.1","containers-0.6.2.1","regex-base-0.94.0.1-ff8164d6ad36836390efbf15f7317bb988cb4208316f2c7841d59d899c865eaf"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"resolv-0.1.2.0-d6b4fb5161bd01de4f6fa4fb792d43776d825fb0ffe766aeed40cb88444683fc","pkg-name":"resolv","pkg-version":"0.1.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"25c6e802dc342307e78e5e60433f5e20d03aa783b08b009a399100eb9b6ec529","pkg-src-sha256":"81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671","components":{"lib":{"depends":["base-4.13.0.0","base16-bytestring-1.0.1.0-7012dade26da6d9b1d19ca2cf95148bf35a7e0ea382d566d5646f82e667be147","binary-0.8.7.0","bytestring-0.10.10.1","containers-0.6.2.1"],"exe-depends":[]}}},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0","depends":[]},{"type":"configured","id":"splitmix-0.1.0.3-01ccb9e40655e60a16f8df99e9c7ed102c60657b8bef9f5184f2cbf3d7c8f298","pkg-name":"splitmix","pkg-version":"0.1.0.3","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"fc3aae74c467f4b608050bef53aec17904a618731df9407e655d8f3bf8c32d5c","pkg-src-sha256":"46009f4b000c9e6613377767b8718bf38476469f2a8e2162d98cc246882d5a35","depends":["base-4.13.0.0","deepseq-1.4.4.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"stm-2.5.0.0","pkg-name":"stm","pkg-version":"2.5.0.0","depends":["array-0.5.4.0","base-4.13.0.0"]},{"type":"configured","id":"tar-0.5.1.1-0bd85e90ebf89c52e78480bbecaf5ad02969a024727ef8111c090654f0e411e2","pkg-name":"tar","pkg-version":"0.5.1.1","flags":{"old-bytestring":false,"old-time":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"94ded05718fe75b88c98e7113feeb9fca50688a7e59b6aefd80a6f48438c5062","pkg-src-sha256":"b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de","depends":["array-0.5.4.0","base-4.13.0.0","bytestring-0.10.10.1","containers-0.6.2.1","deepseq-1.4.4.0","directory-1.3.6.0","filepath-1.4.2.1","time-1.9.3"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.15.0.0","pkg-name":"template-haskell","pkg-version":"2.15.0.0","depends":["base-4.13.0.0","ghc-boot-th-8.8.4","pretty-1.1.3.6"]},{"type":"pre-existing","id":"text-1.2.4.0","pkg-name":"text","pkg-version":"1.2.4.0","depends":["array-0.5.4.0","base-4.13.0.0","binary-0.8.7.0","bytestring-0.10.10.1","deepseq-1.4.4.0","ghc-prim-0.5.3","integer-gmp-1.0.2.0","template-haskell-2.15.0.0"]},{"type":"configured","id":"th-compat-0.1.3-ce4fcc960f1a9b2e575107a112c50af3442f1709b1eac7b202540cd819c83744","pkg-name":"th-compat","pkg-version":"0.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"a16dd922947a6877defe52c4c38d1ab48ed3f85a826930f5d1a568741d619993","pkg-src-sha256":"6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6","depends":["base-4.13.0.0","template-haskell-2.15.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"time-1.9.3","pkg-name":"time","pkg-version":"1.9.3","depends":["base-4.13.0.0","deepseq-1.4.4.0"]},{"type":"pre-existing","id":"transformers-0.5.6.2","pkg-name":"transformers","pkg-version":"0.5.6.2","depends":["base-4.13.0.0"]},{"type":"pre-existing","id":"unix-2.7.2.2","pkg-name":"unix","pkg-version":"2.7.2.2","depends":["base-4.13.0.0","bytestring-0.10.10.1","time-1.9.3"]},{"type":"configured","id":"zlib-0.6.2.3-737348e0ac53db8d94cfe31351192c9de7b9c2e3ab4308187f0012c2eee81a64","pkg-name":"zlib","pkg-version":"0.6.2.3","flags":{"bundled-c-zlib":false,"non-blocking-ffi":false,"pkg-config":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"28f4d460c260e074cab833625454564b9783a3389b7bb91fd54da2790b39592c","pkg-src-sha256":"807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88","depends":["base-4.13.0.0","bytestring-0.10.10.1"],"exe-depends":[],"component-name":"lib"}]} \ No newline at end of file diff --git a/cabal-benchmarks/cabal-benchmarks.cabal b/cabal-benchmarks/cabal-benchmarks.cabal index b06e97271a2..f046aa7a747 100644 --- a/cabal-benchmarks/cabal-benchmarks.cabal +++ b/cabal-benchmarks/cabal-benchmarks.cabal @@ -1,6 +1,6 @@ name: cabal-benchmarks version: 3 -copyright: 2003-2020, Cabal Development Team (see AUTHORS file) +copyright: 2003-2021, Cabal Development Team (see AUTHORS file) license: BSD3 license-file: LICENSE author: Cabal Development Team diff --git a/cabal-dev-scripts/cabal-dev-scripts.cabal b/cabal-dev-scripts/cabal-dev-scripts.cabal index dc9e08f0506..c5417e57db9 100644 --- a/cabal-dev-scripts/cabal-dev-scripts.cabal +++ b/cabal-dev-scripts/cabal-dev-scripts.cabal @@ -18,11 +18,11 @@ executable gen-spdx ghc-options: -Wall build-depends: , aeson ^>=1.4.1.0 || ^>=1.5.2.0 - , base >=4.10 && <4.15 + , base >=4.10 && <4.16 , bytestring , containers , Diff ^>=0.4 - , lens ^>=4.18.1 || ^>=4.19.1 + , lens ^>=4.18.1 || ^>=4.19.1 || ^>=5.0.1 , optparse-applicative ^>=0.15.1.0 || ^>=0.16.0.0 , text , zinza ^>=0.2 @@ -35,11 +35,11 @@ executable gen-spdx-exc ghc-options: -Wall build-depends: , aeson ^>=1.4.1.0 || ^>=1.5.2.0 - , base >=4.10 && <4.15 + , base >=4.10 && <4.16 , bytestring , containers , Diff ^>=0.4 - , lens ^>=4.18.1 || ^>=4.19.1 + , lens ^>=4.18.1 || ^>=4.19.1 || ^>=5.0.1 , optparse-applicative ^>=0.15.1.0 || ^>=0.16.0.0 , text , zinza ^>=0.2 diff --git a/cabal-dev-scripts/src/GenPathsModule.hs b/cabal-dev-scripts/src/GenPathsModule.hs index c3f54082f3b..e4b930635c4 100644 --- a/cabal-dev-scripts/src/GenPathsModule.hs +++ b/cabal-dev-scripts/src/GenPathsModule.hs @@ -27,7 +27,6 @@ $(capture "decls" [d| , zVersionDigits :: String , zSupportsCpp :: Bool , zSupportsNoRebindableSyntax :: Bool - , zSupportsNoMissingSafeHaskellMode :: Bool , zAbsolute :: Bool , zRelocatable :: Bool , zIsWindows :: Bool diff --git a/cabal-dev-scripts/src/GenValidate.hs b/cabal-dev-scripts/src/GenValidate.hs index 9956c42fff5..d12b999b4ee 100644 --- a/cabal-dev-scripts/src/GenValidate.hs +++ b/cabal-dev-scripts/src/GenValidate.hs @@ -22,17 +22,17 @@ main = do -- this shouldn't fail (run-time errors are due bugs in zinza) w <- run Z { zJobs = - [ GhcJob "9.0.1" False "--lib-only" False ["8.8.3"] libSteps - , GhcJob "8.10.1" False "" False ["8.8.3"] defSteps - , GhcJob "8.8.3" False "--solver-benchmarks" False [] defSteps - , GhcJob "8.6.5" False "--complete-hackage-tests" False ["8.8.3"] defSteps - , GhcJob "8.4.4" False "" False ["8.8.3"] defSteps - , GhcJob "8.2.2" False "" False ["8.8.3"] defSteps - , GhcJob "8.0.2" False "" False ["8.8.3"] defSteps - , GhcJob "7.10.3" False "" False ["8.8.3"] defSteps - , GhcJob "7.8.4" False "--lib-only" False ["8.8.3"] libSteps - , GhcJob "7.6.3" True "--lib-only" False ["8.8.3"] libSteps - , GhcJob "8.8.3" True "--lib-only" True ["8.8.3"] $ + [ GhcJob "9.0.1" False "--lib-only" False ["8.8.4"] libSteps + , GhcJob "8.10.4" False "" False ["8.8.4"] defSteps + , GhcJob "8.8.4" False "--solver-benchmarks" False [] defSteps + , GhcJob "8.6.5" False "--complete-hackage-tests" False ["8.8.4"] defSteps + , GhcJob "8.4.4" False "" False ["8.8.4"] defSteps + , GhcJob "8.2.2" False "" False ["8.8.4"] defSteps + , GhcJob "8.0.2" False "" False ["8.8.4"] defSteps + , GhcJob "7.10.3" False "" False ["8.8.4"] defSteps + , GhcJob "7.8.4" False "--lib-only" False ["8.8.4"] libSteps + , GhcJob "7.6.3" True "--lib-only" False ["8.8.4"] libSteps + , GhcJob "8.8.4" True "--lib-only" True ["8.8.4"] $ libSteps ++ [ "lib-suite-extras --extra-hc /opt/ghc/7.0.4/bin/ghc-7.0.4" , "lib-suite-extras --extra-hc /opt/ghc/7.2.2/bin/ghc-7.2.2" @@ -40,12 +40,12 @@ main = do ] ] , zMacosJobs = - [ mkMacGhcJob "8.8.3" "https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-x86_64-apple-darwin.tar.xz" + [ mkMacGhcJob "8.8.4" "https://downloads.haskell.org/~ghc/8.8.4/ghc-8.8.4-x86_64-apple-darwin.tar.xz" , mkMacGhcJob "8.6.5" "https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-apple-darwin.tar.xz" ] , zWinJobs = [ mkWinGhcJob "8.6.5" Nothing [] - , mkWinGhcJob "8.10.3" (Just "8.10.3") [] + , mkWinGhcJob "8.10.4" (Just "8.10.4") [] ] , zMangleVersion = map mangleChar , zOr = (||) @@ -124,7 +124,7 @@ mkMacGhcJob v u = MacGhcJob { mgjVersion = v , mgjGhcUrl = u , mgjFlags = "" - , mgjNeeds = ["8.8.3" | not $ "8.8" `isPrefixOf` v ] + , mgjNeeds = ["8.8.4" | not $ "8.8" `isPrefixOf` v ] , mgjSteps = defSteps } diff --git a/cabal-dev-scripts/src/GenValidateDockerfile.hs b/cabal-dev-scripts/src/GenValidateDockerfile.hs index 3ac23105382..b7cc44bdea2 100644 --- a/cabal-dev-scripts/src/GenValidateDockerfile.hs +++ b/cabal-dev-scripts/src/GenValidateDockerfile.hs @@ -40,8 +40,8 @@ main = withIO $ \version src tgt -> do params :: Map.Map String Z params = Map.fromList - [ pair "8.10.1" $ Z "ghc-8.10.1" "8.10.1-bionic" False True False True "" - , pair "8.8.3" $ Z "ghc-8.8.3" "8.8.3-bionic" False True False True "--doctest --solver-benchmarks --complete-hackage" + [ pair "8.10.4" $ Z "ghc-8.10.4" "8.10.4-bionic" False True False True "" + , pair "8.8.4" $ Z "ghc-8.8.4" "8.8.4-bionic" False True False True "--doctest --solver-benchmarks --complete-hackage" , pair "8.6.5" $ Z "ghc-8.6.5" "8.6.5-bionic" False True False True "" , pair "8.4.4" $ Z "ghc-8.4.4" "8.4.4-bionic" False True False True "" , pair "8.2.2" $ Z "ghc-8.2.2" "8.2.2-bionic" True True False True "" diff --git a/cabal-install/cabal-install-solver/cabal-install-solver.cabal b/cabal-install/cabal-install-solver/cabal-install-solver.cabal index 2fc397ca600..b8e2f9fe704 100644 --- a/cabal-install/cabal-install-solver/cabal-install-solver.cabal +++ b/cabal-install/cabal-install-solver/cabal-install-solver.cabal @@ -1,6 +1,6 @@ cabal-version: 2.2 name: cabal-install-solver -version: 3.5.0.0 +version: 3.6.0.0 synopsis: The command-line interface for Cabal and Hackage. description: The solver component used in cabal-install command-line program @@ -11,7 +11,7 @@ license: BSD-3-Clause license-file: LICENSE author: Cabal Development Team (see AUTHORS file) maintainer: Cabal Development Team -copyright: 2003-2020, Cabal Development Team +copyright: 2003-2021, Cabal Development Team category: Distribution build-type: Simple @@ -106,7 +106,7 @@ library , base >=4.8 && <4.15 , binary >=0.7.3 && <0.9 , bytestring >=0.10.6.0 && <0.12 - , Cabal ^>=3.5 + , Cabal ^>=3.6 , containers >=0.5.6.2 && <0.7 , filepath ^>=1.4.0.0 , mtl >=2.0 && <2.3 diff --git a/cabal-install/cabal-install-solver/src/Distribution/Solver/Modular/Preference.hs b/cabal-install/cabal-install-solver/src/Distribution/Solver/Modular/Preference.hs index d25ef846356..353d88b4dde 100644 --- a/cabal-install/cabal-install-solver/src/Distribution/Solver/Modular/Preference.hs +++ b/cabal-install/cabal-install-solver/src/Distribution/Solver/Modular/Preference.hs @@ -2,7 +2,7 @@ -- | Reordering or pruning the tree in order to prefer or make certain choices. module Distribution.Solver.Modular.Preference ( avoidReinstalls - , deferSetupChoices + , deferSetupExeChoices , deferWeakFlagChoices , enforceManualFlags , enforcePackageConstraints @@ -400,17 +400,18 @@ preferBaseGoalChoice = trav go isBase (Goal (P (Q _pp pn)) _) = unPN pn == "base" isBase _ = False --- | Deal with setup dependencies after regular dependencies, so that we can --- will link setup dependencies against package dependencies when possible -deferSetupChoices :: Tree d c -> Tree d c -deferSetupChoices = trav go +-- | Deal with setup and build-tool-depends dependencies after regular dependencies, +-- so we will link setup/exe dependencies against package dependencies when possible +deferSetupExeChoices :: Tree d c -> Tree d c +deferSetupExeChoices = trav go where - go (GoalChoiceF rdm xs) = GoalChoiceF rdm (P.preferByKeys noSetup xs) + go (GoalChoiceF rdm xs) = GoalChoiceF rdm (P.preferByKeys noSetupOrExe xs) go x = x - noSetup :: Goal QPN -> Bool - noSetup (Goal (P (Q (PackagePath _ns (QualSetup _)) _)) _) = False - noSetup _ = True + noSetupOrExe :: Goal QPN -> Bool + noSetupOrExe (Goal (P (Q (PackagePath _ns (QualSetup _)) _)) _) = False + noSetupOrExe (Goal (P (Q (PackagePath _ns (QualExe _ _)) _)) _) = False + noSetupOrExe _ = True -- | Transformation that tries to avoid making weak flag choices early. -- Weak flags are trivial flags (not influencing dependencies) or such diff --git a/cabal-install/cabal-install-solver/src/Distribution/Solver/Modular/Solver.hs b/cabal-install/cabal-install-solver/src/Distribution/Solver/Modular/Solver.hs index 83c597cd9e6..fe4b6160e39 100644 --- a/cabal-install/cabal-install-solver/src/Distribution/Solver/Modular/Solver.hs +++ b/cabal-install/cabal-install-solver/src/Distribution/Solver/Modular/Solver.hs @@ -117,7 +117,7 @@ solve sc cinfo idx pkgConfigDB userPrefs userConstraints userGoals = sortGoals = case goalOrder sc of Nothing -> goalChoiceHeuristics . heuristicsTree . - P.deferSetupChoices . + P.deferSetupExeChoices . P.deferWeakFlagChoices . P.preferBaseGoalChoice Just order -> P.firstGoal . diff --git a/cabal-install/cabal-install-solver/src/Distribution/Solver/Types/PackageIndex.hs b/cabal-install/cabal-install-solver/src/Distribution/Solver/Types/PackageIndex.hs index 0963d284346..5436788a828 100644 --- a/cabal-install/cabal-install-solver/src/Distribution/Solver/Types/PackageIndex.hs +++ b/cabal-install/cabal-install-solver/src/Distribution/Solver/Types/PackageIndex.hs @@ -50,11 +50,11 @@ module Distribution.Solver.Types.PackageIndex ( import Prelude () import Distribution.Solver.Compat.Prelude hiding (lookup) -import Control.Exception (assert) import qualified Data.Map as Map import Data.List (isInfixOf) import qualified Data.List.NonEmpty as NE +import Distribution.Client.Utils.Assertion ( expensiveAssert ) import Distribution.Package ( PackageName, unPackageName, PackageIdentifier(..) , Package(..), packageName, packageVersion ) @@ -110,7 +110,7 @@ invariant (PackageIndex m) = all (uncurry goodBucket) (Map.toList m) -- mkPackageIndex :: Package pkg => Map PackageName [pkg] -> PackageIndex pkg -mkPackageIndex index = assert (invariant (PackageIndex index)) +mkPackageIndex index = expensiveAssert (invariant (PackageIndex index)) (PackageIndex index) internalError :: String -> a @@ -157,7 +157,7 @@ fromList pkgs = mkPackageIndex -- merge :: Package pkg => PackageIndex pkg -> PackageIndex pkg -> PackageIndex pkg merge i1@(PackageIndex m1) i2@(PackageIndex m2) = - assert (invariant i1 && invariant i2) $ + expensiveAssert (invariant i1 && invariant i2) $ mkPackageIndex (Map.unionWith mergeBuckets m1 m2) @@ -178,7 +178,7 @@ mergeBuckets xs@(x:xs') ys@(y:ys') = -- override :: Package pkg => PackageIndex pkg -> PackageIndex pkg -> PackageIndex pkg override i1@(PackageIndex m1) i2@(PackageIndex m2) = - assert (invariant i1 && invariant i2) $ + expensiveAssert (invariant i1 && invariant i2) $ mkPackageIndex (Map.unionWith (\_l r -> r) m1 m2) -- | Inserts a single package into the index. diff --git a/cabal-install/cabal-install.cabal b/cabal-install/cabal-install.cabal index 738ecb60760..0faa885fb1c 100644 --- a/cabal-install/cabal-install.cabal +++ b/cabal-install/cabal-install.cabal @@ -4,7 +4,7 @@ Cabal-Version: >= 1.10 -- To update this file, edit 'cabal-install.cabal.pp' and run -- 'make cabal-install-prod' in the project's root folder. Name: cabal-install -Version: 3.5.0.0 +Version: 3.6.2.1 Synopsis: The command-line interface for Cabal and Hackage. Description: The \'cabal\' command-line program simplifies the process of managing @@ -270,7 +270,7 @@ executable cabal base16-bytestring >= 0.1.1 && < 1.1.0.0, binary >= 0.7.3 && < 0.9, bytestring >= 0.10.6.0 && < 0.12, - Cabal == 3.5.*, + Cabal == 3.6.*, containers >= 0.5.6.2 && < 0.7, cryptohash-sha256 >= 0.11 && < 0.12, deepseq >= 1.4.1.1 && < 1.5, diff --git a/cabal-install/cabal-install.cabal.dev b/cabal-install/cabal-install.cabal.dev index 287400253ee..3e62181310d 100644 --- a/cabal-install/cabal-install.cabal.dev +++ b/cabal-install/cabal-install.cabal.dev @@ -4,7 +4,7 @@ Cabal-Version: 2.0 -- To update this file, edit 'cabal-install.cabal.pp' and run -- 'make cabal-install-prod' in the project's root folder. Name: cabal-install -Version: 3.5.0.0 +Version: 3.6.2.0 Synopsis: The command-line interface for Cabal and Hackage. Description: The \'cabal\' command-line program simplifies the process of managing @@ -214,8 +214,8 @@ library cabal-lib-client base >= 4.8 && < 4.15, base16-bytestring >= 0.1.1 && < 1.1.0.0, binary >= 0.7.3 && < 0.9, - bytestring >= 0.10.6.0 && < 0.11, - Cabal == 3.5.*, + bytestring >= 0.10.6.0 && < 0.12, + Cabal == 3.6.*, containers >= 0.5.6.2 && < 0.7, cryptohash-sha256 >= 0.11 && < 0.12, deepseq >= 1.4.1.1 && < 1.5, diff --git a/cabal-install/cabal-install.cabal.prod b/cabal-install/cabal-install.cabal.prod index 70bc12458ab..37607a448f4 100644 --- a/cabal-install/cabal-install.cabal.prod +++ b/cabal-install/cabal-install.cabal.prod @@ -4,7 +4,7 @@ Cabal-Version: >= 1.10 -- To update this file, edit 'cabal-install.cabal.pp' and run -- 'make cabal-install-prod' in the project's root folder. Name: cabal-install -Version: 3.5.0.0 +Version: 3.6.2.0 Synopsis: The command-line interface for Cabal and Hackage. Description: The \'cabal\' command-line program simplifies the process of managing @@ -269,8 +269,8 @@ executable cabal base >= 4.8 && < 4.15, base16-bytestring >= 0.1.1 && < 1.1.0.0, binary >= 0.7.3 && < 0.9, - bytestring >= 0.10.6.0 && < 0.11, - Cabal == 3.5.*, + bytestring >= 0.10.6.0 && < 0.12, + Cabal == 3.6.*, containers >= 0.5.6.2 && < 0.7, cryptohash-sha256 >= 0.11 && < 0.12, deepseq >= 1.4.1.1 && < 1.5, diff --git a/cabal-install/cabal-install.cabal.zinza b/cabal-install/cabal-install.cabal.zinza index f295d0b3893..f16389ecfc8 100644 --- a/cabal-install/cabal-install.cabal.zinza +++ b/cabal-install/cabal-install.cabal.zinza @@ -9,7 +9,7 @@ Cabal-Version: >= 1.10 -- To update this file, edit 'cabal-install.cabal.pp' and run -- 'make cabal-install-prod' in the project's root folder. Name: cabal-install -Version: 3.5.0.0 +Version: 3.6.2.0 {# NOTE: when updating build-depends, don't forget to update version regexps in bootstrap.sh. #} {% defblock buildDepends %} build-depends: @@ -18,8 +18,8 @@ Version: 3.5.0.0 base >= 4.8 && < 4.15, base16-bytestring >= 0.1.1 && < 1.1.0.0, binary >= 0.7.3 && < 0.9, - bytestring >= 0.10.6.0 && < 0.11, - Cabal == 3.5.*, + bytestring >= 0.10.6.0 && < 0.12, + Cabal == 3.6.*, containers >= 0.5.6.2 && < 0.7, cryptohash-sha256 >= 0.11 && < 0.12, deepseq >= 1.4.1.1 && < 1.5, diff --git a/cabal-install/changelog b/cabal-install/changelog index bf1f18f9153..5612b44f112 100644 --- a/cabal-install/changelog +++ b/cabal-install/changelog @@ -1,5 +1,14 @@ -*-change-log-*- +3.6.2.0 Emily Pillmore October 2021 + * See https://github.com/haskell/cabal/blob/master/release-notes/cabal-install-3.6.2.0.md + +3.6.0.0 Emily Pillmore August 2021 + * See https://github.com/haskell/cabal/blob/master/release-notes/cabal-install-3.6.0.0.md + +3.4.0.0 Oleg Grenrus February 2021 + * See https://github.com/haskell/cabal/blob/master/release-notes/cabal-install-3.4.0.0.md + 3.2.0.0 Herbert Valerio Riedel April 2020 * `v2-build` (and other `v2-`prefixed commands) now accept the `--benchmark-option(s)` flags, which pass options to benchmark executables diff --git a/cabal-install/src/Distribution/Client/CmdConfigure.hs b/cabal-install/src/Distribution/Client/CmdConfigure.hs index 1c9eea81b85..bcf341b6c1f 100644 --- a/cabal-install/src/Distribution/Client/CmdConfigure.hs +++ b/cabal-install/src/Distribution/Client/CmdConfigure.hs @@ -107,17 +107,22 @@ configureAction flags@NixStyleFlags {..} _extraArgs globalFlags = do if exists then firstFreeBackup' (i + 1) else return backup - - -- If cabal.project.local already exists, back up to cabal.project.local~[n] - exists <- doesFileExist localFile - when exists $ do - backup <- firstFreeBackup - notice verbosity $ - quote (takeFileName localFile) <> " already exists, backing it up to " - <> quote (takeFileName backup) <> "." - copyFile localFile backup - writeProjectLocalExtraConfig (distDirLayout baseCtx) - cliConfig + dryRun = buildSettingDryRun (buildSettings baseCtx) + || buildSettingOnlyDownload (buildSettings baseCtx) + + if dryRun + then notice verbosity "Config file not written due to flag(s)." + else do + -- If cabal.project.local already exists, back up to cabal.project.local~[n] + exists <- doesFileExist localFile + when exists $ do + backup <- firstFreeBackup + notice verbosity $ + quote (takeFileName localFile) <> " already exists, backing it up to " + <> quote (takeFileName backup) <> "." + copyFile localFile backup + writeProjectLocalExtraConfig (distDirLayout baseCtx) + cliConfig buildCtx <- runProjectPreBuildPhase verbosity baseCtx $ \elaboratedPlan -> diff --git a/cabal-install/src/Distribution/Client/CmdExec.hs b/cabal-install/src/Distribution/Client/CmdExec.hs index 1d47222bc9a..d0090b9d5a6 100644 --- a/cabal-install/src/Distribution/Client/CmdExec.hs +++ b/cabal-install/src/Distribution/Client/CmdExec.hs @@ -35,6 +35,7 @@ import Distribution.Client.ProjectOrchestration , distDirLayout , commandLineFlagsToProjectConfig , ProjectBaseContext(..) + , BuildTimeSettings(..) ) import Distribution.Client.ProjectPlanOutput ( updatePostBuildProjectStatus @@ -81,6 +82,7 @@ import Distribution.Simple.Utils , createDirectoryIfMissingVerbose , withTempDirectory , wrapText + , notice ) import Distribution.Verbosity ( normal @@ -185,7 +187,12 @@ execAction flags@NixStyleFlags {..} extraArgs globalFlags = do argOverrides' program invocation = programInvocation program' args - runProgramInvocation verbosity invocation + dryRun = buildSettingDryRun (buildSettings baseCtx) + || buildSettingOnlyDownload (buildSettings baseCtx) + + if dryRun + then notice verbosity "Running of executable suppressed by flag(s)" + else runProgramInvocation verbosity invocation where verbosity = fromFlagOrDefault normal (configVerbosity configFlags) cliConfig = commandLineFlagsToProjectConfig globalFlags flags diff --git a/cabal-install/src/Distribution/Client/CmdFreeze.hs b/cabal-install/src/Distribution/Client/CmdFreeze.hs index c555daf5030..6ae404115a0 100644 --- a/cabal-install/src/Distribution/Client/CmdFreeze.hs +++ b/cabal-install/src/Distribution/Client/CmdFreeze.hs @@ -106,7 +106,8 @@ freezeAction flags@NixStyleFlags {..} extraArgs globalFlags = do distDirLayout, cabalDirLayout, projectConfig, - localPackages + localPackages, + buildSettings } <- establishProjectBaseContext verbosity cliConfig OtherCommand (_, elaboratedPlan, _, totalIndexState, activeRepos) <- @@ -116,17 +117,21 @@ freezeAction flags@NixStyleFlags {..} extraArgs globalFlags = do localPackages let freezeConfig = projectFreezeConfig elaboratedPlan totalIndexState activeRepos - writeProjectLocalFreezeConfig distDirLayout freezeConfig - notice verbosity $ - "Wrote freeze file: " ++ distProjectFile distDirLayout "freeze" + dryRun = buildSettingDryRun buildSettings + || buildSettingOnlyDownload buildSettings + + if dryRun + then notice verbosity "Freeze file not written due to flag(s)" + else do + writeProjectLocalFreezeConfig distDirLayout freezeConfig + notice verbosity $ + "Wrote freeze file: " ++ distProjectFile distDirLayout "freeze" where verbosity = fromFlagOrDefault normal (configVerbosity configFlags) cliConfig = commandLineFlagsToProjectConfig globalFlags flags mempty -- ClientInstallFlags, not needed here - - -- | Given the install plan, produce a config value with constraints that -- freezes the versions of packages used in the plan. -- diff --git a/cabal-install/src/Distribution/Client/CmdInstall.hs b/cabal-install/src/Distribution/Client/CmdInstall.hs index f74d0cfa4d6..6cb67357c2e 100644 --- a/cabal-install/src/Distribution/Client/CmdInstall.hs +++ b/cabal-install/src/Distribution/Client/CmdInstall.hs @@ -2,7 +2,6 @@ {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE ViewPatterns #-} -- | cabal-install CLI command: build -- @@ -46,7 +45,8 @@ import Distribution.Types.PackageId import Distribution.Client.ProjectConfig ( ProjectPackageLocation(..) , fetchAndReadSourcePackages - ) + , projectConfigWithBuilderRepoContext + , resolveBuildTimeSettings, withProjectOrGlobalConfig ) import Distribution.Client.NixStyleOptions ( NixStyleFlags (..), nixStyleOptions, defaultNixStyleFlags ) import Distribution.Client.ProjectFlags (ProjectFlags (..)) @@ -78,9 +78,6 @@ import Distribution.Solver.Types.PackageConstraint ( PackageProperty(..) ) import Distribution.Client.IndexUtils ( getSourcePackages, getInstalledPackages ) -import Distribution.Client.ProjectConfig - ( projectConfigWithBuilderRepoContext - , resolveBuildTimeSettings, withProjectOrGlobalConfig ) import Distribution.Client.ProjectPlanning ( storePackageInstallDirs' ) import Distribution.Client.ProjectPlanning.Types @@ -382,10 +379,11 @@ installAction flags@NixStyleFlags { extraFlags = clientInstallFlags', .. } targe -- Now that we built everything we can do the installation part. -- First, figure out if / what parts we want to install: let - dryRun = buildSettingDryRun $ buildSettings baseCtx + dryRun = buildSettingDryRun (buildSettings baseCtx) + || buildSettingOnlyDownload (buildSettings baseCtx) -- Then, install! - when (not dryRun) $ + unless dryRun $ if installLibs then installLibraries verbosity buildCtx compiler packageDbs progDb envFile nonGlobalEnvEntries diff --git a/cabal-install/src/Distribution/Client/CmdRun.hs b/cabal-install/src/Distribution/Client/CmdRun.hs index 5ff899ce4c1..2b8cae6df6f 100644 --- a/cabal-install/src/Distribution/Client/CmdRun.hs +++ b/cabal-install/src/Distribution/Client/CmdRun.hs @@ -46,7 +46,7 @@ import Distribution.CabalSpecVersion (CabalSpecVersion (..), cabalSpecLatest) import Distribution.Verbosity ( normal ) import Distribution.Simple.Utils - ( wrapText, warn, die', ordNub, info + ( wrapText, warn, die', ordNub, info, notice , createTempDirectory, handleDoesNotExist ) import Distribution.Client.ProjectConfig ( ProjectConfig(..), ProjectConfigShared(..) @@ -284,15 +284,21 @@ runAction flags@NixStyleFlags {..} targetStrings globalFlags = do exeName exeName let args = drop 1 targetStrings - runProgramInvocation - verbosity - emptyProgramInvocation { - progInvokePath = exePath, - progInvokeArgs = args, - progInvokeEnv = dataDirsEnvironmentForPlan - (distDirLayout baseCtx) - elaboratedPlan - } + dryRun = buildSettingDryRun (buildSettings baseCtx) + || buildSettingOnlyDownload (buildSettings baseCtx) + + if dryRun + then notice verbosity "Running of executable suppressed by flag(s)" + else + runProgramInvocation + verbosity + emptyProgramInvocation { + progInvokePath = exePath, + progInvokeArgs = args, + progInvokeEnv = dataDirsEnvironmentForPlan + (distDirLayout baseCtx) + elaboratedPlan + } handleDoesNotExist () (removeDirectoryRecursive tmpDir) where diff --git a/cabal-install/src/Distribution/Client/CmdSdist.hs b/cabal-install/src/Distribution/Client/CmdSdist.hs index 24d38f19b68..d4f87074a2a 100644 --- a/cabal-install/src/Distribution/Client/CmdSdist.hs +++ b/cabal-install/src/Distribution/Client/CmdSdist.hs @@ -273,9 +273,16 @@ reifyTargetSelectors pkgs sels = ([], sels') -> Right sels' (errs, _) -> Left errs where - flatten (SpecificSourcePackage pkg@SourcePackage{}) = pkg - flatten _ = error "The impossible happened: how do we not know about a local package?" - pkgs' = fmap flatten pkgs + -- there can be pkgs which are in extra-packages: + -- these are not SpecificSourcePackage + -- + -- Why these packages are in localPkgs, it's confusing. + -- Anyhow, better to be lenient here. + -- + flatten (SpecificSourcePackage pkg@SourcePackage{}) = Just pkg + flatten _ = Nothing + + pkgs' = mapMaybe flatten pkgs getPkg pid = case find ((== pid) . packageId) pkgs' of Just pkg -> Right pkg diff --git a/cabal-install/src/Distribution/Client/CmdUpdate.hs b/cabal-install/src/Distribution/Client/CmdUpdate.hs index b205dfda348..aee8107ed91 100644 --- a/cabal-install/src/Distribution/Client/CmdUpdate.hs +++ b/cabal-install/src/Distribution/Client/CmdUpdate.hs @@ -197,10 +197,13 @@ updateRepo verbosity _updateFlags repoCtxt (repo, indexState) = do -- NB: always update the timestamp, even if we didn't actually -- download anything writeIndexTimestamp index indexState - ce <- if repoContextIgnoreExpiry repoCtxt - then Just `fmap` getCurrentTime - else return Nothing - updated <- Sec.uncheckClientErrors $ Sec.checkForUpdates repoSecure ce + -- typically we get the current time to check expiry against + -- but if the flag is set, we don't. + updated <- do + now <- case repoContextIgnoreExpiry repoCtxt of + False -> Just <$> getCurrentTime + True -> pure Nothing + Sec.uncheckClientErrors $ Sec.checkForUpdates repoSecure now let rname = remoteRepoName (repoRemote repo) diff --git a/cabal-install/src/Distribution/Client/FileMonitor.hs b/cabal-install/src/Distribution/Client/FileMonitor.hs index b93fdd91dde..98eb8dc6b64 100644 --- a/cabal-install/src/Distribution/Client/FileMonitor.hs +++ b/cabal-install/src/Distribution/Client/FileMonitor.hs @@ -1,6 +1,6 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE DeriveGeneric, DeriveFunctor, GeneralizedNewtypeDeriving, - NamedFieldPuns, BangPatterns #-} + NamedFieldPuns, BangPatterns, ScopedTypeVariables #-} {-# OPTIONS_GHC -fno-warn-orphans #-} -- | An abstraction to help with re-running actions when files or other @@ -44,8 +44,10 @@ module Distribution.Client.FileMonitor ( import Prelude () import Distribution.Client.Compat.Prelude +import qualified Distribution.Compat.Binary as Binary import qualified Data.Map.Strict as Map +import Data.Binary.Get (runGetOrFail) import qualified Data.ByteString.Lazy as BS import qualified Data.Hashable as Hashable @@ -61,7 +63,7 @@ import Distribution.Compat.Time import Distribution.Client.Glob import Distribution.Simple.Utils (handleDoesNotExist, writeFileAtomic) import Distribution.Client.Utils (mergeBy, MergeResult(..)) -import Distribution.Utils.Structured (structuredDecodeOrFailIO, structuredEncode) +import Distribution.Utils.Structured (structuredEncode, Tag (..)) import System.FilePath import System.Directory import System.IO @@ -432,16 +434,18 @@ checkFileMonitorChanged handleDoesNotExist (MonitorChanged MonitorFirstRun) $ handleErrorCall (MonitorChanged MonitorCorruptCache) $ - readCacheFile monitor - >>= either (\_ -> return (MonitorChanged MonitorCorruptCache)) - checkStatusCache + withCacheFile monitor $ + either (\_ -> return (MonitorChanged MonitorCorruptCache)) + checkStatusCache where checkStatusCache (cachedFileStatus, cachedKey, cachedResult) = do change <- checkForChanges case change of Just reason -> return (MonitorChanged reason) - Nothing -> return (MonitorUnchanged cachedResult monitorFiles) + Nothing -> case cachedResult of + Left _ -> pure (MonitorChanged MonitorCorruptCache) + Right cr -> return (MonitorUnchanged cr monitorFiles) where monitorFiles = reconstructMonitorFilePaths cachedFileStatus where -- In fileMonitorCheckIfOnlyValueChanged mode we want to guarantee that @@ -486,21 +490,50 @@ checkFileMonitorChanged -- But we might still want to update the cache whenCacheChanged cacheStatus $ - rewriteCacheFile monitor cachedFileStatus' cachedKey cachedResult + case cachedResult of + Left _ -> pure () + Right cr -> rewriteCacheFile monitor cachedFileStatus' cachedKey cr return Nothing +-- | Lazily decode a triple, parsing the first two fields strictly and +-- returning a lazy value containing either the last one or an error. +-- This is helpful for cabal cache files where the first two components +-- contain header data that lets one test if the cache is still valid, +-- and the last (potentially large) component is the cached value itself. +-- This way we can test for cache validity without needing to pay the +-- cost of the decode of stale cache data. This lives here rather than +-- Distribution.Utils.Structured because it depends on a newer version of +-- binary than supported in the Cabal library proper. +structuredDecodeTriple + :: forall a b c. (Structured a, Structured b, Structured c, Binary.Binary a, Binary.Binary b, Binary.Binary c) + => BS.ByteString -> Either String (a, b, Either String c) +structuredDecodeTriple lbs = + let partialDecode = + (`runGetOrFail` lbs) $ do + (_ :: Tag (a,b,c)) <- Binary.get + (a :: a) <- Binary.get + (b :: b) <- Binary.get + pure (a, b) + cleanEither (Left (_, pos, msg)) = Left ("Data.Binary.Get.runGet at position " ++ show pos ++ ": " ++ msg) + cleanEither (Right (_,_,v)) = Right v + + in case partialDecode of + Left (_, pos, msg) -> Left ("Data.Binary.Get.runGet at position " ++ show pos ++ ": " ++ msg) + Right (lbs', _, (x,y)) -> Right (x, y, cleanEither $ runGetOrFail (Binary.get :: Binary.Get c) lbs') + -- | Helper for reading the cache file. -- -- This determines the type and format of the binary cache file. -- -readCacheFile :: (Binary a, Structured a, Binary b, Structured b) +withCacheFile :: (Binary a, Structured a, Binary b, Structured b) => FileMonitor a b - -> IO (Either String (MonitorStateFileSet, a, b)) -readCacheFile FileMonitor {fileMonitorCacheFile} = + -> (Either String (MonitorStateFileSet, a, Either String b) -> IO r) + -> IO r +withCacheFile (FileMonitor {fileMonitorCacheFile}) k = withBinaryFile fileMonitorCacheFile ReadMode $ \hnd -> do - contents <- BS.hGetContents hnd - structuredDecodeOrFailIO contents + contents <- structuredDecodeTriple <$> BS.hGetContents hnd + k contents -- | Helper for writing the cache file. -- @@ -983,8 +1016,8 @@ readCacheFileHashes :: (Binary a, Structured a, Binary b, Structured b) => FileMonitor a b -> IO FileHashCache readCacheFileHashes monitor = handleDoesNotExist Map.empty $ - handleErrorCall Map.empty $ do - res <- readCacheFile monitor + handleErrorCall Map.empty $ + withCacheFile monitor $ \res -> case res of Left _ -> return Map.empty Right (msfs, _, _) -> return (mkFileHashCache msfs) @@ -1127,4 +1160,3 @@ handleIOException e = ------------------------------------------------------------------------------ -- Instances -- - diff --git a/cabal-install/src/Distribution/Client/IndexUtils.hs b/cabal-install/src/Distribution/Client/IndexUtils.hs index 16dce8ffb74..203ff30988e 100644 --- a/cabal-install/src/Distribution/Client/IndexUtils.hs +++ b/cabal-install/src/Distribution/Client/IndexUtils.hs @@ -400,7 +400,7 @@ readRepoIndex verbosity repoCtxt repo idxState = errMissingPackageList repoRemote = "The package list for '" ++ unRepoName (remoteRepoName repoRemote) - ++ "' does not exist. Run 'cabal update' to download it." ++ show repoRemote + ++ "' does not exist. Run 'cabal update' to download it." errOutdatedPackageList repoRemote dt = "The package list for '" ++ unRepoName (remoteRepoName repoRemote) ++ "' is " ++ shows (floor dt :: Int) " days old.\nRun " diff --git a/cabal-install/src/Distribution/Client/ProjectBuilding.hs b/cabal-install/src/Distribution/Client/ProjectBuilding.hs index e2e0f3120dd..fac7f863f2b 100644 --- a/cabal-install/src/Distribution/Client/ProjectBuilding.hs +++ b/cabal-install/src/Distribution/Client/ProjectBuilding.hs @@ -653,6 +653,14 @@ rebuildTarget verbosity sharedPackageConfig plan rpkg@(ReadyPackage pkg) pkgBuildStatus + -- Technically, doing the --only-download filtering only in this function is + -- not perfect. We could also prune the plan at an earlier stage, like it's + -- done with --only-dependencies. But... + -- * the benefit would be minimal (practically just avoiding to print the + -- "requires build" parts of the plan) + -- * we currently don't have easy access to the BuildStatus of packages + -- in the pruning phase + -- * we still have to check it here to avoid performing successive phases | buildSettingOnlyDownload buildSettings = do case pkgBuildStatus of BuildStatusDownload -> diff --git a/cabal-install/src/Distribution/Client/ProjectConfig.hs b/cabal-install/src/Distribution/Client/ProjectConfig.hs index 9eaacd05146..f943cd481df 100644 --- a/cabal-install/src/Distribution/Client/ProjectConfig.hs +++ b/cabal-install/src/Distribution/Client/ProjectConfig.hs @@ -28,6 +28,7 @@ module Distribution.Client.ProjectConfig ( readProjectConfig, readGlobalConfig, readProjectLocalFreezeConfig, + showProjectConfig, withProjectOrGlobalConfig, writeProjectLocalExtraConfig, writeProjectLocalFreezeConfig, diff --git a/cabal-install/src/Distribution/Client/ProjectPlanning.hs b/cabal-install/src/Distribution/Client/ProjectPlanning.hs index 445bf48e42d..a5e3f5d202f 100644 --- a/cabal-install/src/Distribution/Client/ProjectPlanning.hs +++ b/cabal-install/src/Distribution/Client/ProjectPlanning.hs @@ -157,6 +157,7 @@ import Distribution.Version import qualified Distribution.Compat.Graph as Graph import Distribution.Compat.Graph(IsNode(..)) +import Data.Foldable (fold) import Text.PrettyPrint (text, hang, quotes, colon, vcat, ($$), fsep, punctuate, comma) import qualified Text.PrettyPrint as Disp import qualified Data.Map as Map @@ -1797,6 +1798,10 @@ elaborateInstallPlan verbosity platform compiler compilerprogdb pkgConfigDB elabSetupScriptStyle elabPkgDescription libDepGraph deps0 elabSetupPackageDBStack = buildAndRegisterDbs + elabInplaceBuildPackageDBStack = inplacePackageDbs + elabInplaceRegisterPackageDBStack = inplacePackageDbs + elabInplaceSetupPackageDBStack = inplacePackageDbs + buildAndRegisterDbs | shouldBuildInplaceOnly pkg = inplacePackageDbs | otherwise = storePackageDbs @@ -2138,6 +2143,55 @@ getComponentId (InstallPlan.PreExisting dipkg) = IPI.installedComponentId dipkg getComponentId (InstallPlan.Configured elab) = elabComponentId elab getComponentId (InstallPlan.Installed elab) = elabComponentId elab +extractElabBuildStyle :: InstallPlan.GenericPlanPackage ipkg ElaboratedConfiguredPackage + -> BuildStyle +extractElabBuildStyle (InstallPlan.Configured elab) = elabBuildStyle elab +extractElabBuildStyle _ = BuildAndInstall + +-- instantiateInstallPlan is responsible for filling out an InstallPlan +-- with all of the extra Configured packages that would be generated by +-- recursively instantiating the dependencies of packages. +-- +-- Suppose we are compiling the following packages: +-- +-- unit f where +-- signature H +-- +-- unit g where +-- dependency f[H=containers:Data.Map] +-- +-- At entry, we have an InstallPlan with a single plan package per +-- actual source package, e.g., only (indefinite!) f and g. The job of +-- instantiation is to turn this into three plan packages: each of the +-- packages as before, but also a new, definite package f[H=containers:Data.Map] +-- +-- How do we do this? The general strategy is to iterate over every +-- package in the existing plan and recursively create new entries for +-- each of its dependencies which is an instantiated package (e.g., +-- f[H=p:G]). This process must be recursive, as f itself may depend on +-- OTHER packages which it instantiated using its hole H. +-- +-- Some subtleties: +-- +-- * We have to keep track of whether or not we are instantiating with +-- inplace packages, because instantiating a non-inplace package with +-- an inplace packages makes it inplace (since it depends on +-- something in the inplace store)! The rule is that if any of the +-- modules in an instantiation are inplace, then the instantiated +-- unit itself must be inplace. There is then a bunch of faffing +-- about to keep track of BuildStyle. +-- +-- * ElaboratedConfiguredPackage was never really designed for post +-- facto instantiation, so some of the steps for generating new +-- instantiations are a little fraught. For example, the act of +-- flipping a package to be inplace involves faffing about with four +-- fields, because these fields are precomputed. A good refactor +-- would be to reduce the amount of precomputation to simplify the +-- algorithm here. +-- +-- * We use the state monad to cache already instantiated modules, so +-- we don't instantiate the same thing multiple times. +-- instantiateInstallPlan :: StoreDirLayout -> InstallDirs.InstallDirTemplates -> ElaboratedSharedConfig -> ElaboratedInstallPlan -> ElaboratedInstallPlan instantiateInstallPlan storeDirLayout defaultInstallDirs elaboratedShared plan = InstallPlan.new (IndependentGoals False) @@ -2147,41 +2201,46 @@ instantiateInstallPlan storeDirLayout defaultInstallDirs elaboratedShared plan = cmap = Map.fromList [ (getComponentId pkg, pkg) | pkg <- pkgs ] - instantiateUnitId :: ComponentId -> Map ModuleName Module - -> InstM DefUnitId + instantiateUnitId :: ComponentId -> Map ModuleName (Module, BuildStyle) + -> InstM (DefUnitId, BuildStyle) instantiateUnitId cid insts = state $ \s -> case Map.lookup uid s of Nothing -> -- Knot tied + -- TODO: I don't think the knot tying actually does + -- anything useful let (r, s') = runState (instantiateComponent uid cid insts) (Map.insert uid r s) - in (def_uid, Map.insert uid r s') - Just _ -> (def_uid, s) + in ((def_uid, extractElabBuildStyle r), Map.insert uid r s') + Just r -> ((def_uid, extractElabBuildStyle r), s) where - def_uid = mkDefUnitId cid insts + def_uid = mkDefUnitId cid (fmap fst insts) uid = unDefUnitId def_uid + -- No need to InplaceT; the inplace-ness is properly computed for + -- the ElaboratedPlanPackage, so that will implicitly pass it on instantiateComponent - :: UnitId -> ComponentId -> Map ModuleName Module + :: UnitId -> ComponentId -> Map ModuleName (Module, BuildStyle) -> InstM ElaboratedPlanPackage instantiateComponent uid cid insts | Just planpkg <- Map.lookup cid cmap = case planpkg of InstallPlan.Configured (elab0@ElaboratedConfiguredPackage { elabPkgOrComp = ElabComponent comp }) -> do - deps <- traverse (substUnitId insts) - (compLinkedLibDependencies comp) + deps <- + traverse (fmap fst . substUnitId insts) (compLinkedLibDependencies comp) + let build_style = fold (fmap snd insts) let getDep (Module dep_uid _) = [dep_uid] - elab1 = elab0 { + elab1 = fixupBuildStyle build_style $ elab0 { elabUnitId = uid, elabComponentId = cid, - elabInstantiatedWith = insts, - elabIsCanonical = Map.null insts, + elabInstantiatedWith = fmap fst insts, + elabIsCanonical = Map.null (fmap fst insts), elabPkgOrComp = ElabComponent comp { compOrderLibDependencies = (if Map.null insts then [] else [newSimpleUnitId cid]) ++ ordNub (map unDefUnitId - (deps ++ concatMap getDep (Map.elems insts))) + (deps ++ concatMap (getDep . fst) (Map.elems insts))) } } elab = elab1 { @@ -2194,26 +2253,29 @@ instantiateInstallPlan storeDirLayout defaultInstallDirs elaboratedShared plan = _ -> return planpkg | otherwise = error ("instantiateComponent: " ++ prettyShow cid) - substUnitId :: Map ModuleName Module -> OpenUnitId -> InstM DefUnitId + substUnitId :: Map ModuleName (Module, BuildStyle) -> OpenUnitId -> InstM (DefUnitId, BuildStyle) substUnitId _ (DefiniteUnitId uid) = - return uid + -- This COULD actually, secretly, be an inplace package, but in + -- that case it doesn't matter as it's already been recorded + -- in the package that depends on this + return (uid, BuildAndInstall) substUnitId subst (IndefFullUnitId cid insts) = do insts' <- substSubst subst insts instantiateUnitId cid insts' -- NB: NOT composition - substSubst :: Map ModuleName Module + substSubst :: Map ModuleName (Module, BuildStyle) -> Map ModuleName OpenModule - -> InstM (Map ModuleName Module) + -> InstM (Map ModuleName (Module, BuildStyle)) substSubst subst insts = traverse (substModule subst) insts - substModule :: Map ModuleName Module -> OpenModule -> InstM Module + substModule :: Map ModuleName (Module, BuildStyle) -> OpenModule -> InstM (Module, BuildStyle) substModule subst (OpenModuleVar mod_name) | Just m <- Map.lookup mod_name subst = return m | otherwise = error "substModule: non-closing substitution" substModule subst (OpenModule uid mod_name) = do - uid' <- substUnitId subst uid - return (Module uid' mod_name) + (uid', build_style) <- substUnitId subst uid + return (Module uid' mod_name, build_style) indefiniteUnitId :: ComponentId -> InstM UnitId indefiniteUnitId cid = do @@ -2240,13 +2302,17 @@ instantiateInstallPlan storeDirLayout defaultInstallDirs elaboratedShared plan = -- is no IndefFullUnitId in compLinkedLibDependencies that actually -- has no holes. We couldn't specify this invariant when -- we initially created the ElaboratedPlanPackage because - -- we have no way of actually refiying the UnitId into a + -- we have no way of actually reifying the UnitId into a -- DefiniteUnitId (that's what substUnitId does!) new_deps <- for (compLinkedLibDependencies elab_comp) $ \uid -> if Set.null (openUnitIdFreeHoles uid) - then fmap DefiniteUnitId (substUnitId Map.empty uid) + then fmap (DefiniteUnitId . fst) (substUnitId Map.empty uid) else return uid - return $ InstallPlan.Configured epkg { + -- NB: no fixupBuildStyle needed here, as if the indefinite + -- component depends on any inplace packages, it itself must + -- be indefinite! There is no substitution here, we can't + -- post facto add inplace deps + return . InstallPlan.Configured $ epkg { elabPkgOrComp = ElabComponent elab_comp { compLinkedLibDependencies = new_deps, -- I think this is right: any new definite unit ids we @@ -2262,6 +2328,15 @@ instantiateInstallPlan storeDirLayout defaultInstallDirs elaboratedShared plan = = return planpkg | otherwise = error ("indefiniteComponent: " ++ prettyShow cid) + fixupBuildStyle BuildAndInstall elab = elab + fixupBuildStyle _ (elab@ElaboratedConfiguredPackage { elabBuildStyle = BuildInplaceOnly }) = elab + fixupBuildStyle BuildInplaceOnly elab = elab { + elabBuildStyle = BuildInplaceOnly, + elabBuildPackageDBStack = elabInplaceBuildPackageDBStack elab, + elabRegisterPackageDBStack = elabInplaceRegisterPackageDBStack elab, + elabSetupPackageDBStack = elabInplaceSetupPackageDBStack elab + } + ready_map = execState work Map.empty work = for_ pkgs $ \pkg -> diff --git a/cabal-install/src/Distribution/Client/ProjectPlanning/Types.hs b/cabal-install/src/Distribution/Client/ProjectPlanning/Types.hs index c3e920f3e5d..0388886ecde 100644 --- a/cabal-install/src/Distribution/Client/ProjectPlanning/Types.hs +++ b/cabal-install/src/Distribution/Client/ProjectPlanning/Types.hs @@ -237,6 +237,10 @@ data ElaboratedConfiguredPackage elabBuildPackageDBStack :: PackageDBStack, elabRegisterPackageDBStack :: PackageDBStack, + elabInplaceSetupPackageDBStack :: PackageDBStack, + elabInplaceBuildPackageDBStack :: PackageDBStack, + elabInplaceRegisterPackageDBStack :: PackageDBStack, + elabPkgDescriptionOverride :: Maybe CabalFileText, -- TODO: make per-component variants of these flags @@ -744,6 +748,13 @@ data BuildStyle = instance Binary BuildStyle instance Structured BuildStyle +instance Semigroup BuildStyle where + BuildInplaceOnly <> _ = BuildInplaceOnly + _ <> BuildInplaceOnly = BuildInplaceOnly + _ <> _ = BuildAndInstall +instance Monoid BuildStyle where + mempty = BuildAndInstall + mappend = (<>) type CabalFileText = LBS.ByteString diff --git a/cabal-install/src/Distribution/Client/Win32SelfUpgrade.hs b/cabal-install/src/Distribution/Client/Win32SelfUpgrade.hs index 0d9a9effe59..c220d9e9274 100644 --- a/cabal-install/src/Distribution/Client/Win32SelfUpgrade.hs +++ b/cabal-install/src/Distribution/Client/Win32SelfUpgrade.hs @@ -140,7 +140,7 @@ deleteOldExeFile verbosity oldPID tmpPath = do ++ show oldPID ++ " at path " ++ tmpPath log $ "getting handle of parent process " ++ show oldPID - oldPHANDLE <- Win32.openProcess Win32.sYNCHORNIZE False (fromIntegral oldPID) + oldPHANDLE <- Win32.openProcess Win32.sYNCHRONIZE False (fromIntegral oldPID) log $ "synchronising with parent" event <- openEvent syncEventName diff --git a/cabal-testsuite/PackageTests/Backpack/Includes2/cabal-internal.out b/cabal-testsuite/PackageTests/Backpack/Includes2/cabal-internal.out index 191daf93c29..d5058239ef6 100644 --- a/cabal-testsuite/PackageTests/Backpack/Includes2/cabal-internal.out +++ b/cabal-testsuite/PackageTests/Backpack/Includes2/cabal-internal.out @@ -34,11 +34,9 @@ Building library 'mylib' instantiated with Database = Includes2-0.1.0.0-inplace-postgresql:Database.PostgreSQL for Includes2-0.1.0.0.. Configuring library for Includes2-0.1.0.0.. -Warning: The package has an extraneous version range for a dependency on an internal library: Includes2:{mylib, mysql, postgresql} (((>=0 && >=0 && >=0) && ==0.1.0.0) && ==0.1.0.0) && ==0.1.0.0, Includes2 ((>=0 && ==0.1.0.0) && ==0.1.0.0) && ==0.1.0.0. This version range includes the current package but isn't needed as the current package's library will always be used. Preprocessing library for Includes2-0.1.0.0.. Building library for Includes2-0.1.0.0.. Configuring executable 'exe' for Includes2-0.1.0.0.. -Warning: The package has an extraneous version range for a dependency on an internal library: Includes2:{mylib, mysql, postgresql} (>=0 && >=0 && >=0) && ==0.1.0.0, Includes2 >=0 && ==0.1.0.0. This version range includes the current package but isn't needed as the current package's library will always be used. Preprocessing executable 'exe' for Includes2-0.1.0.0.. Building executable 'exe' for Includes2-0.1.0.0.. # Includes2 exe diff --git a/cabal-testsuite/PackageTests/Backpack/T6385/Go.hs b/cabal-testsuite/PackageTests/Backpack/T6385/Go.hs new file mode 100644 index 00000000000..c7acd84e487 --- /dev/null +++ b/cabal-testsuite/PackageTests/Backpack/T6385/Go.hs @@ -0,0 +1 @@ +module Go where diff --git a/cabal-testsuite/PackageTests/Backpack/T6385/Go2.hs b/cabal-testsuite/PackageTests/Backpack/T6385/Go2.hs new file mode 100644 index 00000000000..6d6af8f027b --- /dev/null +++ b/cabal-testsuite/PackageTests/Backpack/T6385/Go2.hs @@ -0,0 +1 @@ +module Go2 where diff --git a/cabal-testsuite/PackageTests/Backpack/T6385/Hole.hsig b/cabal-testsuite/PackageTests/Backpack/T6385/Hole.hsig new file mode 100644 index 00000000000..6e7629d4e30 --- /dev/null +++ b/cabal-testsuite/PackageTests/Backpack/T6385/Hole.hsig @@ -0,0 +1 @@ +signature Hole where diff --git a/cabal-testsuite/PackageTests/Backpack/T6385/T6385.cabal b/cabal-testsuite/PackageTests/Backpack/T6385/T6385.cabal new file mode 100644 index 00000000000..31e20f559ed --- /dev/null +++ b/cabal-testsuite/PackageTests/Backpack/T6385/T6385.cabal @@ -0,0 +1,17 @@ +name: T6385 +version: 1.0 +build-type: Simple +cabal-version: 2.0 + +library top-def + default-language: Haskell2010 + build-depends: base, indef, alt-containers + hs-source-dirs: . + exposed-modules: Go + +library top-indef + default-language: Haskell2010 + build-depends: base, indef, alt-containers + hs-source-dirs: . + signatures: Hole + exposed-modules: Go2 diff --git a/cabal-testsuite/PackageTests/Backpack/T6385/alt-containers/Data/Map.hs b/cabal-testsuite/PackageTests/Backpack/T6385/alt-containers/Data/Map.hs new file mode 100644 index 00000000000..4d2e8f207a9 --- /dev/null +++ b/cabal-testsuite/PackageTests/Backpack/T6385/alt-containers/Data/Map.hs @@ -0,0 +1,6 @@ +{-# LANGUAGE RoleAnnotations #-} +module Data.Map where +type role Map nominal representational +data Map k a = Map +instance Functor (Map k) where + fmap _ Map = Map diff --git a/cabal-testsuite/PackageTests/Backpack/T6385/alt-containers/alt-containers.cabal b/cabal-testsuite/PackageTests/Backpack/T6385/alt-containers/alt-containers.cabal new file mode 100644 index 00000000000..116f9fb14e4 --- /dev/null +++ b/cabal-testsuite/PackageTests/Backpack/T6385/alt-containers/alt-containers.cabal @@ -0,0 +1,10 @@ +name: alt-containers +version: 1.0 +build-type: Simple +cabal-version: 2.0 + +library + default-language: Haskell2010 + build-depends: base + hs-source-dirs: . + exposed-modules: Data.Map diff --git a/cabal-testsuite/PackageTests/Backpack/T6385/cabal.out b/cabal-testsuite/PackageTests/Backpack/T6385/cabal.out new file mode 100644 index 00000000000..2ec73aebf3f --- /dev/null +++ b/cabal-testsuite/PackageTests/Backpack/T6385/cabal.out @@ -0,0 +1,33 @@ +# cabal v2-update +Downloading the latest package list from test-local-repo +# cabal v2-build +Resolving dependencies... +Build profile: -w ghc- -O1 +In order, the following will be built: + - alt-containers-1.0 (lib) (first run) + - indef-0.1.0.0 (lib) (requires build) + - indef-0.1.0.0 (lib with Data.Map=alt-containers-1.0-inplace:Data.Map) (requires build) + - T6385-1.0 (lib:top-indef) (first run) + - T6385-1.0 (lib:top-def) (first run) +Configuring library for alt-containers-1.0.. +Preprocessing library for alt-containers-1.0.. +Building library for alt-containers-1.0.. +Configuring library for indef-0.1.0.0.. +Preprocessing library for indef-0.1.0.0.. +Building library instantiated with Data.Map = +for indef-0.1.0.0.. +Installing library in +Configuring library instantiated with + Data.Map = alt-containers-1.0-inplace:Data.Map +for indef-0.1.0.0.. +Preprocessing library for indef-0.1.0.0.. +Building library instantiated with + Data.Map = alt-containers-1.0-inplace:Data.Map +for indef-0.1.0.0.. +Configuring library 'top-indef' for T6385-1.0.. +Preprocessing library 'top-indef' for T6385-1.0.. +Building library 'top-indef' instantiated with Hole = +for T6385-1.0.. +Configuring library 'top-def' for T6385-1.0.. +Preprocessing library 'top-def' for T6385-1.0.. +Building library 'top-def' for T6385-1.0.. diff --git a/cabal-testsuite/PackageTests/Backpack/T6385/cabal.project b/cabal-testsuite/PackageTests/Backpack/T6385/cabal.project new file mode 100644 index 00000000000..576a5108863 --- /dev/null +++ b/cabal-testsuite/PackageTests/Backpack/T6385/cabal.project @@ -0,0 +1 @@ +packages: . alt-containers diff --git a/cabal-testsuite/PackageTests/Backpack/T6385/cabal.test.hs b/cabal-testsuite/PackageTests/Backpack/T6385/cabal.test.hs new file mode 100644 index 00000000000..1555552cd08 --- /dev/null +++ b/cabal-testsuite/PackageTests/Backpack/T6385/cabal.test.hs @@ -0,0 +1,7 @@ +import Test.Cabal.Prelude +main = withShorterPathForNewBuildStore $ \storeDir -> + cabalTest $ do + skipUnlessGhcVersion ">= 8.1" + skipIfWindows -- TODO: https://github.com/haskell/cabal/issues/6271 + withRepo "repo" $ do + cabalG ["--store-dir=" ++ storeDir] "v2-build" ["T6385"] diff --git a/cabal-testsuite/PackageTests/Backpack/T6385/repo/indef-0.1.0.0/Data/Map.hsig b/cabal-testsuite/PackageTests/Backpack/T6385/repo/indef-0.1.0.0/Data/Map.hsig new file mode 100644 index 00000000000..997ec1aa576 --- /dev/null +++ b/cabal-testsuite/PackageTests/Backpack/T6385/repo/indef-0.1.0.0/Data/Map.hsig @@ -0,0 +1,5 @@ +{-# LANGUAGE RoleAnnotations #-} +signature Data.Map where +type role Map nominal representational +data Map k a +instance Functor (Map k) diff --git a/cabal-testsuite/PackageTests/Backpack/T6385/repo/indef-0.1.0.0/Foo.hs b/cabal-testsuite/PackageTests/Backpack/T6385/repo/indef-0.1.0.0/Foo.hs new file mode 100644 index 00000000000..5be3e4b85b0 --- /dev/null +++ b/cabal-testsuite/PackageTests/Backpack/T6385/repo/indef-0.1.0.0/Foo.hs @@ -0,0 +1,6 @@ +module Foo where + +import Data.Map + +f :: (a -> b) -> Map k a -> Map k b +f = fmap diff --git a/cabal-testsuite/PackageTests/Backpack/T6385/repo/indef-0.1.0.0/indef.cabal b/cabal-testsuite/PackageTests/Backpack/T6385/repo/indef-0.1.0.0/indef.cabal new file mode 100644 index 00000000000..bd0f5f5e003 --- /dev/null +++ b/cabal-testsuite/PackageTests/Backpack/T6385/repo/indef-0.1.0.0/indef.cabal @@ -0,0 +1,13 @@ +name: indef +version: 0.1.0.0 +license: BSD3 +author: Edward Z. Yang +maintainer: ezyang@cs.stanford.edu +build-type: Simple +cabal-version: 2.0 + +library + build-depends: base + signatures: Data.Map + exposed-modules: Foo + default-language: Haskell2010 diff --git a/cabal-testsuite/PackageTests/BuildDeps/InternalLibrary1/cabal.out b/cabal-testsuite/PackageTests/BuildDeps/InternalLibrary1/cabal.out index 1aa2d34312e..de1c7309960 100644 --- a/cabal-testsuite/PackageTests/BuildDeps/InternalLibrary1/cabal.out +++ b/cabal-testsuite/PackageTests/BuildDeps/InternalLibrary1/cabal.out @@ -8,6 +8,5 @@ Configuring library for InternalLibrary1-0.1.. Preprocessing library for InternalLibrary1-0.1.. Building library for InternalLibrary1-0.1.. Configuring executable 'lemon' for InternalLibrary1-0.1.. -Warning: The package has an extraneous version range for a dependency on an internal library: InternalLibrary1 >=0 && ==0.1. This version range includes the current package but isn't needed as the current package's library will always be used. Preprocessing executable 'lemon' for InternalLibrary1-0.1.. Building executable 'lemon' for InternalLibrary1-0.1.. diff --git a/cabal-testsuite/PackageTests/BuildTools/Internal/cabal.out b/cabal-testsuite/PackageTests/BuildTools/Internal/cabal.out index 29655811a97..8cb4ac09bcd 100644 --- a/cabal-testsuite/PackageTests/BuildTools/Internal/cabal.out +++ b/cabal-testsuite/PackageTests/BuildTools/Internal/cabal.out @@ -12,6 +12,5 @@ Configuring library for foo-0.1.0.0.. Preprocessing library for foo-0.1.0.0.. Building library for foo-0.1.0.0.. Configuring executable 'hello-world' for foo-0.1.0.0.. -Warning: The package has an extraneous version range for a dependency on an internal library: foo >=0 && ==0.1.0.0. This version range includes the current package but isn't needed as the current package's library will always be used. Preprocessing executable 'hello-world' for foo-0.1.0.0.. Building executable 'hello-world' for foo-0.1.0.0.. diff --git a/cabal-testsuite/PackageTests/CmmSources/cabal.out b/cabal-testsuite/PackageTests/CmmSources/cabal.out index 939ed0ad85a..3bfcc34ff7d 100644 --- a/cabal-testsuite/PackageTests/CmmSources/cabal.out +++ b/cabal-testsuite/PackageTests/CmmSources/cabal.out @@ -8,6 +8,5 @@ Configuring library for cmmexperiment-0.. Preprocessing library for cmmexperiment-0.. Building library for cmmexperiment-0.. Configuring executable 'demo' for cmmexperiment-0.. -Warning: The package has an extraneous version range for a dependency on an internal library: cmmexperiment >=0 && ==0. This version range includes the current package but isn't needed as the current package's library will always be used. Preprocessing executable 'demo' for cmmexperiment-0.. Building executable 'demo' for cmmexperiment-0.. diff --git a/cabal-testsuite/PackageTests/CmmSourcesDyn/cabal.out b/cabal-testsuite/PackageTests/CmmSourcesDyn/cabal.out index 939ed0ad85a..3bfcc34ff7d 100644 --- a/cabal-testsuite/PackageTests/CmmSourcesDyn/cabal.out +++ b/cabal-testsuite/PackageTests/CmmSourcesDyn/cabal.out @@ -8,6 +8,5 @@ Configuring library for cmmexperiment-0.. Preprocessing library for cmmexperiment-0.. Building library for cmmexperiment-0.. Configuring executable 'demo' for cmmexperiment-0.. -Warning: The package has an extraneous version range for a dependency on an internal library: cmmexperiment >=0 && ==0. This version range includes the current package but isn't needed as the current package's library will always be used. Preprocessing executable 'demo' for cmmexperiment-0.. Building executable 'demo' for cmmexperiment-0.. diff --git a/cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectory/setup.cabal.out b/cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectory/setup.cabal.out index 41135867a40..b24322ea702 100644 --- a/cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectory/setup.cabal.out +++ b/cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectory/setup.cabal.out @@ -1,3 +1,3 @@ # Setup configure Configuring SameDirectory-0.1.0.0... -cabal: Version mismatch between ghc and ghc-pkg: /./ghc is version /./ghc-pkg is version 9999999 +cabal: Version mismatch between ghc and ghc-pkg: /./ghc is version /ghc-pkg is version 9999999 diff --git a/cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectory/setup.out b/cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectory/setup.out index 0bcf796418f..8c2b693de68 100644 --- a/cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectory/setup.out +++ b/cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectory/setup.out @@ -1,3 +1,3 @@ # Setup configure Configuring SameDirectory-0.1.0.0... -setup: Version mismatch between ghc and ghc-pkg: /./ghc is version /./ghc-pkg is version 9999999 +setup: Version mismatch between ghc and ghc-pkg: /./ghc is version /ghc-pkg is version 9999999 diff --git a/cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectoryGhcVersion/setup.cabal.out b/cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectoryGhcVersion/setup.cabal.out index b2073bea4f7..2db4301e69b 100644 --- a/cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectoryGhcVersion/setup.cabal.out +++ b/cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectoryGhcVersion/setup.cabal.out @@ -1,3 +1,3 @@ # Setup configure Configuring SameDirectory-0.1.0.0... -cabal: Version mismatch between ghc and ghc-pkg: /./ghc-7.10 is version /./ghc-pkg-ghc-7.10 is version 9999999 +cabal: Version mismatch between ghc and ghc-pkg: /./ghc-7.10 is version /ghc-pkg-ghc-7.10 is version 9999999 diff --git a/cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectoryGhcVersion/setup.out b/cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectoryGhcVersion/setup.out index dc3eaefa22a..a0aac07e1b9 100644 --- a/cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectoryGhcVersion/setup.out +++ b/cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectoryGhcVersion/setup.out @@ -1,3 +1,3 @@ # Setup configure Configuring SameDirectory-0.1.0.0... -setup: Version mismatch between ghc and ghc-pkg: /./ghc-7.10 is version /./ghc-pkg-ghc-7.10 is version 9999999 +setup: Version mismatch between ghc and ghc-pkg: /./ghc-7.10 is version /ghc-pkg-ghc-7.10 is version 9999999 diff --git a/cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectoryVersion/setup.cabal.out b/cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectoryVersion/setup.cabal.out index a4e757f2721..2089a0587c2 100644 --- a/cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectoryVersion/setup.cabal.out +++ b/cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectoryVersion/setup.cabal.out @@ -1,3 +1,3 @@ # Setup configure Configuring SameDirectory-0.1.0.0... -cabal: Version mismatch between ghc and ghc-pkg: /./ghc-7.10 is version /./ghc-pkg-7.10 is version 9999999 +cabal: Version mismatch between ghc and ghc-pkg: /./ghc-7.10 is version /ghc-pkg-7.10 is version 9999999 diff --git a/cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectoryVersion/setup.out b/cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectoryVersion/setup.out index 416a47f08fa..1e9b2ba07a9 100644 --- a/cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectoryVersion/setup.out +++ b/cabal-testsuite/PackageTests/GhcPkgGuess/SameDirectoryVersion/setup.out @@ -1,3 +1,3 @@ # Setup configure Configuring SameDirectory-0.1.0.0... -setup: Version mismatch between ghc and ghc-pkg: /./ghc-7.10 is version /./ghc-pkg-7.10 is version 9999999 +setup: Version mismatch between ghc and ghc-pkg: /./ghc-7.10 is version /ghc-pkg-7.10 is version 9999999 diff --git a/cabal-testsuite/PackageTests/InternalLibraries/cabal.out b/cabal-testsuite/PackageTests/InternalLibraries/cabal.out index d4124669bb1..ac9fbcdf14c 100644 --- a/cabal-testsuite/PackageTests/InternalLibraries/cabal.out +++ b/cabal-testsuite/PackageTests/InternalLibraries/cabal.out @@ -9,10 +9,8 @@ Configuring library 'q' for p-0.1.0.0.. Preprocessing library 'q' for p-0.1.0.0.. Building library 'q' for p-0.1.0.0.. Configuring executable 'foo' for p-0.1.0.0.. -Warning: The package has an extraneous version range for a dependency on an internal library: p:q >=0 && ==0.1.0.0, p:q >=0 && ==0.1.0.0. This version range includes the current package but isn't needed as the current package's library will always be used. Preprocessing executable 'foo' for p-0.1.0.0.. Building executable 'foo' for p-0.1.0.0.. Configuring library for p-0.1.0.0.. -Warning: The package has an extraneous version range for a dependency on an internal library: p:q >=0 && ==0.1.0.0, p:q >=0 && ==0.1.0.0. This version range includes the current package but isn't needed as the current package's library will always be used. Preprocessing library for p-0.1.0.0.. Building library for p-0.1.0.0.. diff --git a/cabal-testsuite/PackageTests/InternalVersions/BuildDependsExtra/setup.cabal.out b/cabal-testsuite/PackageTests/InternalVersions/BuildDependsExtra/setup.cabal.out index 61f9d97a4ba..2ad97832df7 100644 --- a/cabal-testsuite/PackageTests/InternalVersions/BuildDependsExtra/setup.cabal.out +++ b/cabal-testsuite/PackageTests/InternalVersions/BuildDependsExtra/setup.cabal.out @@ -1,13 +1,9 @@ # Setup configure Configuring build-depends-extra-version-0.1.0.0... -Warning: The package has an extraneous version range for a dependency on an internal library: build-depends-extra-version >=0.0.0.1. This version range includes the current package but isn't needed as the current package's library will always be used. # Setup sdist -Distribution quality errors: -The package has an extraneous version range for a dependency on an internal library: build-depends-extra-version >=0.0.0.1. This version range includes the current package but isn't needed as the current package's library will always be used. Distribution quality warnings: No 'maintainer' field. No 'description' field. A 'license-file' is not specified. -Note: the public hackage server would reject this package. Building source dist for build-depends-extra-version-0.1.0.0... Source tarball created: setup.cabal.dist/work/dist/build-depends-extra-version-0.1.0.0.tar.gz diff --git a/cabal-testsuite/PackageTests/InternalVersions/BuildDependsExtra/setup.out b/cabal-testsuite/PackageTests/InternalVersions/BuildDependsExtra/setup.out index 2b9987c8544..170da4cb204 100644 --- a/cabal-testsuite/PackageTests/InternalVersions/BuildDependsExtra/setup.out +++ b/cabal-testsuite/PackageTests/InternalVersions/BuildDependsExtra/setup.out @@ -1,13 +1,9 @@ # Setup configure Configuring build-depends-extra-version-0.1.0.0... -Warning: The package has an extraneous version range for a dependency on an internal library: build-depends-extra-version >=0.0.0.1. This version range includes the current package but isn't needed as the current package's library will always be used. # Setup sdist -Distribution quality errors: -The package has an extraneous version range for a dependency on an internal library: build-depends-extra-version >=0.0.0.1. This version range includes the current package but isn't needed as the current package's library will always be used. Distribution quality warnings: No 'maintainer' field. No 'description' field. A 'license-file' is not specified. -Note: the public hackage server would reject this package. Building source dist for build-depends-extra-version-0.1.0.0... -Source tarball created: setup.dist/work/dist/build-depends-extra-version-0.1.0.0.tar.gz +Source tarball created: setup.dist/work/dist/build-depends-extra-version-0.1.0.0.tar.gz \ No newline at end of file diff --git a/cabal-testsuite/PackageTests/InternalVersions/BuildDependsExtra/setup.test.hs b/cabal-testsuite/PackageTests/InternalVersions/BuildDependsExtra/setup.test.hs index b0b4e9bc58e..6119000620d 100644 --- a/cabal-testsuite/PackageTests/InternalVersions/BuildDependsExtra/setup.test.hs +++ b/cabal-testsuite/PackageTests/InternalVersions/BuildDependsExtra/setup.test.hs @@ -2,5 +2,6 @@ import Test.Cabal.Prelude -- Test unneed version bound on internal build-tools deps main = setupAndCabalTest $ do setup' "configure" [] - assertOutputContains "extraneous version range" + -- this specific warning was commented out, this check is inverted so it doesn't break the CI + assertOutputDoesNotContain "extraneous version range" =<< setup' "sdist" [] diff --git a/cabal-testsuite/PackageTests/InternalVersions/BuildToolDependsExtra/setup.cabal.out b/cabal-testsuite/PackageTests/InternalVersions/BuildToolDependsExtra/setup.cabal.out index c247d90f995..11b6398739e 100644 --- a/cabal-testsuite/PackageTests/InternalVersions/BuildToolDependsExtra/setup.cabal.out +++ b/cabal-testsuite/PackageTests/InternalVersions/BuildToolDependsExtra/setup.cabal.out @@ -1,13 +1,9 @@ # Setup configure Configuring build-tool-depends-extra-version-0.1.0.0... -Warning: The package has an extraneous version range for a dependency on an internal executable: build-tool-depends-extra-version:hello-world >=0.0.0.1. This version range includes the current package but isn't needed as the current package's executable will always be used. # Setup sdist -Distribution quality errors: -The package has an extraneous version range for a dependency on an internal executable: build-tool-depends-extra-version:hello-world >=0.0.0.1. This version range includes the current package but isn't needed as the current package's executable will always be used. Distribution quality warnings: No 'maintainer' field. No 'description' field. A 'license-file' is not specified. -Note: the public hackage server would reject this package. Building source dist for build-tool-depends-extra-version-0.1.0.0... Source tarball created: setup.cabal.dist/work/dist/build-tool-depends-extra-version-0.1.0.0.tar.gz diff --git a/cabal-testsuite/PackageTests/InternalVersions/BuildToolDependsExtra/setup.out b/cabal-testsuite/PackageTests/InternalVersions/BuildToolDependsExtra/setup.out index cd0ba1f5e0a..efea2b3cb4c 100644 --- a/cabal-testsuite/PackageTests/InternalVersions/BuildToolDependsExtra/setup.out +++ b/cabal-testsuite/PackageTests/InternalVersions/BuildToolDependsExtra/setup.out @@ -1,13 +1,9 @@ # Setup configure Configuring build-tool-depends-extra-version-0.1.0.0... -Warning: The package has an extraneous version range for a dependency on an internal executable: build-tool-depends-extra-version:hello-world >=0.0.0.1. This version range includes the current package but isn't needed as the current package's executable will always be used. # Setup sdist -Distribution quality errors: -The package has an extraneous version range for a dependency on an internal executable: build-tool-depends-extra-version:hello-world >=0.0.0.1. This version range includes the current package but isn't needed as the current package's executable will always be used. Distribution quality warnings: No 'maintainer' field. No 'description' field. A 'license-file' is not specified. -Note: the public hackage server would reject this package. Building source dist for build-tool-depends-extra-version-0.1.0.0... -Source tarball created: setup.dist/work/dist/build-tool-depends-extra-version-0.1.0.0.tar.gz +Source tarball created: setup.dist/work/dist/build-tool-depends-extra-version-0.1.0.0.tar.gz \ No newline at end of file diff --git a/cabal-testsuite/PackageTests/InternalVersions/BuildToolDependsExtra/setup.test.hs b/cabal-testsuite/PackageTests/InternalVersions/BuildToolDependsExtra/setup.test.hs index b0b4e9bc58e..6119000620d 100644 --- a/cabal-testsuite/PackageTests/InternalVersions/BuildToolDependsExtra/setup.test.hs +++ b/cabal-testsuite/PackageTests/InternalVersions/BuildToolDependsExtra/setup.test.hs @@ -2,5 +2,6 @@ import Test.Cabal.Prelude -- Test unneed version bound on internal build-tools deps main = setupAndCabalTest $ do setup' "configure" [] - assertOutputContains "extraneous version range" + -- this specific warning was commented out, this check is inverted so it doesn't break the CI + assertOutputDoesNotContain "extraneous version range" =<< setup' "sdist" [] diff --git a/cabal-testsuite/PackageTests/InternalVersions/BuildToolsExtra/setup.cabal.out b/cabal-testsuite/PackageTests/InternalVersions/BuildToolsExtra/setup.cabal.out index 58d3172cb43..7d4877f9f77 100644 --- a/cabal-testsuite/PackageTests/InternalVersions/BuildToolsExtra/setup.cabal.out +++ b/cabal-testsuite/PackageTests/InternalVersions/BuildToolsExtra/setup.cabal.out @@ -1,13 +1,9 @@ # Setup configure Configuring build-tools-extra-version-0.1.0.0... -Warning: The package has an extraneous version range for a dependency on an internal executable: build-tools-extra-version:hello-world >=0.0.0.1. This version range includes the current package but isn't needed as the current package's executable will always be used. # Setup sdist -Distribution quality errors: -The package has an extraneous version range for a dependency on an internal executable: build-tools-extra-version:hello-world >=0.0.0.1. This version range includes the current package but isn't needed as the current package's executable will always be used. Distribution quality warnings: No 'maintainer' field. No 'description' field. A 'license-file' is not specified. -Note: the public hackage server would reject this package. Building source dist for build-tools-extra-version-0.1.0.0... Source tarball created: setup.cabal.dist/work/dist/build-tools-extra-version-0.1.0.0.tar.gz diff --git a/cabal-testsuite/PackageTests/InternalVersions/BuildToolsExtra/setup.out b/cabal-testsuite/PackageTests/InternalVersions/BuildToolsExtra/setup.out index 28059d26ccd..0fb3d7cd6b9 100644 --- a/cabal-testsuite/PackageTests/InternalVersions/BuildToolsExtra/setup.out +++ b/cabal-testsuite/PackageTests/InternalVersions/BuildToolsExtra/setup.out @@ -1,13 +1,9 @@ # Setup configure Configuring build-tools-extra-version-0.1.0.0... -Warning: The package has an extraneous version range for a dependency on an internal executable: build-tools-extra-version:hello-world >=0.0.0.1. This version range includes the current package but isn't needed as the current package's executable will always be used. # Setup sdist -Distribution quality errors: -The package has an extraneous version range for a dependency on an internal executable: build-tools-extra-version:hello-world >=0.0.0.1. This version range includes the current package but isn't needed as the current package's executable will always be used. Distribution quality warnings: No 'maintainer' field. No 'description' field. A 'license-file' is not specified. -Note: the public hackage server would reject this package. Building source dist for build-tools-extra-version-0.1.0.0... Source tarball created: setup.dist/work/dist/build-tools-extra-version-0.1.0.0.tar.gz diff --git a/cabal-testsuite/PackageTests/InternalVersions/BuildToolsExtra/setup.test.hs b/cabal-testsuite/PackageTests/InternalVersions/BuildToolsExtra/setup.test.hs index b0b4e9bc58e..6119000620d 100644 --- a/cabal-testsuite/PackageTests/InternalVersions/BuildToolsExtra/setup.test.hs +++ b/cabal-testsuite/PackageTests/InternalVersions/BuildToolsExtra/setup.test.hs @@ -2,5 +2,6 @@ import Test.Cabal.Prelude -- Test unneed version bound on internal build-tools deps main = setupAndCabalTest $ do setup' "configure" [] - assertOutputContains "extraneous version range" + -- this specific warning was commented out, this check is inverted so it doesn't break the CI + assertOutputDoesNotContain "extraneous version range" =<< setup' "sdist" [] diff --git a/cabal-testsuite/PackageTests/MultipleLibraries/T6083Post/cabal.out b/cabal-testsuite/PackageTests/MultipleLibraries/T6083Post/cabal.out index 4f0b36fea49..f82d1770636 100644 --- a/cabal-testsuite/PackageTests/MultipleLibraries/T6083Post/cabal.out +++ b/cabal-testsuite/PackageTests/MultipleLibraries/T6083Post/cabal.out @@ -10,6 +10,5 @@ Preprocessing library for pkg-def-0.1.0.0.. Building library for pkg-def-0.1.0.0.. Warning: pkg-abc.cabal:19:15: colon specifier is experimental feature (issue #5660) Configuring executable 'program' for pkg-abc-0.1.0.0.. -Warning: The package has an extraneous version range for a dependency on an internal library: pkg-def >=0 && ==0.1.0.0. This version range includes the current package but isn't needed as the current package's library will always be used. Preprocessing executable 'program' for pkg-abc-0.1.0.0.. Building executable 'program' for pkg-abc-0.1.0.0.. diff --git a/cabal-testsuite/PackageTests/MultipleLibraries/T6083PostMixin/cabal.out b/cabal-testsuite/PackageTests/MultipleLibraries/T6083PostMixin/cabal.out index e249741e23a..e6c014b160b 100644 --- a/cabal-testsuite/PackageTests/MultipleLibraries/T6083PostMixin/cabal.out +++ b/cabal-testsuite/PackageTests/MultipleLibraries/T6083PostMixin/cabal.out @@ -11,6 +11,5 @@ Building library for pkg-def-0.1.0.0.. Warning: pkg-abc.cabal:15:29: colon specifier is experimental feature (issue #5660) Warning: pkg-abc.cabal:20:15: colon specifier is experimental feature (issue #5660) Configuring executable 'program' for pkg-abc-0.1.0.0.. -Warning: The package has an extraneous version range for a dependency on an internal library: pkg-def >=0 && ==0.1.0.0. This version range includes the current package but isn't needed as the current package's library will always be used. Preprocessing executable 'program' for pkg-abc-0.1.0.0.. Building executable 'program' for pkg-abc-0.1.0.0.. diff --git a/cabal-testsuite/PackageTests/MultipleLibraries/T6894/cabal.out b/cabal-testsuite/PackageTests/MultipleLibraries/T6894/cabal.out index f8a13f7425f..a8ef5791bbb 100644 --- a/cabal-testsuite/PackageTests/MultipleLibraries/T6894/cabal.out +++ b/cabal-testsuite/PackageTests/MultipleLibraries/T6894/cabal.out @@ -10,6 +10,5 @@ Preprocessing library 'sublib' for issue-6894.. Building library 'sublib' for issue-6894.. Warning: issue.cabal:7:30: colon specifier is experimental feature (issue #5660) Configuring library for issue-6894.. -Warning: The package has an extraneous version range for a dependency on an internal library: issue:sublib >=0 && ==6894. This version range includes the current package but isn't needed as the current package's library will always be used. Preprocessing library for issue-6894.. Building library for issue-6894.. diff --git a/cabal-testsuite/PackageTests/NewConfigure/ConfigFile/ConfigFile.cabal b/cabal-testsuite/PackageTests/NewConfigure/ConfigFile/ConfigFile.cabal new file mode 100644 index 00000000000..3173c99e860 --- /dev/null +++ b/cabal-testsuite/PackageTests/NewConfigure/ConfigFile/ConfigFile.cabal @@ -0,0 +1,7 @@ +name: ConfigFile +version: 0.1.0.0 +author: Foo Bar +maintainer: cabal-dev@haskell.org +build-type: Simple +cabal-version: >=1.10 + diff --git a/cabal-testsuite/PackageTests/NewConfigure/ConfigFile/Setup.hs b/cabal-testsuite/PackageTests/NewConfigure/ConfigFile/Setup.hs new file mode 100644 index 00000000000..9a994af677b --- /dev/null +++ b/cabal-testsuite/PackageTests/NewConfigure/ConfigFile/Setup.hs @@ -0,0 +1,2 @@ +import Distribution.Simple +main = defaultMain diff --git a/cabal-testsuite/PackageTests/NewConfigure/ConfigFile/cabal.out b/cabal-testsuite/PackageTests/NewConfigure/ConfigFile/cabal.out new file mode 100644 index 00000000000..0e6c0ab4089 --- /dev/null +++ b/cabal-testsuite/PackageTests/NewConfigure/ConfigFile/cabal.out @@ -0,0 +1,15 @@ +# cabal v2-configure +Config file not written due to flag(s). +Resolving dependencies... +Build profile: -w ghc- -O1 +In order, the following would be built: + - ConfigFile-0.1.0.0 (first run) +# cabal v2-configure +Config file not written due to flag(s). +Build profile: -w ghc- -O1 +In order, the following would be built: + - ConfigFile-0.1.0.0 (first run) +# cabal v2-configure +Build profile: -w ghc- -O1 +In order, the following would be built: + - ConfigFile-0.1.0.0 (first run) diff --git a/cabal-testsuite/PackageTests/NewConfigure/ConfigFile/cabal.project b/cabal-testsuite/PackageTests/NewConfigure/ConfigFile/cabal.project new file mode 100644 index 00000000000..e6fdbadb439 --- /dev/null +++ b/cabal-testsuite/PackageTests/NewConfigure/ConfigFile/cabal.project @@ -0,0 +1 @@ +packages: . diff --git a/cabal-testsuite/PackageTests/NewConfigure/ConfigFile/cabal.test.hs b/cabal-testsuite/PackageTests/NewConfigure/ConfigFile/cabal.test.hs new file mode 100644 index 00000000000..bc0a574738c --- /dev/null +++ b/cabal-testsuite/PackageTests/NewConfigure/ConfigFile/cabal.test.hs @@ -0,0 +1,18 @@ +import Test.Cabal.Prelude + +-- Test that 'cabal v2-configure' generates the config file appropriately +main = withShorterPathForNewBuildStore $ \storeDir -> + cabalTest . withSourceCopy $ do + cwd <- fmap testCurrentDir getTestEnv + let configFile = cwd "cabal.project.local" + + shouldNotExist configFile + + -- should not create config file with --dry-run or --only-download + cabalG ["--store-dir=" ++ storeDir] "v2-configure" ["--dry-run"] + cabalG ["--store-dir=" ++ storeDir] "v2-configure" ["--only-download"] + shouldNotExist configFile + + -- should create the config file + cabalG ["--store-dir=" ++ storeDir] "v2-configure" [] + shouldExist configFile diff --git a/cabal-testsuite/PackageTests/NewFreeze/FreezeFile/new_freeze.out b/cabal-testsuite/PackageTests/NewFreeze/FreezeFile/new_freeze.out index be573138281..4b2d614c947 100644 --- a/cabal-testsuite/PackageTests/NewFreeze/FreezeFile/new_freeze.out +++ b/cabal-testsuite/PackageTests/NewFreeze/FreezeFile/new_freeze.out @@ -7,6 +7,10 @@ In order, the following would be built: - my-library-dep-2.0 (lib) (requires build) - my-local-package-1.0 (exe:my-exe) (first run) # cabal v2-freeze +Freeze file not written due to flag(s) +# cabal v2-freeze +Freeze file not written due to flag(s) +# cabal v2-freeze Resolving dependencies... Wrote freeze file: /new_freeze.dist/source/cabal.project.freeze # cabal v2-build diff --git a/cabal-testsuite/PackageTests/NewFreeze/FreezeFile/new_freeze.test.hs b/cabal-testsuite/PackageTests/NewFreeze/FreezeFile/new_freeze.test.hs index e2a3d59888b..912649bba8c 100644 --- a/cabal-testsuite/PackageTests/NewFreeze/FreezeFile/new_freeze.test.hs +++ b/cabal-testsuite/PackageTests/NewFreeze/FreezeFile/new_freeze.test.hs @@ -16,6 +16,11 @@ main = withShorterPathForNewBuildStore $ \storeDir -> -- v2-build should choose the latest version for the dependency. cabalG' ["--store-dir=" ++ storeDir] "v2-build" ["--dry-run"] >>= assertUsesLatestDependency + -- should not create freeze file with --dry-run or --only-download flags + cabalG' ["--store-dir=" ++ storeDir] "v2-freeze" ["--dry-run"] + cabalG' ["--store-dir=" ++ storeDir] "v2-freeze" ["--only-download"] + shouldNotExist freezeFile + -- Freeze a dependency on the older version. cabalG ["--store-dir=" ++ storeDir] "v2-freeze" ["--constraint=my-library-dep==1.0"] diff --git a/cabal-testsuite/PackageTests/Regression/T5213/cabal-gh5213.cabal b/cabal-testsuite/PackageTests/Regression/T5213/cabal-gh5213.cabal new file mode 100644 index 00000000000..1f27196421e --- /dev/null +++ b/cabal-testsuite/PackageTests/Regression/T5213/cabal-gh5213.cabal @@ -0,0 +1,29 @@ +-- Initial cabal-gh5213.cabal generated by cabal init. For further +-- documentation, see http://haskell.org/cabal/users-guide/ + +name: cabal-gh5213 +version: 0.1 +-- synopsis: +-- description: +license: BSD3 +author: Ryan Scott +maintainer: ryan.gl.scott@gmail.com +-- copyright: +category: Testing +build-type: Simple +cabal-version: >=1.10 + +library + exposed-modules: CabalGH5213Exposed + other-modules: CabalGH5213Other + -- other-extensions: + build-depends: base >= 4 && < 5 + hs-source-dirs: src + default-language: Haskell2010 + +test-suite tests + main-is: Main.hs + type: exitcode-stdio-1.0 + build-depends: base, cabal-gh5213 + hs-source-dirs: tests + default-language: Haskell2010 diff --git a/cabal-testsuite/PackageTests/Regression/T5213/cabal.out b/cabal-testsuite/PackageTests/Regression/T5213/cabal.out new file mode 100644 index 00000000000..096ac64545c --- /dev/null +++ b/cabal-testsuite/PackageTests/Regression/T5213/cabal.out @@ -0,0 +1,19 @@ +# cabal new-test +Resolving dependencies... +Build profile: -w ghc- -O1 +In order, the following will be built: + - cabal-gh5213-0.1 (lib) (first run) + - cabal-gh5213-0.1 (test:tests) (first run) +Configuring library for cabal-gh5213-0.1.. +Preprocessing library for cabal-gh5213-0.1.. +Building library for cabal-gh5213-0.1.. +Configuring test suite 'tests' for cabal-gh5213-0.1.. +Preprocessing test suite 'tests' for cabal-gh5213-0.1.. +Building test suite 'tests' for cabal-gh5213-0.1.. +Running 1 test suites... +Test suite tests: RUNNING... +Test suite tests: PASS +Test suite logged to: /cabal.dist/work/./dist/build//ghc-/cabal-gh5213-0.1/t/tests/test/cabal-gh5213-0.1-tests.log +Test coverage report written to /cabal.dist/work/./dist/build//ghc-/cabal-gh5213-0.1/t/tests/hpc/vanilla/html/tests/hpc_index.html +1 of 1 test suites (1 of 1 test cases) passed. +Package coverage report written to /cabal.dist/work/./dist/build//ghc-/cabal-gh5213-0.1/t/tests/hpc/vanilla/html/cabal-gh5213-0.1/hpc_index.html diff --git a/cabal-testsuite/PackageTests/Regression/T5213/cabal.project b/cabal-testsuite/PackageTests/Regression/T5213/cabal.project new file mode 100644 index 00000000000..e1c33e00303 --- /dev/null +++ b/cabal-testsuite/PackageTests/Regression/T5213/cabal.project @@ -0,0 +1,4 @@ +packages: . + +package cabal-gh5213 + library-coverage: true diff --git a/cabal-testsuite/PackageTests/Regression/T5213/cabal.test.hs b/cabal-testsuite/PackageTests/Regression/T5213/cabal.test.hs new file mode 100644 index 00000000000..cbb92ca7473 --- /dev/null +++ b/cabal-testsuite/PackageTests/Regression/T5213/cabal.test.hs @@ -0,0 +1,2 @@ +import Test.Cabal.Prelude +main = cabalTest $ cabal "new-test" [] \ No newline at end of file diff --git a/cabal-testsuite/PackageTests/Regression/T5213/src/CabalGH5213Exposed.hs b/cabal-testsuite/PackageTests/Regression/T5213/src/CabalGH5213Exposed.hs new file mode 100644 index 00000000000..becd65eff8b --- /dev/null +++ b/cabal-testsuite/PackageTests/Regression/T5213/src/CabalGH5213Exposed.hs @@ -0,0 +1,6 @@ +module CabalGH5213Exposed where + +import CabalGH5213Other + +foo :: Int +foo = bar diff --git a/cabal-testsuite/PackageTests/Regression/T5213/src/CabalGH5213Other.hs b/cabal-testsuite/PackageTests/Regression/T5213/src/CabalGH5213Other.hs new file mode 100644 index 00000000000..b1194f103cb --- /dev/null +++ b/cabal-testsuite/PackageTests/Regression/T5213/src/CabalGH5213Other.hs @@ -0,0 +1,4 @@ +module CabalGH5213Other where + +bar :: Int +bar = 42 diff --git a/cabal-testsuite/PackageTests/Regression/T5213/tests/Main.hs b/cabal-testsuite/PackageTests/Regression/T5213/tests/Main.hs new file mode 100644 index 00000000000..ee2b00a4d8a --- /dev/null +++ b/cabal-testsuite/PackageTests/Regression/T5213/tests/Main.hs @@ -0,0 +1,6 @@ +module Main where + +import CabalGH5213Exposed + +main :: IO () +main = print foo diff --git a/cabal-testsuite/PackageTests/Regression/T5213ExeCoverage/cabal-gh5213.cabal b/cabal-testsuite/PackageTests/Regression/T5213ExeCoverage/cabal-gh5213.cabal new file mode 100644 index 00000000000..1f27196421e --- /dev/null +++ b/cabal-testsuite/PackageTests/Regression/T5213ExeCoverage/cabal-gh5213.cabal @@ -0,0 +1,29 @@ +-- Initial cabal-gh5213.cabal generated by cabal init. For further +-- documentation, see http://haskell.org/cabal/users-guide/ + +name: cabal-gh5213 +version: 0.1 +-- synopsis: +-- description: +license: BSD3 +author: Ryan Scott +maintainer: ryan.gl.scott@gmail.com +-- copyright: +category: Testing +build-type: Simple +cabal-version: >=1.10 + +library + exposed-modules: CabalGH5213Exposed + other-modules: CabalGH5213Other + -- other-extensions: + build-depends: base >= 4 && < 5 + hs-source-dirs: src + default-language: Haskell2010 + +test-suite tests + main-is: Main.hs + type: exitcode-stdio-1.0 + build-depends: base, cabal-gh5213 + hs-source-dirs: tests + default-language: Haskell2010 diff --git a/cabal-testsuite/PackageTests/Regression/T5213ExeCoverage/cabal.out b/cabal-testsuite/PackageTests/Regression/T5213ExeCoverage/cabal.out new file mode 100644 index 00000000000..3b888a6899d --- /dev/null +++ b/cabal-testsuite/PackageTests/Regression/T5213ExeCoverage/cabal.out @@ -0,0 +1,19 @@ +# cabal new-test +Resolving dependencies... +Build profile: -w ghc- -O1 +In order, the following will be built: + - cabal-gh5213-0.1 (lib) (first run) + - cabal-gh5213-0.1 (test:tests) (first run) +Configuring library for cabal-gh5213-0.1.. +Preprocessing library for cabal-gh5213-0.1.. +Building library for cabal-gh5213-0.1.. +Configuring test suite 'tests' for cabal-gh5213-0.1.. +Preprocessing test suite 'tests' for cabal-gh5213-0.1.. +Building test suite 'tests' for cabal-gh5213-0.1.. +Running 1 test suites... +Test suite tests: RUNNING... +Test suite tests: PASS +Test suite logged to: /cabal.dist/work/./dist/build//ghc-/cabal-gh5213-0.1/t/tests/noopt/test/cabal-gh5213-0.1-tests.log +Test coverage report written to /cabal.dist/work/./dist/build//ghc-/cabal-gh5213-0.1/t/tests/noopt/hpc/vanilla/html/tests/hpc_index.html +1 of 1 test suites (1 of 1 test cases) passed. +Package coverage report written to /cabal.dist/work/./dist/build//ghc-/cabal-gh5213-0.1/t/tests/noopt/hpc/vanilla/html/cabal-gh5213-0.1/hpc_index.html diff --git a/cabal-testsuite/PackageTests/Regression/T5213ExeCoverage/cabal.project b/cabal-testsuite/PackageTests/Regression/T5213ExeCoverage/cabal.project new file mode 100644 index 00000000000..ee157cb0f02 --- /dev/null +++ b/cabal-testsuite/PackageTests/Regression/T5213ExeCoverage/cabal.project @@ -0,0 +1,5 @@ +packages: . + +package cabal-gh5213 + coverage: True + optimization: False \ No newline at end of file diff --git a/cabal-testsuite/PackageTests/Regression/T5213ExeCoverage/cabal.test.hs b/cabal-testsuite/PackageTests/Regression/T5213ExeCoverage/cabal.test.hs new file mode 100644 index 00000000000..cbb92ca7473 --- /dev/null +++ b/cabal-testsuite/PackageTests/Regression/T5213ExeCoverage/cabal.test.hs @@ -0,0 +1,2 @@ +import Test.Cabal.Prelude +main = cabalTest $ cabal "new-test" [] \ No newline at end of file diff --git a/cabal-testsuite/PackageTests/Regression/T5213ExeCoverage/src/CabalGH5213Exposed.hs b/cabal-testsuite/PackageTests/Regression/T5213ExeCoverage/src/CabalGH5213Exposed.hs new file mode 100644 index 00000000000..becd65eff8b --- /dev/null +++ b/cabal-testsuite/PackageTests/Regression/T5213ExeCoverage/src/CabalGH5213Exposed.hs @@ -0,0 +1,6 @@ +module CabalGH5213Exposed where + +import CabalGH5213Other + +foo :: Int +foo = bar diff --git a/cabal-testsuite/PackageTests/Regression/T5213ExeCoverage/src/CabalGH5213Other.hs b/cabal-testsuite/PackageTests/Regression/T5213ExeCoverage/src/CabalGH5213Other.hs new file mode 100644 index 00000000000..b1194f103cb --- /dev/null +++ b/cabal-testsuite/PackageTests/Regression/T5213ExeCoverage/src/CabalGH5213Other.hs @@ -0,0 +1,4 @@ +module CabalGH5213Other where + +bar :: Int +bar = 42 diff --git a/cabal-testsuite/PackageTests/Regression/T5213ExeCoverage/tests/Main.hs b/cabal-testsuite/PackageTests/Regression/T5213ExeCoverage/tests/Main.hs new file mode 100644 index 00000000000..ee2b00a4d8a --- /dev/null +++ b/cabal-testsuite/PackageTests/Regression/T5213ExeCoverage/tests/Main.hs @@ -0,0 +1,6 @@ +module Main where + +import CabalGH5213Exposed + +main :: IO () +main = print foo diff --git a/cabal-testsuite/PackageTests/Regression/T5309/cabal.out b/cabal-testsuite/PackageTests/Regression/T5309/cabal.out index c1ce1436805..4d9d7c8dc6e 100644 --- a/cabal-testsuite/PackageTests/Regression/T5309/cabal.out +++ b/cabal-testsuite/PackageTests/Regression/T5309/cabal.out @@ -12,7 +12,6 @@ Configuring executable 'exe-no-lib' for T5309-1.0.0.0.. Preprocessing executable 'exe-no-lib' for T5309-1.0.0.0.. Building executable 'exe-no-lib' for T5309-1.0.0.0.. Configuring executable 'exe-with-lib' for T5309-1.0.0.0.. -Warning: The package has an extraneous version range for a dependency on an internal library: T5309 >=0 && ==1.0.0.0, T5309 >=0 && ==1.0.0.0, T5309 >=0 && ==1.0.0.0. This version range includes the current package but isn't needed as the current package's library will always be used. Preprocessing executable 'exe-with-lib' for T5309-1.0.0.0.. Building executable 'exe-with-lib' for T5309-1.0.0.0.. # cabal v2-test @@ -29,7 +28,6 @@ Test suite test-no-lib: PASS Test suite logged to: /cabal.dist/work/./dist/build//ghc-/T5309-1.0.0.0/t/test-no-lib/test/T5309-1.0.0.0-test-no-lib.log 1 of 1 test suites (1 of 1 test cases) passed. Configuring test suite 'test-with-lib' for T5309-1.0.0.0.. -Warning: The package has an extraneous version range for a dependency on an internal library: T5309 >=0 && ==1.0.0.0, T5309 >=0 && ==1.0.0.0, T5309 >=0 && ==1.0.0.0. This version range includes the current package but isn't needed as the current package's library will always be used. Preprocessing test suite 'test-with-lib' for T5309-1.0.0.0.. Building test suite 'test-with-lib' for T5309-1.0.0.0.. Running 1 test suites... @@ -49,7 +47,6 @@ Running 1 benchmarks... Benchmark bench-no-lib: RUNNING... Benchmark bench-no-lib: FINISH Configuring benchmark 'bench-with-lib' for T5309-1.0.0.0.. -Warning: The package has an extraneous version range for a dependency on an internal library: T5309 >=0 && ==1.0.0.0, T5309 >=0 && ==1.0.0.0, T5309 >=0 && ==1.0.0.0. This version range includes the current package but isn't needed as the current package's library will always be used. Preprocessing benchmark 'bench-with-lib' for T5309-1.0.0.0.. Building benchmark 'bench-with-lib' for T5309-1.0.0.0.. Running 1 benchmarks... diff --git a/cabal-testsuite/PackageTests/Regression/T5677/cabal.out b/cabal-testsuite/PackageTests/Regression/T5677/cabal.out index aec1f55ca45..5207c5bb5e9 100644 --- a/cabal-testsuite/PackageTests/Regression/T5677/cabal.out +++ b/cabal-testsuite/PackageTests/Regression/T5677/cabal.out @@ -24,6 +24,5 @@ Preprocessing library for prog-0.. Building library instantiated with Sig = impl-0-inplace:Sig for prog-0.. Configuring executable 'prog' for prog-0.. -Warning: The package has an extraneous version range for a dependency on an internal library: prog >=0 && ==0. This version range includes the current package but isn't needed as the current package's library will always be used. Preprocessing executable 'prog' for prog-0.. Building executable 'prog' for prog-0.. diff --git a/cabal-testsuite/PackageTests/SDist/T7698/cabal.out b/cabal-testsuite/PackageTests/SDist/T7698/cabal.out new file mode 100644 index 00000000000..f04864ea871 --- /dev/null +++ b/cabal-testsuite/PackageTests/SDist/T7698/cabal.out @@ -0,0 +1,2 @@ +# cabal v2-sdist +Wrote source list to /t7698-0.list diff --git a/cabal-testsuite/PackageTests/SDist/T7698/cabal.project b/cabal-testsuite/PackageTests/SDist/T7698/cabal.project new file mode 100644 index 00000000000..9c5b1f14c54 --- /dev/null +++ b/cabal-testsuite/PackageTests/SDist/T7698/cabal.project @@ -0,0 +1,2 @@ +packages: pkg/*.cabal +extra-packages: lens diff --git a/cabal-testsuite/PackageTests/SDist/T7698/cabal.test.hs b/cabal-testsuite/PackageTests/SDist/T7698/cabal.test.hs new file mode 100644 index 00000000000..acd42461a38 --- /dev/null +++ b/cabal-testsuite/PackageTests/SDist/T7698/cabal.test.hs @@ -0,0 +1,4 @@ +import Test.Cabal.Prelude +main = cabalTest $ do + tmpdir <- fmap testTmpDir getTestEnv + cabal "v2-sdist" ["--ignore-project", "--list-only", "--output-directory", tmpdir, "all"] diff --git a/cabal-testsuite/PackageTests/SDist/T7698/pkg/Main.hs b/cabal-testsuite/PackageTests/SDist/T7698/pkg/Main.hs new file mode 100644 index 00000000000..4233a67ecdd --- /dev/null +++ b/cabal-testsuite/PackageTests/SDist/T7698/pkg/Main.hs @@ -0,0 +1 @@ +main = putStrLn "hi" diff --git a/cabal-testsuite/PackageTests/SDist/T7698/pkg/t7698.cabal b/cabal-testsuite/PackageTests/SDist/T7698/pkg/t7698.cabal new file mode 100644 index 00000000000..eed041d7ef2 --- /dev/null +++ b/cabal-testsuite/PackageTests/SDist/T7698/pkg/t7698.cabal @@ -0,0 +1,7 @@ +cabal-version: 2.2 +name: t7698 +version: 0 + +executable foo + default-language: Haskell2010 + main-is: Main.hs diff --git a/cabal-testsuite/PackageTests/TestSuiteTests/ExeV10/cabal.out b/cabal-testsuite/PackageTests/TestSuiteTests/ExeV10/cabal.out index 083b069f225..d300a8acdf9 100644 --- a/cabal-testsuite/PackageTests/TestSuiteTests/ExeV10/cabal.out +++ b/cabal-testsuite/PackageTests/TestSuiteTests/ExeV10/cabal.out @@ -9,7 +9,6 @@ Configuring library for my-0.1.. Preprocessing library for my-0.1.. Building library for my-0.1.. Configuring test suite 'test-Short' for my-0.1.. -Warning: The package has an extraneous version range for a dependency on an internal library: my >=0 && ==0.1, my >=0 && ==0.1. This version range includes the current package but isn't needed as the current package's library will always be used. Preprocessing test suite 'test-Short' for my-0.1.. Building test suite 'test-Short' for my-0.1.. Running 1 test suites... @@ -18,7 +17,6 @@ Test suite test-Short: PASS Test suite logged to: /cabal.dist/work/./dist/build//ghc-/my-0.1/t/test-Short/test/my-0.1-test-Short.log 1 of 1 test suites (1 of 1 test cases) passed. Configuring test suite 'test-Foo' for my-0.1.. -Warning: The package has an extraneous version range for a dependency on an internal library: my >=0 && ==0.1, my >=0 && ==0.1. This version range includes the current package but isn't needed as the current package's library will always be used. Preprocessing test suite 'test-Foo' for my-0.1.. Building test suite 'test-Foo' for my-0.1.. Running 1 test suites... diff --git a/cabal-testsuite/cabal-testsuite.cabal b/cabal-testsuite/cabal-testsuite.cabal index 46f111e0c94..0c918c78800 100644 --- a/cabal-testsuite/cabal-testsuite.cabal +++ b/cabal-testsuite/cabal-testsuite.cabal @@ -1,7 +1,7 @@ cabal-version: 2.2 name: cabal-testsuite version: 3 -copyright: 2003-2020, Cabal Development Team (see AUTHORS file) +copyright: 2003-2021, Cabal Development Team (see AUTHORS file) license: BSD-3-Clause license-file: LICENSE author: Cabal Development Team @@ -28,7 +28,7 @@ common shared build-depends: , base >= 4.6 && <4.16 -- this needs to match the in-tree lib:Cabal version - , Cabal == 3.5.0.0 + , Cabal == 3.6.2.0 ghc-options: -Wall -fwarn-tabs -fwarn-incomplete-uni-patterns diff --git a/cabal.project b/cabal.project index 3cf33771656..8e857ca51d3 100644 --- a/cabal.project +++ b/cabal.project @@ -12,8 +12,7 @@ packages: cabal-benchmarks/ packages: vendor/cabal-doctest-1.0.8 --- Uncomment to allow picking up extra local unpacked deps: ---optional-packages: */ +optional-packages: ./vendored/*/*.cabal -- Remove after hackage-repo-tool release allow-newer: diff --git a/cabal.project.release b/cabal.project.release index 7b7ef0368ea..8a5f856a3fe 100644 --- a/cabal.project.release +++ b/cabal.project.release @@ -3,9 +3,6 @@ packages: cabal-install/ tests: False benchmarks: False optimization: True - -package Cabal - ghc-options: -fexpose-all-unfoldings -fspecialise-aggressively - -package parsec - ghc-options: -fexpose-all-unfoldings +constraints: Cabal-syntax < 3.7, + Win32 >= 2.8 +allow-newer: base diff --git a/cabal.project.validate b/cabal.project.validate index 25f29243d44..33b28876fcc 100644 --- a/cabal.project.validate +++ b/cabal.project.validate @@ -17,6 +17,8 @@ tests: True -- avoiding extra dependencies constraints: rere -rere-cfg constraints: these -assoc +constraints: Cabal-syntax < 3.7, + Win32 >= 2.8 write-ghc-environment-files: never diff --git a/changelog.d/issue-4683 b/changelog.d/issue-4683 new file mode 100644 index 00000000000..4bf63785525 --- /dev/null +++ b/changelog.d/issue-4683 @@ -0,0 +1,4 @@ +synopsis: 'cabal check' to fail when no upper bounds for base or Cabal are present in setup dependencies +packages: Cabal cabal-install +issues: #4683 +prs: #5370 #7409 diff --git a/changelog.d/issue-7698 b/changelog.d/issue-7698 new file mode 100644 index 00000000000..4e136cabfcf --- /dev/null +++ b/changelog.d/issue-7698 @@ -0,0 +1,3 @@ +synopsis: `cabal sdist` works in projects with `extra-packages` +issues: #7698 +packages: cabal-install diff --git a/changelog.d/option-argument-errors b/changelog.d/option-argument-errors new file mode 100644 index 00000000000..90d1f32d7ea --- /dev/null +++ b/changelog.d/option-argument-errors @@ -0,0 +1,9 @@ +synopsis: Handle option argument parse errors without 'error' +packages: Cabal cabal-install +prs: #7579 +issues: #7573 +description: { +- Errors parsing arguments such as `-v=3` no longer result in + stack traces. +- `Distribution.ReadE.readEOrFail` was removed. +} diff --git a/changelog.d/pr-7296 b/changelog.d/pr-7296 new file mode 100644 index 00000000000..2dbd0a0576d --- /dev/null +++ b/changelog.d/pr-7296 @@ -0,0 +1,11 @@ +synopsis: Add 'preferred-versions' support for LocalIndexRepo +packages: cabal-install +prs: #7296 +issues: #7249 #5603 + +description: { + +- `cabal outdated` honours the 'preferred-versions' file which might deprecate or prefer certain + versions of packages. In particular, if the only newer version of a package has been deprecated, + `cabal outdated` should not report that there are newer versions available. +} diff --git a/changelog.d/pr-7352 b/changelog.d/pr-7352 new file mode 100644 index 00000000000..74f188af4ea --- /dev/null +++ b/changelog.d/pr-7352 @@ -0,0 +1,3 @@ +synopsis: Set -Wno-prepositive-qualified-module in Paths_*.hs +packages: Cabal +prs: #7352 diff --git a/changelog.d/pr-7358 b/changelog.d/pr-7358 new file mode 100644 index 00000000000..9aea015d6ea --- /dev/null +++ b/changelog.d/pr-7358 @@ -0,0 +1,21 @@ +synopsis: Expose `cabal-install` as library +prs: #7358 +issues: #7224 #6090 #4798 #3781 #1597 +significance: significant +description { + +- Exposes `cabal-install` as a library, bumping the `cabal-install` cabal version to 2.2, and removing the dogfooding framework surrounding `cabal-install` to facilitate easier testing. + +- Moves `cabal-install-solver` out to its own directory, and treats it as its own separate project. Addresses #6090, #7224, and #3781 + +- Enable HPC coverage + + - absorb `cabal-install-solver-dsl` module into the test modules, and + incorporate it into its own test target. + + - Splits out `cabal-install` unit tests from long-running tests. + + - Adds proper subcomponent coverage masking so we can finally generate + baseline coverage reports for `cabal-install`. + +} \ No newline at end of file diff --git a/changelog.d/pr-7392 b/changelog.d/pr-7392 new file mode 100644 index 00000000000..23d9b065eb3 --- /dev/null +++ b/changelog.d/pr-7392 @@ -0,0 +1,44 @@ +synopsis: Prefer canonicalized path when guessing tools from GHC path +packages: Cabal +prs: #7392 +issues: #7390 + +description: { + +Motivation +---------- +Often times, the user facing `ghc` binary is +symlinked by other forces, such as the package manager, +tooling like ghcup etc. As such, the naming convention +(version suffix in particular) may not align with the +assumptions made in Cabal and it may find an incorrect ghc-pkg. + +See: + - https://github.com/haskell/cabal/issues/7390 + - https://gitlab.haskell.org/ghc/ghc/-/issues/18807 + - https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/73 + +Solution +-------- +Guessing the ghc-pkg path is already a hack and will be solved +more appropriately in the future, see + - https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4214 + - https://gitlab.haskell.org/ghc/ghc/-/snippets/2710 +These patches will solve the issue for future GHC versions. + +As such, this patch provides a workaround for +older, already existing GHC versions by first always +following the symbolic link of the ghc binary (if it is one) +and prefering its target directory as the guess lookup +location. + +Rationale +--------- +The canonicalized path of the ghc binary usually points to the +bin/ directory unpacked from a bindist, which is less likely to be +tampered with by distributions and tools. As such, prefering the +canoncialized path should get us more robust results. + +} + + diff --git a/changelog.d/pr-7407 b/changelog.d/pr-7407 new file mode 100644 index 00000000000..5991d3d8410 --- /dev/null +++ b/changelog.d/pr-7407 @@ -0,0 +1,4 @@ +synopsis: --dry-run and --only-download effect v2-configure, v2-freeze, v2-run, and v2-exec +pr: #7407 +issues: #7379 +decription: { v2-configure, v2-freeze, v2-run, and v2-exec now behave expectedly under the --dry-run and --only-download flags } diff --git a/changelog.d/pr-7413 b/changelog.d/pr-7413 new file mode 100644 index 00000000000..8cdedd40534 --- /dev/null +++ b/changelog.d/pr-7413 @@ -0,0 +1,13 @@ +synopsis: Fix instantiating an indefinite Backpack from Hackage with an inplace package +packages: cabal-install +prs: #7413 +issues: #6835 +description: { + +Previously, cabal-install would always attempt to put instantiations of indefinite packages from Hackage in +the global package store, even if they were instantiated with inplace packages. This would not work +and GHC would complain about packages being missing from the package database. We have fixed the +instantiation algorithm to correctly inplace packages in these situations, removing one of the last +blockers to widespread use of Backpack packages on Hackage. + +} diff --git a/changelog.d/pr-7470-backport b/changelog.d/pr-7470-backport new file mode 100644 index 00000000000..4775abf0beb --- /dev/null +++ b/changelog.d/pr-7470-backport @@ -0,0 +1,4 @@ +synopsis: removes the warnings for extraneous versions +packages: cabal-install +prs: #7470 +issues: #7286 \ No newline at end of file diff --git a/changelog.d/pr-7493 b/changelog.d/pr-7493 new file mode 100644 index 00000000000..00f3033c1c2 --- /dev/null +++ b/changelog.d/pr-7493 @@ -0,0 +1,10 @@ +synopsis: Fix `cabal test --enable-library-coverage` for other-modules +packages: Cabal +prs: #7493 +issues: #5213 +description: { + +- Fix `cabal test --enable-library-coverage` for libraries with nonempty other-modules field. +- Due to a hack, this breaks coverage whenever the used Haskell compiler is called 't' (for a non-hacky fix we should rework HPC directories, possibly enabling multilib in the process, see #6440 and #6397). + +} diff --git a/changelog.d/pr-7526-lazily-decode-cache-files b/changelog.d/pr-7526-lazily-decode-cache-files new file mode 100644 index 00000000000..4cdb3acc204 --- /dev/null +++ b/changelog.d/pr-7526-lazily-decode-cache-files @@ -0,0 +1,7 @@ +synopsis: lazily decode cache files for checking invalidation +prs: #7516 +issues: #7466 +packages: cabal-install +description { +- This yields a significant 15% speedup on rebuilding build plans for projects with lots of individual cabal packages. +} \ No newline at end of file diff --git a/changelog.d/pr-7536 b/changelog.d/pr-7536 new file mode 100644 index 00000000000..26b139ab6d6 --- /dev/null +++ b/changelog.d/pr-7536 @@ -0,0 +1,4 @@ +synopsis: Add fields extra-libraries-static and extra-lib-dirs-static +packages: Cabal +prs: #7536 +issues: #7399 #6688 diff --git a/changelog.d/pr-7561 b/changelog.d/pr-7561 new file mode 100644 index 00000000000..80095608308 --- /dev/null +++ b/changelog.d/pr-7561 @@ -0,0 +1,7 @@ +synopsis: defer build-tools-depends choices as well as setup choices +prs: #7532 #7561 +description { + +- extends the existing solver pass that defers solving setup depends until top-level goals are solved to also defer build-tool-depends goals until top level goals are solved. +- constraints at the top level (on versions, flags, stanzas, etc) are applied first and only then are attempts made to build the less-constrained qualified goals, significantly streamlining the production of valid build plans. +} \ No newline at end of file diff --git a/changelog.d/pr-7650 b/changelog.d/pr-7650 new file mode 100644 index 00000000000..5a0e4e9c8b4 --- /dev/null +++ b/changelog.d/pr-7650 @@ -0,0 +1,8 @@ +synopsis: Make Paths_ modules work with non-standard preludes again +pr: #7650 +issues: #5962 +significance: significant +description: { + +- Generate Paths_ module with qualified Data.List.last import so that compatibility with non-standard preludes is not regressed compared to cabal 3.4. +} \ No newline at end of file diff --git a/changelog.d/pr-7652 b/changelog.d/pr-7652 new file mode 100644 index 00000000000..3d97adc5d55 --- /dev/null +++ b/changelog.d/pr-7652 @@ -0,0 +1,9 @@ +synopsis: Windows: redo the fix to breakage caused by new autoconf; the wrong fix made cabal sometimes fail with old autoconf +pr: #7652 #7651 +issues: #7649 #7494 +significance: significant +description: { + +- Reverts #7510 that failed on Windows when used with pre-generated scripts included in packages such as network, time, process. +- Adds a subtler fix/workaround for the deficiencies of new autoconf versions on Windows. +} \ No newline at end of file diff --git a/changelog.d/pr-7657 b/changelog.d/pr-7657 new file mode 100644 index 00000000000..f3b291c950a --- /dev/null +++ b/changelog.d/pr-7657 @@ -0,0 +1,6 @@ +synopsis: Regenerate bootstrap/ with GHC updated from 8.10.4 to 8.10.7 +pr: #7657 #7658 +description: { + +- This regenerates bootstrap plans using new package versions and also updating GHC from 8.10.4 to 8.10.7, as requested by GHC HQ. +} \ No newline at end of file diff --git a/changelog.d/pr-8062 b/changelog.d/pr-8062 new file mode 100644 index 00000000000..a1eac9ff3f4 --- /dev/null +++ b/changelog.d/pr-8062 @@ -0,0 +1,16 @@ +synopsis: Support GHC 9.4's `clang`-based Windows toolchain +packages: Cabal +prs: #8062 + +description { + +- As the `lld` linker used by GHC 9.4 and later on Windows does not support + object merging, it is now an error to enable `--enable-library-for-ghci` on + Windows with such compilers. Note that this flag is merely enables an + optimisation and can safely be disabled if you encounter this error. + +- `Cabal` will now use `llvm-ar`'s `L` modifier if available when building + static archives. This enables static library merging which is the behavior + required by GHC 9.4 and later on Windows. + +} diff --git a/changelog.d/spelling-suggestion b/changelog.d/spelling-suggestion index 93e0f584b07..69fb04c1f6f 100644 --- a/changelog.d/spelling-suggestion +++ b/changelog.d/spelling-suggestion @@ -1,2 +1,2 @@ synopsis: Alert user and suggest command on spelling mistakes -packages: Cabal, cabal-install +packages: Cabal cabal-install diff --git a/doc/cabal-commands.rst b/doc/cabal-commands.rst index 51d55146006..e40c4f85410 100644 --- a/doc/cabal-commands.rst +++ b/doc/cabal-commands.rst @@ -308,6 +308,8 @@ by using ``--install-method`` flag: Note that copied executables are not self-contained, since they might use data-files from the store. +.. _adding-libraries: + Adding libraries to GHC package environments ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -395,11 +397,3 @@ not due to implementation but due to fundamental core invariants that must be satisfied for it to function correctly in the larger v2-build ecosystem. ``autogen-modules`` is able to replace uses of the hooks to add generated modules, along with the custom publishing of Haddock documentation to Hackage. - -.. warning:: - - Packages that use Backpack will stop working if uploaded to - Hackage, due to `issue #6005 `_. - While this is happening, we recommend not uploading these packages - to Hackage (and instead referencing the package directly - as a ``source-repository-package``). diff --git a/doc/cabal-package.rst b/doc/cabal-package.rst index b11ba9c5189..a8ba619c49a 100644 --- a/doc/cabal-package.rst +++ b/doc/cabal-package.rst @@ -140,11 +140,12 @@ Example: A package containing executable programs executable program1 build-depends: HUnit >= 1.1.1 && < 1.2 - main-is: Main.hs + main-is: main.hs hs-source-dirs: prog1 executable program2 - main-is: Main.hs + -- A different main.hs because of hs-source-dirs. + main-is: main.hs build-depends: HUnit >= 1.1.1 && < 1.2 hs-source-dirs: prog2 other-modules: Utils @@ -166,17 +167,21 @@ Example: A package containing a library and executable programs library build-depends: HUnit >= 1.1.1 && < 1.2 + hs-source-dirs: lib exposed-modules: A, B, C executable program1 - main-is: Main.hs + main-is: main.hs hs-source-dirs: prog1 - other-modules: A, B + other-modules: D, E executable program2 - main-is: Main.hs + -- A different main.hs because of hs-source-dirs. + main-is: main.hs + -- No bound on internal libraries. + build-depends: TestPackage hs-source-dirs: prog2 - other-modules: A, C, Utils + other-modules: Utils with ``Setup.hs`` the same as above. Note that any library modules required (directly or indirectly) by an executable must be listed again. @@ -1816,12 +1821,12 @@ system-dependent values for these fields. build-tool-depends: mypackage:executable Cabal tries to make sure that all specified programs are atomically built and prepended - on the ``$PATH`` shell variable before building the component in question, but can only do + on the ``PATH`` shell variable before building the component in question, but can only do so for Nix-style builds. Specifically: a) For Nix-style local builds, both internal and external dependencies. b) For old-style builds, only for internal dependencies [#old-style-build-tool-depends]_. - It's up to the user to provide needed executables in this case under `$PATH.` + It's up to the user to provide needed executables in this case under ``PATH``. .. note:: @@ -2133,7 +2138,7 @@ system-dependent values for these fields. setup described in the section on `system-dependent parameters`_. .. pkg-field:: hsc2hs-options: token list - :since 3.6 + :since: 3.6 Command-line arguments to be passed to ``hsc2hs``. @@ -3012,7 +3017,7 @@ Accessing data files from package code The placement on the target system of files listed in the :pkg-field:`data-files` field varies between systems, and in some cases one can even move packages around after installation (see `prefix -independence `__). To +independence `__). To enable packages to find these files in a portable way, Cabal generates a module called :file:`Paths_{pkgname}` (with any hyphens in *pkgname* replaced by underscores) during building, so that it may be imported by @@ -3472,5 +3477,5 @@ For more information about Backpack, check out the Some packages (ab)use :pkg-field:`build-depends` on old-style builds, but this has a few major drawbacks: - using Nix-style builds it's considered an error if you depend on a exe-only package via build-depends: the solver will refuse it. - - it may or may not place the executable on ``$PATH``. + - it may or may not place the executable on ``PATH``. - it does not ensure the correct version of the package is installed, so you might end up overwriting versions with each other. diff --git a/doc/cabal-project.rst b/doc/cabal-project.rst index c4d47e7690c..81a60bc7acc 100644 --- a/doc/cabal-project.rst +++ b/doc/cabal-project.rst @@ -182,7 +182,7 @@ This allows sharing of packages across different projects. .. cfg-field:: location: VCS location (usually URL) -.. cfg-field:: type: VCS tag +.. cfg-field:: tag: VCS tag .. cfg-field:: subdir: subdirectory list @@ -492,22 +492,59 @@ The following settings control the behavior of the dependency solver: :default: ``:rest`` - This allows to specify the active package repositories, - when multiple are specified. This is useful as you - can specify the order and the way active repositories are merged. + Specifies which of the package repositories defined in the configuration + should be active. It's also useful for specifying the order and the way + active repositories are merged. + + When searching for a certain version of a certain package name, the list of + active repositories is searched last-to-first. + + For example, suppose hackage.haskell.org has versions 1.0 and 2.0 of + package X, and my-repository has version 2.0 of a similarly named package. + Then, with the following configuration: + + :: + + -- Force my-repository to be the first repository considered + active-repositories: + , hackage.haskell.org + , my-repository + + version 2.0 of X will come from my-repository, and version 1.0 will come + from hackage.haskell.org. + + If we want to make a repository the sole provider of certain packages, we + can put it last in the active repositories list, and add the :override + modifier. + + For example, if we modify the previous example like this: :: - -- for packages in head.hackage - -- only versions in head.hackage are considered active-repositories: , hackage.haskell.org - , head.hackage:override + , my-repository:override + + then version 1.0 of package X won't be found in any case, because X is + present in my-repository only in version 2.0, and the :override forbids + searching for other versions of X further up the list. + + :override has no effect for package names that aren't present in the + overriding repository. - -- Force head.hackage to be the primary repository considered - active-repositories: :rest, head.hackage + The special repository reference :rest stands for "all the other repositories" + and can be useful to avoid lenghty lists of repository names: + + :: + + -- Force my-repository to be the first repository considered + active-repositories: :rest, my-repository + + The special repository reference "none" disables all repositories, effectively + putting cabal in "offline" mode: + + :: - -- "Offline" mode active-repositories: none @@ -605,7 +642,7 @@ feature was added. :synopsis: Path to compiler executable. Specify the path to a particular compiler to be used. If not an - absolute path, it will be resolved according to the :envvar:`PATH` + absolute path, it will be resolved according to the ``PATH`` environment. The type of the compiler (GHC, GHCJS, etc) must be consistent with the setting of the :cfg-field:`compiler` field. diff --git a/doc/conf.py b/doc/conf.py index a8830728ff5..cac2ec7c45b 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -13,7 +13,7 @@ sys.path.insert(0, os.path.abspath('.')) import cabaldomain -version = "3.5.0.0" +version = "3.6.0.0" extensions = ['sphinx.ext.extlinks', 'sphinx.ext.todo'] @@ -34,7 +34,7 @@ # General information about the project. project = u'Cabal' -copyright = u'2003-2020, Cabal Team' +copyright = u'2003-2021, Cabal Team' # N.B. version comes from ghc_config release = version # The full version, including alpha/beta/rc tags. diff --git a/doc/developing-packages.rst b/doc/developing-packages.rst index 2c7f08a2bbe..89b5924ffb5 100644 --- a/doc/developing-packages.rst +++ b/doc/developing-packages.rst @@ -214,23 +214,23 @@ information see the :ref:`common-stanzas` section. Building the package -------------------- -For simple packages that's it! We can now try configuring and building -the package: +For simple packages that's it! We can now try building the package, +which also downloads and builds all required dependencies: .. code-block:: console - $ cabal configure $ cabal build -Assuming those two steps worked then you can also install the package: +If the package contains an executable, it can be installed: .. code-block:: console $ cabal install -For libraries this makes them available for use in GHCi or to be used by -other packages. For executables it installs the program so that you can -run it (though you may first need to adjust your system's ``$PATH``). +The executable program lands in a special directory for binaries +that may or may not already be on your system's ``PATH``. +If it is, the executable can be run by typing its filename on commandline. +For installing libraries see the :ref:`adding-libraries` section. Next steps ---------- diff --git a/doc/getting-started.rst b/doc/getting-started.rst index 565fdf6edb6..94167af3dba 100644 --- a/doc/getting-started.rst +++ b/doc/getting-started.rst @@ -35,6 +35,12 @@ Once you have an empty directory we can initialize our package: $ cabal init --cabal-version=2.4 --license=NONE -p myfirstapp +.. note:: ``cabal-version`` refers to the + `version of the .cabal file format specification `__, + that can be different from the versions of the cabal library and tool + in use. It is common to use a slightly older cabal-version, to strike + a compromise between feature availability and backward compatibility. + This will generate the following files: .. code-block:: console diff --git a/doc/installing-packages.rst b/doc/installing-packages.rst index 9b09d56e514..c1ba70e777b 100644 --- a/doc/installing-packages.rst +++ b/doc/installing-packages.rst @@ -105,14 +105,18 @@ packages from any of them. Using secure repositories ^^^^^^^^^^^^^^^^^^^^^^^^^ -For repositories that support the TUF security infrastructure (this -includes Hackage), you can enable secure access to the repository by -specifying: +When interacting with ``hackage.haskell.org``, Cabal always runs in secure mode +with standard root keys, so it is not necessary to specify ``secure`` or +``root-keys``. If no repositories are listed, Cabal will default to +``hackage.haskell.org``. + +For non-Hackage repositories that support the TUF security infrastructure you +can enable secure access to the repository by specifying: :: - repository hackage.haskell.org - url: http://hackage.haskell.org/ + repository packages.example.org + url: http://packages.example.org/ secure: True root-keys: key-threshold: @@ -244,4 +248,4 @@ dependencies in a single step. To do this, run: To browse the list of available packages, visit the `Hackage`_ web site. -.. _Hackage: https://hackage.haskell.org/ \ No newline at end of file +.. _Hackage: https://hackage.haskell.org/ diff --git a/release-notes/Cabal-3.6.0.0.md b/release-notes/Cabal-3.6.0.0.md new file mode 100644 index 00000000000..af178942376 --- /dev/null +++ b/release-notes/Cabal-3.6.0.0.md @@ -0,0 +1,29 @@ +Cabal 3.6.0.0 Changelog +--- + + +- Backported to 3.4 [#6964](https://github.com/haskell/cabal/pull/6964) [#6968](https://github.com/haskell/cabal/pull/6968) +- CI setup [#6959](https://github.com/haskell/cabal/pull/6959) + + - Remove travis scripts + +- Code organization [#6960](https://github.com/haskell/cabal/pull/6960) [#6963](https://github.com/haskell/cabal/pull/6963) [#6970](https://github.com/haskell/cabal/pull/6970) [#6974](https://github.com/haskell/cabal/pull/6974) [#6975](https://github.com/haskell/cabal/pull/6975) + + - Move Cabal sources into Cabal/src + - Move cabal-install sources to cabal-install/src/ + - Move doc/ to the top-level of the repository + - Add stylish-haskell config. + +- Documentation improvements [#6813](https://github.com/haskell/cabal/issues/6813) [#6971](https://github.com/haskell/cabal/pull/6971) [#7047](https://github.com/haskell/cabal/pull/7047) + + Write highlights + +- Add post-checkout-command to source-package-repository [#6664](https://github.com/haskell/cabal/issues/6664) [#7047](https://github.com/haskell/cabal/pull/7047) +- Add `hsc2hs-options`, for specifying additional options to pass to `hsc2hs` [#6295](https://github.com/haskell/cabal/pull/6295) +- Include cmm-sources when linking shared objects [#7182](https://github.com/haskell/cabal/issues/7182) [#7252](https://github.com/haskell/cabal/pull/7252) + + - Previously `cmm-sources` were not included in the final link when building a library as a shared object. Fix this. + +- Add language extensions for GHC 9.2 [#7312](https://github.com/haskell/cabal/issues/7312) +- --dry-run and --only-download effect v2-configure, v2-freeze, v2-run, and v2-exec [#7379](https://github.com/haskell/cabal/issues/7379) +- Alert user and suggest command on spelling mistakes diff --git a/release-notes/Cabal-3.6.1.0.md b/release-notes/Cabal-3.6.1.0.md new file mode 100644 index 00000000000..c7d584d3520 --- /dev/null +++ b/release-notes/Cabal-3.6.1.0.md @@ -0,0 +1,60 @@ +Cabal 3.6.1.0 Changelog +--- + +### Significant Changes + +- Include cmm-sources when linking shared objects [#7182](https://github.com/haskell/cabal/issues/7182) [#7252](https://github.com/haskell/cabal/pull/7252) + + - Previously `cmm-sources` were not included in the final link when building a library as a shared object. Fix this. + +- Prefer canonicalized path when guessing tools from GHC path [#7390](https://github.com/haskell/cabal/issues/7390) [#7392](https://github.com/haskell/cabal/pull/7392) + + Motivation + + Often times, the user facing `ghc` binary is + symlinked by other forces, such as the package manager, + tooling like ghcup etc. As such, the naming convention + (version suffix in particular) may not align with the + assumptions made in Cabal and it may find an incorrect ghc-pkg. + + See: + - https://github.com/haskell/cabal/issues/7390 + - https://gitlab.haskell.org/ghc/ghc/-/issues/18807 + - https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/73 + + Solution + + Guessing the ghc-pkg path is already a hack and will be solved + more appropriately in the future, see + - https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4214 + - https://gitlab.haskell.org/ghc/ghc/-/snippets/2710 + These patches will solve the issue for future GHC versions. + + As such, this patch provides a workaround for + older, already existing GHC versions by first always + following the symbolic link of the ghc binary (if it is one) + and prefering its target directory as the guess lookup + location. + + Rationale + + The canonicalized path of the ghc binary usually points to the + bin/ directory unpacked from a bindist, which is less likely to be + tampered with by distributions and tools. As such, prefering the + canoncialized path should get us more robust results. + +- Fix `cabal test --enable-library-coverage` for other-modules [#5213](https://github.com/haskell/cabal/issues/5213) [#7493](https://github.com/haskell/cabal/pull/7493) + + - Fix `cabal test --enable-library-coverage` for libraries with nonempty other-modules field. + - Due to a hack, this breaks coverage whenever the used Haskell compiler is called 't' (for a non-hacky fix we should rework HPC directories, possibly enabling multilib in the process, see #6440 and #6397). + +- Set PATH_SEPARATOR=";" when calling ./configure on Windows; this fix is necessary for autoconf >= 2.70 [#7494](https://github.com/haskell/cabal/issues/7494) [#7510](https://github.com/haskell/cabal/pull/7510) + +- lazily decode cache files for checking invalidation [#7516](https://github.com/haskell/cabal/pull/7516) [#7466](https://github.com/haskell/cabal/issues/7466) + - This yields a significant 15% speedup on rebuilding build plans for projects with lots of individual cabal packages. + +- defer build-tools-depends choices as well as setup choices [#7561](https://github.com/haskell/cabal/pull/7561) [#7472](https://github.com/haskell/cabal/issues/7472) + - extends the existing solver pass that defers solving setup depends until top-level goals are solved to also defer build-tool-depends goals until top level goals are solved. + - constraints at the top level (on versions, flags, stanzas, etc) are applied first and only then are attempts made to build the less-constrained qualified goals, significantly streamlining the production of valid build plans. + +- Set -Wno-prepositive-qualified-module in Paths_*.hs [#7352](https://github.com/haskell/cabal/pull/7352) diff --git a/release-notes/Cabal-3.6.2.0.md b/release-notes/Cabal-3.6.2.0.md new file mode 100644 index 00000000000..cce46775e09 --- /dev/null +++ b/release-notes/Cabal-3.6.2.0.md @@ -0,0 +1,18 @@ +### Significant changes + + +- Make Paths_ modules work with non-standard preludes again [#5962](https://github.com/haskell/cabal/issues/5962) + + - Generate Paths_ module with qualified Data.List.last import so that compatibility with non-standard preludes is not regressed compared to cabal 3.4. + +- Windows: redo the fix to breakage caused by new autoconf; the wrong fix made cabal sometimes fail with old autoconf [#7494](https://github.com/haskell/cabal/issues/7494) [#7649](https://github.com/haskell/cabal/issues/7649) + + - Reverts #7510 that failed on Windows when used with pre-generated scripts included in packages such as network, time, process. + - Adds a subtler fix/workaround for the deficiencies of new autoconf versions on Windows. + +### Other changes + + +- Regenerate bootstrap/ with GHC updated from 8.10.4 to 8.10.7 + + - This regenerates bootstrap plans using new package versions and also updating GHC from 8.10.4 to 8.10.7, as requested by GHC HQ. diff --git a/release-notes/cabal-install-3.6.0.0.md b/release-notes/cabal-install-3.6.0.0.md new file mode 100644 index 00000000000..c4692787ec9 --- /dev/null +++ b/release-notes/cabal-install-3.6.0.0.md @@ -0,0 +1,43 @@ +### Backports + +- Backported to 3.4 [#6964](https://github.com/haskell/cabal/pull/6964) [#6968](https://github.com/haskell/cabal/pull/6968) +- CI setup [#6959](https://github.com/haskell/cabal/pull/6959) + + - Remove travis scripts + +### Significant Changes + +- Add post-checkout-command to source-package-repository [#6664](https://github.com/haskell/cabal/issues/6664) [#7047](https://github.com/haskell/cabal/pull/7047) +- Assume list-bin target selectors are for executables [#7326](https://github.com/haskell/cabal/issues/7326) [#7335](https://github.com/haskell/cabal/pull/7335) +- Add a --only-download flag [#7323](https://github.com/haskell/cabal/issues/7323) [#7347](https://github.com/haskell/cabal/pull/7347) +- Add `hsc2hs-options`, for specifying additional options to pass to `hsc2hs` [#6295](https://github.com/haskell/cabal/pull/6295) +- Make extra-packages work properly [#6972](https://github.com/haskell/cabal/pull/6972) +- Bugfix - stop creating spurious dirs on `init` [#6772](https://github.com/haskell/cabal/issues/6772) [#7262](https://github.com/haskell/cabal/pull/7262) +- Avoid resource exhaustion in `cabal init` [#5115](https://github.com/haskell/cabal/issues/5115) [#7283](https://github.com/haskell/cabal/pull/7283) + + - Read file contents strictly to avoid resource exhaustion in `cabal init`. + - Ignore UTF-8 decoding errors. + +- Add language extensions for GHC 9.2 [#7312](https://github.com/haskell/cabal/issues/7312) +- --dry-run and --only-download effect v2-configure, v2-freeze, v2-run, and v2-exec [#7379](https://github.com/haskell/cabal/issues/7379) +- Fix instantiating an indefinite Backpack from Hackage with an inplace package [#6835](https://github.com/haskell/cabal/issues/6835) [#7413](https://github.com/haskell/cabal/pull/7413) + + Previously, cabal-install would always attempt to put instantiations of indefinite packages from Hackage in + the global package store, even if they were instantiated with inplace packages. This would not work + and GHC would complain about packages being missing from the package database. We have fixed the + instantiation algorithm to correctly inplace packages in these situations, removing one of the last + blockers to widespread use of Backpack packages on Hackage. + +- removes the warnings for extraneous versions [#7286](https://github.com/haskell/cabal/issues/7286) [#7470](https://github.com/haskell/cabal/pull/7470) +- Alert user and suggest command on spelling mistakes + +### Other improvements + +- Code organization [#6960](https://github.com/haskell/cabal/pull/6960) [#6963](https://github.com/haskell/cabal/pull/6963) [#6970](https://github.com/haskell/cabal/pull/6970) [#6974](https://github.com/haskell/cabal/pull/6974) [#6975](https://github.com/haskell/cabal/pull/6975) + + - Move Cabal sources into Cabal/src + - Move cabal-install sources to cabal-install/src/ + - Move doc/ to the top-level of the repository + - Add stylish-haskell config. + +- Documentation improvements [#6813](https://github.com/haskell/cabal/issues/6813) [#6971](https://github.com/haskell/cabal/pull/6971) [#7047](https://github.com/haskell/cabal/pull/7047) diff --git a/release-notes/cabal-install-3.6.2.0.md b/release-notes/cabal-install-3.6.2.0.md new file mode 100644 index 00000000000..19004ca46b8 --- /dev/null +++ b/release-notes/cabal-install-3.6.2.0.md @@ -0,0 +1,16 @@ +### Significant changes + +- Make Paths_ modules work with non-standard preludes again [#5962](https://github.com/haskell/cabal/issues/5962) + + - Generate Paths_ module with qualified Data.List.last import so that compatibility with non-standard preludes is not regressed compared to cabal 3.4. + +- Windows: redo the fix to breakage caused by new autoconf; the wrong fix made cabal sometimes fail with old autoconf [#7494](https://github.com/haskell/cabal/issues/7494) [#7649](https://github.com/haskell/cabal/issues/7649) + + - Reverts #7510 that failed on Windows when used with pre-generated scripts included in packages such as network, time, process. + - Adds a subtler fix/workaround for the deficiencies of new autoconf versions on Windows. + +### Other changes + +- Regenerate bootstrap/ with GHC updated from 8.10.4 to 8.10.7 + + - This regenerates bootstrap plans using new package versions and also updating GHC from 8.10.4 to 8.10.7, as requested by GHC HQ. diff --git a/scripts/release/create-yaml-snippet.sh b/scripts/release/create-yaml-snippet.sh new file mode 100755 index 00000000000..4efa21c384a --- /dev/null +++ b/scripts/release/create-yaml-snippet.sh @@ -0,0 +1,101 @@ +#!/bin/bash + +set -eu +set -o pipefail + +RELEASE=$1 +VERSION=${RELEASE#cabal-install-v} + +cd "gh-release-artifacts/cabal-${VERSION}" + +cat < /dev/stdout + $VERSION: + viTags: + - Latest + viChangeLog: https://github.com/haskell/cabal/blob/master/release-notes/cabal-install-$VERSION.md + viArch: + A_64: + Linux_Debian: + '< 10': &cabal-${VERSION//./}-64-deb9 + dlUri: https://downloads.haskell.org/~cabal/cabal-install-$VERSION/cabal-install-$VERSION-x86_64-linux-deb9.tar.xz + dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-linux-deb9.tar.xz" | awk '{ print $1 }') + '(>= 10 && < 11)': &cabal-${VERSION//./}-64-deb10 + dlUri: https://downloads.haskell.org/~cabal/cabal-install-$VERSION/cabal-install-$VERSION-x86_64-linux-deb10.tar.xz + dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-linux-deb10.tar.xz" | awk '{ print $1 }') + unknown_versioning: &cabal-${VERSION//./}-64-deb11 + dlUri: https://downloads.haskell.org/~cabal/cabal-install-$VERSION/cabal-install-$VERSION-x86_64-linux-deb11.tar.xz + dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-linux-deb11.tar.xz" | awk '{ print $1 }') + Linux_Ubuntu: + '( >= 16 && < 19 )': &cabal-${VERSION//./}-64-ubuntu18 + dlUri: https://downloads.haskell.org/~cabal/cabal-install-$VERSION/cabal-install-$VERSION-x86_64-linux-ubuntu18.04.tar.xz + dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-linux-ubuntu18.04.tar.xz" | awk '{ print $1 }') + '( >= 20 && < 22 )': &cabal-${VERSION//./}-64-ubuntu20 + dlUri: https://downloads.haskell.org/~cabal/cabal-install-$VERSION/cabal-install-$VERSION-x86_64-linux-ubuntu20.04.tar.xz + dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-linux-ubuntu20.04.tar.xz" | awk '{ print $1 }') + unknown_versioning: &cabal-${VERSION//./}-64-ubuntu22 + dlUri: https://downloads.haskell.org/~cabal/cabal-install-$VERSION/cabal-install-$VERSION-x86_64-linux-ubuntu22.04.tar.xz + dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-linux-ubuntu22.04.tar.xz" | awk '{ print $1 }') + Linux_Mint: + '< 20': + dlUri: https://downloads.haskell.org/~cabal/cabal-install-$VERSION/cabal-install-$VERSION-x86_64-linux-mint19.3.tar.xz + dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-linux-mint19.3.tar.xz" | awk '{ print $1 }') + '(>= 20 && < 21)': + dlUri: https://downloads.haskell.org/~cabal/cabal-install-$VERSION/cabal-install-$VERSION-x86_64-linux-mint20.2.tar.xz + dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-linux-mint20.2.tar.xz" | awk '{ print $1 }') + '>= 21': *cabal-${VERSION//./}-64-ubuntu22 + Linux_Fedora: + '< 33': &cabal-${VERSION//./}-64-fedora27 + dlUri: https://downloads.haskell.org/~cabal/cabal-install-$VERSION/cabal-install-$VERSION-x86_64-linux-fedora27.tar.xz + dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-linux-fedora27.tar.xz" | awk '{ print $1 }') + '>= 33': &cabal-${VERSION//./}-64-fedora33 + dlUri: https://downloads.haskell.org/~cabal/cabal-install-$VERSION/cabal-install-$VERSION-x86_64-linux-fedora33.tar.xz + dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-linux-fedora33.tar.xz" | awk '{ print $1 }') + unknown_versioning: *cabal-${VERSION//./}-64-fedora27 + Linux_CentOS: + '( >= 7 && < 8 )': &cabal-${VERSION//./}-64-centos + dlUri: https://downloads.haskell.org/~cabal/cabal-install-$VERSION/cabal-install-$VERSION-x86_64-linux-centos7.tar.xz + dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-linux-centos7.tar.xz" | awk '{ print $1 }') + unknown_versioning: *cabal-${VERSION//./}-64-centos + Linux_RedHat: + unknown_versioning: *cabal-${VERSION//./}-64-centos + Linux_UnknownLinux: + unknown_versioning: &cabal-${VERSION//./}-64-unknown + dlUri: https://downloads.haskell.org/~cabal/cabal-install-$VERSION/cabal-install-$VERSION-x86_64-linux-unknown.tar.xz + dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-linux-unknown.tar.xz" | awk '{ print $1 }') + Linux_Alpine: + unknown_versioning: *cabal-${VERSION//./}-64-unknown + Darwin: + unknown_versioning: + dlUri: https://downloads.haskell.org/~cabal/cabal-install-$VERSION/cabal-install-$VERSION-x86_64-apple-darwin.tar.xz + dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-apple-darwin.tar.xz" | awk '{ print $1 }') + Windows: + unknown_versioning: + dlUri: https://downloads.haskell.org/~cabal/cabal-install-$VERSION/cabal-install-$VERSION-x86_64-mingw64.zip + dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-mingw64.zip" | awk '{ print $1 }') + FreeBSD: + unknown_versioning: + dlUri: https://downloads.haskell.org/~cabal/cabal-install-$VERSION/cabal-install-$VERSION-x86_64-freebsd.tar.xz + dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-freebsd.tar.xz" | awk '{ print $1 }') + A_32: + Linux_UnknownLinux: + unknown_versioning: &cabal-${VERSION//./}-32-unknown + dlUri: https://downloads.haskell.org/~cabal/cabal-install-$VERSION/cabal-install-$VERSION-i386-linux-unknown.tar.xz + dlHash: $(sha256sum "cabal-install-$VERSION-i386-linux-unknown.tar.xz" | awk '{ print $1 }') + Linux_Alpine: + unknown_versioning: *cabal-${VERSION//./}-32-unknown + A_ARM64: + Linux_UnknownLinux: + unknown_versioning: + dlUri: https://downloads.haskell.org/~cabal/cabal-install-$VERSION/cabal-install-$VERSION-aarch64-linux-ubuntu20.tar.xz + dlHash: $(sha256sum "cabal-install-$VERSION-aarch64-linux-ubuntu20.tar.xz" | awk '{ print $1 }') + Darwin: + unknown_versioning: + dlUri: https://downloads.haskell.org/~cabal/cabal-install-$VERSION/cabal-install-$VERSION-aarch64-apple-darwin.tar.xz + dlHash: $(sha256sum "cabal-install-$VERSION-aarch64-apple-darwin.tar.xz" | awk '{ print $1 }') + A_ARM: + Linux_UnknownLinux: + unknown_versioning: + dlUri: https://downloads.haskell.org/~cabal/cabal-install-$VERSION/cabal-install-$VERSION-armv7-linux-ubuntu20.tar.xz + dlHash: $(sha256sum "cabal-install-$VERSION-armv7-linux-ubuntu20.tar.xz" | awk '{ print $1 }') +EOF + diff --git a/scripts/release/download-gh-artifacts.sh b/scripts/release/download-gh-artifacts.sh new file mode 100755 index 00000000000..efe77d1a720 --- /dev/null +++ b/scripts/release/download-gh-artifacts.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +set -eu +set -o pipefail + +RELEASE=$1 +VERSION=${RELEASE#cabal-install-v} +SIGNER=$2 + +echo "RELEASE: $RELEASE" +echo "SIGNER: $SIGNER" + +for com in gh gpg curl sha256sum ; do + command -V ${com} >/dev/null 2>&1 +done + +[ ! -e "gh-release-artifacts/cabal-${VERSION}" ] + +mkdir -p "gh-release-artifacts/cabal-${VERSION}" + +cd "gh-release-artifacts/cabal-${VERSION}" + +# github +gh release download "$RELEASE" + +# cirrus +curl --fail -L -o "cabal-install-${VERSION}-x86_64-portbld-freebsd.tar.xz" \ + "https://api.cirrus-ci.com/v1/artifact/github/haskell/cabal/build/binaries/out/cabal-install-${VERSION}-x86_64-portbld-freebsd.tar.xz?branch=${RELEASE}" + + +sha256sum ./* > SHA256SUMS +gpg --detach-sign -u "${SIGNER}" SHA256SUMS + +gh release upload "$RELEASE" "cabal-install-${VERSION}-x86_64-portbld-freebsd.tar.xz" SHA256SUMS SHA256SUMS.sig + diff --git a/templates/Paths_pkg.template.hs b/templates/Paths_pkg.template.hs index 62807ada572..edaa513f475 100644 --- a/templates/Paths_pkg.template.hs +++ b/templates/Paths_pkg.template.hs @@ -8,9 +8,7 @@ {-# LANGUAGE ForeignFunctionInterface #-} {% endif %} {-# OPTIONS_GHC -fno-warn-missing-import-lists #-} -{% if supportsNoMissingSafeHaskellMode %} -{-# OPTIONS_GHC -Wno-missing-safe-haskell-mode #-} -{% endif %} +{-# OPTIONS_GHC -w #-} module Paths_{{ manglePkgName packageName }} ( version, getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir, @@ -23,6 +21,7 @@ import Foreign.C {% endif %} import qualified Control.Exception as Exception +import qualified Data.List as List import Data.Version (Version(..)) import System.Environment (getEnv) import Prelude @@ -168,8 +167,8 @@ joinFileName "" fname = fname joinFileName "." fname = fname joinFileName dir "" = dir joinFileName dir fname - | isPathSeparator (last dir) = dir ++ fname - | otherwise = dir ++ pathSeparator : fname + | isPathSeparator (List.last dir) = dir ++ fname + | otherwise = dir ++ pathSeparator : fname pathSeparator :: Char {% if isWindows %} diff --git a/templates/ci-bootstrap.template.yml b/templates/ci-bootstrap.template.yml index e147adb4295..d14065a08ae 100644 --- a/templates/ci-bootstrap.template.yml +++ b/templates/ci-bootstrap.template.yml @@ -22,7 +22,7 @@ jobs: - uses: actions/checkout@v2 - name: bootstrap.py run: | - python3 bootstrap/bootstrap.py -w /opt/ghc/8.10.4/bin/ghc -d bootstrap/linux-8.10.4.json + python3 bootstrap/bootstrap.py -w $(ghcup whereis ghc 8.10.7) -d bootstrap/linux-8.10.7.json - name: Smoke test run: | @@ -40,17 +40,17 @@ jobs: - name: Install GHC run: | cd $(mktemp -d) - curl -sLO "https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-apple-darwin.tar.xz" + curl -sLO "https://downloads.haskell.org/~ghc/8.10.7/ghc-8.10.7-x86_64-apple-darwin.tar.xz" tar -xJf ghc-*.tar.xz cd ghc-* - ./configure --prefix=/opt/ghc/8.10.4 + ./configure --prefix=/opt/ghc/8.10.7 sudo make install - uses: actions/checkout@v2 # We use linux dependencies - name: bootstrap.py run: | - python3 bootstrap/bootstrap.py -w /opt/ghc/8.10.4/bin/ghc -d bootstrap/linux-8.10.4.json + python3 bootstrap/bootstrap.py -w /opt/ghc/8.10.7/bin/ghc -d bootstrap/linux-8.10.7.json - name: Smoke test run: | diff --git a/templates/ci-macos.template.yml b/templates/ci-macos.template.yml index 57ef1b9a911..f4a8f3f3443 100644 --- a/templates/ci-macos.template.yml +++ b/templates/ci-macos.template.yml @@ -56,7 +56,7 @@ jobs: run: | cd $(mktemp -d) {# aeson +fast, so we don't wait for -O2 #} - cabal v2-install cabal-plan --constraint='cabal-plan ^>=0.6.2.0' --constraint='aeson +fast' + cabal v2-install cabal-plan --constraint='cabal-plan ^>=0.6.2.0' --constraint='aeson +fast' --constraint='cabal-plan +exe' - uses: actions/checkout@v2 {% for step in job.steps %} - name: Validate {{step}} diff --git a/templates/ci-quick-jobs.template.yml b/templates/ci-quick-jobs.template.yml index 3ca215a9876..3d4920e365d 100644 --- a/templates/ci-quick-jobs.template.yml +++ b/templates/ci-quick-jobs.template.yml @@ -24,8 +24,6 @@ jobs: # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path run: | echo "$HOME/.cabal/bin" >> $GITHUB_PATH - echo "/opt/cabal/3.2/bin" >> $GITHUB_PATH - echo "/opt/ghc/8.10.4/bin" >> $GITHUB_PATH - uses: actions/cache@v1 with: path: ~/.cabal/store @@ -53,8 +51,6 @@ jobs: - name: Set PATH run: | echo "$HOME/.cabal/bin" >> $GITHUB_PATH - echo "/opt/cabal/3.2/bin" >> $GITHUB_PATH - echo "/opt/ghc/8.10.4/bin" >> $GITHUB_PATH - name: Install cabal-env run: | mkdir -p $HOME/.cabal/bin diff --git a/templates/ci-windows.template.yml b/templates/ci-windows.template.yml index de93fa93629..3319c08bc16 100644 --- a/templates/ci-windows.template.yml +++ b/templates/ci-windows.template.yml @@ -30,7 +30,7 @@ jobs: - uses: actions/setup-haskell@v1.1.4 with: ghc-version: '{{ job.chocoVersion }}' - cabal-version: '3.2.0.0' + cabal-version: '3.4.0.0' - name: Print versions run: | [Environment]::GetEnvironmentVariable("Path") @@ -46,9 +46,12 @@ jobs: - uses: actions/checkout@v2 - name: make cabal-install-dev run: cp cabal-install/cabal-install.cabal.dev cabal-install/cabal-install.cabal - # We cannot ask for all dependencies, but we can for Cabal. - - name: cabal v2-build Cabal --only-dependencies - run: cabal v2-build Cabal --only-dependencies + # all dependencies of Cabal already there (due to GHC depending on Cabal) + - name: cabal v2-build Cabal + run: cabal v2-build Cabal + # We cannot ask for all dependencies, but we can for cabal-install. + - name: cabal v2-build cabal-install --only-dependencies + run: cabal v2-build cabal-install --only-dependencies - name: cabal v2-build run: cabal v2-build all - name: Cabal unit-tests @@ -72,5 +75,52 @@ jobs: cabal v2-run cabal-install:unit-tests -- --pattern "! (/FileMonitor/ || /VCS/ || /Get/)" - name: cabal-tests # Using only one job, -j1, to fail less. - run: cabal v2-run cabal-testsuite:cabal-tests -- -j1 --with-cabal=dist-newstyle\build\x86_64-windows\ghc-{{ job.version }}\cabal-install-3.5.0.0\x\cabal\build\cabal\cabal.exe + run: cabal v2-run cabal-testsuite:cabal-tests -- -j1 --with-cabal=dist-newstyle\build\x86_64-windows\ghc-{{ job.version }}\cabal-install-3.6.0.0\x\cabal\build\cabal\cabal.exe + + test-windows-{{ mangleVersion job.version }}-dogfood: + name: test ghc-{{job.version}} dogfood + runs-on: windows-latest +{% for needs in job.needs %} + needs: test-windows-{{ mangleVersion needs }} +{% endfor %} + steps: + - uses: actions/setup-haskell@v1.1.4 + with: + ghc-version: '{{ job.chocoVersion }}' + cabal-version: '3.4.0.0' + - name: Print versions + run: | + [Environment]::GetEnvironmentVariable("Path") + cabal --version + ghc --version + cabal user-config init -a "http-transport: plain-http" -a "store-dir: C:\SR" -f -v3 + - uses: actions/cache@v1 + with: + path: C:\SR + key: windows-store-meta + - name: Update Hackage index + run: cabal v2-update + - uses: actions/checkout@v2 + # all dependencies of Cabal already there (due to GHC depending on Cabal) + - name: cabal v2-build Cabal + run: cabal v2-build Cabal + # We cannot ask for all dependencies, but we can for cabal-install. + - name: cabal v2-build cabal-install --only-dependencies + run: cabal v2-build cabal-install --only-dependencies + - name: cabal v2-build + run: cabal v2-build all + - name: wipe out cabal store + run: Remove-Item -Recurse -Force C:\SR + - name: eat its own dogfood by building own Cabal source with itself + run: | + cp $(cabal list-bin exe:cabal) ./cabal-exe-current + ./cabal-exe-current --version + ./cabal-exe-current v2-build Cabal + shell: bash + - name: eat its own dogfood by building all deps with itself + run: ./cabal-exe-current v2-build cabal-install --only-dependencies + shell: bash + - name: eat its own dogfood by building own source with itself + run: ./cabal-exe-current v2-build all + shell: bash {% endfor %} diff --git a/vendor/cabal-doctest-1.0.8/cabal-doctest.cabal b/vendor/cabal-doctest-1.0.8/cabal-doctest.cabal index b6a648decb8..f4660296605 100644 --- a/vendor/cabal-doctest-1.0.8/cabal-doctest.cabal +++ b/vendor/cabal-doctest-1.0.8/cabal-doctest.cabal @@ -22,7 +22,7 @@ extra-source-files: ChangeLog.md README.md -tested-with: GHC ==8.10.1 || >=7.4 && <8.10 || ==7.2.2 || ==7.0.4 +tested-with: GHC ==8.10.4 || >=7.4 && <8.10 || ==7.2.2 || ==7.0.4 source-repository head type: git @@ -34,7 +34,7 @@ library other-extensions: build-depends: base >=4.3 && <4.16 - , Cabal >=1.10 && <3.6 + , Cabal >=1.10 && <3.8 , directory , filepath