Merge pull request #1665 from GaloisInc/ghc-9.8

Support building with GHC 9.8
This commit is contained in:
Ryan Scott 2024-05-22 09:44:41 -04:00 committed by GitHub
commit 14588662ed
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
23 changed files with 373 additions and 293 deletions

View File

@ -65,28 +65,28 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-22.04]
ghc-version: ["9.2.8", "9.4.7", "9.6.2"]
cabal: [ '3.10.1.0' ]
ghc-version: ["9.4.8", "9.6.5", "9.8.2"]
cabal: [ '3.10.3.0' ]
run-tests: [true]
include:
# We include one job from an older Ubuntu LTS release to increase our
# coverage of possible Linux configurations. Since we already run the
# tests with the newest LTS release, we won't bother testing this one.
- os: ubuntu-20.04
ghc-version: 9.2.8
ghc-version: 9.4.8
run-tests: false
# Windows and macOS CI runners are more expensive than Linux runners,
# so we only build one particular GHC version to test them on. We
# include both an x86-64 macOS runner (macos-12) as well as an AArch64
# macOS runner (macos-14).
- os: windows-2019
ghc-version: 9.2.8
ghc-version: 9.4.8
run-tests: true
- os: macos-12
ghc-version: 9.2.8
ghc-version: 9.4.8
run-tests: true
- os: macos-14
ghc-version: 9.2.8
ghc-version: 9.4.8
run-tests: true
outputs:
test-lib-json: ${{ steps.test-lib.outputs.targets-json }}
@ -227,13 +227,13 @@ jobs:
if-no-files-found: error
retention-days: ${{ needs.config.outputs.retention-days }}
- if: matrix.ghc-version == '9.2.8' && matrix.run-tests
- if: matrix.ghc-version == '9.4.8' && matrix.run-tests
uses: actions/upload-artifact@v2
with:
path: dist/bin
name: ${{ matrix.os }}-dist-bin
- if: matrix.ghc-version == '9.2.8' && matrix.run-tests
- if: matrix.ghc-version == '9.4.8' && matrix.run-tests
uses: actions/upload-artifact@v2
with:
path: bin
@ -287,7 +287,7 @@ jobs:
- uses: haskell/actions/setup@v2
with:
ghc-version: '9.2.8'
ghc-version: '9.4.8'
# Homebrew installs packages in different directories depending on which
# macOS architecture you are using:
@ -311,13 +311,16 @@ jobs:
uses: msys2/setup-msys2@v2
with:
update: true
msystem: MINGW64
# NB: Use CLANG64 here, not MINGW64. GHC 9.4 and later bundle a
# Clang-based C toolchain on Windows, and the FFI-related tests work
# best when the DLLs are compiled with Clang as well.
msystem: CLANG64
# These are needed for the ffi tests on Windows
install: |
diffutils
make
mingw-w64-x86_64-gcc
mingw-w64-x86_64-gmp
mingw-w64-clang-x86_64-gcc
mingw-w64-clang-x86_64-gmp
if: matrix.suite == 'test-lib' && runner.os == 'Windows'
- if: matrix.suite == 'rpc'

4
.gitpod.Dockerfile vendored
View File

@ -19,10 +19,10 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -yq \
RUN curl https://i.jpillora.com/chisel! | bash
# Install GHC
ARG GHCVER="9.2.8"
ARG GHCVER="9.4.8"
ENV GHCUP_INSTALL_BASE_PREFIX=/opt \
PATH=/opt/.ghcup/bin:$PATH
RUN curl -o /usr/local/bin/ghcup "https://downloads.haskell.org/~ghcup/0.1.19.4/x86_64-linux-ghcup-0.1.19.4" && \
RUN curl -o /usr/local/bin/ghcup "https://downloads.haskell.org/~ghcup/0.1.22.0/x86_64-linux-ghcup-0.1.22.0" && \
chmod +x /usr/local/bin/ghcup
RUN ghcup install cabal --set
ENV PATH=/root/.cabal/bin:$PATH

View File

@ -1,7 +1,7 @@
FROM ubuntu:22.04 AS build
ARG GHCVER="9.2.8"
ARG CABALVER="3.10.1.0"
ARG GHCVER="9.4.8"
ARG CABALVER="3.10.3.0"
RUN apt-get update && \
apt-get install -y \
# ghcup requirements
@ -28,7 +28,7 @@ ENV LANG=C.UTF-8 \
LC_ALL=C.UTF-8
COPY cabal.GHC-${GHCVER}.config cabal.project.freeze
RUN mkdir -p /home/cryptol/.local/bin && \
curl -L https://downloads.haskell.org/~ghcup/0.1.19.4/x86_64-linux-ghcup-0.1.19.4 -o /home/cryptol/.local/bin/ghcup && \
curl -L https://downloads.haskell.org/~ghcup/0.1.22.0/x86_64-linux-ghcup-0.1.22.0 -o /home/cryptol/.local/bin/ghcup && \
chmod +x /home/cryptol/.local/bin/ghcup
RUN mkdir -p /home/cryptol/.ghcup && \
ghcup --version && \

View File

