git.iko.soy/typeable/entropy
on e95de35 help sign in
2 files changed+36−56
since splitsnapshots
unifiedsplit
.github/workflows/haskell-ci.yml+28−49 entropy.cabal+8−7
.github/workflows/haskell-ci.yml+28−49
@@ -8,9 +8,9 @@
88#
99# For more information, see https://github.com/andreasabel/haskell-ci
1010#
11−# version: 0.19.20241219
11+# version: 0.19.20240630
1212#
13−# REGENDATA ("0.19.20241219",["github","entropy.cabal"])
13+# REGENDATA ("0.19.20240630",["github","entropy.cabal"])
1414#
1515name: Haskell-CI
1616on:
@@ -32,24 +32,19 @@ jobs:
3232 strategy:
3333 matrix:
3434 include:
35− - compiler: ghc-9.12.1
36− compilerKind: ghc
37− compilerVersion: 9.12.1
38− setup-method: ghcup
39− allow-failure: false
4035 - compiler: ghc-9.10.1
4136 compilerKind: ghc
4237 compilerVersion: 9.10.1
4338 setup-method: ghcup
4439 allow-failure: false
45− - compiler: ghc-9.8.4
40+ - compiler: ghc-9.8.2
4641 compilerKind: ghc
47− compilerVersion: 9.8.4
42+ compilerVersion: 9.8.2
4843 setup-method: ghcup
4944 allow-failure: false
50− - compiler: ghc-9.6.6
45+ - compiler: ghc-9.6.5
5146 compilerKind: ghc
52− compilerVersion: 9.6.6
47+ compilerVersion: 9.6.5
5348 setup-method: ghcup
5449 allow-failure: false
5550 - compiler: ghc-9.4.8
@@ -92,32 +87,22 @@ jobs:
9287 compilerVersion: 8.2.2
9388 setup-method: ghcup
9489 allow-failure: false
90+ - compiler: ghc-8.0.2
91+ compilerKind: ghc
92+ compilerVersion: 8.0.2
93+ setup-method: ghcup
94+ allow-failure: false
9595 fail-fast: false
9696 steps:
97− - name: apt-get install
97+ - name: apt
9898 run: |
9999 apt-get update
100100 apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5 libnuma-dev
101− - name: Install GHCup
102− run: |
103101 mkdir -p "$HOME/.ghcup/bin"
104− curl -sL https://downloads.haskell.org/ghcup/0.1.30.0/x86_64-linux-ghcup-0.1.30.0 > "$HOME/.ghcup/bin/ghcup"
102+ curl -sL https://downloads.haskell.org/ghcup/0.1.20.0/x86_64-linux-ghcup-0.1.20.0 > "$HOME/.ghcup/bin/ghcup"
105103 chmod a+x "$HOME/.ghcup/bin/ghcup"
106− - name: Install cabal-install (prerelease)
107− run: |
108− "$HOME/.ghcup/bin/ghcup" config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.8.yaml;
109− "$HOME/.ghcup/bin/ghcup" install cabal 3.15.0.0.2024.10.3 || (cat "$HOME"/.ghcup/logs/*.* && false)
110− echo "CABAL=$HOME/.ghcup/bin/cabal-3.15.0.0.2024.10.3 -vnormal+nowrap" >> "$GITHUB_ENV"
111− - name: Install GHC (GHCup)
112− if: matrix.setup-method == 'ghcup'
113− run: |
114104 "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
115− HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
116− HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
117− HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
118− echo "HC=$HC" >> "$GITHUB_ENV"
119− echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
120− echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
105+ "$HOME/.ghcup/bin/ghcup" install cabal 3.12.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
121106 env:
122107 HCKIND: ${{ matrix.compilerKind }}
123108 HCNAME: ${{ matrix.compiler }}
@@ -128,12 +113,21 @@ jobs:
128113 echo "LANG=C.UTF-8" >> "$GITHUB_ENV"
129114 echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
130115 echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
116+ HCDIR=/opt/$HCKIND/$HCVER
117+ HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
118+ HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
119+ HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
120+ echo "HC=$HC" >> "$GITHUB_ENV"
121+ echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
122+ echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
123+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.12.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
131124 HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
132125 echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
133126 echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
134127 echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
135− if [ $((HCNUMVER >= 91200)) -ne 0 ] ; then echo "HEADHACKAGE=true" >> "$GITHUB_ENV" ; else echo "HEADHACKAGE=false" >> "$GITHUB_ENV" ; fi
128+ echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
136129 echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
130+ echo "GHCJSARITH=0" >> "$GITHUB_ENV"
137131 env:
138132 HCKIND: ${{ matrix.compilerKind }}
139133 HCNAME: ${{ matrix.compiler }}
@@ -160,18 +154,6 @@ jobs:
160154 repository hackage.haskell.org
161155 url: http://hackage.haskell.org/
162156 EOF
163− if $HEADHACKAGE; then
164− cat >> $CABAL_CONFIG <<EOF
165− repository head.hackage.ghc.haskell.org
166− url: https://ghc.gitlab.haskell.org/head.hackage/
167− secure: True
168− root-keys: 7541f32a4ccca4f97aea3b22f5e593ba2c0267546016b992dfadcd2fe944e55d
169− 26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329
170− f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89
171− key-threshold: 3
172− active-repositories: hackage.haskell.org, head.hackage.ghc.haskell.org:override
173− EOF
174− fi
175157 cat >> $CABAL_CONFIG <<EOF
176158 program-default-options
177159 ghc-options: $GHCJOBS +RTS -M3G -RTS
@@ -219,13 +201,10 @@ jobs:
219201 touch cabal.project
220202 touch cabal.project.local
221203 echo "packages: ${PKGDIR_entropy}" >> cabal.project
222− echo "package entropy" >> cabal.project
223− echo " ghc-options: -Werror=missing-methods" >> cabal.project
204+ if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package entropy" >> cabal.project ; fi
205+ if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
224206 cat >> cabal.project <<EOF
225207 EOF
226− if $HEADHACKAGE; then
227− echo "allow-newer: $($HCPKG list --simple-output | sed -E 's/([a-zA-Z-]+)-[0-9.]+/*:\1,/g')" >> cabal.project
228− fi
229208 $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(entropy)$/; }' >> cabal.project.local
230209 cat cabal.project
231210 cat cabal.project.local
@@ -251,14 +230,14 @@ jobs:
251230 $CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH all --write-ghc-environment-files=always
252231 - name: haddock
253232 run: |
254− $CABAL v2-haddock --disable-documentation --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
233+ if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then $CABAL v2-haddock --disable-documentation --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all ; fi
255234 - name: unconstrained build
256235 run: |
257236 rm -f cabal.project.local
258237 $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
259238 - name: save cache
260− if: always()
261239 uses: actions/cache/save@v4
240+ if: always()
262241 with:
263242 key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
264243 path: ~/.cabal/store
entropy.cabal+8−7
@@ -1,6 +1,7 @@
11cabal-version: >=1.10
22name: entropy
3−version: 0.4.1.11
3+version: 0.4.1.10
4+x-revision: 2
45description: A mostly platform independent method to obtain cryptographically strong entropy
56 (RDRAND, urandom, CryptAPI, and patches welcome)
67 Users looking for cryptographically strong (number-theoretically
@@ -19,10 +20,9 @@ stability: stable
1920build-type: Custom
2021
2122tested-with:
22− GHC == 9.12.1
2323 GHC == 9.10.1
24− GHC == 9.8.4
25− GHC == 9.6.6
24+ GHC == 9.8.2
25+ GHC == 9.6.5
2626 GHC == 9.4.8
2727 GHC == 9.2.8
2828 GHC == 9.0.2
@@ -31,6 +31,7 @@ tested-with:
3131 GHC == 8.6.5
3232 GHC == 8.4.4
3333 GHC == 8.2.2
34+ GHC == 8.0.2
3435
3536extra-source-files:
3637 ./cbits/getrandom.c
@@ -46,7 +47,7 @@ Flag DoNotGetEntropy
4647 Manual: True
4748
4849custom-setup
49− setup-depends: Cabal >= 1.10 && < 3.17
50+ setup-depends: Cabal >= 1.10 && < 3.15
5051 , base < 5
5152 , filepath < 1.6
5253 , directory < 1.4
@@ -55,7 +56,7 @@ custom-setup
5556library
5657 ghc-options: -O2
5758 exposed-modules: System.Entropy
58− if impl(ghcjs) || os(ghcjs) || arch(wasm32)
59+ if impl(ghcjs) || os(ghcjs)
5960 other-modules: System.EntropyGhcjs
6061 else {
6162 if os(windows)
@@ -70,7 +71,7 @@ library
7071
7172 default-language: Haskell2010
7273
73− if impl(ghcjs) || os(ghcjs) || arch(wasm32) {
74+ if impl(ghcjs) || os(ghcjs) {
7475 build-depends: ghcjs-dom >= 0.9.5.0 && < 1
7576 , jsaddle
7677 }