@ -82,8 +82,8 @@ Windows. We regularly build and test it in the following environments:
## Prerequisites
Cryptol is regularly built and tested with the three most recent
versions of GHC, which at the time of this writing are 9.2.8, 9.4.7, and
9.6.2. The easiest way to install an appropriate version of GHC is
versions of GHC, which at the time of this writing are 9.4.8, 9.6.2, and
9.8.2. The easiest way to install an appropriate version of GHC is
with [ghcup](https://www.haskell.org/ghcup/).
Some supporting non-Haskell libraries are required to build

View File

@ -8,18 +8,18 @@ constraints: any.BoundedChan ==1.0.3.0,
any.HUnit ==1.6.2.0,
any.MemoTrie ==0.6.11,
MemoTrie -examples,
any.OneTuple ==0.4.1.1,
any.OneTuple ==0.4.2,
any.Only ==0.1,
any.QuickCheck ==2.14.3,
QuickCheck -old-random +templatehaskell,
any.StateVar ==1.2.2,
any.adjunctions ==4.4.2,
any.aeson ==2.2.1.0,
any.aeson ==2.2.2.0,
aeson +ordered-keymap,
any.alex ==3.5.0.0,
any.ansi-terminal ==1.0.2,
any.alex ==3.5.1.0,
any.ansi-terminal ==1.1.1,
ansi-terminal -example,
any.ansi-terminal-types ==0.11.5,
any.ansi-terminal-types ==1.1,
any.ansi-wl-pprint ==1.0.2,
ansi-wl-pprint -example,
any.appar ==0.1.8,
@ -28,44 +28,47 @@ constraints: any.BoundedChan ==1.0.3.0,
any.asn1-encoding ==0.9.6,
any.asn1-parse ==0.9.5,
any.asn1-types ==0.3.4,
any.assoc ==1.1,
assoc +tagged,
any.assoc ==1.1.1,
assoc -tagged,
any.async ==2.2.5,
async -bench,
any.attoparsec ==0.14.4,
attoparsec -developer,
any.auto-update ==0.1.6,
any.base ==4.17.2.0,
any.auto-update ==0.2.0,
any.base ==4.17.2.1,
any.base-compat ==0.12.3,
any.base-compat-batteries ==0.12.3,
any.base-orphans ==0.9.1,
any.base-orphans ==0.9.2,
any.base16-bytestring ==1.0.2.0,
any.base64-bytestring ==1.2.1.0,
any.basement ==0.0.16,
any.bifunctors ==5.6.1,
any.bifunctors ==5.6.2,
bifunctors +tagged,
any.bimap ==0.5.0,
any.binary ==0.8.9.1,
any.binary-orphans ==1.0.4.1,
any.binary-orphans ==1.0.5,
any.bitvec ==1.1.5.0,
bitvec +simd,
any.bitwise ==1.0.0.1,
any.blaze-builder ==0.4.2.3,
any.blaze-html ==0.9.1.2,
any.blaze-html ==0.9.2.0,
any.blaze-markup ==0.8.3.0,
any.boring ==0.2.1,
any.boring ==0.2.2,
boring +tagged,
any.bsb-http-chunked ==0.0.0.4,
any.bv-sized ==1.0.5,
any.byteorder ==1.0.4,
any.bytestring ==0.11.5.2,
any.bytestring ==0.11.5.3,
any.cabal-doctest ==1.0.9,
any.call-stack ==0.4.0,
any.case-insensitive ==1.2.1.0,
any.cassava ==0.5.3.0,
cassava -bytestring--lt-0_10_4,
any.cassava ==0.5.3.1,
any.cborg ==0.2.10.0,
cborg +optimize-gmp,
any.cereal ==0.5.8.3,
cereal -bytestring-builder,
any.chimera ==0.4.0.0,
any.character-ps ==0.1,
any.chimera ==0.4.1.0,
chimera +representable,
any.clock ==0.8.4,
clock -llvm,
@ -75,30 +78,31 @@ constraints: any.BoundedChan ==1.0.3.0,
comonad +containers +distributive +indexed-traversable,
any.concurrent-extra ==0.7.0.12,
any.config-value ==0.8.3,
any.constraints ==0.14,
any.constraints ==0.14.2,
any.containers ==0.6.7,
any.contravariant ==1.5.5,
contravariant +semigroups +statevar +tagged,
any.cookie ==0.4.6,
any.cookie ==0.5.0,
any.criterion ==1.6.3.0,
criterion -embed-data-files -fast,
any.criterion-measurement ==0.2.1.0,
any.criterion-measurement ==0.2.2.0,
criterion-measurement -fast,
any.crypto-token ==0.1.1,
any.cryptohash-md5 ==0.11.101.0,
any.cryptohash-sha1 ==0.11.101.0,
cryptol +ffi +relocatable -static,
cryptol-remote-api -notthreaded -static,
cryptol-test-runner -static,
any.crypton ==0.34,
any.crypton ==1.0.0,
crypton -check_alignment +integer-gmp -old_toolchain_inliner +support_aesni +support_deepseq +support_pclmuldq +support_rdrand -support_sse +use_target_attributes,
any.crypton-x509 ==1.7.6,
any.crypton-x509-store ==1.6.9,
any.crypton-x509-validation ==1.6.12,
any.data-default-class ==0.1.2.0,
any.data-fix ==0.3.2,
any.data-fix ==0.3.3,
any.deepseq ==1.4.8.0,
any.dense-linear-algebra ==0.1.0.0,
any.deriving-compat ==0.6.5,
any.deriving-compat ==0.6.6,
deriving-compat +base-4-9 +new-functor-classes +template-haskell-2-11,
any.directory ==1.3.7.1,
any.distributive ==0.6.2.1,
@ -111,8 +115,8 @@ constraints: any.BoundedChan ==1.0.3.0,
any.exact-pi ==0.5.0.2,
any.exceptions ==0.10.5,
any.extensible-exceptions ==0.1.1.4,
any.extra ==1.7.14,
any.fast-logger ==3.2.2,
any.extra ==1.7.16,
any.fast-logger ==3.2.3,
any.file-embed ==0.0.16.0,
any.filelock ==0.1.1.7,
any.filepath ==1.4.2.2,
@ -122,11 +126,12 @@ constraints: any.BoundedChan ==1.0.3.0,
any.free ==5.2,
any.generically ==0.1.1,
any.ghc-bignum ==1.3,
any.ghc-boot-th ==9.4.7,
any.ghc-boot-th ==9.4.8,
any.ghc-prim ==0.9.1,
any.gitrev ==1.3.1,
any.half ==0.3.1,
any.happy ==1.20.1.1,
any.hashable ==1.4.3.0,
any.hashable ==1.4.4.0,
hashable +integer-gmp -random-initial-seed,
any.hashtables ==1.3.1,
hashtables -bounds-checking -debug -detailed-profiling -portable -sse42 +unsafe-tricks,
@ -138,24 +143,25 @@ constraints: any.BoundedChan ==1.0.3.0,
any.hsc2hs ==0.68.10,
hsc2hs -in-ghc-tree,
any.http-date ==0.0.11,
any.http-semantics ==0.0.0,
any.http-types ==0.12.4,
any.http2 ==5.0.1,
any.http2 ==5.2.1,
http2 -devel -h2spec,
any.ieee754 ==0.8.0,
any.indexed-traversable ==0.1.3,
any.indexed-traversable-instances ==0.1.1.2,
any.indexed-traversable ==0.1.4,
any.indexed-traversable-instances ==0.1.2,
any.infinite-list ==0.1.1,
any.integer-conversion ==0.1.0.1,
any.integer-conversion ==0.1.1,
any.integer-gmp ==1.1,
any.integer-logarithms ==1.0.3.1,
integer-logarithms -check-bounds +integer-gmp,
any.integer-roots ==1.0.2.0,
any.invariant ==0.6.2,
any.invariant ==0.6.3,
any.io-streams ==1.5.2.2,
io-streams +network -nointeractivetests +zlib,
any.iproute ==1.7.12,
any.js-chart ==2.9.4.1,
any.kan-extensions ==5.2.5,
any.kan-extensions ==5.2.6,
any.language-c99 ==0.2.0,
any.language-c99-simple ==0.3.0,
any.language-c99-util ==0.2.0,
@ -165,13 +171,13 @@ constraints: any.BoundedChan ==1.0.3.0,
libBF -system-libbf,
any.libffi ==0.2.1,
libffi +ghc-bundled-libffi,
any.math-functions ==0.3.4.3,
any.math-functions ==0.3.4.4,
math-functions +system-erf +system-expm1,
any.megaparsec ==9.6.1,
megaparsec -dev,
any.memory ==0.18.0,
memory +support_bytestring +support_deepseq,
any.microstache ==1.0.2.3,
any.microstache ==1.0.3,
any.mod ==0.2.0.1,
mod +semirings +vector,
any.monad-control ==1.0.3.1,
@ -181,7 +187,7 @@ constraints: any.BoundedChan ==1.0.3.0,
any.network ==3.1.4.0,
network -devel,
any.network-byte-order ==0.1.7,
any.network-control ==0.0.2,
any.network-control ==0.1.0,
any.network-info ==0.2.1,
any.network-uri ==2.6.4.2,
any.newtype-generics ==0.6.2,
@ -190,7 +196,8 @@ constraints: any.BoundedChan ==1.0.3.0,
any.old-time ==1.1.0.4,
any.optparse-applicative ==0.18.1.0,
optparse-applicative +process,
any.ordered-containers ==0.2.3,
any.ordered-containers ==0.2.4,
any.os-string ==2.0.2.2,
any.panic ==0.4.0.1,
any.parallel ==3.2.2.0,
any.parameterized-utils ==2.1.8.0,
@ -206,14 +213,14 @@ constraints: any.BoundedChan ==1.0.3.0,
any.prettyprinter-ansi-terminal ==1.1.3,
any.prettyprinter-compat-ansi-wl-pprint ==1.0.2,
any.primitive ==0.9.0.0,
any.process ==1.6.17.0,
any.process ==1.6.18.0,
any.profunctors ==5.6.2,
any.psqueues ==0.2.8.0,
any.quickcheck-instances ==0.3.30,
quickcheck-instances -bytestring-builder,
any.random ==1.2.1.2,
any.recv ==0.1.0,
any.reflection ==2.1.7,
any.reflection ==2.1.8,
reflection -slow +template-haskell,
any.regex-base ==0.94.0.2,
any.regex-compat ==0.95.2.1,
@ -225,18 +232,20 @@ constraints: any.BoundedChan ==1.0.3.0,
s-cargot -build-example,
any.safe ==0.3.21,
any.safe-exceptions ==0.1.7.4,
any.sbv ==10.2,
any.scientific ==0.3.7.0,
scientific -bytestring-builder -integer-simple,
any.scotty ==0.12.1,
any.semialign ==1.3,
any.sbv ==10.10,
any.scientific ==0.3.8.0,
scientific -integer-simple,
any.scotty ==0.21,
any.semialign ==1.3.1,
semialign +semigroupoids,
any.semigroupoids ==6.0.0.1,
any.semigroupoids ==6.0.1,
semigroupoids +comonad +containers +contravariant +distributive +tagged +unordered-containers,
any.semigroups ==0.20,
semigroups +binary +bytestring -bytestring-builder +containers +deepseq +hashable +tagged +template-haskell +text +transformers +unordered-containers,
any.semirings ==0.6,
semirings +containers +unordered-containers,
any.serialise ==0.2.6.1,
serialise +newtime15,
any.silently ==1.2.5.3,
any.simple-get-opt ==0.4,
any.simple-sendfile ==0.2.32,
@ -264,28 +273,26 @@ constraints: any.BoundedChan ==1.0.3.0,
test-framework-hunit -base3 +base4,
any.test-lib ==0.4,
any.text ==2.0.2,
any.text-iso8601 ==0.1,
any.text-short ==0.1.5,
any.text-iso8601 ==0.1.1,
any.text-short ==0.1.6,
text-short -asserts,
any.tf-random ==0.5,
any.th-abstraction ==0.6.0.0,
any.th-compat ==0.1.4,
any.th-compat ==0.1.5,
any.th-lift ==0.8.4,
any.th-lift-instances ==0.1.20,
any.these ==1.2,
any.these ==1.2.1,
any.time ==1.12.2,
any.time-compat ==1.9.6.1,
time-compat -old-locale,
any.time-manager ==0.0.1,
any.tls ==1.9.0,
tls +compat -hans +network,
any.tls-session-manager ==0.0.4,
any.time-compat ==1.9.7,
any.time-manager ==0.1.0,
any.tls ==2.0.5,
tls -devel,
any.tls-session-manager ==0.0.5,
any.transformers ==0.5.6.2,
any.transformers-base ==0.4.6,
transformers-base +orphaninstances,
any.transformers-compat ==0.7.2,
transformers-compat -five +five-three -four +generic-deriving +mtl -three -two,
any.type-equality ==1,
any.unbounded-delays ==0.1.1.1,
any.uniplate ==1.6.13,
any.unix ==2.7.3,
@ -308,23 +315,23 @@ constraints: any.BoundedChan ==1.0.3.0,
any.vector-binary-instances ==0.2.5.2,
any.vector-stream ==0.1.0.1,
any.vector-th-unbox ==0.2.2,
any.versions ==6.0.5,
any.versions ==6.0.6,
any.void ==0.7.3,
void -safe,
any.wai ==3.2.4,
any.wai-extra ==3.1.14,
any.wai-extra ==3.1.15,
wai-extra -build-example,
any.wai-logger ==2.4.0,
any.warp ==3.3.31,
any.warp ==3.4.1,
warp +allow-sendfilefd -network-bytestring -warp-debug +x509,
any.warp-tls ==3.4.4,
any.what4 ==1.5.1,
any.warp-tls ==3.4.5,
any.what4 ==1.6,
what4 -drealtestdisable -solvertests -stptestdisable,
any.witherable ==0.4.2,
any.witherable ==0.5,
any.word8 ==0.1.3,
any.xml ==1.3.14,
any.zenc ==0.1.2,
any.zlib ==0.6.3.0,
zlib -bundled-c-zlib -non-blocking-ffi -pkg-config,
any.zlib ==0.7.1.0,
zlib +non-blocking-ffi,
any.zlib-bindings ==0.1.1.5
index-state: hackage.haskell.org 2024-02-06T22:11:38Z
index-state: hackage.haskell.org 2024-05-20T12:40:45Z

View File

@ -1,71 +1,74 @@
active-repositories: hackage.haskell.org:merge
constraints: any.BoundedChan ==1.0.3.0,
any.Cabal ==3.10.1.0,
any.Cabal-syntax ==3.10.1.0,
any.Cabal ==3.10.3.0,
any.Cabal-syntax ==3.10.3.0,
any.Glob ==0.10.2,
any.GraphSCC ==1.0.4,
GraphSCC -use-maps,
any.HUnit ==1.6.2.0,
any.MemoTrie ==0.6.11,
MemoTrie -examples,
any.OneTuple ==0.4.1.1,
any.OneTuple ==0.4.2,
any.Only ==0.1,
any.QuickCheck ==2.14.3,
QuickCheck -old-random +templatehaskell,
any.StateVar ==1.2.2,
any.adjunctions ==4.4.2,
any.aeson ==2.2.1.0,
any.aeson ==2.2.2.0,
aeson +ordered-keymap,
any.alex ==3.5.0.0,
any.ansi-terminal ==1.0.2,
any.alex ==3.5.1.0,
any.ansi-terminal ==1.1.1,
ansi-terminal -example,
any.ansi-terminal-types ==0.11.5,
any.ansi-terminal-types ==1.1,
any.ansi-wl-pprint ==1.0.2,
ansi-wl-pprint -example,
any.appar ==0.1.8,
any.arithmoi ==0.13.0.0,
any.array ==0.5.5.0,
any.array ==0.5.6.0,
any.asn1-encoding ==0.9.6,
any.asn1-parse ==0.9.5,
any.asn1-types ==0.3.4,
any.assoc ==1.1,
assoc +tagged,
any.assoc ==1.1.1,
assoc -tagged,
any.async ==2.2.5,
async -bench,
any.attoparsec ==0.14.4,
attoparsec -developer,
any.auto-update ==0.1.6,
any.base ==4.18.0.0,
any.auto-update ==0.2.0,
any.base ==4.18.2.1,
any.base-compat ==0.12.3,
any.base-compat-batteries ==0.12.3,
any.base-orphans ==0.9.1,
any.base-orphans ==0.9.2,
any.base16-bytestring ==1.0.2.0,
any.base64-bytestring ==1.2.1.0,
any.basement ==0.0.16,
any.bifunctors ==5.6.1,
any.bifunctors ==5.6.2,
bifunctors +tagged,
any.bimap ==0.5.0,
any.binary ==0.8.9.1,
any.binary-orphans ==1.0.4.1,
any.binary-orphans ==1.0.5,
any.bitvec ==1.1.5.0,
bitvec +simd,
any.bitwise ==1.0.0.1,
any.blaze-builder ==0.4.2.3,
any.blaze-html ==0.9.1.2,
any.blaze-html ==0.9.2.0,
any.blaze-markup ==0.8.3.0,
any.boring ==0.2.1,
any.boring ==0.2.2,
boring +tagged,
any.bsb-http-chunked ==0.0.0.4,
any.bv-sized ==1.0.5,
any.byteorder ==1.0.4,
any.bytestring ==0.11.4.0,
any.bytestring ==0.11.5.3,
any.cabal-doctest ==1.0.9,
any.call-stack ==0.4.0,
any.case-insensitive ==1.2.1.0,
any.cassava ==0.5.3.0,
cassava -bytestring--lt-0_10_4,
any.cassava ==0.5.3.1,
any.cborg ==0.2.10.0,
cborg +optimize-gmp,
any.cereal ==0.5.8.3,
cereal -bytestring-builder,
any.chimera ==0.4.0.0,
any.character-ps ==0.1,
any.chimera ==0.4.1.0,
chimera +representable,
any.clock ==0.8.4,
clock -llvm,
@ -75,32 +78,33 @@ constraints: any.BoundedChan ==1.0.3.0,
comonad +containers +distributive +indexed-traversable,
any.concurrent-extra ==0.7.0.12,
any.config-value ==0.8.3,
any.constraints ==0.14,
any.constraints ==0.14.2,
any.containers ==0.6.7,
any.contravariant ==1.5.5,
contravariant +semigroups +statevar +tagged,
any.cookie ==0.4.6,
any.cookie ==0.5.0,
any.criterion ==1.6.3.0,
criterion -embed-data-files -fast,
any.criterion-measurement ==0.2.1.0,
any.criterion-measurement ==0.2.2.0,
criterion-measurement -fast,
any.crypto-token ==0.1.1,
any.cryptohash-md5 ==0.11.101.0,
any.cryptohash-sha1 ==0.11.101.0,
cryptol +ffi +relocatable -static,
cryptol-remote-api -notthreaded -static,
cryptol-test-runner -static,
any.crypton ==0.34,
any.crypton ==1.0.0,
crypton -check_alignment +integer-gmp -old_toolchain_inliner +support_aesni +support_deepseq +support_pclmuldq +support_rdrand -support_sse +use_target_attributes,
any.crypton-x509 ==1.7.6,
any.crypton-x509-store ==1.6.9,
any.crypton-x509-validation ==1.6.12,
any.data-default-class ==0.1.2.0,
any.data-fix ==0.3.2,
any.data-fix ==0.3.3,
any.deepseq ==1.4.8.1,
any.dense-linear-algebra ==0.1.0.0,
any.deriving-compat ==0.6.5,
any.deriving-compat ==0.6.6,
deriving-compat +base-4-9 +new-functor-classes +template-haskell-2-11,
any.directory ==1.3.8.1,
any.directory ==1.3.8.4,
any.distributive ==0.6.2.1,
distributive +semigroups +tagged,
any.dlist ==1.0,
@ -111,20 +115,21 @@ constraints: any.BoundedChan ==1.0.3.0,
any.exact-pi ==0.5.0.2,
any.exceptions ==0.10.7,
any.extensible-exceptions ==0.1.1.4,
any.extra ==1.7.14,
any.fast-logger ==3.2.2,
any.extra ==1.7.16,
any.fast-logger ==3.2.3,
any.file-embed ==0.0.16.0,
any.filelock ==0.1.1.7,
any.filepath ==1.4.100.1,
any.filepath ==1.4.300.1,
any.fingertree ==0.1.5.0,
any.free ==5.2,
any.generically ==0.1.1,
any.ghc-bignum ==1.3,
any.ghc-boot-th ==9.6.2,
any.ghc-boot-th ==9.6.5,
any.ghc-prim ==0.10.0,
any.gitrev ==1.3.1,
any.half ==0.3.1,
any.happy ==1.20.1.1,
any.hashable ==1.4.3.0,
any.hashable ==1.4.4.0,
hashable +integer-gmp -random-initial-seed,
any.hashtables ==1.3.1,
hashtables -bounds-checking -debug -detailed-profiling -portable -sse42 +unsafe-tricks,
@ -136,24 +141,25 @@ constraints: any.BoundedChan ==1.0.3.0,
any.hsc2hs ==0.68.10,
hsc2hs -in-ghc-tree,
any.http-date ==0.0.11,
any.http-semantics ==0.0.0,
any.http-types ==0.12.4,
any.http2 ==5.0.1,
any.http2 ==5.2.1,
http2 -devel -h2spec,
any.ieee754 ==0.8.0,
any.indexed-traversable ==0.1.3,
any.indexed-traversable-instances ==0.1.1.2,
any.indexed-traversable ==0.1.4,
any.indexed-traversable-instances ==0.1.2,
any.infinite-list ==0.1.1,
any.integer-conversion ==0.1.0.1,
any.integer-conversion ==0.1.1,
any.integer-gmp ==1.1,
any.integer-logarithms ==1.0.3.1,
integer-logarithms -check-bounds +integer-gmp,
any.integer-roots ==1.0.2.0,
any.invariant ==0.6.2,
any.invariant ==0.6.3,
any.io-streams ==1.5.2.2,
io-streams +network -nointeractivetests +zlib,
any.iproute ==1.7.12,
any.js-chart ==2.9.4.1,
any.kan-extensions ==5.2.5,
any.kan-extensions ==5.2.6,
any.language-c99 ==0.2.0,
any.language-c99-simple ==0.3.0,
any.language-c99-util ==0.2.0,
@ -163,13 +169,13 @@ constraints: any.BoundedChan ==1.0.3.0,
libBF -system-libbf,
any.libffi ==0.2.1,
libffi +ghc-bundled-libffi,
any.math-functions ==0.3.4.3,
any.math-functions ==0.3.4.4,
math-functions +system-erf +system-expm1,
any.megaparsec ==9.6.1,
megaparsec -dev,
any.memory ==0.18.0,
memory +support_bytestring +support_deepseq,
any.microstache ==1.0.2.3,
any.microstache ==1.0.3,
any.mod ==0.2.0.1,
mod +semirings +vector,
any.monad-control ==1.0.3.1,
@ -179,7 +185,7 @@ constraints: any.BoundedChan ==1.0.3.0,
any.network ==3.1.4.0,
network -devel,
any.network-byte-order ==0.1.7,
any.network-control ==0.0.2,
any.network-control ==0.1.0,
any.network-info ==0.2.1,
any.network-uri ==2.6.4.2,
any.newtype-generics ==0.6.2,
@ -188,7 +194,8 @@ constraints: any.BoundedChan ==1.0.3.0,
any.old-time ==1.1.0.4,
any.optparse-applicative ==0.18.1.0,
optparse-applicative +process,
any.ordered-containers ==0.2.3,
any.ordered-containers ==0.2.4,
any.os-string ==2.0.2.2,
any.panic ==0.4.0.1,
any.parallel ==3.2.2.0,
any.parameterized-utils ==2.1.8.0,
@ -204,14 +211,14 @@ constraints: any.BoundedChan ==1.0.3.0,
any.prettyprinter-ansi-terminal ==1.1.3,
any.prettyprinter-compat-ansi-wl-pprint ==1.0.2,
any.primitive ==0.9.0.0,
any.process ==1.6.17.0,
any.process ==1.6.19.0,
any.profunctors ==5.6.2,
any.psqueues ==0.2.8.0,
any.quickcheck-instances ==0.3.30,
quickcheck-instances -bytestring-builder,
any.random ==1.2.1.2,
any.recv ==0.1.0,
any.reflection ==2.1.7,
any.reflection ==2.1.8,
reflection -slow +template-haskell,
any.regex-base ==0.94.0.2,
any.regex-compat ==0.95.2.1,
@ -223,18 +230,20 @@ constraints: any.BoundedChan ==1.0.3.0,
s-cargot -build-example,
any.safe ==0.3.21,
any.safe-exceptions ==0.1.7.4,
any.sbv ==10.2,
any.scientific ==0.3.7.0,
scientific -bytestring-builder -integer-simple,
any.scotty ==0.12.1,
any.semialign ==1.3,
any.sbv ==10.10,
any.scientific ==0.3.8.0,
scientific -integer-simple,
any.scotty ==0.21,
any.semialign ==1.3.1,
semialign +semigroupoids,
any.semigroupoids ==6.0.0.1,
any.semigroupoids ==6.0.1,
semigroupoids +comonad +containers +contravariant +distributive +tagged +unordered-containers,
any.semigroups ==0.20,
semigroups +binary +bytestring -bytestring-builder +containers +deepseq +hashable +tagged +template-haskell +text +transformers +unordered-containers,
any.semirings ==0.6,
semirings +containers +unordered-containers,
any.serialise ==0.2.6.1,
serialise +newtime15,
any.silently ==1.2.5.3,
any.simple-get-opt ==0.4,
any.simple-sendfile ==0.2.32,
@ -262,31 +271,29 @@ constraints: any.BoundedChan ==1.0.3.0,
test-framework-hunit -base3 +base4,
any.test-lib ==0.4,
any.text ==2.0.2,
any.text-iso8601 ==0.1,
any.text-short ==0.1.5,
any.text-iso8601 ==0.1.1,
any.text-short ==0.1.6,
text-short -asserts,
any.tf-random ==0.5,
any.th-abstraction ==0.6.0.0,
any.th-compat ==0.1.4,
any.th-compat ==0.1.5,
any.th-lift ==0.8.4,
any.th-lift-instances ==0.1.20,
any.these ==1.2,
any.these ==1.2.1,
any.time ==1.12.2,
any.time-compat ==1.9.6.1,
time-compat -old-locale,
any.time-manager ==0.0.1,
any.tls ==1.9.0,
tls +compat -hans +network,
any.tls-session-manager ==0.0.4,
any.time-compat ==1.9.7,
any.time-manager ==0.1.0,
any.tls ==2.0.5,
tls -devel,
any.tls-session-manager ==0.0.5,
any.transformers ==0.6.1.0,
any.transformers-base ==0.4.6,
transformers-base +orphaninstances,
any.transformers-compat ==0.7.2,
transformers-compat -five +five-three -four +generic-deriving +mtl -three -two,
any.type-equality ==1,
any.unbounded-delays ==0.1.1.1,
any.uniplate ==1.6.13,
any.unix ==2.8.1.0,
any.unix ==2.8.4.0,
any.unix-compat ==0.7.1,
unix-compat -old-time,
any.unix-time ==0.4.12,
@ -306,23 +313,23 @@ constraints: any.BoundedChan ==1.0.3.0,
any.vector-binary-instances ==0.2.5.2,
any.vector-stream ==0.1.0.1,
any.vector-th-unbox ==0.2.2,
any.versions ==6.0.5,
any.versions ==6.0.6,
any.void ==0.7.3,
void -safe,
any.wai ==3.2.4,
any.wai-extra ==3.1.14,
any.wai-extra ==3.1.15,
wai-extra -build-example,
any.wai-logger ==2.4.0,
any.warp ==3.3.31,
any.warp ==3.4.1,
warp +allow-sendfilefd -network-bytestring -warp-debug +x509,
any.warp-tls ==3.4.4,
any.what4 ==1.5.1,
any.warp-tls ==3.4.5,
any.what4 ==1.6,
what4 -drealtestdisable -solvertests -stptestdisable,
any.witherable ==0.4.2,
any.witherable ==0.5,
any.word8 ==0.1.3,
any.xml ==1.3.14,
any.zenc ==0.1.2,
any.zlib ==0.6.3.0,
zlib -bundled-c-zlib -non-blocking-ffi -pkg-config,
any.zlib ==0.7.1.0,
zlib +non-blocking-ffi,
any.zlib-bindings ==0.1.1.5
index-state: hackage.haskell.org 2024-02-06T22:11:38Z
index-state: hackage.haskell.org 2024-05-20T12:40:45Z

View File

@ -1,70 +1,74 @@
active-repositories: hackage.haskell.org:merge
constraints: any.BoundedChan ==1.0.3.0,
any.Cabal ==3.6.3.0,
any.Cabal ==3.10.2.0,
any.Cabal-syntax ==3.10.2.0,
any.Glob ==0.10.2,
any.GraphSCC ==1.0.4,
GraphSCC -use-maps,
any.HUnit ==1.6.2.0,
any.MemoTrie ==0.6.11,
MemoTrie -examples,
any.OneTuple ==0.4.1.1,
any.OneTuple ==0.4.2,
any.Only ==0.1,
any.QuickCheck ==2.14.3,
QuickCheck -old-random +templatehaskell,
any.StateVar ==1.2.2,
any.adjunctions ==4.4.2,
any.aeson ==2.2.1.0,
any.aeson ==2.2.2.0,
aeson +ordered-keymap,
any.alex ==3.5.0.0,
any.ansi-terminal ==1.0.2,
any.alex ==3.5.1.0,
any.ansi-terminal ==1.1.1,
ansi-terminal -example,
any.ansi-terminal-types ==0.11.5,
any.ansi-terminal-types ==1.1,
any.ansi-wl-pprint ==1.0.2,
ansi-wl-pprint -example,
any.appar ==0.1.8,
any.arithmoi ==0.13.0.0,
any.array ==0.5.4.0,
any.array ==0.5.6.0,
any.asn1-encoding ==0.9.6,
any.asn1-parse ==0.9.5,
any.asn1-types ==0.3.4,
any.assoc ==1.1,
assoc +tagged,
any.assoc ==1.1.1,
assoc -tagged,
any.async ==2.2.5,
async -bench,
any.attoparsec ==0.14.4,
attoparsec -developer,
any.auto-update ==0.1.6,
any.base ==4.16.4.0,
any.auto-update ==0.2.0,
any.base ==4.19.1.0,
any.base-compat ==0.12.3,
any.base-compat-batteries ==0.12.3,
any.base-orphans ==0.9.1,
any.base-orphans ==0.9.2,
any.base16-bytestring ==1.0.2.0,
any.base64-bytestring ==1.2.1.0,
any.basement ==0.0.16,
any.bifunctors ==5.6.1,
any.bifunctors ==5.6.2,
bifunctors +tagged,
any.bimap ==0.5.0,
any.binary ==0.8.9.0,
any.binary-orphans ==1.0.4.1,
any.binary ==0.8.9.1,
any.binary-orphans ==1.0.5,
any.bitvec ==1.1.5.0,
bitvec +simd,
any.bitwise ==1.0.0.1,
any.blaze-builder ==0.4.2.3,
any.blaze-html ==0.9.1.2,
any.blaze-html ==0.9.2.0,
any.blaze-markup ==0.8.3.0,
any.boring ==0.2.1,
any.boring ==0.2.2,
boring +tagged,
any.bsb-http-chunked ==0.0.0.4,
any.bv-sized ==1.0.5,
any.byteorder ==1.0.4,
any.bytestring ==0.11.4.0,
any.bytestring ==0.12.1.0,
any.cabal-doctest ==1.0.9,
any.call-stack ==0.4.0,
any.case-insensitive ==1.2.1.0,
any.cassava ==0.5.3.0,
cassava -bytestring--lt-0_10_4,
any.cassava ==0.5.3.1,
any.cborg ==0.2.10.0,
cborg +optimize-gmp,
any.cereal ==0.5.8.3,
cereal -bytestring-builder,
any.chimera ==0.4.0.0,
any.character-ps ==0.1,
any.chimera ==0.4.1.0,
chimera +representable,
any.clock ==0.8.4,
clock -llvm,
@ -74,33 +78,33 @@ constraints: any.BoundedChan ==1.0.3.0,
comonad +containers +distributive +indexed-traversable,
any.concurrent-extra ==0.7.0.12,
any.config-value ==0.8.3,
any.constraints ==0.14,
any.containers ==0.6.5.1,
any.constraints ==0.14.2,
any.containers ==0.6.8,
any.contravariant ==1.5.5,
contravariant +semigroups +statevar +tagged,
any.cookie ==0.4.6,
any.cookie ==0.5.0,
any.criterion ==1.6.3.0,
criterion -embed-data-files -fast,
any.criterion-measurement ==0.2.1.0,
any.criterion-measurement ==0.2.2.0,
criterion-measurement -fast,
any.crypto-token ==0.1.1,
any.cryptohash-md5 ==0.11.101.0,
any.cryptohash-sha1 ==0.11.101.0,
cryptol +ffi +relocatable -static,
cryptol-remote-api -notthreaded -static,
cryptol-test-runner -static,
any.crypton ==0.34,
any.crypton ==1.0.0,
crypton -check_alignment +integer-gmp -old_toolchain_inliner +support_aesni +support_deepseq +support_pclmuldq +support_rdrand -support_sse +use_target_attributes,
any.crypton-x509 ==1.7.6,
any.crypton-x509-store ==1.6.9,
any.crypton-x509-validation ==1.6.12,
any.data-array-byte ==0.1.0.1,
any.data-default-class ==0.1.2.0,
any.data-fix ==0.3.2,
any.deepseq ==1.4.6.1,
any.data-fix ==0.3.3,
any.deepseq ==1.5.0.0,
any.dense-linear-algebra ==0.1.0.0,
any.deriving-compat ==0.6.5,
any.deriving-compat ==0.6.6,
deriving-compat +base-4-9 +new-functor-classes +template-haskell-2-11,
any.directory ==1.3.6.2,
any.directory ==1.3.8.1,
any.distributive ==0.6.2.1,
distributive +semigroups +tagged,
any.dlist ==1.0,
@ -109,28 +113,27 @@ constraints: any.BoundedChan ==1.0.3.0,
any.entropy ==0.4.1.10,
entropy -donotgetentropy,
any.exact-pi ==0.5.0.2,
any.exceptions ==0.10.4,
any.exceptions ==0.10.7,
any.extensible-exceptions ==0.1.1.4,
any.extra ==1.7.14,
any.fast-logger ==3.2.2,
any.extra ==1.7.16,
any.fast-logger ==3.2.3,
any.file-embed ==0.0.16.0,
any.filelock ==0.1.1.7,
any.filepath ==1.4.2.2,
any.filepath ==1.4.200.1,
any.fingertree ==0.1.5.0,
any.foldable1-classes-compat ==0.1,
foldable1-classes-compat +tagged,
any.free ==5.2,
any.generically ==0.1.1,
any.ghc-bignum ==1.2,
any.ghc-boot-th ==9.2.8,
any.ghc-prim ==0.8.0,
any.ghc-bignum ==1.3,
any.ghc-boot-th ==9.8.2,
any.ghc-prim ==0.11.0,
any.gitrev ==1.3.1,
any.half ==0.3.1,
any.happy ==1.20.1.1,
any.hashable ==1.4.3.0,
any.hashable ==1.4.4.0,
hashable +integer-gmp -random-initial-seed,
any.hashtables ==1.3.1,
hashtables -bounds-checking -debug -detailed-profiling -portable -sse42 +unsafe-tricks,
any.haskeline ==0.8.2,
any.haskeline ==0.8.2.1,
any.haskell-lexer ==1.1.1,
any.hgmp ==0.1.2.1,
any.hostname ==1.0,
@ -138,24 +141,25 @@ constraints: any.BoundedChan ==1.0.3.0,
any.hsc2hs ==0.68.10,
hsc2hs -in-ghc-tree,
any.http-date ==0.0.11,
any.http-semantics ==0.0.0,
any.http-types ==0.12.4,
any.http2 ==5.0.1,
any.http2 ==5.2.1,
http2 -devel -h2spec,
any.ieee754 ==0.8.0,
any.indexed-traversable ==0.1.3,
any.indexed-traversable-instances ==0.1.1.2,
any.indexed-traversable ==0.1.4,
any.indexed-traversable-instances ==0.1.2,
any.infinite-list ==0.1.1,
any.integer-conversion ==0.1.0.1,
any.integer-conversion ==0.1.1,
any.integer-gmp ==1.1,
any.integer-logarithms ==1.0.3.1,
integer-logarithms -check-bounds +integer-gmp,
any.integer-roots ==1.0.2.0,
any.invariant ==0.6.2,
any.invariant ==0.6.3,
any.io-streams ==1.5.2.2,
io-streams +network -nointeractivetests +zlib,
any.iproute ==1.7.12,
any.js-chart ==2.9.4.1,
any.kan-extensions ==5.2.5,
any.kan-extensions ==5.2.6,
any.language-c99 ==0.2.0,
any.language-c99-simple ==0.3.0,
any.language-c99-util ==0.2.0,
@ -165,23 +169,23 @@ constraints: any.BoundedChan ==1.0.3.0,
libBF -system-libbf,
any.libffi ==0.2.1,
libffi +ghc-bundled-libffi,
any.math-functions ==0.3.4.3,
any.math-functions ==0.3.4.4,
math-functions +system-erf +system-expm1,
any.megaparsec ==9.6.1,
megaparsec -dev,
any.memory ==0.18.0,
memory +support_bytestring +support_deepseq,
any.microstache ==1.0.2.3,
any.microstache ==1.0.3,
any.mod ==0.2.0.1,
mod +semirings +vector,
any.monad-control ==1.0.3.1,
any.monadLib ==3.10.1,
any.mtl ==2.2.2,
any.mtl ==2.3.1,
any.mwc-random ==0.15.0.2,
any.network ==3.1.4.0,
network -devel,
any.network-byte-order ==0.1.7,
any.network-control ==0.0.2,
any.network-control ==0.1.0,
any.network-info ==0.2.1,
any.network-uri ==2.6.4.2,
any.newtype-generics ==0.6.2,
@ -190,12 +194,13 @@ constraints: any.BoundedChan ==1.0.3.0,
any.old-time ==1.1.0.4,
any.optparse-applicative ==0.18.1.0,
optparse-applicative +process,
any.ordered-containers ==0.2.3,
any.ordered-containers ==0.2.4,
any.os-string ==2.0.2.2,
any.panic ==0.4.0.1,
any.parallel ==3.2.2.0,
any.parameterized-utils ==2.1.8.0,
parameterized-utils +unsafe-operations,
any.parsec ==3.1.15.0,
any.parsec ==3.1.17.0,
any.parser-combinators ==1.3.0,
parser-combinators -dev,
any.pem ==0.2.4,
@ -206,14 +211,14 @@ constraints: any.BoundedChan ==1.0.3.0,
any.prettyprinter-ansi-terminal ==1.1.3,
any.prettyprinter-compat-ansi-wl-pprint ==1.0.2,
any.primitive ==0.9.0.0,
any.process ==1.6.16.0,
any.process ==1.6.18.0,
any.profunctors ==5.6.2,
any.psqueues ==0.2.8.0,
any.quickcheck-instances ==0.3.30,
quickcheck-instances -bytestring-builder,
any.random ==1.2.1.2,
any.recv ==0.1.0,
any.reflection ==2.1.7,
any.reflection ==2.1.8,
reflection -slow +template-haskell,
any.regex-base ==0.94.0.2,
any.regex-compat ==0.95.2.1,
@ -225,18 +230,20 @@ constraints: any.BoundedChan ==1.0.3.0,
s-cargot -build-example,
any.safe ==0.3.21,
any.safe-exceptions ==0.1.7.4,
any.sbv ==10.2,
any.scientific ==0.3.7.0,
scientific -bytestring-builder -integer-simple,
any.scotty ==0.12.1,
any.semialign ==1.3,
any.sbv ==10.10,
any.scientific ==0.3.8.0,
scientific -integer-simple,
any.scotty ==0.21,
any.semialign ==1.3.1,
semialign +semigroupoids,
any.semigroupoids ==6.0.0.1,
any.semigroupoids ==6.0.1,
semigroupoids +comonad +containers +contravariant +distributive +tagged +unordered-containers,
any.semigroups ==0.20,
semigroups +binary +bytestring -bytestring-builder +containers +deepseq +hashable +tagged +template-haskell +text +transformers +unordered-containers,
any.semirings ==0.6,
semirings +containers +unordered-containers,
any.serialise ==0.2.6.1,
serialise +newtime15,
any.silently ==1.2.5.3,
any.simple-get-opt ==0.4,
any.simple-sendfile ==0.2.32,
@ -245,7 +252,7 @@ constraints: any.BoundedChan ==1.0.3.0,
any.splitmix ==0.1.0.5,
splitmix -optimised-mixer,
any.statistics ==0.16.2.1,
any.stm ==2.5.0.2,
any.stm ==2.5.2.1,
any.streaming-commons ==0.2.2.6,
streaming-commons -use-bytestring-builder,
any.strict ==0.5,
@ -256,39 +263,37 @@ constraints: any.BoundedChan ==1.0.3.0,
tasty +unix,
any.tasty-hunit ==0.10.1,
any.tasty-quickcheck ==0.10.3,
any.template-haskell ==2.18.0.0,
any.template-haskell ==2.21.0.0,
any.temporary ==1.3,
any.terminfo ==0.4.1.5,
any.terminfo ==0.4.1.6,
any.test-framework ==0.8.2.0,
any.test-framework-hunit ==0.3.0.2,
test-framework-hunit -base3 +base4,
any.test-lib ==0.4,
any.text ==1.2.5.0,
any.text-iso8601 ==0.1,
any.text-short ==0.1.5,
any.text ==2.1.1,
any.text-iso8601 ==0.1.1,
any.text-short ==0.1.6,
text-short -asserts,
any.tf-random ==0.5,
any.th-abstraction ==0.6.0.0,
any.th-compat ==0.1.4,
any.th-compat ==0.1.5,
any.th-lift ==0.8.4,
any.th-lift-instances ==0.1.20,
any.these ==1.2,
any.time ==1.11.1.1,
any.time-compat ==1.9.6.1,
time-compat -old-locale,
any.time-manager ==0.0.1,
any.tls ==1.9.0,
tls +compat -hans +network,
any.tls-session-manager ==0.0.4,
any.transformers ==0.5.6.2,
any.these ==1.2.1,
any.time ==1.12.2,
any.time-compat ==1.9.7,
any.time-manager ==0.1.0,
any.tls ==2.0.5,
tls -devel,
any.tls-session-manager ==0.0.5,
any.transformers ==0.6.1.0,
any.transformers-base ==0.4.6,
transformers-base +orphaninstances,
any.transformers-compat ==0.7.2,
transformers-compat -five +five-three -four +generic-deriving +mtl -three -two,
any.type-equality ==1,
any.unbounded-delays ==0.1.1.1,
any.uniplate ==1.6.13,
any.unix ==2.7.2.2,
any.unix ==2.8.4.0,
any.unix-compat ==0.7.1,
unix-compat -old-time,
any.unix-time ==0.4.12,
@ -308,23 +313,23 @@ constraints: any.BoundedChan ==1.0.3.0,
any.vector-binary-instances ==0.2.5.2,
any.vector-stream ==0.1.0.1,
any.vector-th-unbox ==0.2.2,
any.versions ==6.0.5,
any.versions ==6.0.6,
any.void ==0.7.3,
void -safe,
any.wai ==3.2.4,
any.wai-extra ==3.1.14,
any.wai-extra ==3.1.15,
wai-extra -build-example,
any.wai-logger ==2.4.0,
any.warp ==3.3.31,
any.warp ==3.4.1,
warp +allow-sendfilefd -network-bytestring -warp-debug +x509,
any.warp-tls ==3.4.4,
any.what4 ==1.5.1,
any.warp-tls ==3.4.5,
any.what4 ==1.6,
what4 -drealtestdisable -solvertests -stptestdisable,
any.witherable ==0.4.2,
any.witherable ==0.5,
any.word8 ==0.1.3,
any.xml ==1.3.14,
any.zenc ==0.1.2,
any.zlib ==0.6.3.0,
zlib -bundled-c-zlib -non-blocking-ffi -pkg-config,
any.zlib ==0.7.1.0,
zlib +non-blocking-ffi,
any.zlib-bindings ==0.1.1.5
index-state: hackage.haskell.org 2024-02-06T22:11:38Z
index-state: hackage.haskell.org 2024-05-20T12:40:45Z

View File

@ -1,9 +1,9 @@
ARG GHCVER="9.2.8"
ARG CABALVER="3.10.1.0"
ARG GHCVER="9.4.8"
ARG CABALVER="3.10.3.0"
# This is the version of GHC that we use as part of the process of building a
# separate copy of GHC from source. The version of GHC that we build from source
# is determined by the value of GHCVER.
ARG GHCVER_BOOTSTRAP="8.10.2"
ARG GHCVER_BOOTSTRAP="9.0.2"
# We pin specific versions of alex and happy that are necessary to build
# GHC. In general, we don't want to build the latest versions of each
# tool, as GHC may not support them (see, for example,
@ -27,7 +27,7 @@ ENV LANG=C.UTF-8 \
LC_ALL=C.UTF-8
ENV GHCUP_INSTALL_BASE_PREFIX=/opt \
PATH=/opt/.ghcup/bin:/root/.local/bin:$PATH
RUN curl -o /usr/local/bin/ghcup "https://downloads.haskell.org/~ghcup/0.1.19.4/x86_64-linux-ghcup-0.1.19.4" && \
RUN curl -o /usr/local/bin/ghcup "https://downloads.haskell.org/~ghcup/0.1.22.0/x86_64-linux-ghcup-0.1.22.0" && \
chmod +x /usr/local/bin/ghcup
RUN ghcup install cabal ${CABALVER} --set
ENV PATH=/root/.cabal/bin:$PATH

View File

@ -40,11 +40,11 @@ common errors
common deps
build-depends:
base >=4.11.1.0 && <4.19,
base >=4.11.1.0 && <4.20,
argo,
aeson >= 1.4.2 && < 2.3,
base64-bytestring >= 1.0,
bytestring >= 0.10.8 && < 0.12,
bytestring >= 0.10.8 && < 0.13,
containers >=0.6.0.1 && <0.7,
cryptol >= 2.9.0,
directory,
@ -52,7 +52,7 @@ common deps
lens >= 4.17 && < 5.3,
mtl >= 2.2 && < 2.4,
scientific ^>= 0.3,
text >= 1.2.3 && < 2.1,
text >= 1.2.3 && < 2.2,
tf-random,
unordered-containers ^>= 0.2,
vector >= 0.12 && < 0.14,

View File

@ -74,7 +74,7 @@ library
prettyprinter >= 1.7.0,
pretty-show,
process >= 1.2,
sbv >= 9.1 && < 10.3,
sbv >= 9.1 && < 10.11,
simple-smt >= 0.9.7,
stm >= 2.4,
strict,
@ -85,7 +85,7 @@ library
mtl >= 2.2.1,
time >= 1.6.0.1,
panic >= 0.3,
what4 >= 1.4 && < 1.6
what4 >= 1.4 && < 1.7
if impl(ghc >= 9.0)
build-depends: ghc-bignum >= 1.0 && < 1.4

View File

@ -9,6 +9,7 @@
module REPL.Logo where
import Cryptol.REPL.Monad
import Cryptol.Utils.Panic (panic)
import Paths_cryptol (version)
import Cryptol.Version (commitShortHash,commitDirty)
@ -22,6 +23,7 @@ type Version = String
type Logo = [String]
-- | The list of 'String's returned by the @mk@ function should be non-empty.
logo :: Bool -> (String -> [String]) -> Logo
logo useColor mk =
[ sgr [SetColor Foreground Dull White] ++ l | l <- ws ]
@ -43,7 +45,10 @@ logo useColor mk =
slen = length ls `div` 3
(ws,rest) = splitAt slen ls
(vs,ds) = splitAt slen rest
lineLen = length (head ls)
line = case ls of
line':_ -> line'
[] -> panic "logo" ["empty lines"]
lineLen = length line
displayLogo :: Bool -> Bool -> REPL ()
displayLogo useColor useUnicode =

View File

@ -7,6 +7,8 @@
module Cryptol.Backend.FFI.Error where
import Control.DeepSeq
import qualified Data.List.NonEmpty as NE
import Data.List.NonEmpty (NonEmpty)
import GHC.Generics
import Cryptol.Utils.PP
@ -19,7 +21,7 @@ data FFILoadError
| CantLoadFFIImpl
String -- ^ Function name
String -- ^ Error message
| FFIDuplicates [Name]
| FFIDuplicates (NonEmpty Name)
| FFIInFunctor Name
deriving (Show, Generic, NFData)
@ -38,8 +40,8 @@ instance PP FFILoadError where
-- 4 (text _msg)
FFIDuplicates xs ->
hang "Multiple foreign declarations with the same name:"
4 (backticks (pp (nameIdent (head xs))) <+>
"defined at" <+> align (vcat (map (pp . nameLoc) xs)))
4 (backticks (pp (nameIdent (NE.head xs))) <+>
"defined at" <+> align (vcat (map (pp . nameLoc) (NE.toList xs))))
FFIInFunctor x ->
hang (pp (nameLoc x) <.> ":")
4 "Foreign declaration" <+> backticks (pp (nameIdent x)) <+>

View File

@ -9,9 +9,9 @@ module Cryptol.Eval.FFI.GenHeader
) where
import Control.Monad.Writer.Strict
import Data.Functor
import Data.Char(isAlphaNum)
import Data.List
import Data.Functor ((<&>))
import Data.Char (isAlphaNum)
import Data.List (mapAccumL)
import Data.Set (Set)
import qualified Data.Set as Set
import Language.C99.Pretty as C

View File

@ -11,6 +11,7 @@ import Data.Map ( Map )
import qualified Data.Map as Map
import Cryptol.TypeCheck.AST
import Cryptol.Utils.Panic ( panic )
import Cryptol.Utils.RecordMap
data Deps = Deps { valDeps :: Set Name
@ -52,9 +53,10 @@ rmVals p x = x { valDeps = Set.difference (valDeps x) p }
-- | Compute the transitive closure of the given dependencies.
transDeps :: Map Name Deps -> Map Name Deps
transDeps mp0 = fst
$ head
$ headInfList
$ dropWhile (uncurry (/=))
$ zip steps (tail steps)
$ zip steps
$ drop 1 steps
where
step1 mp d = mconcat [ Map.findWithDefault
mempty { valDeps = Set.singleton x }
@ -63,6 +65,15 @@ transDeps mp0 = fst
steps = iterate step mp0
-- The only call site for this function is on the result of an invocation
-- of `iterate`, which returns an infinite list. As such, it is safe to call
-- `head` on it. Alternatively, we could depend on a library such as
-- `infinite-list`, but this is likely overkill for this one use site.
headInfList l =
case l of
x:_ -> x
[] -> panic "transDeps" ["`iterate` returned empty list"]
-- | Dependencies of top-level declarations in a module.
-- These are dependencies on module parameters or things
-- defined outside the module.

View File

@ -23,7 +23,9 @@ import Control.Monad (unless,forM)
import Data.Set(Set)
import qualified Data.Set as Set
import Data.Maybe (fromMaybe)
import Data.List(sortBy,groupBy)
import Data.List(sortBy)
import qualified Data.List.NonEmpty as NE
import Data.List.NonEmpty (NonEmpty(..))
import Data.Function(on)
import Data.Monoid ((<>),Endo(..), Any(..))
import Data.Text.Encoding (decodeUtf8')
@ -67,7 +69,7 @@ import qualified Cryptol.Parser as P
import qualified Cryptol.Parser.Unlit as P
import Cryptol.Parser.AST as P
import Cryptol.Parser.NoPat (RemovePatterns(removePatterns))
import qualified Cryptol.Parser.ExpandPropGuards as ExpandPropGuards
import qualified Cryptol.Parser.ExpandPropGuards as ExpandPropGuards
( expandPropGuards, runExpandPropGuardsM )
import Cryptol.Parser.NoInclude (removeIncludesModule)
import Cryptol.Parser.Position (HasLoc(..), Range, emptyRange)
@ -320,9 +322,9 @@ doLoadModule eval quiet isrc path fp incDeps pm0 =
where foreigns = findForeignDecls tcm
foreignFs = T.findForeignDeclsInFunctors tcm
dups = [ d | d@(_ : _ : _) <- groupBy ((==) `on` nameIdent)
$ sortBy (compare `on` nameIdent)
$ map fst foreigns ]
dups = [ d | d@(_ :| _ : _) <- NE.groupBy ((==) `on` nameIdent)
$ sortBy (compare `on` nameIdent)
$ map fst foreigns ]
doEvalForeign handleErrs =
case path of
InFile p -> io (loadForeignSrc p) >>=

View File

@ -16,6 +16,7 @@ import Cryptol.ModuleSystem.Name
data Names = One Name | Ambig (Set Name) -- ^ Non-empty
deriving (Show,Generic,NFData)
-- | The returned list of names will be non-empty.
namesToList :: Names -> [Name]
namesToList xs =
case xs of
@ -23,7 +24,14 @@ namesToList xs =
Ambig ns -> Set.toList ns
anyOne :: Names -> Name
anyOne = head . namesToList
anyOne xs =
case xs of
One x -> x
Ambig ns
| Set.null ns
-> panic "anyOne" ["Ambig with no names"]
| otherwise
-> Set.elemAt 0 ns
instance Semigroup Names where
xs <> ys =

View File

@ -929,10 +929,14 @@ resolveNameMaybe nt expected qn =
return (Just n)
Ambig symSet ->
do let syms = Set.toList symSet
headSym =
case syms of
sym:_ -> sym
[] -> panic "resolveNameMaybe" ["Ambig with no names"]
mapM_ use syms -- mark as used to avoid unused warnings
n <- located qn
recordError (MultipleSyms n syms)
return (Just (head syms))
return (Just headSym)
Nothing -> pure Nothing
@ -1221,8 +1225,13 @@ checkLabels = foldM_ check [] . map labs
(RecordSel a _, RecordSel b _) -> a == b
_ -> False
reLoc xs = (head xs) { thing = map thing xs }
-- The input comes from UpdField, and as such, it is expected to be a
-- non-empty list.
reLoc xs = x { thing = map thing xs }
where
x = case xs of
x':_ -> x'
[] -> panic "checkLabels" ["UpdFields with no labels"]
mkEInfix :: Expr Name -- ^ May contain infix expressions
-> (Located Name,Fixity) -- ^ The operator to use

View File

@ -61,7 +61,9 @@ layout :: Bool -> [Located Token] -> [Located Token]
layout isMod ts0
-- Star an implicit layout block at the top of the module
| let t = head ts0
| let t = case ts0 of
t':_ -> t'
[] -> panic "layout" ["Unexpected empty list of tokens"]
rng = srcRange t
blockCol = max 1 (col (from rng)) -- see startImplicitBlock
implictMod = case map (tokenType . thing) ts0 of
@ -159,7 +161,11 @@ layout isMod ts0
startImplicitBlock =
let nextRng = srcRange (head advanceTokens)
let curAdvanceTok =
case advanceTokens of
curAdvanceTok':_ -> curAdvanceTok'
[] -> panic "layout" ["Unexpected empty list of advanceTokens"]
nextRng = srcRange curAdvanceTok
nextLoc = from nextRng
blockCol = max 1 (col nextLoc)
-- the `max` ensuraes that indentation is always at least 1,

View File

@ -1178,9 +1178,15 @@ ufToNamed (UpdField h ls e) =
case (h,ls) of
(UpdSet, [l]) | RecordSel i Nothing <- thing l ->
pure Named { name = l { thing = i }, value = e }
_ -> errorMessage (srcRange (head ls))
_ -> errorMessage (srcRange lab)
["Invalid record field. Perhaps you meant to update a record?"]
where
-- The list of field updates in an UpdField should always be non-empty.
lab = case ls of
lab':_ -> lab'
[] -> panic "ufToNamed" ["UpdField with empty labels"]
-- | The returned list of 'Selector's will be non-empty.
exprToFieldPath :: Expr PName -> ParseM [Located Selector]
exprToFieldPath e0 = reverse <$> go noLoc e0
where
@ -1190,7 +1196,11 @@ exprToFieldPath e0 = reverse <$> go noLoc e0
ELocated e1 r -> go r e1
ESel e2 s ->
do ls <- go loc e2
let rng = loc { from = to (srcRange (head ls)) }
let l =
case ls of
l':_ -> l'
[] -> panic "exprToFieldPath" ["empty list of selectors"]
let rng = loc { from = to (srcRange l) }
pure (Located { thing = s, srcRange = rng } : ls)
EVar (UnQual l) ->
pure [ Located { thing = RecordSel l Nothing, srcRange = loc } ]

View File

@ -415,16 +415,16 @@ processResults ProverCommand{..} ts results =
[] -> return $ ThmResult (unFinType <$> ts)
-- otherwise something is wrong
_ -> return $ ProverError (rshow results)
resultsHead:_ -> return $ ProverError res
#if MIN_VERSION_sbv(10,0,0)
where rshow | isSat = show . (SBV.AllSatResult False False False)
where res | isSat = show $ SBV.AllSatResult False False False results
-- sbv-10.0.0 removes the `allSatHasPrefixExistentials` field
#elif MIN_VERSION_sbv(8,8,0)
where rshow | isSat = show . (SBV.AllSatResult False False False False)
where res | isSat = show $ SBV.AllSatResult False False False False results
#else
where rshow | isSat = show . SBV.AllSatResult . (False,False,False,)
where res | isSat = show $ SBV.AllSatResult (False,False,False,results)
#endif
| otherwise = show . SBV.ThmResult . head
| otherwise = show $ SBV.ThmResult resultsHead
where
mkTevs prims result = do

View File

@ -41,7 +41,7 @@ import qualified Control.Exception as X
import System.IO (Handle, IOMode(..), withFile)
import Data.Time
import Data.IORef
import Data.List (intercalate, tails, inits)
import Data.List (intercalate, inits)
import Data.List.NonEmpty (NonEmpty(..))
import Data.Proxy
import qualified Data.Map as Map
@ -631,7 +631,7 @@ computeSplits vs cs = reverse
| prefix <- inits (zip vs cs)
| v <- vs
| c <- cs
| tl <- tail (tails vs)
| tl <- NE.tail (NE.tails vs)
]
-- == END Support operations for multi-SAT ==

View File

@ -6,10 +6,11 @@
module Cryptol.TypeCheck.Error where
import qualified Data.IntMap as IntMap
import qualified Data.List.NonEmpty as NE
import qualified Data.Set as Set
import Control.DeepSeq(NFData)
import GHC.Generics(Generic)
import Data.List((\\),sortBy,groupBy,partition)
import Data.List((\\),sortBy,partition)
import Data.Function(on)
import Cryptol.Utils.Ident(Ident,Namespace(..))
@ -32,14 +33,15 @@ cleanupErrors = dropErrorsFromSameLoc
-- pick shortest error from each location.
dropErrorsFromSameLoc = concatMap chooseBestError
. groupBy ((==) `on` fst)
. NE.groupBy ((==) `on` fst)
addErrorRating (r,e) = (errorImportance e, (r,e))
chooseBestError = map snd
. head
. groupBy ((==) `on` fst)
. sortBy (flip compare `on` fst)
. map addErrorRating
chooseBestError = NE.toList
. fmap snd
. NE.head
. NE.groupBy1 ((==) `on` fst)
. NE.sortBy (flip compare `on` fst)
. fmap addErrorRating
cmpR r = ( source r -- First by file

View File

@ -137,8 +137,11 @@ checkArity r mf args =
case args of
P.DefaultInstArg arg ->
let i = Located { srcRange = srcRange arg
, thing = head (Map.keys ps0)
let p0 = case Map.keys ps0 of
p':_ -> p'
[] -> panic "checkArity" ["functor with no parameters"]
i = Located { srcRange = srcRange arg
, thing = p0
}
in checkArgs [] ps0 [ P.ModuleInstanceNamedArg i arg ]