mirror of
https://github.com/void-linux/void-packages.git
synced 2025-08-02 02:42:56 +02:00
Merge 91ed3d9e2c
into 9f47aebee5
This commit is contained in:
commit
da7c33ebe3
87 changed files with 5653 additions and 1333 deletions
40
Manual.md
40
Manual.md
|
@ -1138,6 +1138,10 @@ for compiling cargo -sys crates.
|
||||||
It also adds a `cargo` wrapper that detects and passes builds through `cargo-auditable`.
|
It also adds a `cargo` wrapper that detects and passes builds through `cargo-auditable`.
|
||||||
This helper is added by default for packages that use the `cargo` build style.
|
This helper is added by default for packages that use the `cargo` build style.
|
||||||
|
|
||||||
|
- `haskell` specifies environment variables for cabal.
|
||||||
|
This helper is added by default for packages that use the `haskell-stack` or
|
||||||
|
`cabal` build style.
|
||||||
|
|
||||||
<a id="functions"></a>
|
<a id="functions"></a>
|
||||||
### Functions
|
### Functions
|
||||||
|
|
||||||
|
@ -1698,21 +1702,45 @@ The path to the package's source inside `$GOPATH` is available as
|
||||||
<a id="pkgs_haskell"></a>
|
<a id="pkgs_haskell"></a>
|
||||||
#### Haskell packages
|
#### Haskell packages
|
||||||
|
|
||||||
We build Haskell package using `stack` from
|
Haskell packages can be built either with the `cabal` or `haskell-stack`
|
||||||
[Stackage](http://www.stackage.org/), generally the LTS versions.
|
build style, use whichever is more convenient or better supported by upstream,
|
||||||
Haskell templates need to have host dependencies on `ghc` and `stack`,
|
sometimes only one of the two is possible. For packages that have haskell
|
||||||
and set build style to `haskell-stack`.
|
parts but use a different build style like `gnu-makefile`, make sure to use
|
||||||
|
the `haskell` build helper.
|
||||||
|
|
||||||
The following variables influence how Haskell packages are built:
|
The following variables influence how packages are built with cabal:
|
||||||
|
|
||||||
|
- `cabal_index_state`: The state of the hackage cabal index to use for
|
||||||
|
fetching dependencies. The source package of a haskell project should
|
||||||
|
come with a freeze file that sets the index state, some also set it in
|
||||||
|
their cabal project file. If it does not, then this has to be set to an ISO
|
||||||
|
timestamp in the package template. For example `2025-07-05T14:01:16Z`.
|
||||||
|
- `configure_args`: Arguments passed to `cabal configure`. The configure step
|
||||||
|
generates the `cabal.project.local` file.
|
||||||
|
- `make_build_args`: Arguments passed to `cabal build`.
|
||||||
|
- `make_build_target`: Target passed to `cabal build`.
|
||||||
|
- `make_check_args`: Arguments passed to `cabal test`.
|
||||||
|
- `make_check_target`: Test target passed to cabal instead of "test".
|
||||||
|
- `make_install_target`: Target passed to `cabal install`.
|
||||||
|
|
||||||
|
And these variables influence how packages are built with stack:
|
||||||
|
|
||||||
- `stackage`: The Stackage version used to build the package, e.g.
|
- `stackage`: The Stackage version used to build the package, e.g.
|
||||||
`lts-3.5`. Alternatively:
|
`lts-3.5`. Alternatively:
|
||||||
- You can prepare a `stack.yaml` configuration for the project and put it
|
- You can prepare a `stack.yaml` configuration for the project and put it
|
||||||
into `files/stack.yaml`.
|
into `files/stack.yaml`.
|
||||||
- If a `stack.yaml` file is present in the source files, it will be used
|
- If a `stack.yaml` file is present in the source files, it will be used.
|
||||||
- `make_build_args`: This is passed as-is to `stack build ...`, so
|
- `make_build_args`: This is passed as-is to `stack build ...`, so
|
||||||
you can add your `--flag ...` parameters there.
|
you can add your `--flag ...` parameters there.
|
||||||
|
|
||||||
|
To patch dependencies of haskell packages they have to be fetched explicitly
|
||||||
|
from hackage by adding them to `distfiles` instead of letting cabal or stack
|
||||||
|
download them. Once extracted and patched, the path to the patched version
|
||||||
|
can be added to `packages` in `cabal.project` or `stack.yaml`.
|
||||||
|
Stack will find them automatically if no `stack.yaml` file exists by scanning
|
||||||
|
the directory. The build tool will then use the patched version of the
|
||||||
|
depencency instead of downloading it from hackage.
|
||||||
|
|
||||||
<a id="pkgs_font"></a>
|
<a id="pkgs_font"></a>
|
||||||
#### Font packages
|
#### Font packages
|
||||||
|
|
||||||
|
|
1
common/build-helper/haskell.sh
Normal file
1
common/build-helper/haskell.sh
Normal file
|
@ -0,0 +1 @@
|
||||||
|
export CABAL_DIR=/home/cabal
|
66
common/build-style/cabal.sh
Normal file
66
common/build-style/cabal.sh
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
#
|
||||||
|
# This helper is for building haskell projects using Cabal.
|
||||||
|
#
|
||||||
|
|
||||||
|
do_configure() {
|
||||||
|
: ${cabal_cmd:=cabal}
|
||||||
|
|
||||||
|
local _cabal_project_file="cabal.project"
|
||||||
|
|
||||||
|
if [ -e "${FILESDIR}/${_cabal_project_file}.freeze" ]; then
|
||||||
|
cp "${FILESDIR}/${_cabal_project_file}.freeze" .
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "${cabal_index_state}" ]; then
|
||||||
|
# index-state alone is enough to fully fix a cabal build
|
||||||
|
configure_args+=" --index-state=${cabal_index_state}"
|
||||||
|
elif [ -e "${_cabal_project_file}.freeze" ]; then
|
||||||
|
# With a freeze file we have to make sure that it fixes
|
||||||
|
# the index also
|
||||||
|
if ! grep -q '^index-state:' "${_cabal_project_file}.freeze"; then
|
||||||
|
msg_error "${_cabal_project_file}.freeze is missing index-state\n"
|
||||||
|
fi
|
||||||
|
elif [ -e "${_cabal_project_file}" ]; then
|
||||||
|
if ! grep -q '^index-state:' "${_cabal_project_file}"; then
|
||||||
|
msg_error "${_cabal_project_file} is missing index-state\n"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
msg_error "cabal build not fixed, set cabal_index_state or add a freeze file to FILESDIR\n"
|
||||||
|
fi
|
||||||
|
|
||||||
|
${cabal_cmd} update
|
||||||
|
${cabal_cmd} configure --prefix=/usr ${configure_args}
|
||||||
|
}
|
||||||
|
|
||||||
|
do_build() {
|
||||||
|
: ${make_cmd:=cabal}
|
||||||
|
|
||||||
|
if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
|
||||||
|
make_build_args+=" --ghc-option=-latomic"
|
||||||
|
fi
|
||||||
|
|
||||||
|
${make_cmd} build ${make_build_target} ${makejobs} ${make_build_args}
|
||||||
|
}
|
||||||
|
|
||||||
|
do_check() {
|
||||||
|
: ${make_cmd:=cabal}
|
||||||
|
: ${make_check_target:=test}
|
||||||
|
|
||||||
|
${make_check_pre} ${make_cmd} ${make_check_target} ${make_check_args}
|
||||||
|
}
|
||||||
|
|
||||||
|
do_install() {
|
||||||
|
: ${make_cmd:=cabal}
|
||||||
|
: ${make_install_target:=all}
|
||||||
|
|
||||||
|
if ${make_cmd} list-bin ${make_install_target} >/dev/null 2>&1; then
|
||||||
|
vbin $(${make_cmd} list-bin ${make_install_target})
|
||||||
|
else
|
||||||
|
for name in $(${make_cmd} list-bin ${make_install_target} 2>&1 | tr -d '\n ' | grep -Eo "theexecutable'[^']+'" | tr "'" ' ' | awk '{ print $2 }'); do
|
||||||
|
local _bin=$(${make_cmd} list-bin exe:$name)
|
||||||
|
if [ -s "$_bin" ]; then
|
||||||
|
vbin "$_bin"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
2
common/environment/build-style/cabal.sh
Normal file
2
common/environment/build-style/cabal.sh
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
hostmakedepends+=" cabal-install git"
|
||||||
|
build_helper+=" haskell"
|
|
@ -1 +1,2 @@
|
||||||
hostmakedepends+=" ghc stack"
|
hostmakedepends+=" ghc stack"
|
||||||
|
build_helper+=" haskell"
|
||||||
|
|
File diff suppressed because one or more lines are too long
427
srcpkgs/cabal-install/files/linux-9.8.4.json
Normal file
427
srcpkgs/cabal-install/files/linux-9.8.4.json
Normal file
|
@ -0,0 +1,427 @@
|
||||||
|
{
|
||||||
|
"builtin": [
|
||||||
|
{
|
||||||
|
"package": "rts",
|
||||||
|
"version": "1.0.2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "ghc-prim",
|
||||||
|
"version": "0.11.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "ghc-bignum",
|
||||||
|
"version": "1.3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "base",
|
||||||
|
"version": "4.19.2.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "array",
|
||||||
|
"version": "0.5.8.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "deepseq",
|
||||||
|
"version": "1.5.1.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "ghc-boot-th",
|
||||||
|
"version": "9.8.4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "pretty",
|
||||||
|
"version": "1.1.3.6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "template-haskell",
|
||||||
|
"version": "2.21.0.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "bytestring",
|
||||||
|
"version": "0.12.1.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "containers",
|
||||||
|
"version": "0.6.8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "binary",
|
||||||
|
"version": "0.8.9.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "transformers",
|
||||||
|
"version": "0.6.1.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "mtl",
|
||||||
|
"version": "2.3.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "stm",
|
||||||
|
"version": "2.5.3.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "exceptions",
|
||||||
|
"version": "0.10.7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "filepath",
|
||||||
|
"version": "1.4.301.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "time",
|
||||||
|
"version": "1.12.2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "unix",
|
||||||
|
"version": "2.8.6.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "directory",
|
||||||
|
"version": "1.3.8.5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "text",
|
||||||
|
"version": "2.1.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "parsec",
|
||||||
|
"version": "3.1.17.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "process",
|
||||||
|
"version": "1.6.25.0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dependencies": [
|
||||||
|
{
|
||||||
|
"cabal_sha256": null,
|
||||||
|
"flags": [],
|
||||||
|
"package": "Cabal-syntax",
|
||||||
|
"revision": null,
|
||||||
|
"source": "local",
|
||||||
|
"src_sha256": null,
|
||||||
|
"version": "3.10.3.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": null,
|
||||||
|
"flags": [],
|
||||||
|
"package": "Cabal",
|
||||||
|
"revision": null,
|
||||||
|
"source": "local",
|
||||||
|
"src_sha256": null,
|
||||||
|
"version": "3.10.3.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "e3a1ec8b8dd32f1d5a541679a67de60d6626487a95f20c6bc245268ae7142ab7",
|
||||||
|
"flags": [
|
||||||
|
"-devel"
|
||||||
|
],
|
||||||
|
"package": "network",
|
||||||
|
"revision": 0,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "68548e660632a3c09b230c33fe08cc880273372b485e65cbe7a717936de9728b",
|
||||||
|
"version": "3.2.7.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "e83d97946f84fe492762ceb3b4753b4770c78b0b70e594078700baa91a5106c2",
|
||||||
|
"flags": [],
|
||||||
|
"package": "th-compat",
|
||||||
|
"revision": 0,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "b781a0c059872bc95406d00e98f6fa7d9e81e744730f75186583cb4dcea0a4eb",
|
||||||
|
"version": "0.1.6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "6fffb57373962b5651a2db8b0af732098b3bf029a7ced76a9855615de2026588",
|
||||||
|
"flags": [],
|
||||||
|
"package": "network-uri",
|
||||||
|
"revision": 1,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "9c188973126e893250b881f20e8811dca06c223c23402b06f7a1f2e995797228",
|
||||||
|
"version": "2.6.4.2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "75ada03bd2d2b747319e38877a55bf8be529db4520a07d4e5ffbd24c5e850dcb",
|
||||||
|
"flags": [
|
||||||
|
"-conduit10",
|
||||||
|
"+network-uri",
|
||||||
|
"-warn-as-error",
|
||||||
|
"-warp-tests"
|
||||||
|
],
|
||||||
|
"package": "HTTP",
|
||||||
|
"revision": 5,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453",
|
||||||
|
"version": "4000.4.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "2efc549644dd418bad537d1601fdd437c440d807265016bd993b6996c679ad2f",
|
||||||
|
"flags": [],
|
||||||
|
"package": "os-string",
|
||||||
|
"revision": 0,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "339c35fd3a290522f23de4e33528423cfd0b0a8f22946b0b9816a817b926cba0",
|
||||||
|
"version": "2.0.7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "573f3ab242f75465a0d67ce9d84202650a1606575e6dbd6d31ffcf4767a9a379",
|
||||||
|
"flags": [
|
||||||
|
"-arch-native",
|
||||||
|
"+integer-gmp",
|
||||||
|
"-random-initial-seed"
|
||||||
|
],
|
||||||
|
"package": "hashable",
|
||||||
|
"revision": 0,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "3baee4c9027a08830d148ec524cbc0471de645e1e8426d46780ef2758df0e8da",
|
||||||
|
"version": "1.4.7.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "b7648c6165729a973d95cb328f9fd874813a81c727707e8b2552b4f03399763b",
|
||||||
|
"flags": [
|
||||||
|
"-bench"
|
||||||
|
],
|
||||||
|
"package": "async",
|
||||||
|
"revision": 3,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "1818473ebab9212afad2ed76297aefde5fae8b5d4404daf36939aece6a8f16f7",
|
||||||
|
"version": "2.2.5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "81a105aed2ee2f5e479448e44252b24cdfacf81a5a2106aabdd217bad94b6f40",
|
||||||
|
"flags": [
|
||||||
|
"-dev",
|
||||||
|
"-no-cmm"
|
||||||
|
],
|
||||||
|
"package": "atomic-counter",
|
||||||
|
"revision": 0,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "ce4b63391b3c0d426cbe32af89f483222602a5b43aa5379aa720bf6f45f4cf04",
|
||||||
|
"version": "0.1.2.3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
|
||||||
|
"flags": [],
|
||||||
|
"package": "base16-bytestring",
|
||||||
|
"revision": 1,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
|
||||||
|
"version": "1.0.2.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "45305ccf8914c66d385b518721472c7b8c858f1986945377f74f85c1e0d49803",
|
||||||
|
"flags": [],
|
||||||
|
"package": "base64-bytestring",
|
||||||
|
"revision": 1,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9",
|
||||||
|
"version": "1.2.1.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "8f92088f1c51c8d4569279a07565f8aa6b534a6735615b2295d2961dec8f1783",
|
||||||
|
"flags": [
|
||||||
|
"-optimised-mixer"
|
||||||
|
],
|
||||||
|
"package": "splitmix",
|
||||||
|
"revision": 0,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "d678c41a603a62032cf7e5f8336bb8222c93990e4b59c8b291b7ca26c7eb12c7",
|
||||||
|
"version": "0.1.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "117541ba0a177397a3333f94870f789ef050dca31b0688a19824b2bc401b8823",
|
||||||
|
"flags": [],
|
||||||
|
"package": "random",
|
||||||
|
"revision": 0,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "e9c81926a7d1e40328f645f73592b31efc9c631589669a7f130687b9cc3051dc",
|
||||||
|
"version": "1.2.1.3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "4d33a49cd383d50af090f1b888642d10116e43809f9da6023d9fc6f67d2656ee",
|
||||||
|
"flags": [],
|
||||||
|
"package": "edit-distance",
|
||||||
|
"revision": 1,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a",
|
||||||
|
"version": "0.2.2.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": null,
|
||||||
|
"flags": [
|
||||||
|
"-debug-conflict-sets",
|
||||||
|
"-debug-expensive-assertions",
|
||||||
|
"-debug-tracetree"
|
||||||
|
],
|
||||||
|
"package": "cabal-install-solver",
|
||||||
|
"revision": null,
|
||||||
|
"source": "local",
|
||||||
|
"src_sha256": null,
|
||||||
|
"version": "3.10.3.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "0e9de2ccce261e7a5b027e842f6f47f50eb0e6059a0de98a5479f75aa8164107",
|
||||||
|
"flags": [
|
||||||
|
"-exe",
|
||||||
|
"+use-cbits"
|
||||||
|
],
|
||||||
|
"package": "cryptohash-sha256",
|
||||||
|
"revision": 6,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
|
||||||
|
"version": "0.11.102.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "ccce771562c49a2b29a52046ca68c62179e97e8fbeacdae32ca84a85445e8f42",
|
||||||
|
"flags": [
|
||||||
|
"-example"
|
||||||
|
],
|
||||||
|
"package": "echo",
|
||||||
|
"revision": 0,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43",
|
||||||
|
"version": "0.1.4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "f1550ddbe3b53f1087a035667364011460896cc2b1ff328b521c05ed5973bb78",
|
||||||
|
"flags": [
|
||||||
|
"+no-donna",
|
||||||
|
"+test-doctests",
|
||||||
|
"+test-hlint",
|
||||||
|
"+test-properties"
|
||||||
|
],
|
||||||
|
"package": "ed25519",
|
||||||
|
"revision": 9,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d",
|
||||||
|
"version": "0.0.5.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "8334a8d810e385e1dc1423dc02945daaa1f1a9ba058e5227f1a3211e4882ca28",
|
||||||
|
"flags": [
|
||||||
|
"+ofd-locking"
|
||||||
|
],
|
||||||
|
"package": "lukko",
|
||||||
|
"revision": 1,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "72d86f8aa625b461f4397f737346f78a1700a7ffbff55cf6375c5e18916e986d",
|
||||||
|
"version": "0.1.2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "8931b9ce6e63bf6202dc0c992ae3e6f2ad8e7f4b6eb69994ac6d512c6c9c0f77",
|
||||||
|
"flags": [
|
||||||
|
"-os-string"
|
||||||
|
],
|
||||||
|
"package": "directory-ospath-streaming",
|
||||||
|
"revision": 0,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "1ade8fbee13db15e8d22a1ecdca54794617cabc69911b51d46a65e12f4554ef7",
|
||||||
|
"version": "0.2.2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "1d68a81fa684d006b1ec73836cebe3de9a54688836915fe3e56a20389846bb4e",
|
||||||
|
"flags": [
|
||||||
|
"-os-string"
|
||||||
|
],
|
||||||
|
"package": "file-io",
|
||||||
|
"revision": 0,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "310a19e4c792de4d30c912bc71ff3becb40818d7c796b9999bcd0979dab87d5b",
|
||||||
|
"version": "0.1.5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "a72549370449fe99e3008744ad2e43685e96bf86aa0db15898189fcbaafcd815",
|
||||||
|
"flags": [],
|
||||||
|
"package": "tar",
|
||||||
|
"revision": 1,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "7949a50004a80993000512079bc03ebcad4872414fc181f45b3883d743c0f3aa",
|
||||||
|
"version": "0.6.4.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "a72549370449fe99e3008744ad2e43685e96bf86aa0db15898189fcbaafcd815",
|
||||||
|
"flags": [],
|
||||||
|
"package": "tar",
|
||||||
|
"revision": 1,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "7949a50004a80993000512079bc03ebcad4872414fc181f45b3883d743c0f3aa",
|
||||||
|
"version": "0.6.4.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "85e64a75c0b490506a7edaa2d54950c668e66b65758bb08bb14cd31faf53a206",
|
||||||
|
"flags": [
|
||||||
|
"-bundled-c-zlib",
|
||||||
|
"+non-blocking-ffi",
|
||||||
|
"-pkg-config"
|
||||||
|
],
|
||||||
|
"package": "zlib",
|
||||||
|
"revision": 2,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "6edd38b6b81df8d274952aa85affa6968ae86b2231e1d429ce8bc9083e6a55bc",
|
||||||
|
"version": "0.7.1.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "f85f6f1ef55d1f91795f2c7c476db36fd7aedb55c877d47f2a4411f0151040a9",
|
||||||
|
"flags": [
|
||||||
|
"+cabal-syntax",
|
||||||
|
"+lukko"
|
||||||
|
],
|
||||||
|
"package": "hackage-security",
|
||||||
|
"revision": 5,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "2e4261576b3e11b9f5175392947f56a638cc1a3584b8acbb962b809d7c69db69",
|
||||||
|
"version": "0.6.2.6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "d6c0c6d1136f5046207a331114ff4130e70640452096de7719bf03e3fceb7c7b",
|
||||||
|
"flags": [],
|
||||||
|
"package": "regex-base",
|
||||||
|
"revision": 0,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "e8ca2dee598c790dd1c1c4359bdd1e495d9b881f5aa1f539c22f0dd5563747bf",
|
||||||
|
"version": "0.94.0.3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "faf170ca5073e8d538a7a18f727a02a96f2a36c5fd53a1696263a70ab81bc6fe",
|
||||||
|
"flags": [
|
||||||
|
"-_regex-posix-clib"
|
||||||
|
],
|
||||||
|
"package": "regex-posix",
|
||||||
|
"revision": 0,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "7e570460c35c5deec54d1ba46305ddb4679c7d4aae84f631dd0c61daaeaa8150",
|
||||||
|
"version": "0.96.0.2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "58a8c6f17dece62891e7534c6f033e1fb1d0685e68dbe5d4fbb71256d45c6132",
|
||||||
|
"flags": [],
|
||||||
|
"package": "resolv",
|
||||||
|
"revision": 5,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "880d283df9132a7375fa28670f71e86480a4f49972256dc2a204c648274ae74b",
|
||||||
|
"version": "0.2.0.2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "8bb7261bd54bd58acfcb154be6a161fb6d0d31a1852aadc8e927d2ad2d7651d1",
|
||||||
|
"flags": [],
|
||||||
|
"package": "safe-exceptions",
|
||||||
|
"revision": 1,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "3c51d8d50c9b60ff8bf94f942fd92e3bea9e62c5afa778dfc9f707b79da41ef6",
|
||||||
|
"version": "0.1.7.4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": null,
|
||||||
|
"flags": [
|
||||||
|
"+lukko",
|
||||||
|
"+native-dns"
|
||||||
|
],
|
||||||
|
"package": "cabal-install",
|
||||||
|
"revision": null,
|
||||||
|
"source": "local",
|
||||||
|
"src_sha256": null,
|
||||||
|
"version": "3.10.3.0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -1,34 +1,50 @@
|
||||||
# Template file for 'cabal-install'
|
# Template file for 'cabal-install'
|
||||||
pkgname=cabal-install
|
pkgname=cabal-install
|
||||||
version=3.6.3.0
|
version=3.10.3.0
|
||||||
revision=2
|
revision=1
|
||||||
hostmakedepends="ghc curl tar which"
|
build_helper="haskell"
|
||||||
makedepends="gmp-devel libffi-devel zlib-devel python3"
|
hostmakedepends="python3 ghc curl tar"
|
||||||
|
makedepends="zlib-devel"
|
||||||
depends="ghc"
|
depends="ghc"
|
||||||
short_desc="Command-line interface for Cabal and Hackage"
|
short_desc="Command-line interface for Cabal and Hackage"
|
||||||
maintainer="Orphaned <orphan@voidlinux.org>"
|
maintainer="Orphaned <orphan@voidlinux.org>"
|
||||||
license="BSD-3-Clause"
|
license="BSD-3-Clause"
|
||||||
homepage="https://hackage.haskell.org/package/cabal-install"
|
homepage="https://www.haskell.org/cabal/"
|
||||||
distfiles="https://github.com/haskell/cabal/archive/Cabal-v${version}.tar.gz"
|
distfiles="https://github.com/haskell/cabal/archive/refs/tags/cabal-install-v${version}.tar.gz"
|
||||||
checksum=dea086acad6d9fe5fe22d838b95b4e988022e8519f38d41609119ea32bfb7466
|
checksum=075fba81fca61f6957dae3a542a3213415682dd9767f6ccdf3f9059f2cd0f156
|
||||||
nopie_files="/usr/bin/cabal"
|
nopie_files="/usr/bin/cabal"
|
||||||
nocross=yes
|
nocross=yes
|
||||||
|
|
||||||
|
# Keep in sync with ghc
|
||||||
|
_ghc_ver=9.8.4
|
||||||
|
|
||||||
post_extract() {
|
post_extract() {
|
||||||
cp "${FILESDIR}/linux-9.0.2.json" bootstrap/
|
if [ -e ${FILESDIR}/linux-${_ghc_ver}.json ]; then
|
||||||
|
cp "${FILESDIR}/linux-${_ghc_ver}.json" bootstrap/
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
post_patch() {
|
pre_build() {
|
||||||
case "${XBPS_TARGET_MACHINE}" in
|
if [ -e bootstrap/linux-${_ghc_ver}.json ]; then
|
||||||
i686*)
|
if [ "$XBPS_TARGET_WORDSIZE" = 32 ]; then
|
||||||
# https://github.com/haskell/cabal/issues/7313
|
# https://github.com/haskell/cabal/issues/7313
|
||||||
vsed -i -e 's/+ofd-locking/-ofd-locking/' bootstrap/linux-9.0.2.json ;;
|
sed -i 's/+ofd-locking/-ofd-locking/g' bootstrap/linux-${_ghc_ver}.json
|
||||||
esac
|
fi
|
||||||
|
else
|
||||||
|
# To generate a bootstrap plan for a new ghc version ensure a
|
||||||
|
# cabal binary is available, run this, then move the plan to
|
||||||
|
# FILESDIR
|
||||||
|
cabal update
|
||||||
|
make bootstrap-json-${_ghc_ver}
|
||||||
|
msg_normal "Please install bootstrap/linux-${_ghc_ver}.json in ${FILESDIR}\n"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
do_build() {
|
do_build() {
|
||||||
PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-9.0.2.json
|
PREFIX=$PWD bootstrap/bootstrap.py -d bootstrap/linux-${_ghc_ver}.json
|
||||||
}
|
}
|
||||||
|
|
||||||
do_install() {
|
do_install() {
|
||||||
vbin _build/bin/cabal
|
vbin _build/bin/cabal
|
||||||
PREFIX=$PWD _build/bin/cabal man --raw > cabal.1
|
PREFIX=$PWD _build/bin/cabal man --raw > cabal.1
|
||||||
|
|
|
@ -1,15 +1,16 @@
|
||||||
# Template file for 'cgrep'
|
# Template file for 'cgrep'
|
||||||
pkgname=cgrep
|
pkgname=cgrep
|
||||||
version=7.0.0
|
version=8.1.2
|
||||||
revision=1
|
revision=1
|
||||||
build_style=haskell-stack
|
build_style=haskell-stack
|
||||||
|
stackage="lts-23.26"
|
||||||
makedepends="pcre-devel pkg-config"
|
makedepends="pcre-devel pkg-config"
|
||||||
short_desc="Context-aware grep for source codes"
|
short_desc="Context-aware grep for source codes"
|
||||||
maintainer="Orphaned <orphan@voidlinux.org>"
|
maintainer="Orphaned <orphan@voidlinux.org>"
|
||||||
license="GPL-2.0-or-later"
|
license="GPL-2.0-or-later"
|
||||||
homepage="https://awgn.github.io/cgrep/"
|
homepage="https://awgn.github.io/cgrep/"
|
||||||
distfiles="https://github.com/awgn/cgrep/archive/v${version}.tar.gz"
|
distfiles="https://github.com/awgn/cgrep/archive/v${version}.tar.gz"
|
||||||
checksum=87c596447882b3acf0a754ac52ac1b5314961e652708a25ffc49ec5977b1f11a
|
checksum=1b705013a432e6ea90247f03e4cfeceb5a37f795d879178e4bf0085ce6191316
|
||||||
nocross=yes
|
nocross=yes
|
||||||
nopie_files="/usr/bin/cgrep"
|
nopie_files="/usr/bin/cgrep"
|
||||||
conflicts="codesearch"
|
conflicts="codesearch"
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
resolver: lts-19.0
|
|
||||||
packages:
|
|
||||||
- .
|
|
||||||
allow-newer: true
|
|
242
srcpkgs/darcs/patches/basement.patch
Normal file
242
srcpkgs/darcs/patches/basement.patch
Normal file
|
@ -0,0 +1,242 @@
|
||||||
|
From 38be2c93acb6f459d24ed6c626981c35ccf44095 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sylvain Henry <sylvain@haskus.fr>
|
||||||
|
Date: Thu, 16 Feb 2023 15:40:45 +0100
|
||||||
|
Subject: [PATCH] Fix build on 32-bit architectures
|
||||||
|
|
||||||
|
---
|
||||||
|
basement/Basement/Bits.hs | 4 ++++
|
||||||
|
basement/Basement/From.hs | 24 -----------------------
|
||||||
|
basement/Basement/Numerical/Additive.hs | 4 ++++
|
||||||
|
basement/Basement/Numerical/Conversion.hs | 20 +++++++++++++++++++
|
||||||
|
basement/Basement/PrimType.hs | 6 +++++-
|
||||||
|
basement/Basement/Types/OffsetSize.hs | 22 +++++++++++++++++++--
|
||||||
|
6 files changed, 53 insertions(+), 27 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/basement/Basement/Bits.hs b/basement/Basement/Bits.hs
|
||||||
|
index 7eeea0f5..24520ed7 100644
|
||||||
|
--- a/basement/Basement/Bits.hs
|
||||||
|
+++ b/basement/Basement/Bits.hs
|
||||||
|
@@ -54,8 +54,12 @@ import GHC.Int
|
||||||
|
import Basement.Compat.Primitive
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | operation over finite bits
|
||||||
|
class FiniteBitsOps bits where
|
||||||
|
diff --git a/basement/Basement/From.hs b/basement/Basement/From.hs
|
||||||
|
index 7bbe141c..80014b3e 100644
|
||||||
|
--- a/basement/Basement/From.hs
|
||||||
|
+++ b/basement/Basement/From.hs
|
||||||
|
@@ -272,23 +272,11 @@ instance (NatWithinBound (CountOf ty) n, KnownNat n, PrimType ty)
|
||||||
|
tryFrom = BlockN.toBlockN . UArray.toBlock . BoxArray.mapToUnboxed id
|
||||||
|
|
||||||
|
instance (KnownNat n, NatWithinBound Word8 n) => From (Zn64 n) Word8 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word16 n) => From (Zn64 n) Word16 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word32 n) => From (Zn64 n) Word32 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance From (Zn64 n) Word64 where
|
||||||
|
from = unZn64
|
||||||
|
instance From (Zn64 n) Word128 where
|
||||||
|
@@ -297,23 +285,11 @@ instance From (Zn64 n) Word256 where
|
||||||
|
from = from . unZn64
|
||||||
|
|
||||||
|
instance (KnownNat n, NatWithinBound Word8 n) => From (Zn n) Word8 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word16 n) => From (Zn n) Word16 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word32 n) => From (Zn n) Word32 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word64 n) => From (Zn n) Word64 where
|
||||||
|
from = naturalToWord64 . unZn
|
||||||
|
instance (KnownNat n, NatWithinBound Word128 n) => From (Zn n) Word128 where
|
||||||
|
diff --git a/basement/Basement/Numerical/Additive.hs b/basement/Basement/Numerical/Additive.hs
|
||||||
|
index d0dfb973..8ab65aa0 100644
|
||||||
|
--- a/basement/Basement/Numerical/Additive.hs
|
||||||
|
+++ b/basement/Basement/Numerical/Additive.hs
|
||||||
|
@@ -30,8 +30,12 @@ import qualified Basement.Types.Word128 as Word128
|
||||||
|
import qualified Basement.Types.Word256 as Word256
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | Represent class of things that can be added together,
|
||||||
|
-- contains a neutral element and is commutative.
|
||||||
|
diff --git a/basement/Basement/Numerical/Conversion.hs b/basement/Basement/Numerical/Conversion.hs
|
||||||
|
index db502c07..fddc8232 100644
|
||||||
|
--- a/basement/Basement/Numerical/Conversion.hs
|
||||||
|
+++ b/basement/Basement/Numerical/Conversion.hs
|
||||||
|
@@ -26,8 +26,12 @@ import GHC.Word
|
||||||
|
import Basement.Compat.Primitive
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
intToInt64 :: Int -> Int64
|
||||||
|
#if WORD_SIZE_IN_BITS == 64
|
||||||
|
@@ -96,11 +100,22 @@ int64ToWord64 (I64# i) = W64# (int64ToWord64# i)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS == 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+word64ToWord# :: Word64# -> Word#
|
||||||
|
+word64ToWord# i = word64ToWord# i
|
||||||
|
+#else
|
||||||
|
word64ToWord# :: Word# -> Word#
|
||||||
|
word64ToWord# i = i
|
||||||
|
+#endif
|
||||||
|
{-# INLINE word64ToWord# #-}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+word64ToWord32# :: Word64# -> Word32#
|
||||||
|
+word64ToWord32# i = wordToWord32# (word64ToWord# i)
|
||||||
|
+{-# INLINE word64ToWord32# #-}
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
-- | 2 Word32s
|
||||||
|
data Word32x2 = Word32x2 {-# UNPACK #-} !Word32
|
||||||
|
{-# UNPACK #-} !Word32
|
||||||
|
@@ -113,9 +128,14 @@ word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# (G
|
||||||
|
word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# w64 32#))) (W32# (wordToWord32# w64))
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+word64ToWord32s :: Word64 -> Word32x2
|
||||||
|
+word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord32# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord32# w64))
|
||||||
|
+#else
|
||||||
|
word64ToWord32s :: Word64 -> Word32x2
|
||||||
|
word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord# w64))
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
wordToChar :: Word -> Char
|
||||||
|
wordToChar (W# word) = C# (chr# (word2Int# word))
|
||||||
|
diff --git a/basement/Basement/PrimType.hs b/basement/Basement/PrimType.hs
|
||||||
|
index f8ca2926..a888ec91 100644
|
||||||
|
--- a/basement/Basement/PrimType.hs
|
||||||
|
+++ b/basement/Basement/PrimType.hs
|
||||||
|
@@ -54,7 +54,11 @@ import Basement.Nat
|
||||||
|
import qualified Prelude (quot)
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
-import GHC.IntWord64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
+import GHC.IntWord64
|
||||||
|
+#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FOUNDATION_BOUNDS_CHECK
|
||||||
|
diff --git a/basement/Basement/Types/OffsetSize.hs b/basement/Basement/Types/OffsetSize.hs
|
||||||
|
index cd944927..1ea80dad 100644
|
||||||
|
--- a/basement/Basement/Types/OffsetSize.hs
|
||||||
|
+++ b/basement/Basement/Types/OffsetSize.hs
|
||||||
|
@@ -70,8 +70,12 @@ import Data.List (foldl')
|
||||||
|
import qualified Prelude
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | File size in bytes
|
||||||
|
newtype FileSize = FileSize Word64
|
||||||
|
@@ -225,20 +229,26 @@ countOfRoundUp alignment (CountOf n) = CountOf ((n + (alignment-1)) .&. compleme
|
||||||
|
|
||||||
|
csizeOfSize :: CountOf Word8 -> CSize
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+csizeOfSize (CountOf (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
|
||||||
|
+#else
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W32# (int2Word# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
|
||||||
|
-
|
||||||
|
#else
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W64# (int2Word# sz))
|
||||||
|
-
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
csizeOfOffset :: Offset8 -> CSize
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+csizeOfOffset (Offset (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
|
||||||
|
+#else
|
||||||
|
csizeOfOffset (Offset (I# sz)) = CSize (W32# (int2Word# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
csizeOfOffset (Offset (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
|
||||||
|
@@ -250,7 +260,11 @@ csizeOfOffset (Offset (I# sz)) = CSize (W64# (int2Word# sz))
|
||||||
|
sizeOfCSSize :: CSsize -> CountOf Word8
|
||||||
|
sizeOfCSSize (CSsize (-1)) = error "invalid size: CSSize is -1"
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# (int32ToInt# sz))
|
||||||
|
+#else
|
||||||
|
sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# sz)
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# (int64ToInt# sz))
|
||||||
|
@@ -261,7 +275,11 @@ sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# sz)
|
||||||
|
|
||||||
|
sizeOfCSize :: CSize -> CountOf Word8
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# (word32ToWord# sz)))
|
||||||
|
+#else
|
||||||
|
sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
sizeOfCSize (CSize (W64# sz)) = CountOf (I# (word2Int# (word64ToWord# sz)))
|
11
srcpkgs/darcs/patches/cborg-bounds.patch
Normal file
11
srcpkgs/darcs/patches/cborg-bounds.patch
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
--- a/cborg/cborg.cabal 2025-07-06 20:31:00.307574779 +0100
|
||||||
|
+++ b/cborg/cborg.cabal 2025-07-06 20:31:05.085962403 +0100
|
||||||
|
@@ -164,7 +164,7 @@
|
||||||
|
scientific >= 0.3 && < 0.4,
|
||||||
|
tasty >= 0.11 && < 1.6,
|
||||||
|
tasty-hunit >= 0.9 && < 0.11,
|
||||||
|
- tasty-quickcheck >= 0.8 && < 0.11,
|
||||||
|
+ tasty-quickcheck >= 0.8 && < 0.12,
|
||||||
|
vector >= 0.10 && < 0.14
|
||||||
|
if !impl(ghc >= 8.0)
|
||||||
|
build-depends:
|
212
srcpkgs/darcs/patches/cborg.patch
Normal file
212
srcpkgs/darcs/patches/cborg.patch
Normal file
|
@ -0,0 +1,212 @@
|
||||||
|
commit 9d1418bb8b38cb9a438d7f18835b1ef7ef12b234
|
||||||
|
Author: amesgen <amesgen@amesgen.de>
|
||||||
|
Date: Sun Sep 10 20:03:40 2023 +0200
|
||||||
|
|
||||||
|
Fix compilation and support GHC >=9.2 on 32bit
|
||||||
|
|
||||||
|
diff --git a/cborg/src/Codec/CBOR/Decoding.hs b/cborg/src/Codec/CBOR/Decoding.hs
|
||||||
|
index a7d774c..bf68e68 100644
|
||||||
|
--- a/cborg/src/Codec/CBOR/Decoding.hs
|
||||||
|
+++ b/cborg/src/Codec/CBOR/Decoding.hs
|
||||||
|
@@ -315,11 +315,16 @@ getDecodeAction (Decoder k) = k (\x -> return (Done x))
|
||||||
|
toInt8 :: Int# -> Int8
|
||||||
|
toInt16 :: Int# -> Int16
|
||||||
|
toInt32 :: Int# -> Int32
|
||||||
|
-toInt64 :: Int# -> Int64
|
||||||
|
toWord8 :: Word# -> Word8
|
||||||
|
toWord16 :: Word# -> Word16
|
||||||
|
toWord32 :: Word# -> Word32
|
||||||
|
+#if defined(ARCH_64bit)
|
||||||
|
+toInt64 :: Int# -> Int64
|
||||||
|
toWord64 :: Word# -> Word64
|
||||||
|
+#else
|
||||||
|
+toInt64 :: Int64# -> Int64
|
||||||
|
+toWord64 :: Word64# -> Word64
|
||||||
|
+#endif
|
||||||
|
#if MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
toInt8 n = I8# (intToInt8# n)
|
||||||
|
toInt16 n = I16# (intToInt16# n)
|
||||||
|
@@ -327,8 +332,7 @@ toInt32 n = I32# (intToInt32# n)
|
||||||
|
toWord8 n = W8# (wordToWord8# n)
|
||||||
|
toWord16 n = W16# (wordToWord16# n)
|
||||||
|
toWord32 n = W32# (wordToWord32# n)
|
||||||
|
-#if WORD_SIZE_IN_BITS == 64
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && defined(ARCH_64bit)
|
||||||
|
toInt64 n = I64# (intToInt64# n)
|
||||||
|
toWord64 n = W64# (wordToWord64# n)
|
||||||
|
#else
|
||||||
|
@@ -336,10 +340,6 @@ toInt64 n = I64# n
|
||||||
|
toWord64 n = W64# n
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
-toInt64 n = I64# (intToInt64# n)
|
||||||
|
-toWord64 n = W64# (wordToWord64# n)
|
||||||
|
-#endif
|
||||||
|
-#else
|
||||||
|
toInt8 n = I8# n
|
||||||
|
toInt16 n = I16# n
|
||||||
|
toInt32 n = I32# n
|
||||||
|
@@ -986,7 +986,7 @@ type ByteOffset = Int64
|
||||||
|
-- @since 0.2.2.0
|
||||||
|
peekByteOffset :: Decoder s ByteOffset
|
||||||
|
peekByteOffset = Decoder (\k -> return (PeekByteOffset (\off# -> k (I64#
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && !defined(ARCH_32bit)
|
||||||
|
(intToInt64# off#)
|
||||||
|
#else
|
||||||
|
off#
|
||||||
|
diff --git a/cborg/src/Codec/CBOR/Magic.hs b/cborg/src/Codec/CBOR/Magic.hs
|
||||||
|
index cdeb455..bfae638 100644
|
||||||
|
--- a/cborg/src/Codec/CBOR/Magic.hs
|
||||||
|
+++ b/cborg/src/Codec/CBOR/Magic.hs
|
||||||
|
@@ -120,7 +120,7 @@ import qualified Numeric.Half as Half
|
||||||
|
import Data.Bits ((.|.), unsafeShiftL)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#if defined(ARCH_32bit)
|
||||||
|
+#if defined(ARCH_32bit) && !MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
import GHC.IntWord64 (wordToWord64#, word64ToWord#,
|
||||||
|
intToInt64#, int64ToInt#,
|
||||||
|
leWord64#, ltWord64#, word64ToInt64#)
|
||||||
|
@@ -173,7 +173,7 @@ grabWord64 (Ptr ip#) = W64# (wordToWord64# (byteSwap# (word64ToWord# (indexWord6
|
||||||
|
grabWord64 (Ptr ip#) = W64# (byteSwap# (indexWord64OffAddr# ip# 0#))
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
-grabWord64 (Ptr ip#) = W64# (byteSwap64# (word64ToWord# (indexWord64OffAddr# ip# 0#)))
|
||||||
|
+grabWord64 (Ptr ip#) = W64# (byteSwap64# (indexWord64OffAddr# ip# 0#))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#elif defined(MEM_UNALIGNED_OPS) && \
|
||||||
|
@@ -484,7 +484,7 @@ word16ToInt (W16# w#) = I# (word2Int# (word16ToWord# w#))
|
||||||
|
word32ToInt (W32# w#) = I# (word2Int# (word32ToWord# w#))
|
||||||
|
#else
|
||||||
|
word32ToInt (W32# w#) =
|
||||||
|
- case isTrue# (w# `ltWord#` 0x80000000##) of
|
||||||
|
+ case isTrue# (word32ToWord# w# `ltWord#` 0x80000000##) of
|
||||||
|
True -> Just (I# (word2Int# (word32ToWord# w#)))
|
||||||
|
False -> Nothing
|
||||||
|
#endif
|
||||||
|
@@ -530,6 +530,19 @@ word64ToInt (W64# w#) =
|
||||||
|
{-# INLINE word64ToInt #-}
|
||||||
|
|
||||||
|
#if defined(ARCH_32bit)
|
||||||
|
+#if MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
+word8ToInt64 (W8# w#) = I64# (intToInt64# (word2Int# (word8ToWord# w#)))
|
||||||
|
+word16ToInt64 (W16# w#) = I64# (intToInt64# (word2Int# (word16ToWord# w#)))
|
||||||
|
+word32ToInt64 (W32# w#) = I64# (word64ToInt64# (wordToWord64# (word32ToWord# w#)))
|
||||||
|
+word64ToInt64 (W64# w#) =
|
||||||
|
+ case isTrue# (w# `ltWord64#` uncheckedShiftL64# (wordToWord64# 1##) 63#) of
|
||||||
|
+ True -> Just (I64# (word64ToInt64# w#))
|
||||||
|
+ False -> Nothing
|
||||||
|
+
|
||||||
|
+word8ToWord64 (W8# w#) = W64# (wordToWord64# (word8ToWord# w#))
|
||||||
|
+word16ToWord64 (W16# w#) = W64# (wordToWord64# (word16ToWord# w#))
|
||||||
|
+word32ToWord64 (W32# w#) = W64# (wordToWord64# (word32ToWord# w#))
|
||||||
|
+#else
|
||||||
|
word8ToInt64 (W8# w#) = I64# (intToInt64# (word2Int# w#))
|
||||||
|
word16ToInt64 (W16# w#) = I64# (intToInt64# (word2Int# w#))
|
||||||
|
word32ToInt64 (W32# w#) = I64# (word64ToInt64# (wordToWord64# w#))
|
||||||
|
@@ -541,6 +554,7 @@ word64ToInt64 (W64# w#) =
|
||||||
|
word8ToWord64 (W8# w#) = W64# (wordToWord64# w#)
|
||||||
|
word16ToWord64 (W16# w#) = W64# (wordToWord64# w#)
|
||||||
|
word32ToWord64 (W32# w#) = W64# (wordToWord64# w#)
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
{-# INLINE word8ToInt64 #-}
|
||||||
|
{-# INLINE word16ToInt64 #-}
|
||||||
|
diff --git a/cborg/src/Codec/CBOR/Read.hs b/cborg/src/Codec/CBOR/Read.hs
|
||||||
|
index 6546575..c4dc761 100644
|
||||||
|
--- a/cborg/src/Codec/CBOR/Read.hs
|
||||||
|
+++ b/cborg/src/Codec/CBOR/Read.hs
|
||||||
|
@@ -63,7 +63,7 @@ import qualified Data.Text as T
|
||||||
|
import qualified Data.Text.Encoding as T
|
||||||
|
import Data.Word
|
||||||
|
import GHC.Word
|
||||||
|
-#if defined(ARCH_32bit)
|
||||||
|
+#if defined(ARCH_32bit) && !MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
import GHC.Exts
|
||||||
|
@@ -510,8 +510,8 @@ go_fast !bs da@(ConsumeNegWord64Canonical k) =
|
||||||
|
go_fast !bs da@(ConsumeInt64Canonical k) =
|
||||||
|
case tryConsumeInt64 (BS.unsafeHead bs) bs of
|
||||||
|
DecodeFailure -> go_fast_end bs da
|
||||||
|
- DecodedToken sz i@(I64# i#)
|
||||||
|
- | isInt64Canonical sz i -> k i# >>= go_fast (BS.unsafeDrop sz bs)
|
||||||
|
+ DecodedToken sz (I64# i#)
|
||||||
|
+ | isInt64Canonical sz i# -> k i# >>= go_fast (BS.unsafeDrop sz bs)
|
||||||
|
| otherwise -> go_fast_end bs da
|
||||||
|
|
||||||
|
go_fast !bs da@(ConsumeListLen64Canonical k) =
|
||||||
|
@@ -994,8 +994,8 @@ go_fast_end !bs (ConsumeNegWord64Canonical k) =
|
||||||
|
go_fast_end !bs (ConsumeInt64Canonical k) =
|
||||||
|
case tryConsumeInt64 (BS.unsafeHead bs) bs of
|
||||||
|
DecodeFailure -> return $! SlowFail bs "expected int64"
|
||||||
|
- DecodedToken sz i@(I64# i#)
|
||||||
|
- | isInt64Canonical sz i -> k i# >>= go_fast_end (BS.unsafeDrop sz bs)
|
||||||
|
+ DecodedToken sz (I64# i#)
|
||||||
|
+ | isInt64Canonical sz i# -> k i# >>= go_fast_end (BS.unsafeDrop sz bs)
|
||||||
|
| otherwise -> return $! SlowFail bs "non-canonical int64"
|
||||||
|
|
||||||
|
go_fast_end !bs (ConsumeListLen64Canonical k) =
|
||||||
|
@@ -1271,7 +1271,7 @@ go_slow da bs !offset = do
|
||||||
|
|
||||||
|
SlowPeekByteOffset bs' k ->
|
||||||
|
lift
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && !defined(ARCH_32bit)
|
||||||
|
(k (int64ToInt# off#))
|
||||||
|
#else
|
||||||
|
(k off#)
|
||||||
|
@@ -1381,7 +1381,7 @@ go_slow_overlapped da sz bs_cur bs_next !offset =
|
||||||
|
SlowPeekByteOffset bs_empty k ->
|
||||||
|
assert (BS.null bs_empty) $ do
|
||||||
|
lift
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && !defined(ARCH_32bit)
|
||||||
|
(k (int64ToInt# off#))
|
||||||
|
#else
|
||||||
|
(k off#)
|
||||||
|
@@ -1565,17 +1565,17 @@ isIntCanonical sz i
|
||||||
|
{-# INLINE isWord64Canonical #-}
|
||||||
|
isWord64Canonical :: Int -> Word64 -> Bool
|
||||||
|
isWord64Canonical sz w
|
||||||
|
- | sz == 2 = w > 0x17)
|
||||||
|
- | sz == 3 = w > 0xff)
|
||||||
|
- | sz == 5 = w > 0xffff)
|
||||||
|
- | sz == 9 = w > 0xffffffff)
|
||||||
|
+ | sz == 2 = w > 0x17
|
||||||
|
+ | sz == 3 = w > 0xff
|
||||||
|
+ | sz == 5 = w > 0xffff
|
||||||
|
+ | sz == 9 = w > 0xffffffff
|
||||||
|
| otherwise = True
|
||||||
|
|
||||||
|
{-# INLINE isInt64Canonical #-}
|
||||||
|
isInt64Canonical :: Int -> Int64# -> Bool
|
||||||
|
isInt64Canonical sz i#
|
||||||
|
- | isTrue# (i# `ltInt64#` intToInt64# 0#) = isWord64Canonical sz (not64# w#)
|
||||||
|
- | otherwise = isWord64Canonical sz w#
|
||||||
|
+ | isTrue# (i# `ltInt64#` intToInt64# 0#) = isWord64Canonical sz (W64# (not64# w#))
|
||||||
|
+ | otherwise = isWord64Canonical sz (W64# w#)
|
||||||
|
where
|
||||||
|
w# = int64ToWord64# i#
|
||||||
|
#endif
|
||||||
|
@@ -1796,7 +1796,7 @@ tryConsumeInteger hdr !bs = case word8ToWord hdr of
|
||||||
|
0x1b -> let !w = eatTailWord64 bs
|
||||||
|
sz = 9
|
||||||
|
#if defined(ARCH_32bit)
|
||||||
|
- in DecodedToken sz (BigIntToken (isWord64Canonical sz (word64ToWord w)) $! toInteger w)
|
||||||
|
+ in DecodedToken sz (BigIntToken (isWord64Canonical sz w) $! toInteger w)
|
||||||
|
#else
|
||||||
|
in DecodedToken sz (BigIntToken (isWordCanonical sz (word64ToWord w)) $! toInteger w)
|
||||||
|
#endif
|
||||||
|
@@ -1838,7 +1838,7 @@ tryConsumeInteger hdr !bs = case word8ToWord hdr of
|
||||||
|
0x3b -> let !w = eatTailWord64 bs
|
||||||
|
sz = 9
|
||||||
|
#if defined(ARCH_32bit)
|
||||||
|
- in DecodedToken sz (BigIntToken (isWord64Canonical sz (word64ToWord w)) $! (-1 - toInteger w))
|
||||||
|
+ in DecodedToken sz (BigIntToken (isWord64Canonical sz w) $! (-1 - toInteger w))
|
||||||
|
#else
|
||||||
|
in DecodedToken sz (BigIntToken (isWordCanonical sz (word64ToWord w)) $! (-1 - toInteger w))
|
||||||
|
#endif
|
36
srcpkgs/darcs/patches/memory.patch
Normal file
36
srcpkgs/darcs/patches/memory.patch
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
From 2738929ce15b4c8704bbbac24a08539b5d4bf30e Mon Sep 17 00:00:00 2001
|
||||||
|
From: sternenseemann <sternenseemann@systemli.org>
|
||||||
|
Date: Mon, 14 Aug 2023 10:51:30 +0200
|
||||||
|
Subject: [PATCH] Data.Memory.Internal.CompatPrim64: fix 32 bit with GHC >= 9.4
|
||||||
|
|
||||||
|
Since 9.4, GHC.Prim exports Word64# operations like timesWord64# even on
|
||||||
|
i686 whereas GHC.IntWord64 no longer exists. Therefore, we can just use
|
||||||
|
the ready made solution.
|
||||||
|
|
||||||
|
Closes #98, as it should be the better solution.
|
||||||
|
---
|
||||||
|
Data/Memory/Internal/CompatPrim64.hs | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/Data/Memory/Internal/CompatPrim64.hs b/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
index b9eef8a..a134c88 100644
|
||||||
|
--- a/memory/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
+++ b/memory/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
@@ -150,6 +150,7 @@ w64# :: Word# -> Word# -> Word# -> Word64#
|
||||||
|
w64# w _ _ = w
|
||||||
|
|
||||||
|
#elif WORD_SIZE_IN_BITS == 32
|
||||||
|
+#if __GLASGOW_HASKELL__ < 904
|
||||||
|
import GHC.IntWord64
|
||||||
|
import GHC.Prim (Word#)
|
||||||
|
|
||||||
|
@@ -158,6 +159,9 @@ timesWord64# a b =
|
||||||
|
let !ai = word64ToInt64# a
|
||||||
|
!bi = word64ToInt64# b
|
||||||
|
in int64ToWord64# (timesInt64# ai bi)
|
||||||
|
+#else
|
||||||
|
+import GHC.Prim
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
w64# :: Word# -> Word# -> Word# -> Word64#
|
||||||
|
w64# _ hw lw =
|
|
@ -1,18 +1,32 @@
|
||||||
# Template file for 'darcs'
|
# Template file for 'darcs'
|
||||||
pkgname=darcs
|
pkgname=darcs
|
||||||
version=2.16.5
|
version=2.18.5
|
||||||
revision=3
|
revision=1
|
||||||
build_style=haskell-stack
|
build_style=haskell-stack
|
||||||
hostmakedepends="unzip"
|
stackage="lts-23.26"
|
||||||
|
hostmakedepends="pkg-config unzip"
|
||||||
makedepends="zlib-devel libcurl-devel ncurses-devel"
|
makedepends="zlib-devel libcurl-devel ncurses-devel"
|
||||||
short_desc="Change-focused cross-platform version control system"
|
short_desc="Change-focused cross-platform version control system"
|
||||||
maintainer="Orphaned <orphan@voidlinux.org>"
|
maintainer="Orphaned <orphan@voidlinux.org>"
|
||||||
license="GPL-2.0-or-later"
|
license="GPL-2.0-or-later"
|
||||||
homepage="http://darcs.net/"
|
homepage="http://darcs.net/"
|
||||||
distfiles="http://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz"
|
distfiles="http://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz
|
||||||
checksum=d63c6cd236e31e812e8ad84433d27059387606269fbd953f4c349c3cb3aa242b
|
https://hackage.haskell.org/package/basement-0.0.16/basement-0.0.16.tar.gz
|
||||||
|
https://hackage.haskell.org/package/memory-0.18.0/memory-0.18.0.tar.gz
|
||||||
|
https://hackage.haskell.org/package/cborg-0.2.10.0/cborg-0.2.10.0.tar.gz"
|
||||||
|
checksum="e310692989e313191824f532a26c5eae712217444214266503d5eb5867f951ab
|
||||||
|
7fb77e249aef76ba5aed3059d556800ce02b614597c488ba01f0a16449146300
|
||||||
|
fd4eb6f638e24b81b4e6cdd68772a531726f2f67686c8969d3407d82f7862e3e
|
||||||
|
17fe070c38fc498cab49bcb9d6215b7747d53bedf96502e9bcce9cad73b9c797"
|
||||||
nopie_files="/usr/bin/darcs"
|
nopie_files="/usr/bin/darcs"
|
||||||
nocross=yes
|
nocross=yes
|
||||||
|
skip_extraction="basement-0.0.16.tar.gz memory-0.18.0.tar.gz cborg-0.2.10.0.tar.gz"
|
||||||
|
|
||||||
|
post_extract() {
|
||||||
|
vsrcextract -C basement basement-0.0.16.tar.gz
|
||||||
|
vsrcextract -C memory memory-0.18.0.tar.gz
|
||||||
|
vsrcextract -C cborg cborg-0.2.10.0.tar.gz
|
||||||
|
}
|
||||||
|
|
||||||
post_install() {
|
post_install() {
|
||||||
vinstall contrib/darcs_completion 644 usr/share/bash-completion/completions
|
vinstall contrib/darcs_completion 644 usr/share/bash-completion/completions
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
packages:
|
|
||||||
- '.'
|
|
||||||
resolver: lts-19.0
|
|
||||||
extra-deps:
|
|
||||||
- posix-pty-0.2.1.1
|
|
||||||
- sandi-0.5@sha256:b278d072ca717706ea38f9bd646e023f7f2576a778fb43565b434f93638849aa,3010
|
|
242
srcpkgs/debug-me/patches/basement.patch
Normal file
242
srcpkgs/debug-me/patches/basement.patch
Normal file
|
@ -0,0 +1,242 @@
|
||||||
|
From 38be2c93acb6f459d24ed6c626981c35ccf44095 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sylvain Henry <sylvain@haskus.fr>
|
||||||
|
Date: Thu, 16 Feb 2023 15:40:45 +0100
|
||||||
|
Subject: [PATCH] Fix build on 32-bit architectures
|
||||||
|
|
||||||
|
---
|
||||||
|
basement/Basement/Bits.hs | 4 ++++
|
||||||
|
basement/Basement/From.hs | 24 -----------------------
|
||||||
|
basement/Basement/Numerical/Additive.hs | 4 ++++
|
||||||
|
basement/Basement/Numerical/Conversion.hs | 20 +++++++++++++++++++
|
||||||
|
basement/Basement/PrimType.hs | 6 +++++-
|
||||||
|
basement/Basement/Types/OffsetSize.hs | 22 +++++++++++++++++++--
|
||||||
|
6 files changed, 53 insertions(+), 27 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/basement/Basement/Bits.hs b/basement/Basement/Bits.hs
|
||||||
|
index 7eeea0f5..24520ed7 100644
|
||||||
|
--- a/basement/Basement/Bits.hs
|
||||||
|
+++ b/basement/Basement/Bits.hs
|
||||||
|
@@ -54,8 +54,12 @@ import GHC.Int
|
||||||
|
import Basement.Compat.Primitive
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | operation over finite bits
|
||||||
|
class FiniteBitsOps bits where
|
||||||
|
diff --git a/basement/Basement/From.hs b/basement/Basement/From.hs
|
||||||
|
index 7bbe141c..80014b3e 100644
|
||||||
|
--- a/basement/Basement/From.hs
|
||||||
|
+++ b/basement/Basement/From.hs
|
||||||
|
@@ -272,23 +272,11 @@ instance (NatWithinBound (CountOf ty) n, KnownNat n, PrimType ty)
|
||||||
|
tryFrom = BlockN.toBlockN . UArray.toBlock . BoxArray.mapToUnboxed id
|
||||||
|
|
||||||
|
instance (KnownNat n, NatWithinBound Word8 n) => From (Zn64 n) Word8 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word16 n) => From (Zn64 n) Word16 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word32 n) => From (Zn64 n) Word32 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance From (Zn64 n) Word64 where
|
||||||
|
from = unZn64
|
||||||
|
instance From (Zn64 n) Word128 where
|
||||||
|
@@ -297,23 +285,11 @@ instance From (Zn64 n) Word256 where
|
||||||
|
from = from . unZn64
|
||||||
|
|
||||||
|
instance (KnownNat n, NatWithinBound Word8 n) => From (Zn n) Word8 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word16 n) => From (Zn n) Word16 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word32 n) => From (Zn n) Word32 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word64 n) => From (Zn n) Word64 where
|
||||||
|
from = naturalToWord64 . unZn
|
||||||
|
instance (KnownNat n, NatWithinBound Word128 n) => From (Zn n) Word128 where
|
||||||
|
diff --git a/basement/Basement/Numerical/Additive.hs b/basement/Basement/Numerical/Additive.hs
|
||||||
|
index d0dfb973..8ab65aa0 100644
|
||||||
|
--- a/basement/Basement/Numerical/Additive.hs
|
||||||
|
+++ b/basement/Basement/Numerical/Additive.hs
|
||||||
|
@@ -30,8 +30,12 @@ import qualified Basement.Types.Word128 as Word128
|
||||||
|
import qualified Basement.Types.Word256 as Word256
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | Represent class of things that can be added together,
|
||||||
|
-- contains a neutral element and is commutative.
|
||||||
|
diff --git a/basement/Basement/Numerical/Conversion.hs b/basement/Basement/Numerical/Conversion.hs
|
||||||
|
index db502c07..fddc8232 100644
|
||||||
|
--- a/basement/Basement/Numerical/Conversion.hs
|
||||||
|
+++ b/basement/Basement/Numerical/Conversion.hs
|
||||||
|
@@ -26,8 +26,12 @@ import GHC.Word
|
||||||
|
import Basement.Compat.Primitive
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
intToInt64 :: Int -> Int64
|
||||||
|
#if WORD_SIZE_IN_BITS == 64
|
||||||
|
@@ -96,11 +100,22 @@ int64ToWord64 (I64# i) = W64# (int64ToWord64# i)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS == 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+word64ToWord# :: Word64# -> Word#
|
||||||
|
+word64ToWord# i = word64ToWord# i
|
||||||
|
+#else
|
||||||
|
word64ToWord# :: Word# -> Word#
|
||||||
|
word64ToWord# i = i
|
||||||
|
+#endif
|
||||||
|
{-# INLINE word64ToWord# #-}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+word64ToWord32# :: Word64# -> Word32#
|
||||||
|
+word64ToWord32# i = wordToWord32# (word64ToWord# i)
|
||||||
|
+{-# INLINE word64ToWord32# #-}
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
-- | 2 Word32s
|
||||||
|
data Word32x2 = Word32x2 {-# UNPACK #-} !Word32
|
||||||
|
{-# UNPACK #-} !Word32
|
||||||
|
@@ -113,9 +128,14 @@ word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# (G
|
||||||
|
word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# w64 32#))) (W32# (wordToWord32# w64))
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+word64ToWord32s :: Word64 -> Word32x2
|
||||||
|
+word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord32# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord32# w64))
|
||||||
|
+#else
|
||||||
|
word64ToWord32s :: Word64 -> Word32x2
|
||||||
|
word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord# w64))
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
wordToChar :: Word -> Char
|
||||||
|
wordToChar (W# word) = C# (chr# (word2Int# word))
|
||||||
|
diff --git a/basement/Basement/PrimType.hs b/basement/Basement/PrimType.hs
|
||||||
|
index f8ca2926..a888ec91 100644
|
||||||
|
--- a/basement/Basement/PrimType.hs
|
||||||
|
+++ b/basement/Basement/PrimType.hs
|
||||||
|
@@ -54,7 +54,11 @@ import Basement.Nat
|
||||||
|
import qualified Prelude (quot)
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
-import GHC.IntWord64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
+import GHC.IntWord64
|
||||||
|
+#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FOUNDATION_BOUNDS_CHECK
|
||||||
|
diff --git a/basement/Basement/Types/OffsetSize.hs b/basement/Basement/Types/OffsetSize.hs
|
||||||
|
index cd944927..1ea80dad 100644
|
||||||
|
--- a/basement/Basement/Types/OffsetSize.hs
|
||||||
|
+++ b/basement/Basement/Types/OffsetSize.hs
|
||||||
|
@@ -70,8 +70,12 @@ import Data.List (foldl')
|
||||||
|
import qualified Prelude
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | File size in bytes
|
||||||
|
newtype FileSize = FileSize Word64
|
||||||
|
@@ -225,20 +229,26 @@ countOfRoundUp alignment (CountOf n) = CountOf ((n + (alignment-1)) .&. compleme
|
||||||
|
|
||||||
|
csizeOfSize :: CountOf Word8 -> CSize
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+csizeOfSize (CountOf (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
|
||||||
|
+#else
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W32# (int2Word# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
|
||||||
|
-
|
||||||
|
#else
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W64# (int2Word# sz))
|
||||||
|
-
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
csizeOfOffset :: Offset8 -> CSize
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+csizeOfOffset (Offset (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
|
||||||
|
+#else
|
||||||
|
csizeOfOffset (Offset (I# sz)) = CSize (W32# (int2Word# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
csizeOfOffset (Offset (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
|
||||||
|
@@ -250,7 +260,11 @@ csizeOfOffset (Offset (I# sz)) = CSize (W64# (int2Word# sz))
|
||||||
|
sizeOfCSSize :: CSsize -> CountOf Word8
|
||||||
|
sizeOfCSSize (CSsize (-1)) = error "invalid size: CSSize is -1"
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# (int32ToInt# sz))
|
||||||
|
+#else
|
||||||
|
sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# sz)
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# (int64ToInt# sz))
|
||||||
|
@@ -261,7 +275,11 @@ sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# sz)
|
||||||
|
|
||||||
|
sizeOfCSize :: CSize -> CountOf Word8
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# (word32ToWord# sz)))
|
||||||
|
+#else
|
||||||
|
sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
sizeOfCSize (CSize (W64# sz)) = CountOf (I# (word2Int# (word64ToWord# sz)))
|
212
srcpkgs/debug-me/patches/cborg.patch
Normal file
212
srcpkgs/debug-me/patches/cborg.patch
Normal file
|
@ -0,0 +1,212 @@
|
||||||
|
commit 9d1418bb8b38cb9a438d7f18835b1ef7ef12b234
|
||||||
|
Author: amesgen <amesgen@amesgen.de>
|
||||||
|
Date: Sun Sep 10 20:03:40 2023 +0200
|
||||||
|
|
||||||
|
Fix compilation and support GHC >=9.2 on 32bit
|
||||||
|
|
||||||
|
diff --git a/cborg/src/Codec/CBOR/Decoding.hs b/cborg/src/Codec/CBOR/Decoding.hs
|
||||||
|
index a7d774c..bf68e68 100644
|
||||||
|
--- a/cborg/src/Codec/CBOR/Decoding.hs
|
||||||
|
+++ b/cborg/src/Codec/CBOR/Decoding.hs
|
||||||
|
@@ -315,11 +315,16 @@ getDecodeAction (Decoder k) = k (\x -> return (Done x))
|
||||||
|
toInt8 :: Int# -> Int8
|
||||||
|
toInt16 :: Int# -> Int16
|
||||||
|
toInt32 :: Int# -> Int32
|
||||||
|
-toInt64 :: Int# -> Int64
|
||||||
|
toWord8 :: Word# -> Word8
|
||||||
|
toWord16 :: Word# -> Word16
|
||||||
|
toWord32 :: Word# -> Word32
|
||||||
|
+#if defined(ARCH_64bit)
|
||||||
|
+toInt64 :: Int# -> Int64
|
||||||
|
toWord64 :: Word# -> Word64
|
||||||
|
+#else
|
||||||
|
+toInt64 :: Int64# -> Int64
|
||||||
|
+toWord64 :: Word64# -> Word64
|
||||||
|
+#endif
|
||||||
|
#if MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
toInt8 n = I8# (intToInt8# n)
|
||||||
|
toInt16 n = I16# (intToInt16# n)
|
||||||
|
@@ -327,8 +332,7 @@ toInt32 n = I32# (intToInt32# n)
|
||||||
|
toWord8 n = W8# (wordToWord8# n)
|
||||||
|
toWord16 n = W16# (wordToWord16# n)
|
||||||
|
toWord32 n = W32# (wordToWord32# n)
|
||||||
|
-#if WORD_SIZE_IN_BITS == 64
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && defined(ARCH_64bit)
|
||||||
|
toInt64 n = I64# (intToInt64# n)
|
||||||
|
toWord64 n = W64# (wordToWord64# n)
|
||||||
|
#else
|
||||||
|
@@ -336,10 +340,6 @@ toInt64 n = I64# n
|
||||||
|
toWord64 n = W64# n
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
-toInt64 n = I64# (intToInt64# n)
|
||||||
|
-toWord64 n = W64# (wordToWord64# n)
|
||||||
|
-#endif
|
||||||
|
-#else
|
||||||
|
toInt8 n = I8# n
|
||||||
|
toInt16 n = I16# n
|
||||||
|
toInt32 n = I32# n
|
||||||
|
@@ -986,7 +986,7 @@ type ByteOffset = Int64
|
||||||
|
-- @since 0.2.2.0
|
||||||
|
peekByteOffset :: Decoder s ByteOffset
|
||||||
|
peekByteOffset = Decoder (\k -> return (PeekByteOffset (\off# -> k (I64#
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && !defined(ARCH_32bit)
|
||||||
|
(intToInt64# off#)
|
||||||
|
#else
|
||||||
|
off#
|
||||||
|
diff --git a/cborg/src/Codec/CBOR/Magic.hs b/cborg/src/Codec/CBOR/Magic.hs
|
||||||
|
index cdeb455..bfae638 100644
|
||||||
|
--- a/cborg/src/Codec/CBOR/Magic.hs
|
||||||
|
+++ b/cborg/src/Codec/CBOR/Magic.hs
|
||||||
|
@@ -120,7 +120,7 @@ import qualified Numeric.Half as Half
|
||||||
|
import Data.Bits ((.|.), unsafeShiftL)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#if defined(ARCH_32bit)
|
||||||
|
+#if defined(ARCH_32bit) && !MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
import GHC.IntWord64 (wordToWord64#, word64ToWord#,
|
||||||
|
intToInt64#, int64ToInt#,
|
||||||
|
leWord64#, ltWord64#, word64ToInt64#)
|
||||||
|
@@ -173,7 +173,7 @@ grabWord64 (Ptr ip#) = W64# (wordToWord64# (byteSwap# (word64ToWord# (indexWord6
|
||||||
|
grabWord64 (Ptr ip#) = W64# (byteSwap# (indexWord64OffAddr# ip# 0#))
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
-grabWord64 (Ptr ip#) = W64# (byteSwap64# (word64ToWord# (indexWord64OffAddr# ip# 0#)))
|
||||||
|
+grabWord64 (Ptr ip#) = W64# (byteSwap64# (indexWord64OffAddr# ip# 0#))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#elif defined(MEM_UNALIGNED_OPS) && \
|
||||||
|
@@ -484,7 +484,7 @@ word16ToInt (W16# w#) = I# (word2Int# (word16ToWord# w#))
|
||||||
|
word32ToInt (W32# w#) = I# (word2Int# (word32ToWord# w#))
|
||||||
|
#else
|
||||||
|
word32ToInt (W32# w#) =
|
||||||
|
- case isTrue# (w# `ltWord#` 0x80000000##) of
|
||||||
|
+ case isTrue# (word32ToWord# w# `ltWord#` 0x80000000##) of
|
||||||
|
True -> Just (I# (word2Int# (word32ToWord# w#)))
|
||||||
|
False -> Nothing
|
||||||
|
#endif
|
||||||
|
@@ -530,6 +530,19 @@ word64ToInt (W64# w#) =
|
||||||
|
{-# INLINE word64ToInt #-}
|
||||||
|
|
||||||
|
#if defined(ARCH_32bit)
|
||||||
|
+#if MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
+word8ToInt64 (W8# w#) = I64# (intToInt64# (word2Int# (word8ToWord# w#)))
|
||||||
|
+word16ToInt64 (W16# w#) = I64# (intToInt64# (word2Int# (word16ToWord# w#)))
|
||||||
|
+word32ToInt64 (W32# w#) = I64# (word64ToInt64# (wordToWord64# (word32ToWord# w#)))
|
||||||
|
+word64ToInt64 (W64# w#) =
|
||||||
|
+ case isTrue# (w# `ltWord64#` uncheckedShiftL64# (wordToWord64# 1##) 63#) of
|
||||||
|
+ True -> Just (I64# (word64ToInt64# w#))
|
||||||
|
+ False -> Nothing
|
||||||
|
+
|
||||||
|
+word8ToWord64 (W8# w#) = W64# (wordToWord64# (word8ToWord# w#))
|
||||||
|
+word16ToWord64 (W16# w#) = W64# (wordToWord64# (word16ToWord# w#))
|
||||||
|
+word32ToWord64 (W32# w#) = W64# (wordToWord64# (word32ToWord# w#))
|
||||||
|
+#else
|
||||||
|
word8ToInt64 (W8# w#) = I64# (intToInt64# (word2Int# w#))
|
||||||
|
word16ToInt64 (W16# w#) = I64# (intToInt64# (word2Int# w#))
|
||||||
|
word32ToInt64 (W32# w#) = I64# (word64ToInt64# (wordToWord64# w#))
|
||||||
|
@@ -541,6 +554,7 @@ word64ToInt64 (W64# w#) =
|
||||||
|
word8ToWord64 (W8# w#) = W64# (wordToWord64# w#)
|
||||||
|
word16ToWord64 (W16# w#) = W64# (wordToWord64# w#)
|
||||||
|
word32ToWord64 (W32# w#) = W64# (wordToWord64# w#)
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
{-# INLINE word8ToInt64 #-}
|
||||||
|
{-# INLINE word16ToInt64 #-}
|
||||||
|
diff --git a/cborg/src/Codec/CBOR/Read.hs b/cborg/src/Codec/CBOR/Read.hs
|
||||||
|
index 6546575..c4dc761 100644
|
||||||
|
--- a/cborg/src/Codec/CBOR/Read.hs
|
||||||
|
+++ b/cborg/src/Codec/CBOR/Read.hs
|
||||||
|
@@ -63,7 +63,7 @@ import qualified Data.Text as T
|
||||||
|
import qualified Data.Text.Encoding as T
|
||||||
|
import Data.Word
|
||||||
|
import GHC.Word
|
||||||
|
-#if defined(ARCH_32bit)
|
||||||
|
+#if defined(ARCH_32bit) && !MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
import GHC.Exts
|
||||||
|
@@ -510,8 +510,8 @@ go_fast !bs da@(ConsumeNegWord64Canonical k) =
|
||||||
|
go_fast !bs da@(ConsumeInt64Canonical k) =
|
||||||
|
case tryConsumeInt64 (BS.unsafeHead bs) bs of
|
||||||
|
DecodeFailure -> go_fast_end bs da
|
||||||
|
- DecodedToken sz i@(I64# i#)
|
||||||
|
- | isInt64Canonical sz i -> k i# >>= go_fast (BS.unsafeDrop sz bs)
|
||||||
|
+ DecodedToken sz (I64# i#)
|
||||||
|
+ | isInt64Canonical sz i# -> k i# >>= go_fast (BS.unsafeDrop sz bs)
|
||||||
|
| otherwise -> go_fast_end bs da
|
||||||
|
|
||||||
|
go_fast !bs da@(ConsumeListLen64Canonical k) =
|
||||||
|
@@ -994,8 +994,8 @@ go_fast_end !bs (ConsumeNegWord64Canonical k) =
|
||||||
|
go_fast_end !bs (ConsumeInt64Canonical k) =
|
||||||
|
case tryConsumeInt64 (BS.unsafeHead bs) bs of
|
||||||
|
DecodeFailure -> return $! SlowFail bs "expected int64"
|
||||||
|
- DecodedToken sz i@(I64# i#)
|
||||||
|
- | isInt64Canonical sz i -> k i# >>= go_fast_end (BS.unsafeDrop sz bs)
|
||||||
|
+ DecodedToken sz (I64# i#)
|
||||||
|
+ | isInt64Canonical sz i# -> k i# >>= go_fast_end (BS.unsafeDrop sz bs)
|
||||||
|
| otherwise -> return $! SlowFail bs "non-canonical int64"
|
||||||
|
|
||||||
|
go_fast_end !bs (ConsumeListLen64Canonical k) =
|
||||||
|
@@ -1271,7 +1271,7 @@ go_slow da bs !offset = do
|
||||||
|
|
||||||
|
SlowPeekByteOffset bs' k ->
|
||||||
|
lift
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && !defined(ARCH_32bit)
|
||||||
|
(k (int64ToInt# off#))
|
||||||
|
#else
|
||||||
|
(k off#)
|
||||||
|
@@ -1381,7 +1381,7 @@ go_slow_overlapped da sz bs_cur bs_next !offset =
|
||||||
|
SlowPeekByteOffset bs_empty k ->
|
||||||
|
assert (BS.null bs_empty) $ do
|
||||||
|
lift
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && !defined(ARCH_32bit)
|
||||||
|
(k (int64ToInt# off#))
|
||||||
|
#else
|
||||||
|
(k off#)
|
||||||
|
@@ -1565,17 +1565,17 @@ isIntCanonical sz i
|
||||||
|
{-# INLINE isWord64Canonical #-}
|
||||||
|
isWord64Canonical :: Int -> Word64 -> Bool
|
||||||
|
isWord64Canonical sz w
|
||||||
|
- | sz == 2 = w > 0x17)
|
||||||
|
- | sz == 3 = w > 0xff)
|
||||||
|
- | sz == 5 = w > 0xffff)
|
||||||
|
- | sz == 9 = w > 0xffffffff)
|
||||||
|
+ | sz == 2 = w > 0x17
|
||||||
|
+ | sz == 3 = w > 0xff
|
||||||
|
+ | sz == 5 = w > 0xffff
|
||||||
|
+ | sz == 9 = w > 0xffffffff
|
||||||
|
| otherwise = True
|
||||||
|
|
||||||
|
{-# INLINE isInt64Canonical #-}
|
||||||
|
isInt64Canonical :: Int -> Int64# -> Bool
|
||||||
|
isInt64Canonical sz i#
|
||||||
|
- | isTrue# (i# `ltInt64#` intToInt64# 0#) = isWord64Canonical sz (not64# w#)
|
||||||
|
- | otherwise = isWord64Canonical sz w#
|
||||||
|
+ | isTrue# (i# `ltInt64#` intToInt64# 0#) = isWord64Canonical sz (W64# (not64# w#))
|
||||||
|
+ | otherwise = isWord64Canonical sz (W64# w#)
|
||||||
|
where
|
||||||
|
w# = int64ToWord64# i#
|
||||||
|
#endif
|
||||||
|
@@ -1796,7 +1796,7 @@ tryConsumeInteger hdr !bs = case word8ToWord hdr of
|
||||||
|
0x1b -> let !w = eatTailWord64 bs
|
||||||
|
sz = 9
|
||||||
|
#if defined(ARCH_32bit)
|
||||||
|
- in DecodedToken sz (BigIntToken (isWord64Canonical sz (word64ToWord w)) $! toInteger w)
|
||||||
|
+ in DecodedToken sz (BigIntToken (isWord64Canonical sz w) $! toInteger w)
|
||||||
|
#else
|
||||||
|
in DecodedToken sz (BigIntToken (isWordCanonical sz (word64ToWord w)) $! toInteger w)
|
||||||
|
#endif
|
||||||
|
@@ -1838,7 +1838,7 @@ tryConsumeInteger hdr !bs = case word8ToWord hdr of
|
||||||
|
0x3b -> let !w = eatTailWord64 bs
|
||||||
|
sz = 9
|
||||||
|
#if defined(ARCH_32bit)
|
||||||
|
- in DecodedToken sz (BigIntToken (isWord64Canonical sz (word64ToWord w)) $! (-1 - toInteger w))
|
||||||
|
+ in DecodedToken sz (BigIntToken (isWord64Canonical sz w) $! (-1 - toInteger w))
|
||||||
|
#else
|
||||||
|
in DecodedToken sz (BigIntToken (isWordCanonical sz (word64ToWord w)) $! (-1 - toInteger w))
|
||||||
|
#endif
|
20
srcpkgs/debug-me/patches/deps.patch
Normal file
20
srcpkgs/debug-me/patches/deps.patch
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
--- a/debug-me.cabal 2025-07-05 13:11:54.095974453 +0100
|
||||||
|
+++ b/debug-me.cabal 2025-07-05 13:11:59.253974699 +0100
|
||||||
|
@@ -55,7 +55,7 @@
|
||||||
|
Build-Depends:
|
||||||
|
base (>= 4.9 && < 5.0)
|
||||||
|
, network (>= 2.6)
|
||||||
|
- , bytestring < 0.12
|
||||||
|
+ , bytestring < 0.13
|
||||||
|
, cryptonite (>= 0.20)
|
||||||
|
, unix (>= 2.7)
|
||||||
|
, process (>= 1.4)
|
||||||
|
@@ -64,7 +64,7 @@
|
||||||
|
, stm-chans (>= 3.0)
|
||||||
|
, posix-pty (>= 0.2.1)
|
||||||
|
, terminal-size (>= 0.3)
|
||||||
|
- , aeson (>= 0.11 && < 2.1)
|
||||||
|
+ , aeson (>= 0.11 && < 2.3)
|
||||||
|
, sandi (>= 0.4)
|
||||||
|
, text (>= 1.2.2)
|
||||||
|
, optparse-applicative (>= 0.12)
|
36
srcpkgs/debug-me/patches/memory.patch
Normal file
36
srcpkgs/debug-me/patches/memory.patch
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
From 2738929ce15b4c8704bbbac24a08539b5d4bf30e Mon Sep 17 00:00:00 2001
|
||||||
|
From: sternenseemann <sternenseemann@systemli.org>
|
||||||
|
Date: Mon, 14 Aug 2023 10:51:30 +0200
|
||||||
|
Subject: [PATCH] Data.Memory.Internal.CompatPrim64: fix 32 bit with GHC >= 9.4
|
||||||
|
|
||||||
|
Since 9.4, GHC.Prim exports Word64# operations like timesWord64# even on
|
||||||
|
i686 whereas GHC.IntWord64 no longer exists. Therefore, we can just use
|
||||||
|
the ready made solution.
|
||||||
|
|
||||||
|
Closes #98, as it should be the better solution.
|
||||||
|
---
|
||||||
|
Data/Memory/Internal/CompatPrim64.hs | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/Data/Memory/Internal/CompatPrim64.hs b/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
index b9eef8a..a134c88 100644
|
||||||
|
--- a/memory/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
+++ b/memory/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
@@ -150,6 +150,7 @@ w64# :: Word# -> Word# -> Word# -> Word64#
|
||||||
|
w64# w _ _ = w
|
||||||
|
|
||||||
|
#elif WORD_SIZE_IN_BITS == 32
|
||||||
|
+#if __GLASGOW_HASKELL__ < 904
|
||||||
|
import GHC.IntWord64
|
||||||
|
import GHC.Prim (Word#)
|
||||||
|
|
||||||
|
@@ -158,6 +159,9 @@ timesWord64# a b =
|
||||||
|
let !ai = word64ToInt64# a
|
||||||
|
!bi = word64ToInt64# b
|
||||||
|
in int64ToWord64# (timesInt64# ai bi)
|
||||||
|
+#else
|
||||||
|
+import GHC.Prim
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
w64# :: Word# -> Word# -> Word# -> Word64#
|
||||||
|
w64# _ hw lw =
|
|
@ -1,19 +1,43 @@
|
||||||
# Template file for 'debug-me'
|
# Template file for 'debug-me'
|
||||||
pkgname=debug-me
|
pkgname=debug-me
|
||||||
version=1.20220324
|
version=1.20221231
|
||||||
revision=1
|
revision=1
|
||||||
build_style=haskell-stack
|
build_style=cabal
|
||||||
stackage="lts-19.0"
|
cabal_index_state=2025-07-05T11:40:57Z
|
||||||
makedepends="zlib-devel"
|
makedepends="zlib-devel"
|
||||||
short_desc="Secure remote debugging"
|
short_desc="Secure remote debugging"
|
||||||
maintainer="Orphaned <orphan@voidlinux.org>"
|
maintainer="Orphaned <orphan@voidlinux.org>"
|
||||||
license="AGPL-3.0-or-later"
|
license="AGPL-3.0-or-later"
|
||||||
homepage="https://debug-me.branchable.com/"
|
homepage="https://debug-me.branchable.com/"
|
||||||
distfiles="https://git.joeyh.name/index.cgi/${pkgname}.git/snapshot/${pkgname}-${version}.tar.gz"
|
distfiles="https://git.joeyh.name/index.cgi/${pkgname}.git/snapshot/${pkgname}-${version}.tar.gz
|
||||||
checksum=9fd6256aa34408106ff095e0560850aca3558a774be4ce19de6ab6e81fbfdb9f
|
https://hackage.haskell.org/package/basement-0.0.16/basement-0.0.16.tar.gz
|
||||||
|
https://hackage.haskell.org/package/memory-0.18.0/memory-0.18.0.tar.gz
|
||||||
|
https://hackage.haskell.org/package/cborg-0.2.10.0/cborg-0.2.10.0.tar.gz"
|
||||||
|
checksum="c16b63a99d9cb177f28318e4598debaf974eda791da37fc66e13780959356373
|
||||||
|
7fb77e249aef76ba5aed3059d556800ce02b614597c488ba01f0a16449146300
|
||||||
|
fd4eb6f638e24b81b4e6cdd68772a531726f2f67686c8969d3407d82f7862e3e
|
||||||
|
17fe070c38fc498cab49bcb9d6215b7747d53bedf96502e9bcce9cad73b9c797"
|
||||||
nocross=yes # Can't yet cross compile Haskell
|
nocross=yes # Can't yet cross compile Haskell
|
||||||
nopie_files="/usr/bin/debug-me"
|
nopie_files="/usr/bin/debug-me"
|
||||||
|
skip_extraction="basement-0.0.16.tar.gz memory-0.18.0.tar.gz cborg-0.2.10.0.tar.gz"
|
||||||
|
|
||||||
|
post_extract() {
|
||||||
|
vsrcextract -C basement basement-0.0.16.tar.gz
|
||||||
|
vsrcextract -C memory memory-0.18.0.tar.gz
|
||||||
|
vsrcextract -C cborg cborg-0.2.10.0.tar.gz
|
||||||
|
}
|
||||||
|
|
||||||
|
post_configure() {
|
||||||
|
# Fix build on i686 by using patched basement, memory and cborg packages
|
||||||
|
echo 'packages: ./basement ./memory ./cborg' >> cabal.project.local
|
||||||
|
|
||||||
|
# Fix build on musl by pretending to be glibc,
|
||||||
|
# otherwise it thinks we're freebsd
|
||||||
|
echo 'package posix-pty' >> cabal.project.local
|
||||||
|
echo ' ghc-options: -optc=-D__GLIBC__' >> cabal.project.local
|
||||||
|
}
|
||||||
|
|
||||||
post_install() {
|
post_install() {
|
||||||
|
vman debug-me.1
|
||||||
vlicense AGPL
|
vlicense AGPL
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,53 +1,35 @@
|
||||||
# Template file for 'ghc-bin'
|
# Template file for 'ghc-bin'
|
||||||
pkgname=ghc-bin
|
pkgname=ghc-bin
|
||||||
version=9.0.2
|
version=9.8.4
|
||||||
revision=1
|
revision=1
|
||||||
archs="i686 x86_64* ppc64le* ppc64 aarch64*"
|
archs="i686 x86_64* aarch64*"
|
||||||
hostmakedepends="perl libffi libnuma"
|
hostmakedepends="patchelf"
|
||||||
depends="ncurses perl gcc libffi-devel gmp-devel"
|
depends="gcc libffi-devel gmp-devel"
|
||||||
short_desc="Glorious Haskell Compiler - precompiled binaries"
|
short_desc="Glasgow Haskell Compiler - precompiled binaries"
|
||||||
maintainer="Orphaned <orphan@voidlinux.org>"
|
maintainer="Orphaned <orphan@voidlinux.org>"
|
||||||
license="BSD-3-Clause"
|
license="BSD-3-Clause"
|
||||||
homepage="http://www.haskell.org/ghc/"
|
homepage="http://www.haskell.org/ghc/"
|
||||||
nocross=yes
|
nocross=yes
|
||||||
nostrip=yes
|
nostrip=yes
|
||||||
noshlibprovides=yes
|
noshlibprovides=yes
|
||||||
conflicts="ghc>=0 ghc-doc>=0"
|
conflicts="ghc>=0 ghc-doc>=0 ghc-devel>=0"
|
||||||
|
|
||||||
case "$XBPS_TARGET_MACHINE" in
|
case "$XBPS_TARGET_MACHINE" in
|
||||||
x86_64)
|
x86_64*)
|
||||||
distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-x86_64-deb9-linux.tar.xz"
|
distfiles="https://downloads.haskell.org/ghc/${version}/ghc-${version}-x86_64-alpine3_12-linux-static.tar.xz"
|
||||||
checksum=805f5628ce6cec678ba77ff48c924831ebdf75ec2c66368e8935a618913a150e
|
checksum=02535eaef4f57aef8b7b272ef6f48d386d186ebd07fa47e227b46b93fa7eb0ab
|
||||||
;;
|
|
||||||
x86_64-musl)
|
|
||||||
# create with "make binary-dist"
|
|
||||||
distfiles="https://repo-default.voidlinux.org/distfiles/ghc-${version}-x86_64-void-linux-musl.tar.xz"
|
|
||||||
checksum=e21eaddeffcd5de7abe43b1f3982a3bc2c5b5f408d2574857cb2b0368106e12c
|
|
||||||
;;
|
;;
|
||||||
i686)
|
i686)
|
||||||
distfiles="https://downloads.haskell.org/ghc/${version%[!0-9]}/ghc-${version}-i386-deb9-linux.tar.xz"
|
distfiles="https://downloads.haskell.org/ghc/${version}/ghc-${version}-i386-deb10-linux.tar.xz"
|
||||||
checksum=fdeb9f8928fbe994064778a8e1e85bb1a58a6cd3dd7b724fcc2a1dcfda6cad47
|
checksum=e5efce16c654d5e702986258a87dd9531e1722b8051823c8ce1150ce3c5899ae
|
||||||
;;
|
|
||||||
ppc64le)
|
|
||||||
distfiles="https://repo-default.voidlinux.org/distfiles/ghc-${version}-powerpc64le-void-linux.tar.xz"
|
|
||||||
checksum=7de8114c991f9a2a3b0f5e472da76e3956be6447efec4b1157f14e707049f22d
|
|
||||||
;;
|
|
||||||
ppc64le-musl)
|
|
||||||
distfiles="https://repo-default.voidlinux.org/distfiles/ghc-${version}-powerpc64le-void-linux-musl.tar.xz"
|
|
||||||
checksum=37de8e069712307c9b2039e92f56e540e80ca1390dd27aa247ebe18c40e0c629
|
|
||||||
;;
|
|
||||||
ppc64)
|
|
||||||
distfiles="https://repo-default.voidlinux.org/distfiles/ghc-${version}-powerpc64-void-linux.tar.xz"
|
|
||||||
checksum=6eb8684fdbede0cded7e3f7b93574b968f5f66dd2fcd4ec30ac5f0c402af6602
|
|
||||||
;;
|
;;
|
||||||
aarch64)
|
aarch64)
|
||||||
distfiles="https://repo-default.voidlinux.org/distfiles/ghc-${version}-aarch64-void-linux.tar.xz"
|
distfiles="https://downloads.haskell.org/ghc/${version}/ghc-${version}-aarch64-deb11-linux.tar.xz"
|
||||||
checksum=44a20a896246dce64392b7d0feedd0a28a9d733245a803e95dbe4b4b7e15b4fd
|
checksum=310204daf2df6ad16087be94b3498ca414a0953b29e94e8ec8eb4a5c9bf603d3
|
||||||
depends+=" llvm"
|
|
||||||
;;
|
;;
|
||||||
aarch64-musl)
|
aarch64-musl)
|
||||||
distfiles="https://repo-default.voidlinux.org/distfiles/ghc-${version}-aarch64-void-linux-musl.tar.xz"
|
distfiles="https://downloads.haskell.org/ghc/${version}/ghc-${version}-aarch64-alpine3_18-linux.tar.xz"
|
||||||
checksum=de98e2ff33a25cb32a28c738066fecacb736a33cac12688876eec4eb96d88607
|
checksum=b5c86a0cda0bd62d5eeeb52b1937c3bd00c70cd67dd74226ce787d5c429a4e62
|
||||||
depends+=" llvm"
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
broken="No distfiles available for this target"
|
broken="No distfiles available for this target"
|
||||||
|
@ -59,13 +41,15 @@ do_configure() {
|
||||||
}
|
}
|
||||||
|
|
||||||
do_install() {
|
do_install() {
|
||||||
ln -sf /usr/lib/libncursesw.so.6 libtinfo.so.5
|
|
||||||
export LD_LIBRARY_PATH=$PWD:$LD_LIBRARY_PATH
|
|
||||||
|
|
||||||
make install DESTDIR="$DESTDIR"
|
make install DESTDIR="$DESTDIR"
|
||||||
|
|
||||||
# Fake libtinfo into rpath of ghc:
|
# quiet lint: vlicense not needed, installed by make
|
||||||
ln -sf /usr/lib/libncursesw.so.6 \
|
}
|
||||||
$DESTDIR/usr/lib/ghc-${version%[!0-9]}/rts/libtinfo.so.5
|
|
||||||
vlicense LICENSE
|
post_install() {
|
||||||
|
if [ "$XBPS_TARGET_MACHINE" = "aarch64-musl" ]; then
|
||||||
|
for _cur_binary in $(find ${DESTDIR} -type f -exec file {} \; |grep ELF |grep -v static |cut -d ':' -f 1); do
|
||||||
|
patchelf --replace-needed libc.musl-aarch64.so.1 libc.so $_cur_binary
|
||||||
|
done
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
1
srcpkgs/ghc-devel
Symbolic link
1
srcpkgs/ghc-devel
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
ghc
|
288
srcpkgs/ghc/files/plan-bootstrap-9_8_4.json
Normal file
288
srcpkgs/ghc/files/plan-bootstrap-9_8_4.json
Normal file
|
@ -0,0 +1,288 @@
|
||||||
|
{
|
||||||
|
"builtin": [
|
||||||
|
{
|
||||||
|
"package": "rts",
|
||||||
|
"version": "1.0.2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "ghc-prim",
|
||||||
|
"version": "0.11.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "ghc-bignum",
|
||||||
|
"version": "1.3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "base",
|
||||||
|
"version": "4.19.2.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "array",
|
||||||
|
"version": "0.5.8.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "deepseq",
|
||||||
|
"version": "1.5.1.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "ghc-boot-th",
|
||||||
|
"version": "9.8.4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "pretty",
|
||||||
|
"version": "1.1.3.6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "template-haskell",
|
||||||
|
"version": "2.21.0.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "bytestring",
|
||||||
|
"version": "0.12.1.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "containers",
|
||||||
|
"version": "0.6.8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "binary",
|
||||||
|
"version": "0.8.9.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "transformers",
|
||||||
|
"version": "0.6.1.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "mtl",
|
||||||
|
"version": "2.3.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "stm",
|
||||||
|
"version": "2.5.3.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "exceptions",
|
||||||
|
"version": "0.10.7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "filepath",
|
||||||
|
"version": "1.4.301.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "time",
|
||||||
|
"version": "1.12.2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "unix",
|
||||||
|
"version": "2.8.6.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "directory",
|
||||||
|
"version": "1.3.8.5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "text",
|
||||||
|
"version": "2.1.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "parsec",
|
||||||
|
"version": "3.1.17.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "Cabal-syntax",
|
||||||
|
"version": "3.10.3.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "process",
|
||||||
|
"version": "1.6.25.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"package": "Cabal",
|
||||||
|
"version": "3.10.3.0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dependencies": [
|
||||||
|
{
|
||||||
|
"cabal_sha256": "a694e88f9ec9fc79f0b03f233d3fea592b68f70a34aac2ddb5bcaecb6562e2fd",
|
||||||
|
"flags": [],
|
||||||
|
"package": "base16-bytestring",
|
||||||
|
"revision": 1,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784",
|
||||||
|
"version": "1.0.2.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "b938655b00cf204ce69abfff946021bed111d2609a9f7a9c22e28a1a202e9115",
|
||||||
|
"flags": [
|
||||||
|
"-llvm"
|
||||||
|
],
|
||||||
|
"package": "clock",
|
||||||
|
"revision": 0,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "6ae9898afe788a5e334cd5fad5d18a3c2e8e59fa09aaf7b957dbb38a4767df2e",
|
||||||
|
"version": "0.8.4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "0e9de2ccce261e7a5b027e842f6f47f50eb0e6059a0de98a5479f75aa8164107",
|
||||||
|
"flags": [
|
||||||
|
"-exe",
|
||||||
|
"+use-cbits"
|
||||||
|
],
|
||||||
|
"package": "cryptohash-sha256",
|
||||||
|
"revision": 6,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6",
|
||||||
|
"version": "0.11.102.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "57d9200fbea2e88e05e0be35925511764827b1c86d3214106b0b610f331fc40c",
|
||||||
|
"flags": [],
|
||||||
|
"package": "extra",
|
||||||
|
"revision": 0,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "2fa4ce5eae50560bba80f1883913cf2ed52b3d87fd290dae27d838c94f5389a1",
|
||||||
|
"version": "1.8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "372c1733d83b90045eb29da9f010fed79bfef8771ce65eb126a1d83ecc54a9a2",
|
||||||
|
"flags": [],
|
||||||
|
"package": "filepattern",
|
||||||
|
"revision": 0,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "cc445d439ea2f65cac7604d3578aa2c3a62e5a91dc989f4ce5b3390db9e59636",
|
||||||
|
"version": "0.1.3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "2efc549644dd418bad537d1601fdd437c440d807265016bd993b6996c679ad2f",
|
||||||
|
"flags": [],
|
||||||
|
"package": "os-string",
|
||||||
|
"revision": 0,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "339c35fd3a290522f23de4e33528423cfd0b0a8f22946b0b9816a817b926cba0",
|
||||||
|
"version": "2.0.7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "2f23146cbe0325029927b221647695a4c7d6e97548ff731110979e34361f58ef",
|
||||||
|
"flags": [
|
||||||
|
"-arch-native",
|
||||||
|
"-random-initial-seed"
|
||||||
|
],
|
||||||
|
"package": "hashable",
|
||||||
|
"revision": 1,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "e58b3a8e18da5f6cd7e937e5fd683e500bb1f8276b3768269759119ca0cddb6a",
|
||||||
|
"version": "1.5.0.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "74ce60a23b8ef247b8bca71eeb38289e82b3b5e83b2383600b2c838a68218068",
|
||||||
|
"flags": [],
|
||||||
|
"package": "heaps",
|
||||||
|
"revision": 0,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "8763a4663a2d0b3c912400a547d66ae11b46a954403b6747272148e950aa0382",
|
||||||
|
"version": "0.4.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "f75cb4fa53c88c65794becdd48eb0d3b2b8abd89a3d5c19e87af91f5225c15e4",
|
||||||
|
"flags": [],
|
||||||
|
"package": "js-dgtable",
|
||||||
|
"revision": 0,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac",
|
||||||
|
"version": "0.5.2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "4c1c447a9a2fba0adba6d30678302a30c32b9dfde9e7aa9e9156483e1545096d",
|
||||||
|
"flags": [],
|
||||||
|
"package": "js-flot",
|
||||||
|
"revision": 0,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a",
|
||||||
|
"version": "0.8.3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "fdbdfd4d413848c678a3737f2b985a5db66b796c6847b1ae08246ea3795c0ba2",
|
||||||
|
"flags": [],
|
||||||
|
"package": "js-jquery",
|
||||||
|
"revision": 0,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "a087fa01a1c52f5386d43f5355f64841c5a4b56b53720090d66b5aa00bfeb106",
|
||||||
|
"version": "3.7.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "dfdd6572944c11e69208237dd32a2eb9d975b4f4e9064a7b8dc952cb0e256846",
|
||||||
|
"flags": [],
|
||||||
|
"package": "primitive",
|
||||||
|
"revision": 0,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "44b4de41813c7bc5db8a57f87c3612a069b65086946268ba165097252ebd3d76",
|
||||||
|
"version": "0.9.1.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "8f92088f1c51c8d4569279a07565f8aa6b534a6735615b2295d2961dec8f1783",
|
||||||
|
"flags": [
|
||||||
|
"-optimised-mixer"
|
||||||
|
],
|
||||||
|
"package": "splitmix",
|
||||||
|
"revision": 0,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "d678c41a603a62032cf7e5f8336bb8222c93990e4b59c8b291b7ca26c7eb12c7",
|
||||||
|
"version": "0.1.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "0b4f649c3e78713b2ccad1535251ee34b148237fb2229d7058c2b1d9ccc324b8",
|
||||||
|
"flags": [],
|
||||||
|
"package": "random",
|
||||||
|
"revision": 0,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "d840ac83f265b0cfa2a678f8ec78627eb50cf9be2f067c52c8a4239c29b71a35",
|
||||||
|
"version": "1.3.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "233cbcdda6c2698932bb391ce0935fb44f80c115621ee815a21ed33ac8ede422",
|
||||||
|
"flags": [
|
||||||
|
"-debug"
|
||||||
|
],
|
||||||
|
"package": "unordered-containers",
|
||||||
|
"revision": 4,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "d9cfb287cf00592d39dc9c3cac8b99627ea08f2c01798e70130fc39f7c90f11d",
|
||||||
|
"version": "0.2.20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "79416292186feeaf1f60e49ac5a1ffae9bf1b120e040a74bf0e81ca7f1d31d3f",
|
||||||
|
"flags": [],
|
||||||
|
"package": "utf8-string",
|
||||||
|
"revision": 0,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a",
|
||||||
|
"version": "1.0.2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": "03c8f06de478e07ad6fde95984c9206920106d0d8432ecb7ab825ef108d45382",
|
||||||
|
"flags": [
|
||||||
|
"-cloud",
|
||||||
|
"-embed-files",
|
||||||
|
"-portable",
|
||||||
|
"+threaded"
|
||||||
|
],
|
||||||
|
"package": "shake",
|
||||||
|
"revision": 0,
|
||||||
|
"source": "hackage",
|
||||||
|
"src_sha256": "6384e33a26a2590bf33719e88881076b899ac4b5340c1c9271e4caa37e9d6535",
|
||||||
|
"version": "0.19.8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cabal_sha256": null,
|
||||||
|
"flags": [
|
||||||
|
"-selftest",
|
||||||
|
"+threaded"
|
||||||
|
],
|
||||||
|
"package": "hadrian",
|
||||||
|
"revision": null,
|
||||||
|
"source": "local",
|
||||||
|
"src_sha256": null,
|
||||||
|
"version": "0.1.0.0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -1,33 +0,0 @@
|
||||||
From c74cdea9e6804d10660035700136975cfd39da8d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Trommler <ptrommler@acm.org>
|
|
||||||
Date: Fri, 31 Dec 2021 18:20:45 +0100
|
|
||||||
Subject: [PATCH] Disable unboxed arrays on big-endian
|
|
||||||
|
|
||||||
Unboxed arrays are broken on big-endian architectures, see
|
|
||||||
https://gitlab.haskell.org/ghc/ghc/-/issues/16998 for details.
|
|
||||||
This patch makes the use of unboxed arrays conditional on
|
|
||||||
little-endian architecture.
|
|
||||||
|
|
||||||
Fixes #673
|
|
||||||
|
|
||||||
diff --git a/libraries/containers/containers/include/containers.h b/libraries/containers/containers/include/containers.h
|
|
||||||
index cd201ca..fc2a0e8 100644
|
|
||||||
--- a/libraries/containers/containers/include/containers.h
|
|
||||||
+++ b/libraries/containers/containers/include/containers.h
|
|
||||||
@@ -35,7 +35,13 @@
|
|
||||||
|
|
||||||
#ifdef __GLASGOW_HASKELL__
|
|
||||||
# define USE_ST_MONAD 1
|
|
||||||
+#ifndef WORDS_BIGENDIAN
|
|
||||||
+/*
|
|
||||||
+ * Unboxed arrays are broken on big-endian architectures.
|
|
||||||
+ * See https://gitlab.haskell.org/ghc/ghc/-/issues/16998
|
|
||||||
+ */
|
|
||||||
# define USE_UNBOXED_ARRAYS 1
|
|
||||||
#endif
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
--
|
|
||||||
2.31.1
|
|
||||||
|
|
|
@ -1,66 +0,0 @@
|
||||||
From 00dc51060881df81258ba3b3bdf447294618a4de Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matthew Pickering <matthewtpickering@gmail.com>
|
|
||||||
Date: Tue, 3 Jan 2023 15:56:37 +0000
|
|
||||||
Subject: [PATCH] sphinx: Use modern syntax for extlinks
|
|
||||||
|
|
||||||
This fixes the following build error:
|
|
||||||
|
|
||||||
```
|
|
||||||
Command line: /opt/homebrew/opt/sphinx-doc/bin/sphinx-build -b man -d /private/tmp/extra-dir-55768274273/.doctrees-man -n -w /private/tmp/extra-dir-55768274273/.log docs/users_guide /private/tmp/extra-dir-55768274273
|
|
||||||
===> Command failed with error code: 2
|
|
||||||
|
|
||||||
Exception occurred:
|
|
||||||
File "/opt/homebrew/Cellar/sphinx-doc/6.0.0/libexec/lib/python3.11/site-packages/sphinx/ext/extlinks.py", line 101, in role
|
|
||||||
title = caption % part
|
|
||||||
~~~~~~~~^~~~~~
|
|
||||||
TypeError: not all arguments converted during string formatting
|
|
||||||
```
|
|
||||||
|
|
||||||
I tested on Sphinx-5.1.1 and Sphinx-6.0.0
|
|
||||||
|
|
||||||
Thanks for sterni for providing instructions about how to test using
|
|
||||||
sphinx-6.0.0.
|
|
||||||
|
|
||||||
Fixes #22690
|
|
||||||
---
|
|
||||||
docs/users_guide/ghc_config.py.in | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/docs/users_guide/ghc_config.py.in b/docs/users_guide/ghc_config.py.in
|
|
||||||
index dcc7fbaef624..c9888a13adc5 100644
|
|
||||||
--- a/docs/users_guide/ghc_config.py.in
|
|
||||||
+++ b/docs/users_guide/ghc_config.py.in
|
|
||||||
@@ -1,6 +1,6 @@
|
|
||||||
extlinks = {
|
|
||||||
- 'ghc-ticket': ('https://gitlab.haskell.org/ghc/ghc/issues/%s', '#'),
|
|
||||||
- 'ghc-wiki': ('https://gitlab.haskell.org/ghc/ghc/wikis/%s', '#'),
|
|
||||||
+ 'ghc-ticket': ('https://gitlab.haskell.org/ghc/ghc/issues/%s', '%s'),
|
|
||||||
+ 'ghc-wiki': ('https://gitlab.haskell.org/ghc/ghc/wikis/%s', '#%s'),
|
|
||||||
}
|
|
||||||
|
|
||||||
libs_base_uri = '../libraries'
|
|
||||||
From 52d701b31dc4427b7e321a04be3f5f13a5fc271e Mon Sep 17 00:00:00 2001
|
|
||||||
From: "mimi.vx" <mimi.vx@gmail.com>
|
|
||||||
Date: Wed, 24 May 2023 12:42:15 +0000
|
|
||||||
Subject: [PATCH] Fix for Sphinx 7 removed style key
|
|
||||||
|
|
||||||
Fixes https://gitlab.haskell.org/ghc/ghc/-/issues/23444
|
|
||||||
---
|
|
||||||
docs/users_guide/rtd-theme/layout.html | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/docs/users_guide/rtd-theme/layout.html b/docs/users_guide/rtd-theme/layout.html
|
|
||||||
index 2a61142514a..7ffeff7befc 100644
|
|
||||||
--- a/docs/users_guide/rtd-theme/layout.html
|
|
||||||
+++ b/docs/users_guide/rtd-theme/layout.html
|
|
||||||
@@ -64,7 +64,7 @@
|
|
||||||
{%- endif %}
|
|
||||||
|
|
||||||
{# CSS #}
|
|
||||||
- <link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}" type="text/css" />
|
|
||||||
+ <link rel="stylesheet" href="{{ pathto('_static/' + styles[-1], 1) }}" type="text/css" />
|
|
||||||
<link rel="stylesheet" href="{{ pathto('_static/pygments.css', 1) }}" type="text/css" />
|
|
||||||
{%- for css in css_files %}
|
|
||||||
{%- if css|attr("rel") %}
|
|
||||||
--
|
|
||||||
GitLab
|
|
|
@ -1,25 +0,0 @@
|
||||||
Since we replace bundled tarball with our own and it's a git
|
|
||||||
snapshot, it is necessary to generate the build system ourselves
|
|
||||||
|
|
||||||
Source: @q66
|
|
||||||
|
|
||||||
--- a/libffi/ghc.mk
|
|
||||||
+++ b/libffi/ghc.mk
|
|
||||||
@@ -58,16 +58,7 @@ $(libffi_STAMP_CONFIGURE): $(TOUCH_DEP)
|
|
||||||
$(CP) "$(TOP)/config.guess" libffi/build/config.guess
|
|
||||||
$(CP) "$(TOP)/config.sub" libffi/build/config.sub
|
|
||||||
|
|
||||||
-# We have to fake a non-working ln for configure, so that the fallback
|
|
||||||
-# option (cp -p) gets used instead. Otherwise the libffi build system
|
|
||||||
-# will use cygwin symbolic links which cannot be read by mingw gcc.
|
|
||||||
- chmod +x libffi/ln
|
|
||||||
-
|
|
||||||
- # We need to use -MMD rather than -MD, as otherwise we get paths
|
|
||||||
- # like c:/... in the dependency files on Windows, and the extra
|
|
||||||
- # colons break make
|
|
||||||
- mv libffi/build/Makefile.in libffi/build/Makefile.in.orig
|
|
||||||
- sed "s/-MD/-MMD/" < libffi/build/Makefile.in.orig > libffi/build/Makefile.in
|
|
||||||
+ cd libffi && cd build && "$(SHELL)" ./autogen.sh
|
|
||||||
|
|
||||||
# We attempt to specify the installation directory below with --libdir,
|
|
||||||
# but libffi installs into 'toolexeclibdir' instead, which may differ
|
|
|
@ -1,168 +0,0 @@
|
||||||
From 587edc0d9786aff3c7a4728ba941f6a993e59bdc Mon Sep 17 00:00:00 2001
|
|
||||||
From: q66 <daniel@octaforge.org>
|
|
||||||
Date: Thu, 28 Apr 2022 00:48:04 +0200
|
|
||||||
Subject: [PATCH] fix up runtime for ppc64 BE ELFv2 + ensure it's used
|
|
||||||
|
|
||||||
---
|
|
||||||
configure | 2 +-
|
|
||||||
libraries/ghci/GHCi/InfoTable.hsc | 36 ++++++++++++-------------------
|
|
||||||
m4/fptools.m4 | 2 +-
|
|
||||||
rts/AdjustorAsm.S | 2 +-
|
|
||||||
rts/StgCRun.c | 4 ++--
|
|
||||||
rts/StgCRunAsm.S | 2 +-
|
|
||||||
rts/adjustor/NativeIA64.c | 2 +-
|
|
||||||
rts/adjustor/NativePowerPC.c | 2 +-
|
|
||||||
8 files changed, 22 insertions(+), 30 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/configure b/configure
|
|
||||||
index 8310e6f..eac1124 100755
|
|
||||||
--- a/configure
|
|
||||||
+++ b/configure
|
|
||||||
@@ -10508,7 +10508,7 @@ printf "%s\n" "no" >&6; }
|
|
||||||
test -z "$2" || eval "$2=ArchPPC"
|
|
||||||
;;
|
|
||||||
powerpc64)
|
|
||||||
- test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V1}\""
|
|
||||||
+ test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
|
|
||||||
;;
|
|
||||||
powerpc64le)
|
|
||||||
test -z "$2" || eval "$2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
|
|
||||||
diff --git a/libraries/ghci/GHCi/InfoTable.hsc b/libraries/ghci/GHCi/InfoTable.hsc
|
|
||||||
index ad4eb4d..e4f1c0c 100644
|
|
||||||
--- a/libraries/ghci/GHCi/InfoTable.hsc
|
|
||||||
+++ b/libraries/ghci/GHCi/InfoTable.hsc
|
|
||||||
@@ -231,30 +231,22 @@ mkJumpToAddr' platform a = case platform of
|
|
||||||
, fromIntegral w64
|
|
||||||
, fromIntegral (w64 `shiftR` 32) ]
|
|
||||||
ArchPPC64 ->
|
|
||||||
- -- We use the compiler's register r12 to read the function
|
|
||||||
- -- descriptor and the linker's register r11 as a temporary
|
|
||||||
- -- register to hold the function entry point.
|
|
||||||
- -- In the medium code model the function descriptor
|
|
||||||
- -- is located in the first two gigabytes, i.e. the address
|
|
||||||
- -- of the function pointer is a non-negative 32 bit number.
|
|
||||||
- -- 0x0EADBEEF stands for the address of the function pointer:
|
|
||||||
- -- 0: 3d 80 0e ad lis r12,0x0EAD
|
|
||||||
- -- 4: 61 8c be ef ori r12,r12,0xBEEF
|
|
||||||
- -- 8: e9 6c 00 00 ld r11,0(r12)
|
|
||||||
- -- c: e8 4c 00 08 ld r2,8(r12)
|
|
||||||
- -- 10: 7d 69 03 a6 mtctr r11
|
|
||||||
- -- 14: e9 6c 00 10 ld r11,16(r12)
|
|
||||||
- -- 18: 4e 80 04 20 bctr
|
|
||||||
- let w32 = fromIntegral (funPtrToInt a)
|
|
||||||
+ -- The ABI requires r12 to point to the function's entry point.
|
|
||||||
+ -- We use the medium code model where code resides in the first
|
|
||||||
+ -- two gigabytes, so loading a non-negative32 bit address
|
|
||||||
+ -- with lis followed by ori is fine.
|
|
||||||
+ -- 0x0EADBEEF stands for the address:
|
|
||||||
+ -- 3D800EAD lis r12,0x0EAD
|
|
||||||
+ -- 618CBEEF ori r12,r12,0xBEEF
|
|
||||||
+ -- 7D8903A6 mtctr r12
|
|
||||||
+ -- 4E800420 bctr
|
|
||||||
+
|
|
||||||
+ let w32 = fromIntegral (funPtrToInt a)
|
|
||||||
hi16 x = (x `shiftR` 16) .&. 0xFFFF
|
|
||||||
lo16 x = x .&. 0xFFFF
|
|
||||||
- in Right [ 0x3D800000 .|. hi16 w32,
|
|
||||||
- 0x618C0000 .|. lo16 w32,
|
|
||||||
- 0xE96C0000,
|
|
||||||
- 0xE84C0008,
|
|
||||||
- 0x7D6903A6,
|
|
||||||
- 0xE96C0010,
|
|
||||||
- 0x4E800420]
|
|
||||||
+ in Right [ 0x3D800000 .|. hi16 w32,
|
|
||||||
+ 0x618C0000 .|. lo16 w32,
|
|
||||||
+ 0x7D8903A6, 0x4E800420 ]
|
|
||||||
|
|
||||||
ArchPPC64LE ->
|
|
||||||
-- The ABI requires r12 to point to the function's entry point.
|
|
||||||
diff --git a/m4/fptools.m4 b/m4/fptools.m4
|
|
||||||
index 8c6c9b7..eb25c37 100644
|
|
||||||
--- a/m4/fptools.m4
|
|
||||||
+++ b/m4/fptools.m4
|
|
||||||
@@ -201,7 +201,7 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_VARS],
|
|
||||||
test -z "[$]2" || eval "[$]2=ArchPPC"
|
|
||||||
;;
|
|
||||||
powerpc64)
|
|
||||||
- test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V1}\""
|
|
||||||
+ test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
|
|
||||||
;;
|
|
||||||
powerpc64le)
|
|
||||||
test -z "[$]2" || eval "[$]2=\"ArchPPC_64 {ppc_64ABI = ELF_V2}\""
|
|
||||||
diff --git a/rts/AdjustorAsm.S b/rts/AdjustorAsm.S
|
|
||||||
index 2795b83..63cfe91 100644
|
|
||||||
--- a/rts/AdjustorAsm.S
|
|
||||||
+++ b/rts/AdjustorAsm.S
|
|
||||||
@@ -2,7 +2,7 @@
|
|
||||||
|
|
||||||
/* ******************************** PowerPC ******************************** */
|
|
||||||
|
|
||||||
-#if defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
|
|
||||||
+#if defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
|
|
||||||
#if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
|
|
||||||
/* The following code applies, with some differences,
|
|
||||||
to all powerpc platforms except for powerpc32-linux,
|
|
||||||
diff --git a/rts/StgCRun.c b/rts/StgCRun.c
|
|
||||||
index f43227a..927d44a 100644
|
|
||||||
--- a/rts/StgCRun.c
|
|
||||||
+++ b/rts/StgCRun.c
|
|
||||||
@@ -724,7 +724,7 @@ StgRunIsImplementedInAssembler(void)
|
|
||||||
Everything is in assembler, so we don't have to deal with GCC...
|
|
||||||
-------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
-#if defined(powerpc64_HOST_ARCH)
|
|
||||||
+#if defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2)
|
|
||||||
/* 64-bit PowerPC ELF ABI 1.9
|
|
||||||
*
|
|
||||||
* Stack frame organization (see Figure 3-17, ELF ABI 1.9, p 14)
|
|
||||||
@@ -792,7 +792,7 @@ StgRunIsImplementedInAssembler(void)
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-#if defined(powerpc64le_HOST_ARCH)
|
|
||||||
+#if defined(powerpc64le_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF == 2))
|
|
||||||
/* -----------------------------------------------------------------------------
|
|
||||||
PowerPC 64 little endian architecture
|
|
||||||
|
|
||||||
diff --git a/rts/StgCRunAsm.S b/rts/StgCRunAsm.S
|
|
||||||
index 60f1bf9..c6794d7 100644
|
|
||||||
--- a/rts/StgCRunAsm.S
|
|
||||||
+++ b/rts/StgCRunAsm.S
|
|
||||||
@@ -5,7 +5,7 @@
|
|
||||||
* then functions StgRun/StgReturn are implemented in file StgCRun.c */
|
|
||||||
#if !defined(USE_MINIINTERPRETER)
|
|
||||||
|
|
||||||
-#if defined(powerpc64le_HOST_ARCH)
|
|
||||||
+#if defined(powerpc64le_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF == 2))
|
|
||||||
# if defined(linux_HOST_OS)
|
|
||||||
/* 64-bit PowerPC ELF V2 ABI Revision 1.4
|
|
||||||
*
|
|
||||||
diff --git a/rts/adjustor/NativeIA64.c b/rts/adjustor/NativeIA64.c
|
|
||||||
index 9fd1991..816b3ef 100644
|
|
||||||
--- a/rts/adjustor/NativeIA64.c
|
|
||||||
+++ b/rts/adjustor/NativeIA64.c
|
|
||||||
@@ -39,7 +39,7 @@ void*
|
|
||||||
createAdjustor(int cconv, StgStablePtr hptr,
|
|
||||||
StgFunPtr wptr,
|
|
||||||
char *typeString
|
|
||||||
-#if !defined(powerpc_HOST_ARCH) && !defined(powerpc64_HOST_ARCH) && !defined(x86_64_HOST_ARCH)
|
|
||||||
+#if !defined(powerpc_HOST_ARCH) && (!defined(powerpc64_HOST_ARCH) || (_CALL_ELF == 2)) && !defined(x86_64_HOST_ARCH)
|
|
||||||
STG_UNUSED
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
diff --git a/rts/adjustor/NativePowerPC.c b/rts/adjustor/NativePowerPC.c
|
|
||||||
index 2e5d605..caef5d3 100644
|
|
||||||
--- a/rts/adjustor/NativePowerPC.c
|
|
||||||
+++ b/rts/adjustor/NativePowerPC.c
|
|
||||||
@@ -29,7 +29,7 @@ __asm__("obscure_ccall_ret_code:\n\t"
|
|
||||||
extern void obscure_ccall_ret_code(void);
|
|
||||||
#endif /* defined(linux_HOST_OS) */
|
|
||||||
|
|
||||||
-#if defined(powerpc_HOST_ARCH) || defined(powerpc64_HOST_ARCH)
|
|
||||||
+#if defined(powerpc_HOST_ARCH) || (defined(powerpc64_HOST_ARCH) && (_CALL_ELF != 2))
|
|
||||||
#if !(defined(powerpc_HOST_ARCH) && defined(linux_HOST_OS))
|
|
||||||
|
|
||||||
/* !!! !!! WARNING: !!! !!!
|
|
||||||
--
|
|
||||||
2.35.1
|
|
||||||
|
|
|
@ -1,38 +1,28 @@
|
||||||
# Template file for 'ghc'
|
# Template file for 'ghc'
|
||||||
pkgname=ghc
|
pkgname=ghc
|
||||||
# Keep this synchronized with http://www.stackage.org/lts
|
# Keep this synchronized with http://www.stackage.org/lts
|
||||||
version=9.0.2
|
version=9.8.4
|
||||||
revision=2
|
revision=1
|
||||||
build_style=gnu-configure
|
build_helper="haskell"
|
||||||
hostmakedepends="automake docbook-xsl ghc-bin libxslt libnuma-devel
|
_configure_args="--prefix=/usr"
|
||||||
ncurses-devel python3-Sphinx python3-setuptools"
|
_hadrian_args="--prefix=/usr"
|
||||||
makedepends="libnuma-devel"
|
hostmakedepends="ghc-bin python3 tar xz automake"
|
||||||
depends="perl gcc libffi-devel gmp-devel libnuma-devel"
|
makedepends="libffi-devel"
|
||||||
short_desc="Glorious Haskell Compiler"
|
depends="gcc libffi-devel gmp-devel libnuma-devel"
|
||||||
|
short_desc="Glasgow Haskell Compiler"
|
||||||
maintainer="Orphaned <orphan@voidlinux.org>"
|
maintainer="Orphaned <orphan@voidlinux.org>"
|
||||||
license="BSD-3-Clause"
|
license="BSD-3-Clause"
|
||||||
homepage="http://www.haskell.org/ghc/"
|
homepage="http://www.haskell.org/ghc/"
|
||||||
distfiles="http://www.haskell.org/ghc/dist/${version%[!0-9]}/${pkgname}-${version%[!0-9]}-src.tar.xz"
|
distfiles="http://www.haskell.org/ghc/dist/${version}/${pkgname}-${version}-src.tar.xz"
|
||||||
checksum=140e42b96346322d1a39eb17602bcdc76e292028ad4a69286b230bab188a9197
|
checksum=17e8188f3c8a5c2f73fb4e35d01032e8dc258835ec876d52c8ad8ee3d24b2fc5
|
||||||
|
_hadrian_cmd="hadrian/bootstrap/_build/bin/hadrian"
|
||||||
nocross=yes # this is conditionally unset for cross bindist
|
nocross=yes # this is conditionally unset for cross bindist
|
||||||
nodebug=yes # work around assembler error "Fatal error: duplicate .debug_line sections"
|
nopie=yes
|
||||||
_bindir="/usr/lib/${pkgname}-${version}/bin"
|
_ghc_ver="${version//./_}"
|
||||||
nopie_files="
|
|
||||||
${_bindir}/ghc
|
|
||||||
${_bindir}/ghc-iserv
|
|
||||||
${_bindir}/ghc-iserv-dyn
|
|
||||||
${_bindir}/ghc-iserv-prof
|
|
||||||
${_bindir}/ghc-pkg
|
|
||||||
${_bindir}/haddock
|
|
||||||
${_bindir}/hp2ps
|
|
||||||
${_bindir}/hpc
|
|
||||||
${_bindir}/hsc2hs
|
|
||||||
${_bindir}/runghc
|
|
||||||
${_bindir}/unlit
|
|
||||||
"
|
|
||||||
|
|
||||||
build_options="bindist"
|
build_options="bindist stage3"
|
||||||
desc_option_bindist="Create a binary distribution"
|
desc_option_bindist="Create a binary distribution"
|
||||||
|
desc_option_stage3="Build a stage3 compiler"
|
||||||
|
|
||||||
# it is not possible to cross-compile an entire ghc distribution as
|
# it is not possible to cross-compile an entire ghc distribution as
|
||||||
# some components rely on stage2 binaries being runnable on the host
|
# some components rely on stage2 binaries being runnable on the host
|
||||||
|
@ -40,114 +30,113 @@ desc_option_bindist="Create a binary distribution"
|
||||||
# use them to compile proper bindists on newly bootstrapped targets
|
# use them to compile proper bindists on newly bootstrapped targets
|
||||||
if [ -z "$build_option_bindist" ]; then
|
if [ -z "$build_option_bindist" ]; then
|
||||||
# final package builds use system libffi as well as gmp and ncurses
|
# final package builds use system libffi as well as gmp and ncurses
|
||||||
configure_args=" --with-system-libffi"
|
_configure_args+=" --with-system-libffi"
|
||||||
makedepends+=" libffi-devel ncurses-devel gmp-devel"
|
|
||||||
|
# --hash-unit-ids is needed because it only became part of the
|
||||||
|
# release flavour in later GHC versions.
|
||||||
|
_hadrian_args+=" --flavour=release --hash-unit-ids --docs=no-sphinx-pdfs"
|
||||||
|
|
||||||
|
hostmakedepends+=" python3-Sphinx docbook-xsl"
|
||||||
|
makedepends+=" ncurses-devel gmp-devel libnuma-devel"
|
||||||
elif [ -z "$CROSS_BUILD" ]; then
|
elif [ -z "$CROSS_BUILD" ]; then
|
||||||
# native bindist builds use gmp and ncurses, but builtin libffi
|
# native bindist builds use system libffi as well as gmp and ncurses
|
||||||
|
_configure_args+=" --with-system-libffi --disable-numa"
|
||||||
|
_hadrian_args+=" --flavour=quick --docs=none"
|
||||||
|
|
||||||
makedepends+=" ncurses-devel gmp-devel"
|
makedepends+=" ncurses-devel gmp-devel"
|
||||||
elif [ "${XBPS_MACHINE%-*}" != "${XBPS_TARGET_MACHINE%-*}" ]; then
|
elif [ "${XBPS_MACHINE%-*}" != "${XBPS_TARGET_MACHINE%-*}" ]; then
|
||||||
# ghc's cross mode only works when the actual target arch differs
|
# ghc's cross mode only works when the actual target arch differs
|
||||||
# i.e. cross-compiling to same arch but different libc does not work
|
# i.e. cross-compiling to same arch but different libc does not work
|
||||||
unset nocross
|
unset nocross
|
||||||
# host must equal build and target must be set when cross-compiling
|
_configure_args+=" --with-system-libffi --disable-numa"
|
||||||
configure_args+=" --host=${XBPS_TRIPLET} --target=${XBPS_CROSS_TRIPLET}"
|
_configure_args+=" --target=${XBPS_CROSS_TRIPLET} --enable-unregistered"
|
||||||
fi
|
_hadrian_args+=" --flavour=quick --docs=none --bignum=native"
|
||||||
|
|
||||||
case "$XBPS_TARGET_MACHINE" in
|
|
||||||
aarch64*)
|
|
||||||
# GHC uses LLVM to generate code on aarch64
|
|
||||||
hostmakedepends+=" llvm17-devel"
|
|
||||||
depends+=" llvm17-devel"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Recent safe to use tarball
|
|
||||||
# GHC's bundled tarball is from 2017, buggy on some archs
|
|
||||||
_ffi_rev=4d6d2866ae43e55325e8ee96561221804602cd7a
|
|
||||||
|
|
||||||
if [ "$build_option_bindist" ]; then
|
|
||||||
# Required to make the binary distribution tarball
|
|
||||||
hostmakedepends+=" tar xz libtool libltdl-devel"
|
|
||||||
# Fetch a safe libffi tarball
|
|
||||||
distfiles+=" https://github.com/libffi/libffi/archive/${_ffi_rev}.tar.gz>libffi-${_ffi_rev}.tar.gz"
|
|
||||||
checksum+=" f7a17fa61261942e93450ec52272b5f09d8f42cfffd147867587f969ee01b739"
|
|
||||||
skip_extraction+=" libffi-${_ffi_rev}.tar.gz"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
post_extract() {
|
post_extract() {
|
||||||
[ "$build_option_bindist" ] || return 0
|
if [ -e ${FILESDIR}/plan-bootstrap-${_ghc_ver}.json ]; then
|
||||||
|
cp "${FILESDIR}/plan-bootstrap-${_ghc_ver}.json" hadrian/bootstrap/
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# update libffi for all bindists
|
do_patch() {
|
||||||
rm -f libffi-tarballs/libffi-*.tar.gz
|
if [ "$build_option_stage3" ]; then
|
||||||
cp ${XBPS_SRCDISTDIR}/${pkgname}-${version}/libffi-${_ffi_rev}.tar.gz \
|
sed -i 's/finalStage = Stage2/finalStage = Stage3/' hadrian/src/UserSettings.hs
|
||||||
libffi-tarballs
|
fi
|
||||||
|
|
||||||
[ "$CROSS_BUILD" ] || return 0
|
|
||||||
|
|
||||||
# create build config for cross bindists
|
|
||||||
local flav="quick"
|
|
||||||
|
|
||||||
echo "BuildFlavour = ${flav}" >> mk/build.mk
|
|
||||||
cat mk/flavours/${flav}.mk >> mk/build.mk
|
|
||||||
|
|
||||||
# gmp segfaults when cross-built
|
|
||||||
echo "INTEGER_LIBRARY = integer-simple" >> mk/build.mk
|
|
||||||
# otherwise needs ncurses for target
|
|
||||||
echo "WITH_TERMINFO = NO" >> mk/build.mk
|
|
||||||
# cannot be cross-compiled
|
|
||||||
echo "HADDOCK_DOCS = NO" >> mk/build.mk
|
|
||||||
# just wastes time
|
|
||||||
echo "BUILD_SPHINX_HTML = NO" >> mk/build.mk
|
|
||||||
echo "BUILD_SPHINX_PDF = NO" >> mk/build.mk
|
|
||||||
echo "BUILD_MAN = NO" >> mk/build.mk
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pre_configure() {
|
pre_configure() {
|
||||||
# stage0 and stage1 are built for build/host (which are the
|
if [ ! -e hadrian/bootstrap/plan-bootstrap-${_ghc_ver}.json ]; then
|
||||||
# same in ghc) and stage2 is built for target (when cross)
|
# To generate a bootstrap plan for a new ghc version ensure a
|
||||||
export CONF_CC_OPTS_STAGE0=$CFLAGS_FOR_BUILD
|
# cabal binary is available, run this, then move the plan to
|
||||||
export CONF_CC_OPTS_STAGE1=$CFLAGS_FOR_BUILD
|
# ${FILESDIR}
|
||||||
export CONF_CC_OPTS_STAGE2=$CFLAGS
|
cabal update
|
||||||
export CONF_GCC_LINKER_OPTS_STAGE0=$LDFLAGS_FOR_BUILD
|
cd hadrian
|
||||||
export CONF_GCC_LINKER_OPTS_STAGE1=$LDFLAGS_FOR_BUILD
|
cabal build --flags=-selftest --dry-run hadrian
|
||||||
export CONF_GCC_LINKER_OPTS_STAGE2=$LDFLAGS
|
cp dist-newstyle/cache/plan.json bootstrap/plan-${_ghc_ver}.json
|
||||||
export CONF_CPP_OPTS_STAGE0=$CPPFLAGS_FOR_BUILD
|
cd bootstrap
|
||||||
export CONF_CPP_OPTS_STAGE1=$CPPFLAGS_FOR_BUILD
|
cabal build hadrian-bootstrap-gen --allow-newer
|
||||||
export CONF_CPP_OPTS_STAGE2=$CPPFLAGS
|
cabal run -v0 hadrian-bootstrap-gen -- "plan-${_ghc_ver}.json" \
|
||||||
|
| python3 -m json.tool > "plan-bootstrap-${_ghc_ver}.json"
|
||||||
|
msg_normal "Please install hadrian/bootstrap/plan-bootstrap-${_ghc_ver}.json in ${FILESDIR}\n"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
cd hadrian/bootstrap
|
||||||
|
fi
|
||||||
|
|
||||||
autoreconf -fi
|
./bootstrap.py -d plan-bootstrap-${_ghc_ver}.json
|
||||||
}
|
}
|
||||||
|
|
||||||
post_install() {
|
do_configure() {
|
||||||
sed -i 's#/usr/lib/ccache/bin/##g' ${DESTDIR}/usr/lib/ghc-${version%[!0-9]}/settings
|
# GNU binutils ld does not work on ARM with haskell, see
|
||||||
vlicense LICENSE
|
# https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
||||||
|
# ld.gold works but was removed from binutils in 2.44
|
||||||
|
# So we set LD to CC and the configure script will set -fuse-ld to lld
|
||||||
|
export LD="$CC"
|
||||||
|
./configure ${_configure_args}
|
||||||
|
}
|
||||||
|
|
||||||
local arch dest
|
do_build() {
|
||||||
|
${_hadrian_cmd} ${makejobs} ${_hadrian_args}
|
||||||
|
}
|
||||||
|
|
||||||
|
do_install() {
|
||||||
|
local arch targ
|
||||||
if [ "$CROSS_BUILD" ]; then
|
if [ "$CROSS_BUILD" ]; then
|
||||||
arch=${XBPS_CROSS_TRIPLET%%-*}
|
arch=${XBPS_CROSS_TRIPLET%%-*}
|
||||||
|
targ=ghc-${version}-${XBPS_CROSS_TRIPLET}
|
||||||
else
|
else
|
||||||
arch=${XBPS_TRIPLET%%-*}
|
arch=${XBPS_TRIPLET%%-*}
|
||||||
fi
|
targ=ghc-${version}-${arch}-unknown-linux
|
||||||
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
|
|
||||||
dest=ghc-${version}-${arch}-void-linux-musl.tar.xz
|
|
||||||
else
|
|
||||||
dest=ghc-${version}-${arch}-void-linux.tar.xz
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$build_option_bindist" ]; then
|
if [ "$build_option_bindist" ]; then
|
||||||
msg_normal "Creating binary distribution for ${XBPS_TARGET_MACHINE}...\n"
|
msg_normal "Creating binary distribution for ${XBPS_TARGET_MACHINE}...\n"
|
||||||
make ${makejobs} binary-dist
|
${_hadrian_cmd} ${_hadrian_args} binary-dist
|
||||||
mkdir -p ${XBPS_SRCDISTDIR}/distfiles
|
mkdir -p ${XBPS_SRCDISTDIR}/distfiles
|
||||||
mv ghc-${version}-${arch}-unknown-linux.tar.xz ${dest}
|
install -m 0644 _build/bindist/${targ}.tar.xz ${XBPS_SRCDISTDIR}/distfiles
|
||||||
install -m 0644 ${dest} ${XBPS_SRCDISTDIR}/distfiles
|
|
||||||
msg_normal "Installed in ${XBPS_SRCDISTDIR}/distfiles\n"
|
msg_normal "Installed in ${XBPS_SRCDISTDIR}/distfiles\n"
|
||||||
exit 1
|
exit 1
|
||||||
|
else
|
||||||
|
DESTDIR=${DESTDIR} ${_hadrian_cmd} ${_hadrian_args} install
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
post_install() {
|
||||||
|
vlicense LICENSE
|
||||||
|
}
|
||||||
|
|
||||||
ghc-doc_package() {
|
ghc-doc_package() {
|
||||||
short_desc+=" -- documentation"
|
short_desc+=" - documentation"
|
||||||
pkg_install() {
|
pkg_install() {
|
||||||
vmove usr/share/doc
|
vmove usr/share/doc
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ghc-devel_package() {
|
||||||
|
short_desc+=" - development files"
|
||||||
|
pkg_install() {
|
||||||
|
cd ${DESTDIR}
|
||||||
|
find usr/lib \( -type f -o -type l \) \( -name "*.p_*" -o -name "lib*_p.a" \) | while read f; do vmove "$f"; done
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
flags:
|
|
||||||
git-annex:
|
|
||||||
production: true
|
|
||||||
assistant: true
|
|
||||||
pairing: true
|
|
||||||
torrentparser: true
|
|
||||||
magicmime: false
|
|
||||||
dbus: false
|
|
||||||
debuglocks: false
|
|
||||||
benchmark: true
|
|
||||||
gitlfs: true
|
|
||||||
packages:
|
|
||||||
- '.'
|
|
||||||
resolver: lts-19.0
|
|
||||||
extra-deps:
|
|
||||||
- IfElse-0.85
|
|
||||||
- aws-0.22
|
|
||||||
- bloomfilter-2.0.1.0
|
|
||||||
- git-lfs-1.2.0
|
|
||||||
- http-client-restricted-0.0.4
|
|
||||||
- network-multicast-0.3.2
|
|
||||||
- sandi-0.5
|
|
||||||
- torrent-10000.1.1
|
|
||||||
- base16-bytestring-0.1.1.7
|
|
||||||
- base64-bytestring-1.0.0.3
|
|
||||||
- bencode-0.6.1.1
|
|
||||||
- aeson-1.5.6.0@sha256:5003bb6fd260d2e2d5a51dee2bf5c8e8f29e4e0e0288fef805c22dcc80ecab06,6788
|
|
||||||
- http-client-0.7.11@sha256:3f59ac8ffe2a3768846cdda040a0d1df2a413960529ba61c839861c948871967,5756
|
|
||||||
explicit-setup-deps:
|
|
||||||
git-annex: true
|
|
242
srcpkgs/git-annex/patches/basement.patch
Normal file
242
srcpkgs/git-annex/patches/basement.patch
Normal file
|
@ -0,0 +1,242 @@
|
||||||
|
From 38be2c93acb6f459d24ed6c626981c35ccf44095 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sylvain Henry <sylvain@haskus.fr>
|
||||||
|
Date: Thu, 16 Feb 2023 15:40:45 +0100
|
||||||
|
Subject: [PATCH] Fix build on 32-bit architectures
|
||||||
|
|
||||||
|
---
|
||||||
|
basement/Basement/Bits.hs | 4 ++++
|
||||||
|
basement/Basement/From.hs | 24 -----------------------
|
||||||
|
basement/Basement/Numerical/Additive.hs | 4 ++++
|
||||||
|
basement/Basement/Numerical/Conversion.hs | 20 +++++++++++++++++++
|
||||||
|
basement/Basement/PrimType.hs | 6 +++++-
|
||||||
|
basement/Basement/Types/OffsetSize.hs | 22 +++++++++++++++++++--
|
||||||
|
6 files changed, 53 insertions(+), 27 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/basement/Basement/Bits.hs b/basement/Basement/Bits.hs
|
||||||
|
index 7eeea0f5..24520ed7 100644
|
||||||
|
--- a/basement/Basement/Bits.hs
|
||||||
|
+++ b/basement/Basement/Bits.hs
|
||||||
|
@@ -54,8 +54,12 @@ import GHC.Int
|
||||||
|
import Basement.Compat.Primitive
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | operation over finite bits
|
||||||
|
class FiniteBitsOps bits where
|
||||||
|
diff --git a/basement/Basement/From.hs b/basement/Basement/From.hs
|
||||||
|
index 7bbe141c..80014b3e 100644
|
||||||
|
--- a/basement/Basement/From.hs
|
||||||
|
+++ b/basement/Basement/From.hs
|
||||||
|
@@ -272,23 +272,11 @@ instance (NatWithinBound (CountOf ty) n, KnownNat n, PrimType ty)
|
||||||
|
tryFrom = BlockN.toBlockN . UArray.toBlock . BoxArray.mapToUnboxed id
|
||||||
|
|
||||||
|
instance (KnownNat n, NatWithinBound Word8 n) => From (Zn64 n) Word8 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word16 n) => From (Zn64 n) Word16 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word32 n) => From (Zn64 n) Word32 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance From (Zn64 n) Word64 where
|
||||||
|
from = unZn64
|
||||||
|
instance From (Zn64 n) Word128 where
|
||||||
|
@@ -297,23 +285,11 @@ instance From (Zn64 n) Word256 where
|
||||||
|
from = from . unZn64
|
||||||
|
|
||||||
|
instance (KnownNat n, NatWithinBound Word8 n) => From (Zn n) Word8 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word16 n) => From (Zn n) Word16 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word32 n) => From (Zn n) Word32 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word64 n) => From (Zn n) Word64 where
|
||||||
|
from = naturalToWord64 . unZn
|
||||||
|
instance (KnownNat n, NatWithinBound Word128 n) => From (Zn n) Word128 where
|
||||||
|
diff --git a/basement/Basement/Numerical/Additive.hs b/basement/Basement/Numerical/Additive.hs
|
||||||
|
index d0dfb973..8ab65aa0 100644
|
||||||
|
--- a/basement/Basement/Numerical/Additive.hs
|
||||||
|
+++ b/basement/Basement/Numerical/Additive.hs
|
||||||
|
@@ -30,8 +30,12 @@ import qualified Basement.Types.Word128 as Word128
|
||||||
|
import qualified Basement.Types.Word256 as Word256
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | Represent class of things that can be added together,
|
||||||
|
-- contains a neutral element and is commutative.
|
||||||
|
diff --git a/basement/Basement/Numerical/Conversion.hs b/basement/Basement/Numerical/Conversion.hs
|
||||||
|
index db502c07..fddc8232 100644
|
||||||
|
--- a/basement/Basement/Numerical/Conversion.hs
|
||||||
|
+++ b/basement/Basement/Numerical/Conversion.hs
|
||||||
|
@@ -26,8 +26,12 @@ import GHC.Word
|
||||||
|
import Basement.Compat.Primitive
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
intToInt64 :: Int -> Int64
|
||||||
|
#if WORD_SIZE_IN_BITS == 64
|
||||||
|
@@ -96,11 +100,22 @@ int64ToWord64 (I64# i) = W64# (int64ToWord64# i)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS == 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+word64ToWord# :: Word64# -> Word#
|
||||||
|
+word64ToWord# i = word64ToWord# i
|
||||||
|
+#else
|
||||||
|
word64ToWord# :: Word# -> Word#
|
||||||
|
word64ToWord# i = i
|
||||||
|
+#endif
|
||||||
|
{-# INLINE word64ToWord# #-}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+word64ToWord32# :: Word64# -> Word32#
|
||||||
|
+word64ToWord32# i = wordToWord32# (word64ToWord# i)
|
||||||
|
+{-# INLINE word64ToWord32# #-}
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
-- | 2 Word32s
|
||||||
|
data Word32x2 = Word32x2 {-# UNPACK #-} !Word32
|
||||||
|
{-# UNPACK #-} !Word32
|
||||||
|
@@ -113,9 +128,14 @@ word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# (G
|
||||||
|
word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# w64 32#))) (W32# (wordToWord32# w64))
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+word64ToWord32s :: Word64 -> Word32x2
|
||||||
|
+word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord32# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord32# w64))
|
||||||
|
+#else
|
||||||
|
word64ToWord32s :: Word64 -> Word32x2
|
||||||
|
word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord# w64))
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
wordToChar :: Word -> Char
|
||||||
|
wordToChar (W# word) = C# (chr# (word2Int# word))
|
||||||
|
diff --git a/basement/Basement/PrimType.hs b/basement/Basement/PrimType.hs
|
||||||
|
index f8ca2926..a888ec91 100644
|
||||||
|
--- a/basement/Basement/PrimType.hs
|
||||||
|
+++ b/basement/Basement/PrimType.hs
|
||||||
|
@@ -54,7 +54,11 @@ import Basement.Nat
|
||||||
|
import qualified Prelude (quot)
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
-import GHC.IntWord64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
+import GHC.IntWord64
|
||||||
|
+#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FOUNDATION_BOUNDS_CHECK
|
||||||
|
diff --git a/basement/Basement/Types/OffsetSize.hs b/basement/Basement/Types/OffsetSize.hs
|
||||||
|
index cd944927..1ea80dad 100644
|
||||||
|
--- a/basement/Basement/Types/OffsetSize.hs
|
||||||
|
+++ b/basement/Basement/Types/OffsetSize.hs
|
||||||
|
@@ -70,8 +70,12 @@ import Data.List (foldl')
|
||||||
|
import qualified Prelude
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | File size in bytes
|
||||||
|
newtype FileSize = FileSize Word64
|
||||||
|
@@ -225,20 +229,26 @@ countOfRoundUp alignment (CountOf n) = CountOf ((n + (alignment-1)) .&. compleme
|
||||||
|
|
||||||
|
csizeOfSize :: CountOf Word8 -> CSize
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+csizeOfSize (CountOf (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
|
||||||
|
+#else
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W32# (int2Word# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
|
||||||
|
-
|
||||||
|
#else
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W64# (int2Word# sz))
|
||||||
|
-
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
csizeOfOffset :: Offset8 -> CSize
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+csizeOfOffset (Offset (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
|
||||||
|
+#else
|
||||||
|
csizeOfOffset (Offset (I# sz)) = CSize (W32# (int2Word# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
csizeOfOffset (Offset (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
|
||||||
|
@@ -250,7 +260,11 @@ csizeOfOffset (Offset (I# sz)) = CSize (W64# (int2Word# sz))
|
||||||
|
sizeOfCSSize :: CSsize -> CountOf Word8
|
||||||
|
sizeOfCSSize (CSsize (-1)) = error "invalid size: CSSize is -1"
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# (int32ToInt# sz))
|
||||||
|
+#else
|
||||||
|
sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# sz)
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# (int64ToInt# sz))
|
||||||
|
@@ -261,7 +275,11 @@ sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# sz)
|
||||||
|
|
||||||
|
sizeOfCSize :: CSize -> CountOf Word8
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# (word32ToWord# sz)))
|
||||||
|
+#else
|
||||||
|
sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
sizeOfCSize (CSize (W64# sz)) = CountOf (I# (word2Int# (word64ToWord# sz)))
|
212
srcpkgs/git-annex/patches/cborg.patch
Normal file
212
srcpkgs/git-annex/patches/cborg.patch
Normal file
|
@ -0,0 +1,212 @@
|
||||||
|
commit 9d1418bb8b38cb9a438d7f18835b1ef7ef12b234
|
||||||
|
Author: amesgen <amesgen@amesgen.de>
|
||||||
|
Date: Sun Sep 10 20:03:40 2023 +0200
|
||||||
|
|
||||||
|
Fix compilation and support GHC >=9.2 on 32bit
|
||||||
|
|
||||||
|
diff --git a/cborg/src/Codec/CBOR/Decoding.hs b/cborg/src/Codec/CBOR/Decoding.hs
|
||||||
|
index a7d774c..bf68e68 100644
|
||||||
|
--- a/cborg/src/Codec/CBOR/Decoding.hs
|
||||||
|
+++ b/cborg/src/Codec/CBOR/Decoding.hs
|
||||||
|
@@ -315,11 +315,16 @@ getDecodeAction (Decoder k) = k (\x -> return (Done x))
|
||||||
|
toInt8 :: Int# -> Int8
|
||||||
|
toInt16 :: Int# -> Int16
|
||||||
|
toInt32 :: Int# -> Int32
|
||||||
|
-toInt64 :: Int# -> Int64
|
||||||
|
toWord8 :: Word# -> Word8
|
||||||
|
toWord16 :: Word# -> Word16
|
||||||
|
toWord32 :: Word# -> Word32
|
||||||
|
+#if defined(ARCH_64bit)
|
||||||
|
+toInt64 :: Int# -> Int64
|
||||||
|
toWord64 :: Word# -> Word64
|
||||||
|
+#else
|
||||||
|
+toInt64 :: Int64# -> Int64
|
||||||
|
+toWord64 :: Word64# -> Word64
|
||||||
|
+#endif
|
||||||
|
#if MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
toInt8 n = I8# (intToInt8# n)
|
||||||
|
toInt16 n = I16# (intToInt16# n)
|
||||||
|
@@ -327,8 +332,7 @@ toInt32 n = I32# (intToInt32# n)
|
||||||
|
toWord8 n = W8# (wordToWord8# n)
|
||||||
|
toWord16 n = W16# (wordToWord16# n)
|
||||||
|
toWord32 n = W32# (wordToWord32# n)
|
||||||
|
-#if WORD_SIZE_IN_BITS == 64
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && defined(ARCH_64bit)
|
||||||
|
toInt64 n = I64# (intToInt64# n)
|
||||||
|
toWord64 n = W64# (wordToWord64# n)
|
||||||
|
#else
|
||||||
|
@@ -336,10 +340,6 @@ toInt64 n = I64# n
|
||||||
|
toWord64 n = W64# n
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
-toInt64 n = I64# (intToInt64# n)
|
||||||
|
-toWord64 n = W64# (wordToWord64# n)
|
||||||
|
-#endif
|
||||||
|
-#else
|
||||||
|
toInt8 n = I8# n
|
||||||
|
toInt16 n = I16# n
|
||||||
|
toInt32 n = I32# n
|
||||||
|
@@ -986,7 +986,7 @@ type ByteOffset = Int64
|
||||||
|
-- @since 0.2.2.0
|
||||||
|
peekByteOffset :: Decoder s ByteOffset
|
||||||
|
peekByteOffset = Decoder (\k -> return (PeekByteOffset (\off# -> k (I64#
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && !defined(ARCH_32bit)
|
||||||
|
(intToInt64# off#)
|
||||||
|
#else
|
||||||
|
off#
|
||||||
|
diff --git a/cborg/src/Codec/CBOR/Magic.hs b/cborg/src/Codec/CBOR/Magic.hs
|
||||||
|
index cdeb455..bfae638 100644
|
||||||
|
--- a/cborg/src/Codec/CBOR/Magic.hs
|
||||||
|
+++ b/cborg/src/Codec/CBOR/Magic.hs
|
||||||
|
@@ -120,7 +120,7 @@ import qualified Numeric.Half as Half
|
||||||
|
import Data.Bits ((.|.), unsafeShiftL)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#if defined(ARCH_32bit)
|
||||||
|
+#if defined(ARCH_32bit) && !MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
import GHC.IntWord64 (wordToWord64#, word64ToWord#,
|
||||||
|
intToInt64#, int64ToInt#,
|
||||||
|
leWord64#, ltWord64#, word64ToInt64#)
|
||||||
|
@@ -173,7 +173,7 @@ grabWord64 (Ptr ip#) = W64# (wordToWord64# (byteSwap# (word64ToWord# (indexWord6
|
||||||
|
grabWord64 (Ptr ip#) = W64# (byteSwap# (indexWord64OffAddr# ip# 0#))
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
-grabWord64 (Ptr ip#) = W64# (byteSwap64# (word64ToWord# (indexWord64OffAddr# ip# 0#)))
|
||||||
|
+grabWord64 (Ptr ip#) = W64# (byteSwap64# (indexWord64OffAddr# ip# 0#))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#elif defined(MEM_UNALIGNED_OPS) && \
|
||||||
|
@@ -484,7 +484,7 @@ word16ToInt (W16# w#) = I# (word2Int# (word16ToWord# w#))
|
||||||
|
word32ToInt (W32# w#) = I# (word2Int# (word32ToWord# w#))
|
||||||
|
#else
|
||||||
|
word32ToInt (W32# w#) =
|
||||||
|
- case isTrue# (w# `ltWord#` 0x80000000##) of
|
||||||
|
+ case isTrue# (word32ToWord# w# `ltWord#` 0x80000000##) of
|
||||||
|
True -> Just (I# (word2Int# (word32ToWord# w#)))
|
||||||
|
False -> Nothing
|
||||||
|
#endif
|
||||||
|
@@ -530,6 +530,19 @@ word64ToInt (W64# w#) =
|
||||||
|
{-# INLINE word64ToInt #-}
|
||||||
|
|
||||||
|
#if defined(ARCH_32bit)
|
||||||
|
+#if MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
+word8ToInt64 (W8# w#) = I64# (intToInt64# (word2Int# (word8ToWord# w#)))
|
||||||
|
+word16ToInt64 (W16# w#) = I64# (intToInt64# (word2Int# (word16ToWord# w#)))
|
||||||
|
+word32ToInt64 (W32# w#) = I64# (word64ToInt64# (wordToWord64# (word32ToWord# w#)))
|
||||||
|
+word64ToInt64 (W64# w#) =
|
||||||
|
+ case isTrue# (w# `ltWord64#` uncheckedShiftL64# (wordToWord64# 1##) 63#) of
|
||||||
|
+ True -> Just (I64# (word64ToInt64# w#))
|
||||||
|
+ False -> Nothing
|
||||||
|
+
|
||||||
|
+word8ToWord64 (W8# w#) = W64# (wordToWord64# (word8ToWord# w#))
|
||||||
|
+word16ToWord64 (W16# w#) = W64# (wordToWord64# (word16ToWord# w#))
|
||||||
|
+word32ToWord64 (W32# w#) = W64# (wordToWord64# (word32ToWord# w#))
|
||||||
|
+#else
|
||||||
|
word8ToInt64 (W8# w#) = I64# (intToInt64# (word2Int# w#))
|
||||||
|
word16ToInt64 (W16# w#) = I64# (intToInt64# (word2Int# w#))
|
||||||
|
word32ToInt64 (W32# w#) = I64# (word64ToInt64# (wordToWord64# w#))
|
||||||
|
@@ -541,6 +554,7 @@ word64ToInt64 (W64# w#) =
|
||||||
|
word8ToWord64 (W8# w#) = W64# (wordToWord64# w#)
|
||||||
|
word16ToWord64 (W16# w#) = W64# (wordToWord64# w#)
|
||||||
|
word32ToWord64 (W32# w#) = W64# (wordToWord64# w#)
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
{-# INLINE word8ToInt64 #-}
|
||||||
|
{-# INLINE word16ToInt64 #-}
|
||||||
|
diff --git a/cborg/src/Codec/CBOR/Read.hs b/cborg/src/Codec/CBOR/Read.hs
|
||||||
|
index 6546575..c4dc761 100644
|
||||||
|
--- a/cborg/src/Codec/CBOR/Read.hs
|
||||||
|
+++ b/cborg/src/Codec/CBOR/Read.hs
|
||||||
|
@@ -63,7 +63,7 @@ import qualified Data.Text as T
|
||||||
|
import qualified Data.Text.Encoding as T
|
||||||
|
import Data.Word
|
||||||
|
import GHC.Word
|
||||||
|
-#if defined(ARCH_32bit)
|
||||||
|
+#if defined(ARCH_32bit) && !MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
import GHC.Exts
|
||||||
|
@@ -510,8 +510,8 @@ go_fast !bs da@(ConsumeNegWord64Canonical k) =
|
||||||
|
go_fast !bs da@(ConsumeInt64Canonical k) =
|
||||||
|
case tryConsumeInt64 (BS.unsafeHead bs) bs of
|
||||||
|
DecodeFailure -> go_fast_end bs da
|
||||||
|
- DecodedToken sz i@(I64# i#)
|
||||||
|
- | isInt64Canonical sz i -> k i# >>= go_fast (BS.unsafeDrop sz bs)
|
||||||
|
+ DecodedToken sz (I64# i#)
|
||||||
|
+ | isInt64Canonical sz i# -> k i# >>= go_fast (BS.unsafeDrop sz bs)
|
||||||
|
| otherwise -> go_fast_end bs da
|
||||||
|
|
||||||
|
go_fast !bs da@(ConsumeListLen64Canonical k) =
|
||||||
|
@@ -994,8 +994,8 @@ go_fast_end !bs (ConsumeNegWord64Canonical k) =
|
||||||
|
go_fast_end !bs (ConsumeInt64Canonical k) =
|
||||||
|
case tryConsumeInt64 (BS.unsafeHead bs) bs of
|
||||||
|
DecodeFailure -> return $! SlowFail bs "expected int64"
|
||||||
|
- DecodedToken sz i@(I64# i#)
|
||||||
|
- | isInt64Canonical sz i -> k i# >>= go_fast_end (BS.unsafeDrop sz bs)
|
||||||
|
+ DecodedToken sz (I64# i#)
|
||||||
|
+ | isInt64Canonical sz i# -> k i# >>= go_fast_end (BS.unsafeDrop sz bs)
|
||||||
|
| otherwise -> return $! SlowFail bs "non-canonical int64"
|
||||||
|
|
||||||
|
go_fast_end !bs (ConsumeListLen64Canonical k) =
|
||||||
|
@@ -1271,7 +1271,7 @@ go_slow da bs !offset = do
|
||||||
|
|
||||||
|
SlowPeekByteOffset bs' k ->
|
||||||
|
lift
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && !defined(ARCH_32bit)
|
||||||
|
(k (int64ToInt# off#))
|
||||||
|
#else
|
||||||
|
(k off#)
|
||||||
|
@@ -1381,7 +1381,7 @@ go_slow_overlapped da sz bs_cur bs_next !offset =
|
||||||
|
SlowPeekByteOffset bs_empty k ->
|
||||||
|
assert (BS.null bs_empty) $ do
|
||||||
|
lift
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && !defined(ARCH_32bit)
|
||||||
|
(k (int64ToInt# off#))
|
||||||
|
#else
|
||||||
|
(k off#)
|
||||||
|
@@ -1565,17 +1565,17 @@ isIntCanonical sz i
|
||||||
|
{-# INLINE isWord64Canonical #-}
|
||||||
|
isWord64Canonical :: Int -> Word64 -> Bool
|
||||||
|
isWord64Canonical sz w
|
||||||
|
- | sz == 2 = w > 0x17)
|
||||||
|
- | sz == 3 = w > 0xff)
|
||||||
|
- | sz == 5 = w > 0xffff)
|
||||||
|
- | sz == 9 = w > 0xffffffff)
|
||||||
|
+ | sz == 2 = w > 0x17
|
||||||
|
+ | sz == 3 = w > 0xff
|
||||||
|
+ | sz == 5 = w > 0xffff
|
||||||
|
+ | sz == 9 = w > 0xffffffff
|
||||||
|
| otherwise = True
|
||||||
|
|
||||||
|
{-# INLINE isInt64Canonical #-}
|
||||||
|
isInt64Canonical :: Int -> Int64# -> Bool
|
||||||
|
isInt64Canonical sz i#
|
||||||
|
- | isTrue# (i# `ltInt64#` intToInt64# 0#) = isWord64Canonical sz (not64# w#)
|
||||||
|
- | otherwise = isWord64Canonical sz w#
|
||||||
|
+ | isTrue# (i# `ltInt64#` intToInt64# 0#) = isWord64Canonical sz (W64# (not64# w#))
|
||||||
|
+ | otherwise = isWord64Canonical sz (W64# w#)
|
||||||
|
where
|
||||||
|
w# = int64ToWord64# i#
|
||||||
|
#endif
|
||||||
|
@@ -1796,7 +1796,7 @@ tryConsumeInteger hdr !bs = case word8ToWord hdr of
|
||||||
|
0x1b -> let !w = eatTailWord64 bs
|
||||||
|
sz = 9
|
||||||
|
#if defined(ARCH_32bit)
|
||||||
|
- in DecodedToken sz (BigIntToken (isWord64Canonical sz (word64ToWord w)) $! toInteger w)
|
||||||
|
+ in DecodedToken sz (BigIntToken (isWord64Canonical sz w) $! toInteger w)
|
||||||
|
#else
|
||||||
|
in DecodedToken sz (BigIntToken (isWordCanonical sz (word64ToWord w)) $! toInteger w)
|
||||||
|
#endif
|
||||||
|
@@ -1838,7 +1838,7 @@ tryConsumeInteger hdr !bs = case word8ToWord hdr of
|
||||||
|
0x3b -> let !w = eatTailWord64 bs
|
||||||
|
sz = 9
|
||||||
|
#if defined(ARCH_32bit)
|
||||||
|
- in DecodedToken sz (BigIntToken (isWord64Canonical sz (word64ToWord w)) $! (-1 - toInteger w))
|
||||||
|
+ in DecodedToken sz (BigIntToken (isWord64Canonical sz w) $! (-1 - toInteger w))
|
||||||
|
#else
|
||||||
|
in DecodedToken sz (BigIntToken (isWordCanonical sz (word64ToWord w)) $! (-1 - toInteger w))
|
||||||
|
#endif
|
36
srcpkgs/git-annex/patches/memory.patch
Normal file
36
srcpkgs/git-annex/patches/memory.patch
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
From 2738929ce15b4c8704bbbac24a08539b5d4bf30e Mon Sep 17 00:00:00 2001
|
||||||
|
From: sternenseemann <sternenseemann@systemli.org>
|
||||||
|
Date: Mon, 14 Aug 2023 10:51:30 +0200
|
||||||
|
Subject: [PATCH] Data.Memory.Internal.CompatPrim64: fix 32 bit with GHC >= 9.4
|
||||||
|
|
||||||
|
Since 9.4, GHC.Prim exports Word64# operations like timesWord64# even on
|
||||||
|
i686 whereas GHC.IntWord64 no longer exists. Therefore, we can just use
|
||||||
|
the ready made solution.
|
||||||
|
|
||||||
|
Closes #98, as it should be the better solution.
|
||||||
|
---
|
||||||
|
Data/Memory/Internal/CompatPrim64.hs | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/Data/Memory/Internal/CompatPrim64.hs b/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
index b9eef8a..a134c88 100644
|
||||||
|
--- a/memory/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
+++ b/memory/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
@@ -150,6 +150,7 @@ w64# :: Word# -> Word# -> Word# -> Word64#
|
||||||
|
w64# w _ _ = w
|
||||||
|
|
||||||
|
#elif WORD_SIZE_IN_BITS == 32
|
||||||
|
+#if __GLASGOW_HASKELL__ < 904
|
||||||
|
import GHC.IntWord64
|
||||||
|
import GHC.Prim (Word#)
|
||||||
|
|
||||||
|
@@ -158,6 +159,9 @@ timesWord64# a b =
|
||||||
|
let !ai = word64ToInt64# a
|
||||||
|
!bi = word64ToInt64# b
|
||||||
|
in int64ToWord64# (timesInt64# ai bi)
|
||||||
|
+#else
|
||||||
|
+import GHC.Prim
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
w64# :: Word# -> Word# -> Word# -> Word64#
|
||||||
|
w64# _ hw lw =
|
|
@ -1,32 +1,48 @@
|
||||||
# Template file for 'git-annex'
|
# Template file for 'git-annex'
|
||||||
pkgname=git-annex
|
pkgname=git-annex
|
||||||
version=10.20221103
|
version=10.20250630
|
||||||
revision=1
|
revision=1
|
||||||
build_style=haskell-stack
|
build_style=gnu-makefile
|
||||||
|
build_helper=haskell
|
||||||
|
make_check_target=test
|
||||||
|
make_use_env=yes
|
||||||
|
hostmakedepends="cabal-install"
|
||||||
makedepends="curl file-devel gnupg gnutls-devel gsasl-devel libxml2-devel
|
makedepends="curl file-devel gnupg gnutls-devel gsasl-devel libxml2-devel
|
||||||
lsof rsync git ncurses-devel bup borg nocache git-remote-gcrypt"
|
lsof rsync git ncurses-devel bup borg nocache git-remote-gcrypt"
|
||||||
# depends are utilities required by git-annex
|
|
||||||
depends="git rsync curl lsof gnupg>=2"
|
depends="git rsync curl lsof gnupg>=2"
|
||||||
short_desc="Git addon for managing large files"
|
short_desc="Git addon for managing large files"
|
||||||
maintainer="Evan Deaubl <evan@deaubl.name>"
|
maintainer="Evan Deaubl <evan@deaubl.name>"
|
||||||
license="AGPL-3.0-or-later, MIT, BSD-2-Clause, GPL-3.0-or-later, custom:Expat, custom:MIT-twitter, GPL-2.0-only, custom:icon-license"
|
license="AGPL-3.0-or-later, MIT, BSD-2-Clause, GPL-3.0-or-later, custom:Expat, custom:MIT-twitter, GPL-2.0-only, custom:icon-license"
|
||||||
homepage="https://git-annex.branchable.com"
|
homepage="https://git-annex.branchable.com"
|
||||||
changelog="https://git.joeyh.name/index.cgi/git-annex.git/plain/CHANGELOG"
|
changelog="https://git.joeyh.name/index.cgi/git-annex.git/plain/CHANGELOG"
|
||||||
distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz"
|
# The hackage distribution is missing the makefile and build tools
|
||||||
checksum=f549c31264d6da3bb544755795e7fc29882ebec45014905bc2ea0ade28398f3b
|
distfiles="https://git.joeyh.name/index.cgi/git-annex.git/snapshot/git-annex-${version}.tar.gz
|
||||||
|
https://hackage.haskell.org/package/basement-0.0.16/basement-0.0.16.tar.gz
|
||||||
|
https://hackage.haskell.org/package/memory-0.18.0/memory-0.18.0.tar.gz
|
||||||
|
https://hackage.haskell.org/package/cborg-0.2.10.0/cborg-0.2.10.0.tar.gz"
|
||||||
|
checksum="f798e07707ab2eb7c8fe76b9821ba6b2878d4bae2a03ae5a8cac69eb315bcd98
|
||||||
|
7fb77e249aef76ba5aed3059d556800ce02b614597c488ba01f0a16449146300
|
||||||
|
fd4eb6f638e24b81b4e6cdd68772a531726f2f67686c8969d3407d82f7862e3e
|
||||||
|
17fe070c38fc498cab49bcb9d6215b7747d53bedf96502e9bcce9cad73b9c797"
|
||||||
nopie_files="/usr/bin/git-annex"
|
nopie_files="/usr/bin/git-annex"
|
||||||
nocross=yes
|
nocross=yes
|
||||||
|
skip_extraction="basement-0.0.16.tar.gz memory-0.18.0.tar.gz cborg-0.2.10.0.tar.gz"
|
||||||
|
disable_parallel_build=yes
|
||||||
|
|
||||||
|
post_extract() {
|
||||||
|
vsrcextract -C basement basement-0.0.16.tar.gz
|
||||||
|
vsrcextract -C memory memory-0.18.0.tar.gz
|
||||||
|
vsrcextract -C cborg cborg-0.2.10.0.tar.gz
|
||||||
|
}
|
||||||
|
|
||||||
|
export BUILDERCOMMONOPTIONS="-f servant --index-state=2025-07-04T05:45:32Z"
|
||||||
|
export GHC="cabal exec -- ghc"
|
||||||
|
|
||||||
|
pre_configure() {
|
||||||
|
echo 'packages: ./basement ./memory ./cborg .' > cabal.project
|
||||||
|
cabal update
|
||||||
|
}
|
||||||
|
|
||||||
# These install steps are pulled from the install target in the
|
|
||||||
# git-annex Makefile. The target can't be called directly because it is
|
|
||||||
# comingled with the Cabal build, and we're using Stackage instead
|
|
||||||
# Make sure they are in sync with each version upgrade
|
|
||||||
post_install() {
|
post_install() {
|
||||||
ln -sf git-annex ${DESTDIR}/usr/bin/git-annex-shell
|
|
||||||
ln -sf git-annex ${DESTDIR}/usr/bin/git-remote-tor-annex
|
|
||||||
|
|
||||||
vmkdir usr/share/man/man1
|
|
||||||
vcopy man/*.1 usr/share/man/man1
|
|
||||||
|
|
||||||
vlicense doc/license/AGPL
|
vlicense doc/license/AGPL
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
# Template file for 'git-mediate'
|
# Template file for 'git-mediate'
|
||||||
pkgname=git-mediate
|
pkgname=git-mediate
|
||||||
version=1.0.8.1
|
version=1.1.0
|
||||||
revision=3
|
revision=1
|
||||||
build_style=haskell-stack
|
build_style=haskell-stack
|
||||||
stackage="lts-19.0"
|
stackage="lts-23.26"
|
||||||
depends="git"
|
depends="git"
|
||||||
short_desc="Tool to help resolving git conflicts"
|
short_desc="Tool to help resolving git conflicts"
|
||||||
maintainer="Peter Wang <novalazy@gmail.com>"
|
maintainer="Peter Wang <novalazy@gmail.com>"
|
||||||
license="GPL-2.0-only"
|
license="GPL-2.0-only"
|
||||||
homepage="https://github.com/Peaker/git-mediate"
|
homepage="https://github.com/Peaker/git-mediate"
|
||||||
distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz"
|
distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz"
|
||||||
checksum=ee44841d37ded70cbcd8edd1e233a344d0118295e0bd2f0c6983ed00f619c467
|
checksum=7826a1cdbbd20696059c9a2b927916c6e3593be24ac10bd647b6c2d8e13b1124
|
||||||
nocross=yes
|
nocross=yes
|
||||||
nopie_files="/usr/bin/git-mediate"
|
nopie_files="/usr/bin/git-mediate"
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
# Template file for 'glirc'
|
# Template file for 'glirc'
|
||||||
pkgname=glirc
|
pkgname=glirc
|
||||||
version=2.41
|
version=2.41
|
||||||
revision=1
|
revision=2
|
||||||
hostmakedepends="cabal-install"
|
build_style=cabal
|
||||||
|
cabal_index_state=2025-07-04T14:10:45Z
|
||||||
makedepends="ncurses-devel openssl-devel"
|
makedepends="ncurses-devel openssl-devel"
|
||||||
short_desc="Console IRC client written in Haskell"
|
short_desc="Console IRC client written in Haskell"
|
||||||
maintainer="Orphaned <orphan@voidlinux.org>"
|
maintainer="Orphaned <orphan@voidlinux.org>"
|
||||||
|
@ -13,24 +14,15 @@ checksum=fbb5bd030ddce70158c4d5654c8fda93093e68b9fb85df4d6cb91ab72a67a6a6
|
||||||
nocross="cabal does not support cross compilation"
|
nocross="cabal does not support cross compilation"
|
||||||
nopie=yes # ghc is currently built without PIE support
|
nopie=yes # ghc is currently built without PIE support
|
||||||
|
|
||||||
_cabal_opts="-g"
|
post_configure() {
|
||||||
|
echo 'package HsOpenSSL' >> cabal.project.local
|
||||||
if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
|
echo ' ghc-options:' >> cabal.project.local
|
||||||
_cabal_opts+=" --ghc-option -latomic"
|
echo ' -optc=-Wno-discarded-qualifiers' >> cabal.project.local
|
||||||
fi
|
echo ' -optc=-Wno-deprecated-declarations' >> cabal.project.local
|
||||||
|
echo ' -optc=-Wno-incompatible-pointer-types' >> cabal.project.local
|
||||||
if [ "$XBPS_MAKEJOBS" ]; then
|
|
||||||
_cabal_opts+=" --jobs=$XBPS_MAKEJOBS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
do_build() {
|
|
||||||
cabal update $_cabal_opts
|
|
||||||
cabal build $_cabal_opts
|
|
||||||
mv dist-newstyle/build/*/*/glirc-${version}/build/glirc/glirc glirc
|
|
||||||
}
|
}
|
||||||
|
|
||||||
do_install() {
|
post_install() {
|
||||||
vbin glirc
|
|
||||||
vman glirc.1
|
vman glirc.1
|
||||||
vlicense LICENSE
|
vlicense LICENSE
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
# Template file for 'haskell-language-server'
|
# Template file for 'haskell-language-server'
|
||||||
pkgname=haskell-language-server
|
pkgname=haskell-language-server
|
||||||
version=1.8.0.0
|
version=2.11.0.0
|
||||||
revision=1
|
revision=1
|
||||||
build_style="haskell-stack"
|
build_style=cabal
|
||||||
make_build_args="--stack-yaml stack-lts19.yaml --flag=haskell-language-server:-dynamic"
|
configure_args="--flags=-dynamic --disable-benchmarks --disable-tests"
|
||||||
|
make_build_target=all:exes
|
||||||
makedepends="ncurses-devel ncurses-libtinfo-devel icu-devel zlib-devel"
|
makedepends="ncurses-devel ncurses-libtinfo-devel icu-devel zlib-devel"
|
||||||
short_desc="Integration of ghcide and haskell-ide-engine"
|
short_desc="Integration of ghcide and haskell-ide-engine"
|
||||||
maintainer="Wayne Van Son <waynevanson@gmail.com>"
|
maintainer="Wayne Van Son <waynevanson@gmail.com>"
|
||||||
|
@ -11,7 +12,7 @@ license="Apache-2.0"
|
||||||
homepage="https://github.com/haskell/haskell-language-server"
|
homepage="https://github.com/haskell/haskell-language-server"
|
||||||
changelog="https://raw.githubusercontent.com/haskell/haskell-language-server/master/ChangeLog.md"
|
changelog="https://raw.githubusercontent.com/haskell/haskell-language-server/master/ChangeLog.md"
|
||||||
distfiles="https://github.com/haskell/haskell-language-server/archive/${version}.tar.gz"
|
distfiles="https://github.com/haskell/haskell-language-server/archive/${version}.tar.gz"
|
||||||
checksum=e1081ac581d21547d835beb8561e815573944aa0babe752a971479da3a207235
|
checksum=a03b00e37b3a5326adaaa688145160959e78f0fa7a3160eb99babea437fc60f4
|
||||||
nopie_files="
|
nopie_files="
|
||||||
/usr/bin/haskell-language-server
|
/usr/bin/haskell-language-server
|
||||||
/usr/bin/haskell-language-server-wrapper
|
/usr/bin/haskell-language-server-wrapper
|
||||||
|
@ -21,3 +22,4 @@ nopie_files="
|
||||||
/usr/bin/test-server
|
/usr/bin/test-server
|
||||||
"
|
"
|
||||||
nocross="Cannot yet cross compile with Haskell"
|
nocross="Cannot yet cross compile with Haskell"
|
||||||
|
make_check=no # Tests require dynamic linking of haskell libs which doesn't work on musl
|
||||||
|
|
10
srcpkgs/hedgewars/patches/importmonad.patch
Normal file
10
srcpkgs/hedgewars/patches/importmonad.patch
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
--- a/tools/pas2c/Pas2C.hs 2025-07-07 21:51:17.117166690 +0100
|
||||||
|
+++ b/tools/pas2c/Pas2C.hs 2025-07-07 21:47:34.842095704 +0100
|
||||||
|
@@ -6,6 +6,7 @@
|
||||||
|
import Data.Maybe
|
||||||
|
import Data.Char
|
||||||
|
import Text.Parsec.Prim hiding (State)
|
||||||
|
+import Control.Monad (void, unless, guard, liftM, liftM2)
|
||||||
|
import Control.Monad.State
|
||||||
|
import System.IO
|
||||||
|
import PascalPreprocessor
|
81
srcpkgs/hedgewars/patches/string.patch
Normal file
81
srcpkgs/hedgewars/patches/string.patch
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
--- a/tools/pas2c/PascalPreprocessor.hs 2025-07-07 21:31:06.082177207 +0100
|
||||||
|
+++ b/tools/pas2c/PascalPreprocessor.hs 2025-07-07 21:32:06.163172477 +0100
|
||||||
|
@@ -11,8 +11,8 @@
|
||||||
|
char' :: Char -> ParsecT String u IO ()
|
||||||
|
char' = void . char
|
||||||
|
|
||||||
|
-string' :: String -> ParsecT String u IO ()
|
||||||
|
-string' = void . string
|
||||||
|
+stringlmao :: String -> ParsecT String u IO ()
|
||||||
|
+stringlmao = void . string
|
||||||
|
|
||||||
|
-- comments are removed
|
||||||
|
comment :: ParsecT String u IO String
|
||||||
|
@@ -59,7 +59,7 @@
|
||||||
|
return $ c:s
|
||||||
|
|
||||||
|
switch = do
|
||||||
|
- try $ string' "{$"
|
||||||
|
+ try $ stringlmao "{$"
|
||||||
|
s <- choice [
|
||||||
|
include
|
||||||
|
, ifdef
|
||||||
|
@@ -72,7 +72,7 @@
|
||||||
|
return s
|
||||||
|
|
||||||
|
include = do
|
||||||
|
- try $ string' "INCLUDE"
|
||||||
|
+ try $ stringlmao "INCLUDE"
|
||||||
|
spaces
|
||||||
|
(char' '"')
|
||||||
|
ifn <- many1 $ noneOf "\"\n"
|
||||||
|
@@ -102,7 +102,7 @@
|
||||||
|
return ""
|
||||||
|
|
||||||
|
if' = do
|
||||||
|
- try (string' "IF" >> notFollowedBy alphaNum)
|
||||||
|
+ try (stringlmao "IF" >> notFollowedBy alphaNum)
|
||||||
|
|
||||||
|
void $ manyTill anyChar (char' '}')
|
||||||
|
--char '}'
|
||||||
|
@@ -113,15 +113,15 @@
|
||||||
|
return ""
|
||||||
|
|
||||||
|
elseSwitch = do
|
||||||
|
- try $ string' "ELSE}"
|
||||||
|
+ try $ stringlmao "ELSE}"
|
||||||
|
updateState $ \(m, b:bs) -> (m, (not b):bs)
|
||||||
|
return ""
|
||||||
|
endIf = do
|
||||||
|
- try $ string' "ENDIF}"
|
||||||
|
+ try $ stringlmao "ENDIF}"
|
||||||
|
updateState $ \(m, _:bs) -> (m, bs)
|
||||||
|
return ""
|
||||||
|
define = do
|
||||||
|
- try $ string' "DEFINE"
|
||||||
|
+ try $ stringlmao "DEFINE"
|
||||||
|
spaces
|
||||||
|
i <- identifier
|
||||||
|
d <- ((string ":=" >> return ()) <|> spaces) >> many (noneOf "}")
|
||||||
|
--- a/tools/pas2c/PascalBasics.hs 2025-07-07 21:34:14.466383776 +0100
|
||||||
|
+++ b/tools/pas2c/PascalBasics.hs 2025-07-07 21:34:44.872576888 +0100
|
||||||
|
@@ -13,8 +13,8 @@
|
||||||
|
char' :: Char -> Parsec String u ()
|
||||||
|
char' = void . char
|
||||||
|
|
||||||
|
-string' :: String -> Parsec String u ()
|
||||||
|
-string' = void . string
|
||||||
|
+stringggggggg :: String -> Parsec String u ()
|
||||||
|
+stringggggggg = void . string
|
||||||
|
|
||||||
|
builtin :: [String]
|
||||||
|
builtin = ["succ", "pred", "low", "high", "ord", "inc", "dec", "exit", "break", "continue", "length", "copy"]
|
||||||
|
@@ -43,7 +43,7 @@
|
||||||
|
|
||||||
|
preprocessorSwitch :: Stream String Identity Char => Parsec String u String
|
||||||
|
preprocessorSwitch = do
|
||||||
|
- try $ string' "{$"
|
||||||
|
+ try $ stringggggggg "{$"
|
||||||
|
s <- manyTill (noneOf "\n") $ char '}'
|
||||||
|
return s
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
resolver: lts-19.0
|
|
||||||
|
|
||||||
packages:
|
|
||||||
- hledger-lib
|
|
||||||
- hledger
|
|
||||||
- hledger-ui
|
|
||||||
- hledger-web
|
|
||||||
|
|
||||||
extra-deps:
|
|
||||||
# for hledger-lib:
|
|
||||||
- breakpoint-0.1.0.0
|
|
||||||
# for hledger:
|
|
||||||
# for hledger-ui:
|
|
||||||
- brick-1.0
|
|
||||||
- bimap-0.5.0
|
|
||||||
- text-zipper-0.12
|
|
||||||
- vty-5.36
|
|
||||||
# for hledger-web:
|
|
||||||
# for Shake.hs:
|
|
||||||
|
|
||||||
ghc-options:
|
|
||||||
"$locals": -fplugin Debug.Breakpoint
|
|
242
srcpkgs/hledger/patches/basement.patch
Normal file
242
srcpkgs/hledger/patches/basement.patch
Normal file
|
@ -0,0 +1,242 @@
|
||||||
|
From 38be2c93acb6f459d24ed6c626981c35ccf44095 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sylvain Henry <sylvain@haskus.fr>
|
||||||
|
Date: Thu, 16 Feb 2023 15:40:45 +0100
|
||||||
|
Subject: [PATCH] Fix build on 32-bit architectures
|
||||||
|
|
||||||
|
---
|
||||||
|
basement/Basement/Bits.hs | 4 ++++
|
||||||
|
basement/Basement/From.hs | 24 -----------------------
|
||||||
|
basement/Basement/Numerical/Additive.hs | 4 ++++
|
||||||
|
basement/Basement/Numerical/Conversion.hs | 20 +++++++++++++++++++
|
||||||
|
basement/Basement/PrimType.hs | 6 +++++-
|
||||||
|
basement/Basement/Types/OffsetSize.hs | 22 +++++++++++++++++++--
|
||||||
|
6 files changed, 53 insertions(+), 27 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/basement/Basement/Bits.hs b/basement/Basement/Bits.hs
|
||||||
|
index 7eeea0f5..24520ed7 100644
|
||||||
|
--- a/basement/Basement/Bits.hs
|
||||||
|
+++ b/basement/Basement/Bits.hs
|
||||||
|
@@ -54,8 +54,12 @@ import GHC.Int
|
||||||
|
import Basement.Compat.Primitive
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | operation over finite bits
|
||||||
|
class FiniteBitsOps bits where
|
||||||
|
diff --git a/basement/Basement/From.hs b/basement/Basement/From.hs
|
||||||
|
index 7bbe141c..80014b3e 100644
|
||||||
|
--- a/basement/Basement/From.hs
|
||||||
|
+++ b/basement/Basement/From.hs
|
||||||
|
@@ -272,23 +272,11 @@ instance (NatWithinBound (CountOf ty) n, KnownNat n, PrimType ty)
|
||||||
|
tryFrom = BlockN.toBlockN . UArray.toBlock . BoxArray.mapToUnboxed id
|
||||||
|
|
||||||
|
instance (KnownNat n, NatWithinBound Word8 n) => From (Zn64 n) Word8 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word16 n) => From (Zn64 n) Word16 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word32 n) => From (Zn64 n) Word32 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance From (Zn64 n) Word64 where
|
||||||
|
from = unZn64
|
||||||
|
instance From (Zn64 n) Word128 where
|
||||||
|
@@ -297,23 +285,11 @@ instance From (Zn64 n) Word256 where
|
||||||
|
from = from . unZn64
|
||||||
|
|
||||||
|
instance (KnownNat n, NatWithinBound Word8 n) => From (Zn n) Word8 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word16 n) => From (Zn n) Word16 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word32 n) => From (Zn n) Word32 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word64 n) => From (Zn n) Word64 where
|
||||||
|
from = naturalToWord64 . unZn
|
||||||
|
instance (KnownNat n, NatWithinBound Word128 n) => From (Zn n) Word128 where
|
||||||
|
diff --git a/basement/Basement/Numerical/Additive.hs b/basement/Basement/Numerical/Additive.hs
|
||||||
|
index d0dfb973..8ab65aa0 100644
|
||||||
|
--- a/basement/Basement/Numerical/Additive.hs
|
||||||
|
+++ b/basement/Basement/Numerical/Additive.hs
|
||||||
|
@@ -30,8 +30,12 @@ import qualified Basement.Types.Word128 as Word128
|
||||||
|
import qualified Basement.Types.Word256 as Word256
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | Represent class of things that can be added together,
|
||||||
|
-- contains a neutral element and is commutative.
|
||||||
|
diff --git a/basement/Basement/Numerical/Conversion.hs b/basement/Basement/Numerical/Conversion.hs
|
||||||
|
index db502c07..fddc8232 100644
|
||||||
|
--- a/basement/Basement/Numerical/Conversion.hs
|
||||||
|
+++ b/basement/Basement/Numerical/Conversion.hs
|
||||||
|
@@ -26,8 +26,12 @@ import GHC.Word
|
||||||
|
import Basement.Compat.Primitive
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
intToInt64 :: Int -> Int64
|
||||||
|
#if WORD_SIZE_IN_BITS == 64
|
||||||
|
@@ -96,11 +100,22 @@ int64ToWord64 (I64# i) = W64# (int64ToWord64# i)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS == 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+word64ToWord# :: Word64# -> Word#
|
||||||
|
+word64ToWord# i = word64ToWord# i
|
||||||
|
+#else
|
||||||
|
word64ToWord# :: Word# -> Word#
|
||||||
|
word64ToWord# i = i
|
||||||
|
+#endif
|
||||||
|
{-# INLINE word64ToWord# #-}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+word64ToWord32# :: Word64# -> Word32#
|
||||||
|
+word64ToWord32# i = wordToWord32# (word64ToWord# i)
|
||||||
|
+{-# INLINE word64ToWord32# #-}
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
-- | 2 Word32s
|
||||||
|
data Word32x2 = Word32x2 {-# UNPACK #-} !Word32
|
||||||
|
{-# UNPACK #-} !Word32
|
||||||
|
@@ -113,9 +128,14 @@ word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# (G
|
||||||
|
word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# w64 32#))) (W32# (wordToWord32# w64))
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+word64ToWord32s :: Word64 -> Word32x2
|
||||||
|
+word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord32# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord32# w64))
|
||||||
|
+#else
|
||||||
|
word64ToWord32s :: Word64 -> Word32x2
|
||||||
|
word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord# w64))
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
wordToChar :: Word -> Char
|
||||||
|
wordToChar (W# word) = C# (chr# (word2Int# word))
|
||||||
|
diff --git a/basement/Basement/PrimType.hs b/basement/Basement/PrimType.hs
|
||||||
|
index f8ca2926..a888ec91 100644
|
||||||
|
--- a/basement/Basement/PrimType.hs
|
||||||
|
+++ b/basement/Basement/PrimType.hs
|
||||||
|
@@ -54,7 +54,11 @@ import Basement.Nat
|
||||||
|
import qualified Prelude (quot)
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
-import GHC.IntWord64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
+import GHC.IntWord64
|
||||||
|
+#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FOUNDATION_BOUNDS_CHECK
|
||||||
|
diff --git a/basement/Basement/Types/OffsetSize.hs b/basement/Basement/Types/OffsetSize.hs
|
||||||
|
index cd944927..1ea80dad 100644
|
||||||
|
--- a/basement/Basement/Types/OffsetSize.hs
|
||||||
|
+++ b/basement/Basement/Types/OffsetSize.hs
|
||||||
|
@@ -70,8 +70,12 @@ import Data.List (foldl')
|
||||||
|
import qualified Prelude
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | File size in bytes
|
||||||
|
newtype FileSize = FileSize Word64
|
||||||
|
@@ -225,20 +229,26 @@ countOfRoundUp alignment (CountOf n) = CountOf ((n + (alignment-1)) .&. compleme
|
||||||
|
|
||||||
|
csizeOfSize :: CountOf Word8 -> CSize
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+csizeOfSize (CountOf (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
|
||||||
|
+#else
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W32# (int2Word# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
|
||||||
|
-
|
||||||
|
#else
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W64# (int2Word# sz))
|
||||||
|
-
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
csizeOfOffset :: Offset8 -> CSize
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+csizeOfOffset (Offset (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
|
||||||
|
+#else
|
||||||
|
csizeOfOffset (Offset (I# sz)) = CSize (W32# (int2Word# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
csizeOfOffset (Offset (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
|
||||||
|
@@ -250,7 +260,11 @@ csizeOfOffset (Offset (I# sz)) = CSize (W64# (int2Word# sz))
|
||||||
|
sizeOfCSSize :: CSsize -> CountOf Word8
|
||||||
|
sizeOfCSSize (CSsize (-1)) = error "invalid size: CSSize is -1"
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# (int32ToInt# sz))
|
||||||
|
+#else
|
||||||
|
sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# sz)
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# (int64ToInt# sz))
|
||||||
|
@@ -261,7 +275,11 @@ sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# sz)
|
||||||
|
|
||||||
|
sizeOfCSize :: CSize -> CountOf Word8
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# (word32ToWord# sz)))
|
||||||
|
+#else
|
||||||
|
sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
sizeOfCSize (CSize (W64# sz)) = CountOf (I# (word2Int# (word64ToWord# sz)))
|
212
srcpkgs/hledger/patches/cborg.patch
Normal file
212
srcpkgs/hledger/patches/cborg.patch
Normal file
|
@ -0,0 +1,212 @@
|
||||||
|
commit 9d1418bb8b38cb9a438d7f18835b1ef7ef12b234
|
||||||
|
Author: amesgen <amesgen@amesgen.de>
|
||||||
|
Date: Sun Sep 10 20:03:40 2023 +0200
|
||||||
|
|
||||||
|
Fix compilation and support GHC >=9.2 on 32bit
|
||||||
|
|
||||||
|
diff --git a/cborg/src/Codec/CBOR/Decoding.hs b/cborg/src/Codec/CBOR/Decoding.hs
|
||||||
|
index a7d774c..bf68e68 100644
|
||||||
|
--- a/cborg/src/Codec/CBOR/Decoding.hs
|
||||||
|
+++ b/cborg/src/Codec/CBOR/Decoding.hs
|
||||||
|
@@ -315,11 +315,16 @@ getDecodeAction (Decoder k) = k (\x -> return (Done x))
|
||||||
|
toInt8 :: Int# -> Int8
|
||||||
|
toInt16 :: Int# -> Int16
|
||||||
|
toInt32 :: Int# -> Int32
|
||||||
|
-toInt64 :: Int# -> Int64
|
||||||
|
toWord8 :: Word# -> Word8
|
||||||
|
toWord16 :: Word# -> Word16
|
||||||
|
toWord32 :: Word# -> Word32
|
||||||
|
+#if defined(ARCH_64bit)
|
||||||
|
+toInt64 :: Int# -> Int64
|
||||||
|
toWord64 :: Word# -> Word64
|
||||||
|
+#else
|
||||||
|
+toInt64 :: Int64# -> Int64
|
||||||
|
+toWord64 :: Word64# -> Word64
|
||||||
|
+#endif
|
||||||
|
#if MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
toInt8 n = I8# (intToInt8# n)
|
||||||
|
toInt16 n = I16# (intToInt16# n)
|
||||||
|
@@ -327,8 +332,7 @@ toInt32 n = I32# (intToInt32# n)
|
||||||
|
toWord8 n = W8# (wordToWord8# n)
|
||||||
|
toWord16 n = W16# (wordToWord16# n)
|
||||||
|
toWord32 n = W32# (wordToWord32# n)
|
||||||
|
-#if WORD_SIZE_IN_BITS == 64
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && defined(ARCH_64bit)
|
||||||
|
toInt64 n = I64# (intToInt64# n)
|
||||||
|
toWord64 n = W64# (wordToWord64# n)
|
||||||
|
#else
|
||||||
|
@@ -336,10 +340,6 @@ toInt64 n = I64# n
|
||||||
|
toWord64 n = W64# n
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
-toInt64 n = I64# (intToInt64# n)
|
||||||
|
-toWord64 n = W64# (wordToWord64# n)
|
||||||
|
-#endif
|
||||||
|
-#else
|
||||||
|
toInt8 n = I8# n
|
||||||
|
toInt16 n = I16# n
|
||||||
|
toInt32 n = I32# n
|
||||||
|
@@ -986,7 +986,7 @@ type ByteOffset = Int64
|
||||||
|
-- @since 0.2.2.0
|
||||||
|
peekByteOffset :: Decoder s ByteOffset
|
||||||
|
peekByteOffset = Decoder (\k -> return (PeekByteOffset (\off# -> k (I64#
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && !defined(ARCH_32bit)
|
||||||
|
(intToInt64# off#)
|
||||||
|
#else
|
||||||
|
off#
|
||||||
|
diff --git a/cborg/src/Codec/CBOR/Magic.hs b/cborg/src/Codec/CBOR/Magic.hs
|
||||||
|
index cdeb455..bfae638 100644
|
||||||
|
--- a/cborg/src/Codec/CBOR/Magic.hs
|
||||||
|
+++ b/cborg/src/Codec/CBOR/Magic.hs
|
||||||
|
@@ -120,7 +120,7 @@ import qualified Numeric.Half as Half
|
||||||
|
import Data.Bits ((.|.), unsafeShiftL)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#if defined(ARCH_32bit)
|
||||||
|
+#if defined(ARCH_32bit) && !MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
import GHC.IntWord64 (wordToWord64#, word64ToWord#,
|
||||||
|
intToInt64#, int64ToInt#,
|
||||||
|
leWord64#, ltWord64#, word64ToInt64#)
|
||||||
|
@@ -173,7 +173,7 @@ grabWord64 (Ptr ip#) = W64# (wordToWord64# (byteSwap# (word64ToWord# (indexWord6
|
||||||
|
grabWord64 (Ptr ip#) = W64# (byteSwap# (indexWord64OffAddr# ip# 0#))
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
-grabWord64 (Ptr ip#) = W64# (byteSwap64# (word64ToWord# (indexWord64OffAddr# ip# 0#)))
|
||||||
|
+grabWord64 (Ptr ip#) = W64# (byteSwap64# (indexWord64OffAddr# ip# 0#))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#elif defined(MEM_UNALIGNED_OPS) && \
|
||||||
|
@@ -484,7 +484,7 @@ word16ToInt (W16# w#) = I# (word2Int# (word16ToWord# w#))
|
||||||
|
word32ToInt (W32# w#) = I# (word2Int# (word32ToWord# w#))
|
||||||
|
#else
|
||||||
|
word32ToInt (W32# w#) =
|
||||||
|
- case isTrue# (w# `ltWord#` 0x80000000##) of
|
||||||
|
+ case isTrue# (word32ToWord# w# `ltWord#` 0x80000000##) of
|
||||||
|
True -> Just (I# (word2Int# (word32ToWord# w#)))
|
||||||
|
False -> Nothing
|
||||||
|
#endif
|
||||||
|
@@ -530,6 +530,19 @@ word64ToInt (W64# w#) =
|
||||||
|
{-# INLINE word64ToInt #-}
|
||||||
|
|
||||||
|
#if defined(ARCH_32bit)
|
||||||
|
+#if MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
+word8ToInt64 (W8# w#) = I64# (intToInt64# (word2Int# (word8ToWord# w#)))
|
||||||
|
+word16ToInt64 (W16# w#) = I64# (intToInt64# (word2Int# (word16ToWord# w#)))
|
||||||
|
+word32ToInt64 (W32# w#) = I64# (word64ToInt64# (wordToWord64# (word32ToWord# w#)))
|
||||||
|
+word64ToInt64 (W64# w#) =
|
||||||
|
+ case isTrue# (w# `ltWord64#` uncheckedShiftL64# (wordToWord64# 1##) 63#) of
|
||||||
|
+ True -> Just (I64# (word64ToInt64# w#))
|
||||||
|
+ False -> Nothing
|
||||||
|
+
|
||||||
|
+word8ToWord64 (W8# w#) = W64# (wordToWord64# (word8ToWord# w#))
|
||||||
|
+word16ToWord64 (W16# w#) = W64# (wordToWord64# (word16ToWord# w#))
|
||||||
|
+word32ToWord64 (W32# w#) = W64# (wordToWord64# (word32ToWord# w#))
|
||||||
|
+#else
|
||||||
|
word8ToInt64 (W8# w#) = I64# (intToInt64# (word2Int# w#))
|
||||||
|
word16ToInt64 (W16# w#) = I64# (intToInt64# (word2Int# w#))
|
||||||
|
word32ToInt64 (W32# w#) = I64# (word64ToInt64# (wordToWord64# w#))
|
||||||
|
@@ -541,6 +554,7 @@ word64ToInt64 (W64# w#) =
|
||||||
|
word8ToWord64 (W8# w#) = W64# (wordToWord64# w#)
|
||||||
|
word16ToWord64 (W16# w#) = W64# (wordToWord64# w#)
|
||||||
|
word32ToWord64 (W32# w#) = W64# (wordToWord64# w#)
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
{-# INLINE word8ToInt64 #-}
|
||||||
|
{-# INLINE word16ToInt64 #-}
|
||||||
|
diff --git a/cborg/src/Codec/CBOR/Read.hs b/cborg/src/Codec/CBOR/Read.hs
|
||||||
|
index 6546575..c4dc761 100644
|
||||||
|
--- a/cborg/src/Codec/CBOR/Read.hs
|
||||||
|
+++ b/cborg/src/Codec/CBOR/Read.hs
|
||||||
|
@@ -63,7 +63,7 @@ import qualified Data.Text as T
|
||||||
|
import qualified Data.Text.Encoding as T
|
||||||
|
import Data.Word
|
||||||
|
import GHC.Word
|
||||||
|
-#if defined(ARCH_32bit)
|
||||||
|
+#if defined(ARCH_32bit) && !MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
import GHC.Exts
|
||||||
|
@@ -510,8 +510,8 @@ go_fast !bs da@(ConsumeNegWord64Canonical k) =
|
||||||
|
go_fast !bs da@(ConsumeInt64Canonical k) =
|
||||||
|
case tryConsumeInt64 (BS.unsafeHead bs) bs of
|
||||||
|
DecodeFailure -> go_fast_end bs da
|
||||||
|
- DecodedToken sz i@(I64# i#)
|
||||||
|
- | isInt64Canonical sz i -> k i# >>= go_fast (BS.unsafeDrop sz bs)
|
||||||
|
+ DecodedToken sz (I64# i#)
|
||||||
|
+ | isInt64Canonical sz i# -> k i# >>= go_fast (BS.unsafeDrop sz bs)
|
||||||
|
| otherwise -> go_fast_end bs da
|
||||||
|
|
||||||
|
go_fast !bs da@(ConsumeListLen64Canonical k) =
|
||||||
|
@@ -994,8 +994,8 @@ go_fast_end !bs (ConsumeNegWord64Canonical k) =
|
||||||
|
go_fast_end !bs (ConsumeInt64Canonical k) =
|
||||||
|
case tryConsumeInt64 (BS.unsafeHead bs) bs of
|
||||||
|
DecodeFailure -> return $! SlowFail bs "expected int64"
|
||||||
|
- DecodedToken sz i@(I64# i#)
|
||||||
|
- | isInt64Canonical sz i -> k i# >>= go_fast_end (BS.unsafeDrop sz bs)
|
||||||
|
+ DecodedToken sz (I64# i#)
|
||||||
|
+ | isInt64Canonical sz i# -> k i# >>= go_fast_end (BS.unsafeDrop sz bs)
|
||||||
|
| otherwise -> return $! SlowFail bs "non-canonical int64"
|
||||||
|
|
||||||
|
go_fast_end !bs (ConsumeListLen64Canonical k) =
|
||||||
|
@@ -1271,7 +1271,7 @@ go_slow da bs !offset = do
|
||||||
|
|
||||||
|
SlowPeekByteOffset bs' k ->
|
||||||
|
lift
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && !defined(ARCH_32bit)
|
||||||
|
(k (int64ToInt# off#))
|
||||||
|
#else
|
||||||
|
(k off#)
|
||||||
|
@@ -1381,7 +1381,7 @@ go_slow_overlapped da sz bs_cur bs_next !offset =
|
||||||
|
SlowPeekByteOffset bs_empty k ->
|
||||||
|
assert (BS.null bs_empty) $ do
|
||||||
|
lift
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && !defined(ARCH_32bit)
|
||||||
|
(k (int64ToInt# off#))
|
||||||
|
#else
|
||||||
|
(k off#)
|
||||||
|
@@ -1565,17 +1565,17 @@ isIntCanonical sz i
|
||||||
|
{-# INLINE isWord64Canonical #-}
|
||||||
|
isWord64Canonical :: Int -> Word64 -> Bool
|
||||||
|
isWord64Canonical sz w
|
||||||
|
- | sz == 2 = w > 0x17)
|
||||||
|
- | sz == 3 = w > 0xff)
|
||||||
|
- | sz == 5 = w > 0xffff)
|
||||||
|
- | sz == 9 = w > 0xffffffff)
|
||||||
|
+ | sz == 2 = w > 0x17
|
||||||
|
+ | sz == 3 = w > 0xff
|
||||||
|
+ | sz == 5 = w > 0xffff
|
||||||
|
+ | sz == 9 = w > 0xffffffff
|
||||||
|
| otherwise = True
|
||||||
|
|
||||||
|
{-# INLINE isInt64Canonical #-}
|
||||||
|
isInt64Canonical :: Int -> Int64# -> Bool
|
||||||
|
isInt64Canonical sz i#
|
||||||
|
- | isTrue# (i# `ltInt64#` intToInt64# 0#) = isWord64Canonical sz (not64# w#)
|
||||||
|
- | otherwise = isWord64Canonical sz w#
|
||||||
|
+ | isTrue# (i# `ltInt64#` intToInt64# 0#) = isWord64Canonical sz (W64# (not64# w#))
|
||||||
|
+ | otherwise = isWord64Canonical sz (W64# w#)
|
||||||
|
where
|
||||||
|
w# = int64ToWord64# i#
|
||||||
|
#endif
|
||||||
|
@@ -1796,7 +1796,7 @@ tryConsumeInteger hdr !bs = case word8ToWord hdr of
|
||||||
|
0x1b -> let !w = eatTailWord64 bs
|
||||||
|
sz = 9
|
||||||
|
#if defined(ARCH_32bit)
|
||||||
|
- in DecodedToken sz (BigIntToken (isWord64Canonical sz (word64ToWord w)) $! toInteger w)
|
||||||
|
+ in DecodedToken sz (BigIntToken (isWord64Canonical sz w) $! toInteger w)
|
||||||
|
#else
|
||||||
|
in DecodedToken sz (BigIntToken (isWordCanonical sz (word64ToWord w)) $! toInteger w)
|
||||||
|
#endif
|
||||||
|
@@ -1838,7 +1838,7 @@ tryConsumeInteger hdr !bs = case word8ToWord hdr of
|
||||||
|
0x3b -> let !w = eatTailWord64 bs
|
||||||
|
sz = 9
|
||||||
|
#if defined(ARCH_32bit)
|
||||||
|
- in DecodedToken sz (BigIntToken (isWord64Canonical sz (word64ToWord w)) $! (-1 - toInteger w))
|
||||||
|
+ in DecodedToken sz (BigIntToken (isWord64Canonical sz w) $! (-1 - toInteger w))
|
||||||
|
#else
|
||||||
|
in DecodedToken sz (BigIntToken (isWordCanonical sz (word64ToWord w)) $! (-1 - toInteger w))
|
||||||
|
#endif
|
36
srcpkgs/hledger/patches/memory.patch
Normal file
36
srcpkgs/hledger/patches/memory.patch
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
From 2738929ce15b4c8704bbbac24a08539b5d4bf30e Mon Sep 17 00:00:00 2001
|
||||||
|
From: sternenseemann <sternenseemann@systemli.org>
|
||||||
|
Date: Mon, 14 Aug 2023 10:51:30 +0200
|
||||||
|
Subject: [PATCH] Data.Memory.Internal.CompatPrim64: fix 32 bit with GHC >= 9.4
|
||||||
|
|
||||||
|
Since 9.4, GHC.Prim exports Word64# operations like timesWord64# even on
|
||||||
|
i686 whereas GHC.IntWord64 no longer exists. Therefore, we can just use
|
||||||
|
the ready made solution.
|
||||||
|
|
||||||
|
Closes #98, as it should be the better solution.
|
||||||
|
---
|
||||||
|
Data/Memory/Internal/CompatPrim64.hs | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/Data/Memory/Internal/CompatPrim64.hs b/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
index b9eef8a..a134c88 100644
|
||||||
|
--- a/memory/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
+++ b/memory/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
@@ -150,6 +150,7 @@ w64# :: Word# -> Word# -> Word# -> Word64#
|
||||||
|
w64# w _ _ = w
|
||||||
|
|
||||||
|
#elif WORD_SIZE_IN_BITS == 32
|
||||||
|
+#if __GLASGOW_HASKELL__ < 904
|
||||||
|
import GHC.IntWord64
|
||||||
|
import GHC.Prim (Word#)
|
||||||
|
|
||||||
|
@@ -158,6 +159,9 @@ timesWord64# a b =
|
||||||
|
let !ai = word64ToInt64# a
|
||||||
|
!bi = word64ToInt64# b
|
||||||
|
in int64ToWord64# (timesInt64# ai bi)
|
||||||
|
+#else
|
||||||
|
+import GHC.Prim
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
w64# :: Word# -> Word# -> Word# -> Word64#
|
||||||
|
w64# _ hw lw =
|
12
srcpkgs/hledger/patches/stack.patch
Normal file
12
srcpkgs/hledger/patches/stack.patch
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
--- a/stack98.yaml 2025-07-08 09:29:33.086073888 +0100
|
||||||
|
+++ b/stack98.yaml 2025-07-08 09:29:49.199125121 +0100
|
||||||
|
@@ -3,6 +3,9 @@
|
||||||
|
resolver: lts-23.11
|
||||||
|
|
||||||
|
packages:
|
||||||
|
+- basement
|
||||||
|
+- memory
|
||||||
|
+- cborg
|
||||||
|
- hledger-lib
|
||||||
|
- hledger
|
||||||
|
- hledger-ui
|
|
@ -1,6 +1,6 @@
|
||||||
# Template file for 'hledger'
|
# Template file for 'hledger'
|
||||||
pkgname=hledger
|
pkgname=hledger
|
||||||
version=1.27.1
|
version=1.43.2
|
||||||
revision=1
|
revision=1
|
||||||
build_style=haskell-stack
|
build_style=haskell-stack
|
||||||
makedepends="zlib-devel ncurses-devel"
|
makedepends="zlib-devel ncurses-devel"
|
||||||
|
@ -9,10 +9,25 @@ maintainer="Inokentiy Babushkin <twk@twki.de>"
|
||||||
license="GPL-3.0-or-later"
|
license="GPL-3.0-or-later"
|
||||||
homepage="https://hledger.org/"
|
homepage="https://hledger.org/"
|
||||||
changelog="https://hackage.haskell.org/package/hledger-${version}/changelog"
|
changelog="https://hackage.haskell.org/package/hledger-${version}/changelog"
|
||||||
distfiles="https://github.com/simonmichael/hledger/archive/${version}.tar.gz"
|
distfiles="https://github.com/simonmichael/hledger/archive/${version}.tar.gz
|
||||||
checksum=218f6005b7b30308cc43523dc7b61c818bb649abc217a6c8803e8f82b408d239
|
https://hackage.haskell.org/package/basement-0.0.16/basement-0.0.16.tar.gz
|
||||||
|
https://hackage.haskell.org/package/memory-0.18.0/memory-0.18.0.tar.gz
|
||||||
|
https://hackage.haskell.org/package/cborg-0.2.10.0/cborg-0.2.10.0.tar.gz"
|
||||||
|
checksum="60b74c70ddfc6b84ca87debd2ac302aac754da3c0d9089821182e56796cb841e
|
||||||
|
7fb77e249aef76ba5aed3059d556800ce02b614597c488ba01f0a16449146300
|
||||||
|
fd4eb6f638e24b81b4e6cdd68772a531726f2f67686c8969d3407d82f7862e3e
|
||||||
|
17fe070c38fc498cab49bcb9d6215b7747d53bedf96502e9bcce9cad73b9c797"
|
||||||
nopie_files="/usr/bin/hledger"
|
nopie_files="/usr/bin/hledger"
|
||||||
nocross=yes # Can't yet cross compile Haskell
|
nocross=yes # Can't yet cross compile Haskell
|
||||||
|
skip_extraction="basement-0.0.16.tar.gz memory-0.18.0.tar.gz cborg-0.2.10.0.tar.gz"
|
||||||
|
|
||||||
|
export STACK_YAML=stack98.yaml
|
||||||
|
|
||||||
|
post_extract() {
|
||||||
|
vsrcextract -C basement basement-0.0.16.tar.gz
|
||||||
|
vsrcextract -C memory memory-0.18.0.tar.gz
|
||||||
|
vsrcextract -C cborg cborg-0.2.10.0.tar.gz
|
||||||
|
}
|
||||||
|
|
||||||
post_install() {
|
post_install() {
|
||||||
vman hledger/hledger.1
|
vman hledger/hledger.1
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
# Template file for 'hlint'
|
# Template file for 'hlint'
|
||||||
pkgname=hlint
|
pkgname=hlint
|
||||||
version=3.3.6
|
version=3.10
|
||||||
revision=1
|
revision=1
|
||||||
build_style=haskell-stack
|
build_style=cabal
|
||||||
stackage="lts-19.0"
|
cabal_index_state="2025-02-02T20:29:37Z"
|
||||||
makedepends="ncurses-devel"
|
makedepends="ncurses-devel"
|
||||||
short_desc="Haskell source code suggestions"
|
short_desc="Haskell source code suggestions"
|
||||||
maintainer="Inokentiy Babushkin <twk@twki.de>"
|
maintainer="Inokentiy Babushkin <twk@twki.de>"
|
||||||
license="BSD-3-Clause"
|
license="BSD-3-Clause"
|
||||||
homepage="https://github.com/ndmitchell/hlint"
|
homepage="https://github.com/ndmitchell/hlint"
|
||||||
distfiles="https://github.com/ndmitchell/${pkgname}/archive/v${version}.tar.gz"
|
distfiles="https://github.com/ndmitchell/${pkgname}/archive/v${version}.tar.gz"
|
||||||
checksum=7d536c03f77a0c259efb2b00b525ef34578ca8a4a95ccb412708e8c7172e2e6a
|
checksum=e2a43c6e3981a182fcf4abcb83e2aad948bf8475c570011fb31a902b64bcec4a
|
||||||
nocross=yes # Can't yet cross compile Haskell
|
nocross=yes # Can't yet cross compile Haskell
|
||||||
nopie_files="/usr/bin/hlint"
|
nopie_files="/usr/bin/hlint"
|
||||||
|
|
||||||
|
|
242
srcpkgs/hoogle/patches/basement.patch
Normal file
242
srcpkgs/hoogle/patches/basement.patch
Normal file
|
@ -0,0 +1,242 @@
|
||||||
|
From 38be2c93acb6f459d24ed6c626981c35ccf44095 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sylvain Henry <sylvain@haskus.fr>
|
||||||
|
Date: Thu, 16 Feb 2023 15:40:45 +0100
|
||||||
|
Subject: [PATCH] Fix build on 32-bit architectures
|
||||||
|
|
||||||
|
---
|
||||||
|
basement/Basement/Bits.hs | 4 ++++
|
||||||
|
basement/Basement/From.hs | 24 -----------------------
|
||||||
|
basement/Basement/Numerical/Additive.hs | 4 ++++
|
||||||
|
basement/Basement/Numerical/Conversion.hs | 20 +++++++++++++++++++
|
||||||
|
basement/Basement/PrimType.hs | 6 +++++-
|
||||||
|
basement/Basement/Types/OffsetSize.hs | 22 +++++++++++++++++++--
|
||||||
|
6 files changed, 53 insertions(+), 27 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/basement/Basement/Bits.hs b/basement/Basement/Bits.hs
|
||||||
|
index 7eeea0f5..24520ed7 100644
|
||||||
|
--- a/basement/Basement/Bits.hs
|
||||||
|
+++ b/basement/Basement/Bits.hs
|
||||||
|
@@ -54,8 +54,12 @@ import GHC.Int
|
||||||
|
import Basement.Compat.Primitive
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | operation over finite bits
|
||||||
|
class FiniteBitsOps bits where
|
||||||
|
diff --git a/basement/Basement/From.hs b/basement/Basement/From.hs
|
||||||
|
index 7bbe141c..80014b3e 100644
|
||||||
|
--- a/basement/Basement/From.hs
|
||||||
|
+++ b/basement/Basement/From.hs
|
||||||
|
@@ -272,23 +272,11 @@ instance (NatWithinBound (CountOf ty) n, KnownNat n, PrimType ty)
|
||||||
|
tryFrom = BlockN.toBlockN . UArray.toBlock . BoxArray.mapToUnboxed id
|
||||||
|
|
||||||
|
instance (KnownNat n, NatWithinBound Word8 n) => From (Zn64 n) Word8 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word16 n) => From (Zn64 n) Word16 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word32 n) => From (Zn64 n) Word32 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance From (Zn64 n) Word64 where
|
||||||
|
from = unZn64
|
||||||
|
instance From (Zn64 n) Word128 where
|
||||||
|
@@ -297,23 +285,11 @@ instance From (Zn64 n) Word256 where
|
||||||
|
from = from . unZn64
|
||||||
|
|
||||||
|
instance (KnownNat n, NatWithinBound Word8 n) => From (Zn n) Word8 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word16 n) => From (Zn n) Word16 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word32 n) => From (Zn n) Word32 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word64 n) => From (Zn n) Word64 where
|
||||||
|
from = naturalToWord64 . unZn
|
||||||
|
instance (KnownNat n, NatWithinBound Word128 n) => From (Zn n) Word128 where
|
||||||
|
diff --git a/basement/Basement/Numerical/Additive.hs b/basement/Basement/Numerical/Additive.hs
|
||||||
|
index d0dfb973..8ab65aa0 100644
|
||||||
|
--- a/basement/Basement/Numerical/Additive.hs
|
||||||
|
+++ b/basement/Basement/Numerical/Additive.hs
|
||||||
|
@@ -30,8 +30,12 @@ import qualified Basement.Types.Word128 as Word128
|
||||||
|
import qualified Basement.Types.Word256 as Word256
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | Represent class of things that can be added together,
|
||||||
|
-- contains a neutral element and is commutative.
|
||||||
|
diff --git a/basement/Basement/Numerical/Conversion.hs b/basement/Basement/Numerical/Conversion.hs
|
||||||
|
index db502c07..fddc8232 100644
|
||||||
|
--- a/basement/Basement/Numerical/Conversion.hs
|
||||||
|
+++ b/basement/Basement/Numerical/Conversion.hs
|
||||||
|
@@ -26,8 +26,12 @@ import GHC.Word
|
||||||
|
import Basement.Compat.Primitive
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
intToInt64 :: Int -> Int64
|
||||||
|
#if WORD_SIZE_IN_BITS == 64
|
||||||
|
@@ -96,11 +100,22 @@ int64ToWord64 (I64# i) = W64# (int64ToWord64# i)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS == 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+word64ToWord# :: Word64# -> Word#
|
||||||
|
+word64ToWord# i = word64ToWord# i
|
||||||
|
+#else
|
||||||
|
word64ToWord# :: Word# -> Word#
|
||||||
|
word64ToWord# i = i
|
||||||
|
+#endif
|
||||||
|
{-# INLINE word64ToWord# #-}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+word64ToWord32# :: Word64# -> Word32#
|
||||||
|
+word64ToWord32# i = wordToWord32# (word64ToWord# i)
|
||||||
|
+{-# INLINE word64ToWord32# #-}
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
-- | 2 Word32s
|
||||||
|
data Word32x2 = Word32x2 {-# UNPACK #-} !Word32
|
||||||
|
{-# UNPACK #-} !Word32
|
||||||
|
@@ -113,9 +128,14 @@ word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# (G
|
||||||
|
word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# w64 32#))) (W32# (wordToWord32# w64))
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+word64ToWord32s :: Word64 -> Word32x2
|
||||||
|
+word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord32# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord32# w64))
|
||||||
|
+#else
|
||||||
|
word64ToWord32s :: Word64 -> Word32x2
|
||||||
|
word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord# w64))
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
wordToChar :: Word -> Char
|
||||||
|
wordToChar (W# word) = C# (chr# (word2Int# word))
|
||||||
|
diff --git a/basement/Basement/PrimType.hs b/basement/Basement/PrimType.hs
|
||||||
|
index f8ca2926..a888ec91 100644
|
||||||
|
--- a/basement/Basement/PrimType.hs
|
||||||
|
+++ b/basement/Basement/PrimType.hs
|
||||||
|
@@ -54,7 +54,11 @@ import Basement.Nat
|
||||||
|
import qualified Prelude (quot)
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
-import GHC.IntWord64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
+import GHC.IntWord64
|
||||||
|
+#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FOUNDATION_BOUNDS_CHECK
|
||||||
|
diff --git a/basement/Basement/Types/OffsetSize.hs b/basement/Basement/Types/OffsetSize.hs
|
||||||
|
index cd944927..1ea80dad 100644
|
||||||
|
--- a/basement/Basement/Types/OffsetSize.hs
|
||||||
|
+++ b/basement/Basement/Types/OffsetSize.hs
|
||||||
|
@@ -70,8 +70,12 @@ import Data.List (foldl')
|
||||||
|
import qualified Prelude
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | File size in bytes
|
||||||
|
newtype FileSize = FileSize Word64
|
||||||
|
@@ -225,20 +229,26 @@ countOfRoundUp alignment (CountOf n) = CountOf ((n + (alignment-1)) .&. compleme
|
||||||
|
|
||||||
|
csizeOfSize :: CountOf Word8 -> CSize
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+csizeOfSize (CountOf (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
|
||||||
|
+#else
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W32# (int2Word# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
|
||||||
|
-
|
||||||
|
#else
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W64# (int2Word# sz))
|
||||||
|
-
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
csizeOfOffset :: Offset8 -> CSize
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+csizeOfOffset (Offset (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
|
||||||
|
+#else
|
||||||
|
csizeOfOffset (Offset (I# sz)) = CSize (W32# (int2Word# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
csizeOfOffset (Offset (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
|
||||||
|
@@ -250,7 +260,11 @@ csizeOfOffset (Offset (I# sz)) = CSize (W64# (int2Word# sz))
|
||||||
|
sizeOfCSSize :: CSsize -> CountOf Word8
|
||||||
|
sizeOfCSSize (CSsize (-1)) = error "invalid size: CSSize is -1"
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# (int32ToInt# sz))
|
||||||
|
+#else
|
||||||
|
sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# sz)
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# (int64ToInt# sz))
|
||||||
|
@@ -261,7 +275,11 @@ sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# sz)
|
||||||
|
|
||||||
|
sizeOfCSize :: CSize -> CountOf Word8
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# (word32ToWord# sz)))
|
||||||
|
+#else
|
||||||
|
sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
sizeOfCSize (CSize (W64# sz)) = CountOf (I# (word2Int# (word64ToWord# sz)))
|
11
srcpkgs/hoogle/patches/cborg-bounds.patch
Normal file
11
srcpkgs/hoogle/patches/cborg-bounds.patch
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
--- a/cborg/cborg.cabal 2025-07-06 20:31:00.307574779 +0100
|
||||||
|
+++ b/cborg/cborg.cabal 2025-07-06 20:31:05.085962403 +0100
|
||||||
|
@@ -164,7 +164,7 @@
|
||||||
|
scientific >= 0.3 && < 0.4,
|
||||||
|
tasty >= 0.11 && < 1.6,
|
||||||
|
tasty-hunit >= 0.9 && < 0.11,
|
||||||
|
- tasty-quickcheck >= 0.8 && < 0.11,
|
||||||
|
+ tasty-quickcheck >= 0.8 && < 0.12,
|
||||||
|
vector >= 0.10 && < 0.14
|
||||||
|
if !impl(ghc >= 8.0)
|
||||||
|
build-depends:
|
212
srcpkgs/hoogle/patches/cborg.patch
Normal file
212
srcpkgs/hoogle/patches/cborg.patch
Normal file
|
@ -0,0 +1,212 @@
|
||||||
|
commit 9d1418bb8b38cb9a438d7f18835b1ef7ef12b234
|
||||||
|
Author: amesgen <amesgen@amesgen.de>
|
||||||
|
Date: Sun Sep 10 20:03:40 2023 +0200
|
||||||
|
|
||||||
|
Fix compilation and support GHC >=9.2 on 32bit
|
||||||
|
|
||||||
|
diff --git a/cborg/src/Codec/CBOR/Decoding.hs b/cborg/src/Codec/CBOR/Decoding.hs
|
||||||
|
index a7d774c..bf68e68 100644
|
||||||
|
--- a/cborg/src/Codec/CBOR/Decoding.hs
|
||||||
|
+++ b/cborg/src/Codec/CBOR/Decoding.hs
|
||||||
|
@@ -315,11 +315,16 @@ getDecodeAction (Decoder k) = k (\x -> return (Done x))
|
||||||
|
toInt8 :: Int# -> Int8
|
||||||
|
toInt16 :: Int# -> Int16
|
||||||
|
toInt32 :: Int# -> Int32
|
||||||
|
-toInt64 :: Int# -> Int64
|
||||||
|
toWord8 :: Word# -> Word8
|
||||||
|
toWord16 :: Word# -> Word16
|
||||||
|
toWord32 :: Word# -> Word32
|
||||||
|
+#if defined(ARCH_64bit)
|
||||||
|
+toInt64 :: Int# -> Int64
|
||||||
|
toWord64 :: Word# -> Word64
|
||||||
|
+#else
|
||||||
|
+toInt64 :: Int64# -> Int64
|
||||||
|
+toWord64 :: Word64# -> Word64
|
||||||
|
+#endif
|
||||||
|
#if MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
toInt8 n = I8# (intToInt8# n)
|
||||||
|
toInt16 n = I16# (intToInt16# n)
|
||||||
|
@@ -327,8 +332,7 @@ toInt32 n = I32# (intToInt32# n)
|
||||||
|
toWord8 n = W8# (wordToWord8# n)
|
||||||
|
toWord16 n = W16# (wordToWord16# n)
|
||||||
|
toWord32 n = W32# (wordToWord32# n)
|
||||||
|
-#if WORD_SIZE_IN_BITS == 64
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && defined(ARCH_64bit)
|
||||||
|
toInt64 n = I64# (intToInt64# n)
|
||||||
|
toWord64 n = W64# (wordToWord64# n)
|
||||||
|
#else
|
||||||
|
@@ -336,10 +340,6 @@ toInt64 n = I64# n
|
||||||
|
toWord64 n = W64# n
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
-toInt64 n = I64# (intToInt64# n)
|
||||||
|
-toWord64 n = W64# (wordToWord64# n)
|
||||||
|
-#endif
|
||||||
|
-#else
|
||||||
|
toInt8 n = I8# n
|
||||||
|
toInt16 n = I16# n
|
||||||
|
toInt32 n = I32# n
|
||||||
|
@@ -986,7 +986,7 @@ type ByteOffset = Int64
|
||||||
|
-- @since 0.2.2.0
|
||||||
|
peekByteOffset :: Decoder s ByteOffset
|
||||||
|
peekByteOffset = Decoder (\k -> return (PeekByteOffset (\off# -> k (I64#
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && !defined(ARCH_32bit)
|
||||||
|
(intToInt64# off#)
|
||||||
|
#else
|
||||||
|
off#
|
||||||
|
diff --git a/cborg/src/Codec/CBOR/Magic.hs b/cborg/src/Codec/CBOR/Magic.hs
|
||||||
|
index cdeb455..bfae638 100644
|
||||||
|
--- a/cborg/src/Codec/CBOR/Magic.hs
|
||||||
|
+++ b/cborg/src/Codec/CBOR/Magic.hs
|
||||||
|
@@ -120,7 +120,7 @@ import qualified Numeric.Half as Half
|
||||||
|
import Data.Bits ((.|.), unsafeShiftL)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#if defined(ARCH_32bit)
|
||||||
|
+#if defined(ARCH_32bit) && !MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
import GHC.IntWord64 (wordToWord64#, word64ToWord#,
|
||||||
|
intToInt64#, int64ToInt#,
|
||||||
|
leWord64#, ltWord64#, word64ToInt64#)
|
||||||
|
@@ -173,7 +173,7 @@ grabWord64 (Ptr ip#) = W64# (wordToWord64# (byteSwap# (word64ToWord# (indexWord6
|
||||||
|
grabWord64 (Ptr ip#) = W64# (byteSwap# (indexWord64OffAddr# ip# 0#))
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
-grabWord64 (Ptr ip#) = W64# (byteSwap64# (word64ToWord# (indexWord64OffAddr# ip# 0#)))
|
||||||
|
+grabWord64 (Ptr ip#) = W64# (byteSwap64# (indexWord64OffAddr# ip# 0#))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#elif defined(MEM_UNALIGNED_OPS) && \
|
||||||
|
@@ -484,7 +484,7 @@ word16ToInt (W16# w#) = I# (word2Int# (word16ToWord# w#))
|
||||||
|
word32ToInt (W32# w#) = I# (word2Int# (word32ToWord# w#))
|
||||||
|
#else
|
||||||
|
word32ToInt (W32# w#) =
|
||||||
|
- case isTrue# (w# `ltWord#` 0x80000000##) of
|
||||||
|
+ case isTrue# (word32ToWord# w# `ltWord#` 0x80000000##) of
|
||||||
|
True -> Just (I# (word2Int# (word32ToWord# w#)))
|
||||||
|
False -> Nothing
|
||||||
|
#endif
|
||||||
|
@@ -530,6 +530,19 @@ word64ToInt (W64# w#) =
|
||||||
|
{-# INLINE word64ToInt #-}
|
||||||
|
|
||||||
|
#if defined(ARCH_32bit)
|
||||||
|
+#if MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
+word8ToInt64 (W8# w#) = I64# (intToInt64# (word2Int# (word8ToWord# w#)))
|
||||||
|
+word16ToInt64 (W16# w#) = I64# (intToInt64# (word2Int# (word16ToWord# w#)))
|
||||||
|
+word32ToInt64 (W32# w#) = I64# (word64ToInt64# (wordToWord64# (word32ToWord# w#)))
|
||||||
|
+word64ToInt64 (W64# w#) =
|
||||||
|
+ case isTrue# (w# `ltWord64#` uncheckedShiftL64# (wordToWord64# 1##) 63#) of
|
||||||
|
+ True -> Just (I64# (word64ToInt64# w#))
|
||||||
|
+ False -> Nothing
|
||||||
|
+
|
||||||
|
+word8ToWord64 (W8# w#) = W64# (wordToWord64# (word8ToWord# w#))
|
||||||
|
+word16ToWord64 (W16# w#) = W64# (wordToWord64# (word16ToWord# w#))
|
||||||
|
+word32ToWord64 (W32# w#) = W64# (wordToWord64# (word32ToWord# w#))
|
||||||
|
+#else
|
||||||
|
word8ToInt64 (W8# w#) = I64# (intToInt64# (word2Int# w#))
|
||||||
|
word16ToInt64 (W16# w#) = I64# (intToInt64# (word2Int# w#))
|
||||||
|
word32ToInt64 (W32# w#) = I64# (word64ToInt64# (wordToWord64# w#))
|
||||||
|
@@ -541,6 +554,7 @@ word64ToInt64 (W64# w#) =
|
||||||
|
word8ToWord64 (W8# w#) = W64# (wordToWord64# w#)
|
||||||
|
word16ToWord64 (W16# w#) = W64# (wordToWord64# w#)
|
||||||
|
word32ToWord64 (W32# w#) = W64# (wordToWord64# w#)
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
{-# INLINE word8ToInt64 #-}
|
||||||
|
{-# INLINE word16ToInt64 #-}
|
||||||
|
diff --git a/cborg/src/Codec/CBOR/Read.hs b/cborg/src/Codec/CBOR/Read.hs
|
||||||
|
index 6546575..c4dc761 100644
|
||||||
|
--- a/cborg/src/Codec/CBOR/Read.hs
|
||||||
|
+++ b/cborg/src/Codec/CBOR/Read.hs
|
||||||
|
@@ -63,7 +63,7 @@ import qualified Data.Text as T
|
||||||
|
import qualified Data.Text.Encoding as T
|
||||||
|
import Data.Word
|
||||||
|
import GHC.Word
|
||||||
|
-#if defined(ARCH_32bit)
|
||||||
|
+#if defined(ARCH_32bit) && !MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
import GHC.Exts
|
||||||
|
@@ -510,8 +510,8 @@ go_fast !bs da@(ConsumeNegWord64Canonical k) =
|
||||||
|
go_fast !bs da@(ConsumeInt64Canonical k) =
|
||||||
|
case tryConsumeInt64 (BS.unsafeHead bs) bs of
|
||||||
|
DecodeFailure -> go_fast_end bs da
|
||||||
|
- DecodedToken sz i@(I64# i#)
|
||||||
|
- | isInt64Canonical sz i -> k i# >>= go_fast (BS.unsafeDrop sz bs)
|
||||||
|
+ DecodedToken sz (I64# i#)
|
||||||
|
+ | isInt64Canonical sz i# -> k i# >>= go_fast (BS.unsafeDrop sz bs)
|
||||||
|
| otherwise -> go_fast_end bs da
|
||||||
|
|
||||||
|
go_fast !bs da@(ConsumeListLen64Canonical k) =
|
||||||
|
@@ -994,8 +994,8 @@ go_fast_end !bs (ConsumeNegWord64Canonical k) =
|
||||||
|
go_fast_end !bs (ConsumeInt64Canonical k) =
|
||||||
|
case tryConsumeInt64 (BS.unsafeHead bs) bs of
|
||||||
|
DecodeFailure -> return $! SlowFail bs "expected int64"
|
||||||
|
- DecodedToken sz i@(I64# i#)
|
||||||
|
- | isInt64Canonical sz i -> k i# >>= go_fast_end (BS.unsafeDrop sz bs)
|
||||||
|
+ DecodedToken sz (I64# i#)
|
||||||
|
+ | isInt64Canonical sz i# -> k i# >>= go_fast_end (BS.unsafeDrop sz bs)
|
||||||
|
| otherwise -> return $! SlowFail bs "non-canonical int64"
|
||||||
|
|
||||||
|
go_fast_end !bs (ConsumeListLen64Canonical k) =
|
||||||
|
@@ -1271,7 +1271,7 @@ go_slow da bs !offset = do
|
||||||
|
|
||||||
|
SlowPeekByteOffset bs' k ->
|
||||||
|
lift
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && !defined(ARCH_32bit)
|
||||||
|
(k (int64ToInt# off#))
|
||||||
|
#else
|
||||||
|
(k off#)
|
||||||
|
@@ -1381,7 +1381,7 @@ go_slow_overlapped da sz bs_cur bs_next !offset =
|
||||||
|
SlowPeekByteOffset bs_empty k ->
|
||||||
|
assert (BS.null bs_empty) $ do
|
||||||
|
lift
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && !defined(ARCH_32bit)
|
||||||
|
(k (int64ToInt# off#))
|
||||||
|
#else
|
||||||
|
(k off#)
|
||||||
|
@@ -1565,17 +1565,17 @@ isIntCanonical sz i
|
||||||
|
{-# INLINE isWord64Canonical #-}
|
||||||
|
isWord64Canonical :: Int -> Word64 -> Bool
|
||||||
|
isWord64Canonical sz w
|
||||||
|
- | sz == 2 = w > 0x17)
|
||||||
|
- | sz == 3 = w > 0xff)
|
||||||
|
- | sz == 5 = w > 0xffff)
|
||||||
|
- | sz == 9 = w > 0xffffffff)
|
||||||
|
+ | sz == 2 = w > 0x17
|
||||||
|
+ | sz == 3 = w > 0xff
|
||||||
|
+ | sz == 5 = w > 0xffff
|
||||||
|
+ | sz == 9 = w > 0xffffffff
|
||||||
|
| otherwise = True
|
||||||
|
|
||||||
|
{-# INLINE isInt64Canonical #-}
|
||||||
|
isInt64Canonical :: Int -> Int64# -> Bool
|
||||||
|
isInt64Canonical sz i#
|
||||||
|
- | isTrue# (i# `ltInt64#` intToInt64# 0#) = isWord64Canonical sz (not64# w#)
|
||||||
|
- | otherwise = isWord64Canonical sz w#
|
||||||
|
+ | isTrue# (i# `ltInt64#` intToInt64# 0#) = isWord64Canonical sz (W64# (not64# w#))
|
||||||
|
+ | otherwise = isWord64Canonical sz (W64# w#)
|
||||||
|
where
|
||||||
|
w# = int64ToWord64# i#
|
||||||
|
#endif
|
||||||
|
@@ -1796,7 +1796,7 @@ tryConsumeInteger hdr !bs = case word8ToWord hdr of
|
||||||
|
0x1b -> let !w = eatTailWord64 bs
|
||||||
|
sz = 9
|
||||||
|
#if defined(ARCH_32bit)
|
||||||
|
- in DecodedToken sz (BigIntToken (isWord64Canonical sz (word64ToWord w)) $! toInteger w)
|
||||||
|
+ in DecodedToken sz (BigIntToken (isWord64Canonical sz w) $! toInteger w)
|
||||||
|
#else
|
||||||
|
in DecodedToken sz (BigIntToken (isWordCanonical sz (word64ToWord w)) $! toInteger w)
|
||||||
|
#endif
|
||||||
|
@@ -1838,7 +1838,7 @@ tryConsumeInteger hdr !bs = case word8ToWord hdr of
|
||||||
|
0x3b -> let !w = eatTailWord64 bs
|
||||||
|
sz = 9
|
||||||
|
#if defined(ARCH_32bit)
|
||||||
|
- in DecodedToken sz (BigIntToken (isWord64Canonical sz (word64ToWord w)) $! (-1 - toInteger w))
|
||||||
|
+ in DecodedToken sz (BigIntToken (isWord64Canonical sz w) $! (-1 - toInteger w))
|
||||||
|
#else
|
||||||
|
in DecodedToken sz (BigIntToken (isWordCanonical sz (word64ToWord w)) $! (-1 - toInteger w))
|
||||||
|
#endif
|
36
srcpkgs/hoogle/patches/memory.patch
Normal file
36
srcpkgs/hoogle/patches/memory.patch
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
From 2738929ce15b4c8704bbbac24a08539b5d4bf30e Mon Sep 17 00:00:00 2001
|
||||||
|
From: sternenseemann <sternenseemann@systemli.org>
|
||||||
|
Date: Mon, 14 Aug 2023 10:51:30 +0200
|
||||||
|
Subject: [PATCH] Data.Memory.Internal.CompatPrim64: fix 32 bit with GHC >= 9.4
|
||||||
|
|
||||||
|
Since 9.4, GHC.Prim exports Word64# operations like timesWord64# even on
|
||||||
|
i686 whereas GHC.IntWord64 no longer exists. Therefore, we can just use
|
||||||
|
the ready made solution.
|
||||||
|
|
||||||
|
Closes #98, as it should be the better solution.
|
||||||
|
---
|
||||||
|
Data/Memory/Internal/CompatPrim64.hs | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/Data/Memory/Internal/CompatPrim64.hs b/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
index b9eef8a..a134c88 100644
|
||||||
|
--- a/memory/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
+++ b/memory/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
@@ -150,6 +150,7 @@ w64# :: Word# -> Word# -> Word# -> Word64#
|
||||||
|
w64# w _ _ = w
|
||||||
|
|
||||||
|
#elif WORD_SIZE_IN_BITS == 32
|
||||||
|
+#if __GLASGOW_HASKELL__ < 904
|
||||||
|
import GHC.IntWord64
|
||||||
|
import GHC.Prim (Word#)
|
||||||
|
|
||||||
|
@@ -158,6 +159,9 @@ timesWord64# a b =
|
||||||
|
let !ai = word64ToInt64# a
|
||||||
|
!bi = word64ToInt64# b
|
||||||
|
in int64ToWord64# (timesInt64# ai bi)
|
||||||
|
+#else
|
||||||
|
+import GHC.Prim
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
w64# :: Word# -> Word# -> Word# -> Word64#
|
||||||
|
w64# _ hw lw =
|
|
@ -1,18 +1,31 @@
|
||||||
# Template file for 'hoogle'
|
# Template file for 'hoogle'
|
||||||
pkgname=hoogle
|
pkgname=hoogle
|
||||||
version=5.0.18.3
|
version=5.0.18.4
|
||||||
revision=1
|
revision=1
|
||||||
build_style=haskell-stack
|
build_style=haskell-stack
|
||||||
stackage="lts-19.0"
|
stackage="lts-23.26"
|
||||||
makedepends="zlib-devel"
|
makedepends="zlib-devel"
|
||||||
short_desc="Haskell API search engine"
|
short_desc="Haskell API search engine"
|
||||||
maintainer="Inokentiy Babushkin <twk@twki.de>"
|
maintainer="Inokentiy Babushkin <twk@twki.de>"
|
||||||
license="BSD-3-Clause"
|
license="BSD-3-Clause"
|
||||||
homepage="https://hoogle.haskell.org/"
|
homepage="https://hoogle.haskell.org/"
|
||||||
distfiles="https://github.com/ndmitchell/${pkgname}/archive/v${version}.tar.gz"
|
distfiles="https://github.com/ndmitchell/${pkgname}/archive/v${version}.tar.gz
|
||||||
checksum=a2765fcbaf99fe67a64ef29fe50e69fb380cce07807cddeb0836c148b1ae472b
|
https://hackage.haskell.org/package/basement-0.0.16/basement-0.0.16.tar.gz
|
||||||
|
https://hackage.haskell.org/package/memory-0.18.0/memory-0.18.0.tar.gz
|
||||||
|
https://hackage.haskell.org/package/cborg-0.2.10.0/cborg-0.2.10.0.tar.gz"
|
||||||
|
checksum="f42e1da527d3217e1adbb82c9611b945341b76b1fc85f47f9c04d711c73baf95
|
||||||
|
7fb77e249aef76ba5aed3059d556800ce02b614597c488ba01f0a16449146300
|
||||||
|
fd4eb6f638e24b81b4e6cdd68772a531726f2f67686c8969d3407d82f7862e3e
|
||||||
|
17fe070c38fc498cab49bcb9d6215b7747d53bedf96502e9bcce9cad73b9c797"
|
||||||
nopie_files="/usr/bin/hoogle"
|
nopie_files="/usr/bin/hoogle"
|
||||||
nocross=yes # Can't yet cross compile Haskell
|
nocross=yes # Can't yet cross compile Haskell
|
||||||
|
skip_extraction="basement-0.0.16.tar.gz memory-0.18.0.tar.gz cborg-0.2.10.0.tar.gz"
|
||||||
|
|
||||||
|
post_extract() {
|
||||||
|
vsrcextract -C basement basement-0.0.16.tar.gz
|
||||||
|
vsrcextract -C memory memory-0.18.0.tar.gz
|
||||||
|
vsrcextract -C cborg cborg-0.2.10.0.tar.gz
|
||||||
|
}
|
||||||
|
|
||||||
post_install() {
|
post_install() {
|
||||||
vlicense LICENSE
|
vlicense LICENSE
|
||||||
|
|
|
@ -1,17 +1,15 @@
|
||||||
# Template file for 'kmonad'
|
# Template file for 'kmonad'
|
||||||
pkgname=kmonad
|
pkgname=kmonad
|
||||||
reverts="65b501defdd0049563752f8af8c8c57f5a1ae38b_1"
|
version=0.4.4
|
||||||
_githash=65b501defdd0049563752f8af8c8c57f5a1ae38b
|
|
||||||
version=0.4.1.20220321
|
|
||||||
revision=1
|
revision=1
|
||||||
build_style=haskell-stack
|
build_style=haskell-stack
|
||||||
stackage=lts-19.0
|
stackage=lts-23.26
|
||||||
short_desc="Keyboard remapping utility providing qmk-like functionality"
|
short_desc="Keyboard remapping utility providing qmk-like functionality"
|
||||||
maintainer="Orphaned <orphan@voidlinux.org>"
|
maintainer="Orphaned <orphan@voidlinux.org>"
|
||||||
license="MIT"
|
license="MIT"
|
||||||
homepage="https://github.com/david-janssen/kmonad"
|
homepage="https://github.com/kmonad/kmonad"
|
||||||
distfiles="${homepage}/archive/${_githash}.tar.gz"
|
distfiles="https://github.com/kmonad/kmonad/archive/refs/tags/${version}.tar.gz"
|
||||||
checksum=2b0cb0c5d1575bf61b1c442476ad24103028c309d103fedb56214a3bb30f8c0f
|
checksum=ce8d0a713f26b5ab6a216ea20ef9ec39e317dfa4ec70a51ca2b7df0c13a64786
|
||||||
nopie_files="/usr/bin/kmonad"
|
nopie_files="/usr/bin/kmonad"
|
||||||
nocross=yes
|
nocross=yes
|
||||||
|
|
||||||
|
|
|
@ -1,154 +0,0 @@
|
||||||
cabal-version: 2.0
|
|
||||||
|
|
||||||
-- This file has been generated from package.yaml by hpack version 0.34.6.
|
|
||||||
--
|
|
||||||
-- see: https://github.com/sol/hpack
|
|
||||||
--
|
|
||||||
-- hash: 20655cd6263e9fe7e5737ee81b093c8c6f5eae67e260ddd3a821ac6ef5e35e69
|
|
||||||
|
|
||||||
name: pandoc-crossref
|
|
||||||
version: 0.3.13.0
|
|
||||||
synopsis: Pandoc filter for cross-references
|
|
||||||
description: pandoc-crossref is a pandoc filter for numbering figures, equations, tables and cross-references to them.
|
|
||||||
category: Text
|
|
||||||
homepage: https://github.com/lierdakil/pandoc-crossref#readme
|
|
||||||
bug-reports: https://github.com/lierdakil/pandoc-crossref/issues
|
|
||||||
author: Nikolay Yakimov
|
|
||||||
maintainer: root@livid.pp.ru
|
|
||||||
license: GPL-2
|
|
||||||
license-file: LICENSE
|
|
||||||
build-type: Simple
|
|
||||||
|
|
||||||
source-repository head
|
|
||||||
type: git
|
|
||||||
location: https://github.com/lierdakil/pandoc-crossref
|
|
||||||
|
|
||||||
flag enable_flaky_tests
|
|
||||||
description: Some tests rely on specific behaviour of pandoc, which may change between minor versions. These are still useful indicators for the developer, but not necessarily indicating there's a problem with the package itself. Enable if you know what you are doing.
|
|
||||||
manual: True
|
|
||||||
default: False
|
|
||||||
|
|
||||||
library
|
|
||||||
exposed-modules:
|
|
||||||
Text.Pandoc.CrossRef
|
|
||||||
other-modules:
|
|
||||||
Text.Pandoc.CrossRef.References
|
|
||||||
Text.Pandoc.CrossRef.References.Blocks
|
|
||||||
Text.Pandoc.CrossRef.References.List
|
|
||||||
Text.Pandoc.CrossRef.References.Refs
|
|
||||||
Text.Pandoc.CrossRef.References.Types
|
|
||||||
Text.Pandoc.CrossRef.Util.CodeBlockCaptions
|
|
||||||
Text.Pandoc.CrossRef.Util.CustomLabels
|
|
||||||
Text.Pandoc.CrossRef.Util.Meta
|
|
||||||
Text.Pandoc.CrossRef.Util.ModifyMeta
|
|
||||||
Text.Pandoc.CrossRef.Util.Options
|
|
||||||
Text.Pandoc.CrossRef.Util.Settings
|
|
||||||
Text.Pandoc.CrossRef.Util.Settings.Gen
|
|
||||||
Text.Pandoc.CrossRef.Util.Settings.Template
|
|
||||||
Text.Pandoc.CrossRef.Util.Template
|
|
||||||
Text.Pandoc.CrossRef.Util.Util
|
|
||||||
hs-source-dirs:
|
|
||||||
lib
|
|
||||||
lib-internal
|
|
||||||
ghc-options: -Wall
|
|
||||||
build-depends:
|
|
||||||
base >=4.11 && <5
|
|
||||||
, containers >=0.1 && <0.7
|
|
||||||
, data-default >=0.4 && <0.8
|
|
||||||
, directory >=1 && <1.4
|
|
||||||
, filepath >=1.1 && <1.5
|
|
||||||
, microlens >=0.4.12.0 && <0.5.0.0
|
|
||||||
, microlens-mtl >=0.2.0.1 && <0.3.0.0
|
|
||||||
, microlens-th >=0.4.3.10 && <0.5.0.0
|
|
||||||
, mtl >=1.1 && <2.3
|
|
||||||
, pandoc >=2.10 && <2.18
|
|
||||||
, pandoc-types >=1.21 && <1.23
|
|
||||||
, roman-numerals ==0.5.*
|
|
||||||
, syb >=0.4 && <0.8
|
|
||||||
, template-haskell >=2.7.0.0 && <3.0.0.0
|
|
||||||
, text >=1.2.2 && <1.3
|
|
||||||
, utility-ht >=0.0.11 && <0.1.0
|
|
||||||
default-language: Haskell2010
|
|
||||||
|
|
||||||
executable pandoc-crossref
|
|
||||||
main-is: pandoc-crossref.hs
|
|
||||||
other-modules:
|
|
||||||
ManData
|
|
||||||
hs-source-dirs:
|
|
||||||
src
|
|
||||||
ghc-options: -Wall -threaded
|
|
||||||
build-depends:
|
|
||||||
base >=4.11 && <5
|
|
||||||
, deepseq ==1.4.*
|
|
||||||
, gitrev >=1.3.1 && <1.4
|
|
||||||
, open-browser ==0.2.*
|
|
||||||
, optparse-applicative >=0.13 && <0.17
|
|
||||||
, pandoc >=2.10 && <2.18
|
|
||||||
, pandoc-crossref
|
|
||||||
, pandoc-types >=1.21 && <1.23
|
|
||||||
, template-haskell >=2.7.0.0 && <3.0.0.0
|
|
||||||
, temporary >=1.2 && <1.4
|
|
||||||
, text >=1.2.2 && <1.3
|
|
||||||
default-language: Haskell2010
|
|
||||||
|
|
||||||
test-suite test-integrative
|
|
||||||
type: exitcode-stdio-1.0
|
|
||||||
main-is: test-integrative.hs
|
|
||||||
hs-source-dirs:
|
|
||||||
test
|
|
||||||
ghc-options: -Wall -fno-warn-unused-do-bind -threaded
|
|
||||||
build-depends:
|
|
||||||
base >=4.11 && <5
|
|
||||||
, directory >=1 && <1.4
|
|
||||||
, filepath >=1.1 && <1.5
|
|
||||||
, hspec >=2.4.4 && <3
|
|
||||||
, pandoc >=2.10 && <2.18
|
|
||||||
, pandoc-crossref
|
|
||||||
, pandoc-types >=1.21 && <1.23
|
|
||||||
, text >=1.2.2 && <1.3
|
|
||||||
if flag(enable_flaky_tests)
|
|
||||||
cpp-options: -DFLAKY
|
|
||||||
default-language: Haskell2010
|
|
||||||
|
|
||||||
test-suite test-pandoc-crossref
|
|
||||||
type: exitcode-stdio-1.0
|
|
||||||
main-is: test-pandoc-crossref.hs
|
|
||||||
other-modules:
|
|
||||||
Native
|
|
||||||
Paths_pandoc_crossref
|
|
||||||
autogen-modules:
|
|
||||||
Paths_pandoc_crossref
|
|
||||||
hs-source-dirs:
|
|
||||||
test
|
|
||||||
ghc-options: -Wall -fno-warn-unused-do-bind -threaded
|
|
||||||
build-depends:
|
|
||||||
base >=4.11 && <5
|
|
||||||
, containers >=0.1 && <0.7
|
|
||||||
, data-default >=0.4 && <0.8
|
|
||||||
, hspec >=2.4.4 && <3
|
|
||||||
, microlens >=0.4.12.0 && <0.5.0.0
|
|
||||||
, mtl >=1.1 && <2.3
|
|
||||||
, pandoc >=2.10 && <2.18
|
|
||||||
, pandoc-crossref
|
|
||||||
, pandoc-types >=1.21 && <1.23
|
|
||||||
, text >=1.2.2 && <1.3
|
|
||||||
if flag(enable_flaky_tests)
|
|
||||||
cpp-options: -DFLAKY
|
|
||||||
default-language: Haskell2010
|
|
||||||
|
|
||||||
benchmark simple
|
|
||||||
type: exitcode-stdio-1.0
|
|
||||||
main-is: bench-simple.hs
|
|
||||||
other-modules:
|
|
||||||
Native
|
|
||||||
hs-source-dirs:
|
|
||||||
test
|
|
||||||
ghc-options: -Wall -fno-warn-unused-do-bind -threaded
|
|
||||||
build-depends:
|
|
||||||
base >=4.11 && <5
|
|
||||||
, criterion >=1.5.9.0 && <1.6
|
|
||||||
, pandoc >=2.10 && <2.18
|
|
||||||
, pandoc-crossref
|
|
||||||
, pandoc-types >=1.21 && <1.23
|
|
||||||
, text >=1.2.2 && <1.3
|
|
||||||
default-language: Haskell2010
|
|
242
srcpkgs/pandoc/patches/basement.patch
Normal file
242
srcpkgs/pandoc/patches/basement.patch
Normal file
|
@ -0,0 +1,242 @@
|
||||||
|
From 38be2c93acb6f459d24ed6c626981c35ccf44095 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sylvain Henry <sylvain@haskus.fr>
|
||||||
|
Date: Thu, 16 Feb 2023 15:40:45 +0100
|
||||||
|
Subject: [PATCH] Fix build on 32-bit architectures
|
||||||
|
|
||||||
|
---
|
||||||
|
basement/Basement/Bits.hs | 4 ++++
|
||||||
|
basement/Basement/From.hs | 24 -----------------------
|
||||||
|
basement/Basement/Numerical/Additive.hs | 4 ++++
|
||||||
|
basement/Basement/Numerical/Conversion.hs | 20 +++++++++++++++++++
|
||||||
|
basement/Basement/PrimType.hs | 6 +++++-
|
||||||
|
basement/Basement/Types/OffsetSize.hs | 22 +++++++++++++++++++--
|
||||||
|
6 files changed, 53 insertions(+), 27 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/basement/Basement/Bits.hs b/basement/Basement/Bits.hs
|
||||||
|
index 7eeea0f5..24520ed7 100644
|
||||||
|
--- a/basement/Basement/Bits.hs
|
||||||
|
+++ b/basement/Basement/Bits.hs
|
||||||
|
@@ -54,8 +54,12 @@ import GHC.Int
|
||||||
|
import Basement.Compat.Primitive
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | operation over finite bits
|
||||||
|
class FiniteBitsOps bits where
|
||||||
|
diff --git a/basement/Basement/From.hs b/basement/Basement/From.hs
|
||||||
|
index 7bbe141c..80014b3e 100644
|
||||||
|
--- a/basement/Basement/From.hs
|
||||||
|
+++ b/basement/Basement/From.hs
|
||||||
|
@@ -272,23 +272,11 @@ instance (NatWithinBound (CountOf ty) n, KnownNat n, PrimType ty)
|
||||||
|
tryFrom = BlockN.toBlockN . UArray.toBlock . BoxArray.mapToUnboxed id
|
||||||
|
|
||||||
|
instance (KnownNat n, NatWithinBound Word8 n) => From (Zn64 n) Word8 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word16 n) => From (Zn64 n) Word16 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word32 n) => From (Zn64 n) Word32 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance From (Zn64 n) Word64 where
|
||||||
|
from = unZn64
|
||||||
|
instance From (Zn64 n) Word128 where
|
||||||
|
@@ -297,23 +285,11 @@ instance From (Zn64 n) Word256 where
|
||||||
|
from = from . unZn64
|
||||||
|
|
||||||
|
instance (KnownNat n, NatWithinBound Word8 n) => From (Zn n) Word8 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word16 n) => From (Zn n) Word16 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word32 n) => From (Zn n) Word32 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word64 n) => From (Zn n) Word64 where
|
||||||
|
from = naturalToWord64 . unZn
|
||||||
|
instance (KnownNat n, NatWithinBound Word128 n) => From (Zn n) Word128 where
|
||||||
|
diff --git a/basement/Basement/Numerical/Additive.hs b/basement/Basement/Numerical/Additive.hs
|
||||||
|
index d0dfb973..8ab65aa0 100644
|
||||||
|
--- a/basement/Basement/Numerical/Additive.hs
|
||||||
|
+++ b/basement/Basement/Numerical/Additive.hs
|
||||||
|
@@ -30,8 +30,12 @@ import qualified Basement.Types.Word128 as Word128
|
||||||
|
import qualified Basement.Types.Word256 as Word256
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | Represent class of things that can be added together,
|
||||||
|
-- contains a neutral element and is commutative.
|
||||||
|
diff --git a/basement/Basement/Numerical/Conversion.hs b/basement/Basement/Numerical/Conversion.hs
|
||||||
|
index db502c07..fddc8232 100644
|
||||||
|
--- a/basement/Basement/Numerical/Conversion.hs
|
||||||
|
+++ b/basement/Basement/Numerical/Conversion.hs
|
||||||
|
@@ -26,8 +26,12 @@ import GHC.Word
|
||||||
|
import Basement.Compat.Primitive
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
intToInt64 :: Int -> Int64
|
||||||
|
#if WORD_SIZE_IN_BITS == 64
|
||||||
|
@@ -96,11 +100,22 @@ int64ToWord64 (I64# i) = W64# (int64ToWord64# i)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS == 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+word64ToWord# :: Word64# -> Word#
|
||||||
|
+word64ToWord# i = word64ToWord# i
|
||||||
|
+#else
|
||||||
|
word64ToWord# :: Word# -> Word#
|
||||||
|
word64ToWord# i = i
|
||||||
|
+#endif
|
||||||
|
{-# INLINE word64ToWord# #-}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+word64ToWord32# :: Word64# -> Word32#
|
||||||
|
+word64ToWord32# i = wordToWord32# (word64ToWord# i)
|
||||||
|
+{-# INLINE word64ToWord32# #-}
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
-- | 2 Word32s
|
||||||
|
data Word32x2 = Word32x2 {-# UNPACK #-} !Word32
|
||||||
|
{-# UNPACK #-} !Word32
|
||||||
|
@@ -113,9 +128,14 @@ word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# (G
|
||||||
|
word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# w64 32#))) (W32# (wordToWord32# w64))
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+word64ToWord32s :: Word64 -> Word32x2
|
||||||
|
+word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord32# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord32# w64))
|
||||||
|
+#else
|
||||||
|
word64ToWord32s :: Word64 -> Word32x2
|
||||||
|
word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord# w64))
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
wordToChar :: Word -> Char
|
||||||
|
wordToChar (W# word) = C# (chr# (word2Int# word))
|
||||||
|
diff --git a/basement/Basement/PrimType.hs b/basement/Basement/PrimType.hs
|
||||||
|
index f8ca2926..a888ec91 100644
|
||||||
|
--- a/basement/Basement/PrimType.hs
|
||||||
|
+++ b/basement/Basement/PrimType.hs
|
||||||
|
@@ -54,7 +54,11 @@ import Basement.Nat
|
||||||
|
import qualified Prelude (quot)
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
-import GHC.IntWord64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
+import GHC.IntWord64
|
||||||
|
+#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FOUNDATION_BOUNDS_CHECK
|
||||||
|
diff --git a/basement/Basement/Types/OffsetSize.hs b/basement/Basement/Types/OffsetSize.hs
|
||||||
|
index cd944927..1ea80dad 100644
|
||||||
|
--- a/basement/Basement/Types/OffsetSize.hs
|
||||||
|
+++ b/basement/Basement/Types/OffsetSize.hs
|
||||||
|
@@ -70,8 +70,12 @@ import Data.List (foldl')
|
||||||
|
import qualified Prelude
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | File size in bytes
|
||||||
|
newtype FileSize = FileSize Word64
|
||||||
|
@@ -225,20 +229,26 @@ countOfRoundUp alignment (CountOf n) = CountOf ((n + (alignment-1)) .&. compleme
|
||||||
|
|
||||||
|
csizeOfSize :: CountOf Word8 -> CSize
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+csizeOfSize (CountOf (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
|
||||||
|
+#else
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W32# (int2Word# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
|
||||||
|
-
|
||||||
|
#else
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W64# (int2Word# sz))
|
||||||
|
-
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
csizeOfOffset :: Offset8 -> CSize
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+csizeOfOffset (Offset (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
|
||||||
|
+#else
|
||||||
|
csizeOfOffset (Offset (I# sz)) = CSize (W32# (int2Word# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
csizeOfOffset (Offset (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
|
||||||
|
@@ -250,7 +260,11 @@ csizeOfOffset (Offset (I# sz)) = CSize (W64# (int2Word# sz))
|
||||||
|
sizeOfCSSize :: CSsize -> CountOf Word8
|
||||||
|
sizeOfCSSize (CSsize (-1)) = error "invalid size: CSSize is -1"
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# (int32ToInt# sz))
|
||||||
|
+#else
|
||||||
|
sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# sz)
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# (int64ToInt# sz))
|
||||||
|
@@ -261,7 +275,11 @@ sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# sz)
|
||||||
|
|
||||||
|
sizeOfCSize :: CSize -> CountOf Word8
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# (word32ToWord# sz)))
|
||||||
|
+#else
|
||||||
|
sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
sizeOfCSize (CSize (W64# sz)) = CountOf (I# (word2Int# (word64ToWord# sz)))
|
11
srcpkgs/pandoc/patches/cborg-bounds.patch
Normal file
11
srcpkgs/pandoc/patches/cborg-bounds.patch
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
--- a/cborg/cborg.cabal 2025-07-06 20:31:00.307574779 +0100
|
||||||
|
+++ b/cborg/cborg.cabal 2025-07-06 20:31:05.085962403 +0100
|
||||||
|
@@ -164,7 +164,7 @@
|
||||||
|
scientific >= 0.3 && < 0.4,
|
||||||
|
tasty >= 0.11 && < 1.6,
|
||||||
|
tasty-hunit >= 0.9 && < 0.11,
|
||||||
|
- tasty-quickcheck >= 0.8 && < 0.11,
|
||||||
|
+ tasty-quickcheck >= 0.8 && < 0.12,
|
||||||
|
vector >= 0.10 && < 0.14
|
||||||
|
if !impl(ghc >= 8.0)
|
||||||
|
build-depends:
|
212
srcpkgs/pandoc/patches/cborg.patch
Normal file
212
srcpkgs/pandoc/patches/cborg.patch
Normal file
|
@ -0,0 +1,212 @@
|
||||||
|
commit 9d1418bb8b38cb9a438d7f18835b1ef7ef12b234
|
||||||
|
Author: amesgen <amesgen@amesgen.de>
|
||||||
|
Date: Sun Sep 10 20:03:40 2023 +0200
|
||||||
|
|
||||||
|
Fix compilation and support GHC >=9.2 on 32bit
|
||||||
|
|
||||||
|
diff --git a/cborg/src/Codec/CBOR/Decoding.hs b/cborg/src/Codec/CBOR/Decoding.hs
|
||||||
|
index a7d774c..bf68e68 100644
|
||||||
|
--- a/cborg/src/Codec/CBOR/Decoding.hs
|
||||||
|
+++ b/cborg/src/Codec/CBOR/Decoding.hs
|
||||||
|
@@ -315,11 +315,16 @@ getDecodeAction (Decoder k) = k (\x -> return (Done x))
|
||||||
|
toInt8 :: Int# -> Int8
|
||||||
|
toInt16 :: Int# -> Int16
|
||||||
|
toInt32 :: Int# -> Int32
|
||||||
|
-toInt64 :: Int# -> Int64
|
||||||
|
toWord8 :: Word# -> Word8
|
||||||
|
toWord16 :: Word# -> Word16
|
||||||
|
toWord32 :: Word# -> Word32
|
||||||
|
+#if defined(ARCH_64bit)
|
||||||
|
+toInt64 :: Int# -> Int64
|
||||||
|
toWord64 :: Word# -> Word64
|
||||||
|
+#else
|
||||||
|
+toInt64 :: Int64# -> Int64
|
||||||
|
+toWord64 :: Word64# -> Word64
|
||||||
|
+#endif
|
||||||
|
#if MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
toInt8 n = I8# (intToInt8# n)
|
||||||
|
toInt16 n = I16# (intToInt16# n)
|
||||||
|
@@ -327,8 +332,7 @@ toInt32 n = I32# (intToInt32# n)
|
||||||
|
toWord8 n = W8# (wordToWord8# n)
|
||||||
|
toWord16 n = W16# (wordToWord16# n)
|
||||||
|
toWord32 n = W32# (wordToWord32# n)
|
||||||
|
-#if WORD_SIZE_IN_BITS == 64
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && defined(ARCH_64bit)
|
||||||
|
toInt64 n = I64# (intToInt64# n)
|
||||||
|
toWord64 n = W64# (wordToWord64# n)
|
||||||
|
#else
|
||||||
|
@@ -336,10 +340,6 @@ toInt64 n = I64# n
|
||||||
|
toWord64 n = W64# n
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
-toInt64 n = I64# (intToInt64# n)
|
||||||
|
-toWord64 n = W64# (wordToWord64# n)
|
||||||
|
-#endif
|
||||||
|
-#else
|
||||||
|
toInt8 n = I8# n
|
||||||
|
toInt16 n = I16# n
|
||||||
|
toInt32 n = I32# n
|
||||||
|
@@ -986,7 +986,7 @@ type ByteOffset = Int64
|
||||||
|
-- @since 0.2.2.0
|
||||||
|
peekByteOffset :: Decoder s ByteOffset
|
||||||
|
peekByteOffset = Decoder (\k -> return (PeekByteOffset (\off# -> k (I64#
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && !defined(ARCH_32bit)
|
||||||
|
(intToInt64# off#)
|
||||||
|
#else
|
||||||
|
off#
|
||||||
|
diff --git a/cborg/src/Codec/CBOR/Magic.hs b/cborg/src/Codec/CBOR/Magic.hs
|
||||||
|
index cdeb455..bfae638 100644
|
||||||
|
--- a/cborg/src/Codec/CBOR/Magic.hs
|
||||||
|
+++ b/cborg/src/Codec/CBOR/Magic.hs
|
||||||
|
@@ -120,7 +120,7 @@ import qualified Numeric.Half as Half
|
||||||
|
import Data.Bits ((.|.), unsafeShiftL)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#if defined(ARCH_32bit)
|
||||||
|
+#if defined(ARCH_32bit) && !MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
import GHC.IntWord64 (wordToWord64#, word64ToWord#,
|
||||||
|
intToInt64#, int64ToInt#,
|
||||||
|
leWord64#, ltWord64#, word64ToInt64#)
|
||||||
|
@@ -173,7 +173,7 @@ grabWord64 (Ptr ip#) = W64# (wordToWord64# (byteSwap# (word64ToWord# (indexWord6
|
||||||
|
grabWord64 (Ptr ip#) = W64# (byteSwap# (indexWord64OffAddr# ip# 0#))
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
-grabWord64 (Ptr ip#) = W64# (byteSwap64# (word64ToWord# (indexWord64OffAddr# ip# 0#)))
|
||||||
|
+grabWord64 (Ptr ip#) = W64# (byteSwap64# (indexWord64OffAddr# ip# 0#))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#elif defined(MEM_UNALIGNED_OPS) && \
|
||||||
|
@@ -484,7 +484,7 @@ word16ToInt (W16# w#) = I# (word2Int# (word16ToWord# w#))
|
||||||
|
word32ToInt (W32# w#) = I# (word2Int# (word32ToWord# w#))
|
||||||
|
#else
|
||||||
|
word32ToInt (W32# w#) =
|
||||||
|
- case isTrue# (w# `ltWord#` 0x80000000##) of
|
||||||
|
+ case isTrue# (word32ToWord# w# `ltWord#` 0x80000000##) of
|
||||||
|
True -> Just (I# (word2Int# (word32ToWord# w#)))
|
||||||
|
False -> Nothing
|
||||||
|
#endif
|
||||||
|
@@ -530,6 +530,19 @@ word64ToInt (W64# w#) =
|
||||||
|
{-# INLINE word64ToInt #-}
|
||||||
|
|
||||||
|
#if defined(ARCH_32bit)
|
||||||
|
+#if MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
+word8ToInt64 (W8# w#) = I64# (intToInt64# (word2Int# (word8ToWord# w#)))
|
||||||
|
+word16ToInt64 (W16# w#) = I64# (intToInt64# (word2Int# (word16ToWord# w#)))
|
||||||
|
+word32ToInt64 (W32# w#) = I64# (word64ToInt64# (wordToWord64# (word32ToWord# w#)))
|
||||||
|
+word64ToInt64 (W64# w#) =
|
||||||
|
+ case isTrue# (w# `ltWord64#` uncheckedShiftL64# (wordToWord64# 1##) 63#) of
|
||||||
|
+ True -> Just (I64# (word64ToInt64# w#))
|
||||||
|
+ False -> Nothing
|
||||||
|
+
|
||||||
|
+word8ToWord64 (W8# w#) = W64# (wordToWord64# (word8ToWord# w#))
|
||||||
|
+word16ToWord64 (W16# w#) = W64# (wordToWord64# (word16ToWord# w#))
|
||||||
|
+word32ToWord64 (W32# w#) = W64# (wordToWord64# (word32ToWord# w#))
|
||||||
|
+#else
|
||||||
|
word8ToInt64 (W8# w#) = I64# (intToInt64# (word2Int# w#))
|
||||||
|
word16ToInt64 (W16# w#) = I64# (intToInt64# (word2Int# w#))
|
||||||
|
word32ToInt64 (W32# w#) = I64# (word64ToInt64# (wordToWord64# w#))
|
||||||
|
@@ -541,6 +554,7 @@ word64ToInt64 (W64# w#) =
|
||||||
|
word8ToWord64 (W8# w#) = W64# (wordToWord64# w#)
|
||||||
|
word16ToWord64 (W16# w#) = W64# (wordToWord64# w#)
|
||||||
|
word32ToWord64 (W32# w#) = W64# (wordToWord64# w#)
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
{-# INLINE word8ToInt64 #-}
|
||||||
|
{-# INLINE word16ToInt64 #-}
|
||||||
|
diff --git a/cborg/src/Codec/CBOR/Read.hs b/cborg/src/Codec/CBOR/Read.hs
|
||||||
|
index 6546575..c4dc761 100644
|
||||||
|
--- a/cborg/src/Codec/CBOR/Read.hs
|
||||||
|
+++ b/cborg/src/Codec/CBOR/Read.hs
|
||||||
|
@@ -63,7 +63,7 @@ import qualified Data.Text as T
|
||||||
|
import qualified Data.Text.Encoding as T
|
||||||
|
import Data.Word
|
||||||
|
import GHC.Word
|
||||||
|
-#if defined(ARCH_32bit)
|
||||||
|
+#if defined(ARCH_32bit) && !MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
import GHC.Exts
|
||||||
|
@@ -510,8 +510,8 @@ go_fast !bs da@(ConsumeNegWord64Canonical k) =
|
||||||
|
go_fast !bs da@(ConsumeInt64Canonical k) =
|
||||||
|
case tryConsumeInt64 (BS.unsafeHead bs) bs of
|
||||||
|
DecodeFailure -> go_fast_end bs da
|
||||||
|
- DecodedToken sz i@(I64# i#)
|
||||||
|
- | isInt64Canonical sz i -> k i# >>= go_fast (BS.unsafeDrop sz bs)
|
||||||
|
+ DecodedToken sz (I64# i#)
|
||||||
|
+ | isInt64Canonical sz i# -> k i# >>= go_fast (BS.unsafeDrop sz bs)
|
||||||
|
| otherwise -> go_fast_end bs da
|
||||||
|
|
||||||
|
go_fast !bs da@(ConsumeListLen64Canonical k) =
|
||||||
|
@@ -994,8 +994,8 @@ go_fast_end !bs (ConsumeNegWord64Canonical k) =
|
||||||
|
go_fast_end !bs (ConsumeInt64Canonical k) =
|
||||||
|
case tryConsumeInt64 (BS.unsafeHead bs) bs of
|
||||||
|
DecodeFailure -> return $! SlowFail bs "expected int64"
|
||||||
|
- DecodedToken sz i@(I64# i#)
|
||||||
|
- | isInt64Canonical sz i -> k i# >>= go_fast_end (BS.unsafeDrop sz bs)
|
||||||
|
+ DecodedToken sz (I64# i#)
|
||||||
|
+ | isInt64Canonical sz i# -> k i# >>= go_fast_end (BS.unsafeDrop sz bs)
|
||||||
|
| otherwise -> return $! SlowFail bs "non-canonical int64"
|
||||||
|
|
||||||
|
go_fast_end !bs (ConsumeListLen64Canonical k) =
|
||||||
|
@@ -1271,7 +1271,7 @@ go_slow da bs !offset = do
|
||||||
|
|
||||||
|
SlowPeekByteOffset bs' k ->
|
||||||
|
lift
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && !defined(ARCH_32bit)
|
||||||
|
(k (int64ToInt# off#))
|
||||||
|
#else
|
||||||
|
(k off#)
|
||||||
|
@@ -1381,7 +1381,7 @@ go_slow_overlapped da sz bs_cur bs_next !offset =
|
||||||
|
SlowPeekByteOffset bs_empty k ->
|
||||||
|
assert (BS.null bs_empty) $ do
|
||||||
|
lift
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && !defined(ARCH_32bit)
|
||||||
|
(k (int64ToInt# off#))
|
||||||
|
#else
|
||||||
|
(k off#)
|
||||||
|
@@ -1565,17 +1565,17 @@ isIntCanonical sz i
|
||||||
|
{-# INLINE isWord64Canonical #-}
|
||||||
|
isWord64Canonical :: Int -> Word64 -> Bool
|
||||||
|
isWord64Canonical sz w
|
||||||
|
- | sz == 2 = w > 0x17)
|
||||||
|
- | sz == 3 = w > 0xff)
|
||||||
|
- | sz == 5 = w > 0xffff)
|
||||||
|
- | sz == 9 = w > 0xffffffff)
|
||||||
|
+ | sz == 2 = w > 0x17
|
||||||
|
+ | sz == 3 = w > 0xff
|
||||||
|
+ | sz == 5 = w > 0xffff
|
||||||
|
+ | sz == 9 = w > 0xffffffff
|
||||||
|
| otherwise = True
|
||||||
|
|
||||||
|
{-# INLINE isInt64Canonical #-}
|
||||||
|
isInt64Canonical :: Int -> Int64# -> Bool
|
||||||
|
isInt64Canonical sz i#
|
||||||
|
- | isTrue# (i# `ltInt64#` intToInt64# 0#) = isWord64Canonical sz (not64# w#)
|
||||||
|
- | otherwise = isWord64Canonical sz w#
|
||||||
|
+ | isTrue# (i# `ltInt64#` intToInt64# 0#) = isWord64Canonical sz (W64# (not64# w#))
|
||||||
|
+ | otherwise = isWord64Canonical sz (W64# w#)
|
||||||
|
where
|
||||||
|
w# = int64ToWord64# i#
|
||||||
|
#endif
|
||||||
|
@@ -1796,7 +1796,7 @@ tryConsumeInteger hdr !bs = case word8ToWord hdr of
|
||||||
|
0x1b -> let !w = eatTailWord64 bs
|
||||||
|
sz = 9
|
||||||
|
#if defined(ARCH_32bit)
|
||||||
|
- in DecodedToken sz (BigIntToken (isWord64Canonical sz (word64ToWord w)) $! toInteger w)
|
||||||
|
+ in DecodedToken sz (BigIntToken (isWord64Canonical sz w) $! toInteger w)
|
||||||
|
#else
|
||||||
|
in DecodedToken sz (BigIntToken (isWordCanonical sz (word64ToWord w)) $! toInteger w)
|
||||||
|
#endif
|
||||||
|
@@ -1838,7 +1838,7 @@ tryConsumeInteger hdr !bs = case word8ToWord hdr of
|
||||||
|
0x3b -> let !w = eatTailWord64 bs
|
||||||
|
sz = 9
|
||||||
|
#if defined(ARCH_32bit)
|
||||||
|
- in DecodedToken sz (BigIntToken (isWord64Canonical sz (word64ToWord w)) $! (-1 - toInteger w))
|
||||||
|
+ in DecodedToken sz (BigIntToken (isWord64Canonical sz w) $! (-1 - toInteger w))
|
||||||
|
#else
|
||||||
|
in DecodedToken sz (BigIntToken (isWordCanonical sz (word64ToWord w)) $! (-1 - toInteger w))
|
||||||
|
#endif
|
|
@ -1,8 +1,8 @@
|
||||||
# See https://github.com/lierdakil/pandoc-crossref/issues/342#issuecomment-1073256586
|
# See https://github.com/lierdakil/pandoc-crossref/issues/342#issuecomment-1073256586
|
||||||
|
|
||||||
--- a/pandoc-crossref-0.3.17.0/pandoc-crossref.cabal 2001-09-08 22:46:40.000000000 -0300
|
--- a/pandoc-crossref-0.3.18.1/pandoc-crossref.cabal 2001-09-09 02:46:40.000000000 +0100
|
||||||
+++ b/pandoc-crossref-0.3.17.0/pandoc-crossref.cabal 2024-03-26 17:16:02.918173738 -0300
|
+++ a/pandoc-crossref-0.3.18.1/pandoc-crossref.cabal 2025-07-03 17:23:13.941135615 +0100
|
||||||
@@ -127,20 +127,6 @@
|
@@ -133,20 +133,6 @@
|
||||||
library
|
library
|
||||||
exposed-modules:
|
exposed-modules:
|
||||||
Text.Pandoc.CrossRef
|
Text.Pandoc.CrossRef
|
||||||
|
@ -12,10 +12,10 @@
|
||||||
- build-depends:
|
- build-depends:
|
||||||
- base >=4.11 && <5
|
- base >=4.11 && <5
|
||||||
- , mtl >=1.1 && <2.4
|
- , mtl >=1.1 && <2.4
|
||||||
- , pandoc >=3.1.8 && <3.2
|
- , pandoc >=3.1.8 && <3.7
|
||||||
- , pandoc-crossref-internal
|
- , pandoc-crossref-internal
|
||||||
- , pandoc-types ==1.23.*
|
- , pandoc-types ==1.23.*
|
||||||
- , text >=1.2.2 && <2.1
|
- , text >=1.2.2 && <2.2
|
||||||
- default-language: Haskell2010
|
- default-language: Haskell2010
|
||||||
-
|
-
|
||||||
-library pandoc-crossref-internal
|
-library pandoc-crossref-internal
|
||||||
|
@ -23,21 +23,19 @@
|
||||||
Text.Numeral.Roman
|
Text.Numeral.Roman
|
||||||
Text.Pandoc.CrossRef.References
|
Text.Pandoc.CrossRef.References
|
||||||
Text.Pandoc.CrossRef.References.Blocks
|
Text.Pandoc.CrossRef.References.Blocks
|
||||||
@@ -165,7 +151,9 @@
|
@@ -171,6 +157,7 @@
|
||||||
Text.Pandoc.CrossRef.Util.Template
|
Text.Pandoc.CrossRef.Util.Template
|
||||||
Text.Pandoc.CrossRef.Util.Util
|
Text.Pandoc.CrossRef.Util.Util
|
||||||
hs-source-dirs:
|
hs-source-dirs:
|
||||||
+ lib
|
+ lib
|
||||||
lib-internal
|
lib-internal
|
||||||
+ ghc-options: -Wall
|
|
||||||
build-depends:
|
build-depends:
|
||||||
base >=4.11 && <5
|
base >=4.11 && <5
|
||||||
, containers >=0.1 && <0.7
|
@@ -253,7 +240,6 @@
|
||||||
@@ -247,7 +235,6 @@
|
|
||||||
, mtl >=1.1 && <2.4
|
, mtl >=1.1 && <2.4
|
||||||
, pandoc >=3.1.8 && <3.2
|
, pandoc >=3.1.8 && <3.7
|
||||||
, pandoc-crossref
|
, pandoc-crossref
|
||||||
- , pandoc-crossref-internal
|
- , pandoc-crossref-internal
|
||||||
, pandoc-types ==1.23.*
|
, pandoc-types ==1.23.*
|
||||||
, text >=1.2.2 && <2.1
|
, text >=1.2.2 && <2.2
|
||||||
if flag(enable_flaky_tests)
|
default-language: Haskell2010
|
||||||
|
|
36
srcpkgs/pandoc/patches/memory.patch
Normal file
36
srcpkgs/pandoc/patches/memory.patch
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
From 2738929ce15b4c8704bbbac24a08539b5d4bf30e Mon Sep 17 00:00:00 2001
|
||||||
|
From: sternenseemann <sternenseemann@systemli.org>
|
||||||
|
Date: Mon, 14 Aug 2023 10:51:30 +0200
|
||||||
|
Subject: [PATCH] Data.Memory.Internal.CompatPrim64: fix 32 bit with GHC >= 9.4
|
||||||
|
|
||||||
|
Since 9.4, GHC.Prim exports Word64# operations like timesWord64# even on
|
||||||
|
i686 whereas GHC.IntWord64 no longer exists. Therefore, we can just use
|
||||||
|
the ready made solution.
|
||||||
|
|
||||||
|
Closes #98, as it should be the better solution.
|
||||||
|
---
|
||||||
|
Data/Memory/Internal/CompatPrim64.hs | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/Data/Memory/Internal/CompatPrim64.hs b/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
index b9eef8a..a134c88 100644
|
||||||
|
--- a/memory/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
+++ b/memory/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
@@ -150,6 +150,7 @@ w64# :: Word# -> Word# -> Word# -> Word64#
|
||||||
|
w64# w _ _ = w
|
||||||
|
|
||||||
|
#elif WORD_SIZE_IN_BITS == 32
|
||||||
|
+#if __GLASGOW_HASKELL__ < 904
|
||||||
|
import GHC.IntWord64
|
||||||
|
import GHC.Prim (Word#)
|
||||||
|
|
||||||
|
@@ -158,6 +159,9 @@ timesWord64# a b =
|
||||||
|
let !ai = word64ToInt64# a
|
||||||
|
!bi = word64ToInt64# b
|
||||||
|
in int64ToWord64# (timesInt64# ai bi)
|
||||||
|
+#else
|
||||||
|
+import GHC.Prim
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
w64# :: Word# -> Word# -> Word# -> Word64#
|
||||||
|
w64# _ hw lw =
|
11
srcpkgs/pandoc/patches/tasty-bench.patch
Normal file
11
srcpkgs/pandoc/patches/tasty-bench.patch
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
--- a/pandoc-3.6/pandoc.cabal
|
||||||
|
+++ b/pandoc-3.6/pandoc.cabal
|
||||||
|
@@ -866,7 +866,7 @@
|
||||||
|
main-is: benchmark-pandoc.hs
|
||||||
|
hs-source-dirs: benchmark
|
||||||
|
build-depends: bytestring,
|
||||||
|
- tasty-bench >= 0.2 && <= 0.4,
|
||||||
|
+ tasty-bench >= 0.2 && <= 0.4.1,
|
||||||
|
mtl >= 2.2 && < 2.4,
|
||||||
|
text >= 1.1.1.0 && < 2.2,
|
||||||
|
deepseq
|
|
@ -1,16 +1,16 @@
|
||||||
# Template file for 'pandoc'
|
# Template file for 'pandoc'
|
||||||
pkgname=pandoc
|
pkgname=pandoc
|
||||||
# Keep in sync with http://www.stackage.org/lts
|
# Keep in sync with http://www.stackage.org/lts
|
||||||
version=3.1.11.1
|
version=3.6
|
||||||
revision=1
|
revision=1
|
||||||
_sidenote_version=0.23.0.0
|
_sidenote_version=0.23.0.0
|
||||||
_crossref_version=0.3.17.0
|
_crossref_version=0.3.18.1
|
||||||
create_wrksrc=yes
|
create_wrksrc=yes
|
||||||
build_style=haskell-stack
|
build_style=haskell-stack
|
||||||
stackage="lts-22.13"
|
stackage="lts-23.26"
|
||||||
make_build_args="
|
make_build_args="
|
||||||
--flag pandoc:embed_data_files
|
--flag pandoc:embed_data_files
|
||||||
--flag=lua:pkg-config"
|
--flag lua:pkg-config"
|
||||||
hostmakedepends="pkg-config unzip wget"
|
hostmakedepends="pkg-config unzip wget"
|
||||||
makedepends="zlib-devel lua54-devel tar"
|
makedepends="zlib-devel lua54-devel tar"
|
||||||
short_desc="Universal converter between markup formats"
|
short_desc="Universal converter between markup formats"
|
||||||
|
@ -20,16 +20,29 @@ homepage="http://johnmacfarlane.net/pandoc/"
|
||||||
distfiles="https://hackage.haskell.org/package/pandoc-${version}/pandoc-${version}.tar.gz
|
distfiles="https://hackage.haskell.org/package/pandoc-${version}/pandoc-${version}.tar.gz
|
||||||
https://hackage.haskell.org/package/pandoc-cli-${version}/pandoc-cli-${version}.tar.gz
|
https://hackage.haskell.org/package/pandoc-cli-${version}/pandoc-cli-${version}.tar.gz
|
||||||
https://hackage.haskell.org/package/pandoc-sidenote-${_sidenote_version}/pandoc-sidenote-${_sidenote_version}.tar.gz
|
https://hackage.haskell.org/package/pandoc-sidenote-${_sidenote_version}/pandoc-sidenote-${_sidenote_version}.tar.gz
|
||||||
https://hackage.haskell.org/package/pandoc-crossref-${_crossref_version}/pandoc-crossref-${_crossref_version}.tar.gz"
|
https://hackage.haskell.org/package/pandoc-crossref-${_crossref_version}/pandoc-crossref-${_crossref_version}.tar.gz
|
||||||
checksum="ef968d654000e5b21943573039fee92b132b547790fb1471f363abeb09dbcf79
|
https://hackage.haskell.org/package/basement-0.0.16/basement-0.0.16.tar.gz
|
||||||
b7c8200012e22059410c70c1dab522eed151ca276c0a0d50c825c06df8d0c249
|
https://hackage.haskell.org/package/memory-0.18.0/memory-0.18.0.tar.gz
|
||||||
|
https://hackage.haskell.org/package/cborg-0.2.10.0/cborg-0.2.10.0.tar.gz"
|
||||||
|
checksum="da963bfd49852fd1364604f616f71168fd4558606f265159bf1f42da1f97f9b8
|
||||||
|
07dccd028aff2e5d8c4e4a970a9d0ec33ee941d574e3b84e29af249a81a83833
|
||||||
2722ca9cf7bed62658f669a3ec2026de0e0e80941b499a25e660adcf977eec2d
|
2722ca9cf7bed62658f669a3ec2026de0e0e80941b499a25e660adcf977eec2d
|
||||||
8eb1fab686654cbbb7d2aa651d08b194a9634c3645df1d8d081a7e463db76f9a"
|
e4353c29af9db8c2b898254c5146aa922c221d9b2ec2becbbc9e58294fbbfaaf
|
||||||
|
7fb77e249aef76ba5aed3059d556800ce02b614597c488ba01f0a16449146300
|
||||||
|
fd4eb6f638e24b81b4e6cdd68772a531726f2f67686c8969d3407d82f7862e3e
|
||||||
|
17fe070c38fc498cab49bcb9d6215b7747d53bedf96502e9bcce9cad73b9c797"
|
||||||
nocross=yes
|
nocross=yes
|
||||||
nopie_files="
|
nopie_files="
|
||||||
/usr/bin/pandoc
|
/usr/bin/pandoc
|
||||||
/usr/bin/pandoc-sidenote
|
/usr/bin/pandoc-sidenote
|
||||||
/usr/bin/pandoc-crossref"
|
/usr/bin/pandoc-crossref"
|
||||||
|
skip_extraction="basement-0.0.16.tar.gz memory-0.18.0.tar.gz cborg-0.2.10.0.tar.gz"
|
||||||
|
|
||||||
|
post_extract() {
|
||||||
|
vsrcextract -C basement basement-0.0.16.tar.gz
|
||||||
|
vsrcextract -C memory memory-0.18.0.tar.gz
|
||||||
|
vsrcextract -C cborg cborg-0.2.10.0.tar.gz
|
||||||
|
}
|
||||||
|
|
||||||
post_install() {
|
post_install() {
|
||||||
vman pandoc-cli-${version}/man/pandoc.1
|
vman pandoc-cli-${version}/man/pandoc.1
|
||||||
|
|
242
srcpkgs/postgrest/patches/basement.patch
Normal file
242
srcpkgs/postgrest/patches/basement.patch
Normal file
|
@ -0,0 +1,242 @@
|
||||||
|
From 38be2c93acb6f459d24ed6c626981c35ccf44095 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sylvain Henry <sylvain@haskus.fr>
|
||||||
|
Date: Thu, 16 Feb 2023 15:40:45 +0100
|
||||||
|
Subject: [PATCH] Fix build on 32-bit architectures
|
||||||
|
|
||||||
|
---
|
||||||
|
basement/Basement/Bits.hs | 4 ++++
|
||||||
|
basement/Basement/From.hs | 24 -----------------------
|
||||||
|
basement/Basement/Numerical/Additive.hs | 4 ++++
|
||||||
|
basement/Basement/Numerical/Conversion.hs | 20 +++++++++++++++++++
|
||||||
|
basement/Basement/PrimType.hs | 6 +++++-
|
||||||
|
basement/Basement/Types/OffsetSize.hs | 22 +++++++++++++++++++--
|
||||||
|
6 files changed, 53 insertions(+), 27 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/basement/Basement/Bits.hs b/basement/Basement/Bits.hs
|
||||||
|
index 7eeea0f5..24520ed7 100644
|
||||||
|
--- a/basement/Basement/Bits.hs
|
||||||
|
+++ b/basement/Basement/Bits.hs
|
||||||
|
@@ -54,8 +54,12 @@ import GHC.Int
|
||||||
|
import Basement.Compat.Primitive
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | operation over finite bits
|
||||||
|
class FiniteBitsOps bits where
|
||||||
|
diff --git a/basement/Basement/From.hs b/basement/Basement/From.hs
|
||||||
|
index 7bbe141c..80014b3e 100644
|
||||||
|
--- a/basement/Basement/From.hs
|
||||||
|
+++ b/basement/Basement/From.hs
|
||||||
|
@@ -272,23 +272,11 @@ instance (NatWithinBound (CountOf ty) n, KnownNat n, PrimType ty)
|
||||||
|
tryFrom = BlockN.toBlockN . UArray.toBlock . BoxArray.mapToUnboxed id
|
||||||
|
|
||||||
|
instance (KnownNat n, NatWithinBound Word8 n) => From (Zn64 n) Word8 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word16 n) => From (Zn64 n) Word16 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word32 n) => From (Zn64 n) Word32 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance From (Zn64 n) Word64 where
|
||||||
|
from = unZn64
|
||||||
|
instance From (Zn64 n) Word128 where
|
||||||
|
@@ -297,23 +285,11 @@ instance From (Zn64 n) Word256 where
|
||||||
|
from = from . unZn64
|
||||||
|
|
||||||
|
instance (KnownNat n, NatWithinBound Word8 n) => From (Zn n) Word8 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word16 n) => From (Zn n) Word16 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word32 n) => From (Zn n) Word32 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word64 n) => From (Zn n) Word64 where
|
||||||
|
from = naturalToWord64 . unZn
|
||||||
|
instance (KnownNat n, NatWithinBound Word128 n) => From (Zn n) Word128 where
|
||||||
|
diff --git a/basement/Basement/Numerical/Additive.hs b/basement/Basement/Numerical/Additive.hs
|
||||||
|
index d0dfb973..8ab65aa0 100644
|
||||||
|
--- a/basement/Basement/Numerical/Additive.hs
|
||||||
|
+++ b/basement/Basement/Numerical/Additive.hs
|
||||||
|
@@ -30,8 +30,12 @@ import qualified Basement.Types.Word128 as Word128
|
||||||
|
import qualified Basement.Types.Word256 as Word256
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | Represent class of things that can be added together,
|
||||||
|
-- contains a neutral element and is commutative.
|
||||||
|
diff --git a/basement/Basement/Numerical/Conversion.hs b/basement/Basement/Numerical/Conversion.hs
|
||||||
|
index db502c07..fddc8232 100644
|
||||||
|
--- a/basement/Basement/Numerical/Conversion.hs
|
||||||
|
+++ b/basement/Basement/Numerical/Conversion.hs
|
||||||
|
@@ -26,8 +26,12 @@ import GHC.Word
|
||||||
|
import Basement.Compat.Primitive
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
intToInt64 :: Int -> Int64
|
||||||
|
#if WORD_SIZE_IN_BITS == 64
|
||||||
|
@@ -96,11 +100,22 @@ int64ToWord64 (I64# i) = W64# (int64ToWord64# i)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS == 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+word64ToWord# :: Word64# -> Word#
|
||||||
|
+word64ToWord# i = word64ToWord# i
|
||||||
|
+#else
|
||||||
|
word64ToWord# :: Word# -> Word#
|
||||||
|
word64ToWord# i = i
|
||||||
|
+#endif
|
||||||
|
{-# INLINE word64ToWord# #-}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+word64ToWord32# :: Word64# -> Word32#
|
||||||
|
+word64ToWord32# i = wordToWord32# (word64ToWord# i)
|
||||||
|
+{-# INLINE word64ToWord32# #-}
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
-- | 2 Word32s
|
||||||
|
data Word32x2 = Word32x2 {-# UNPACK #-} !Word32
|
||||||
|
{-# UNPACK #-} !Word32
|
||||||
|
@@ -113,9 +128,14 @@ word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# (G
|
||||||
|
word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# w64 32#))) (W32# (wordToWord32# w64))
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+word64ToWord32s :: Word64 -> Word32x2
|
||||||
|
+word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord32# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord32# w64))
|
||||||
|
+#else
|
||||||
|
word64ToWord32s :: Word64 -> Word32x2
|
||||||
|
word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord# w64))
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
wordToChar :: Word -> Char
|
||||||
|
wordToChar (W# word) = C# (chr# (word2Int# word))
|
||||||
|
diff --git a/basement/Basement/PrimType.hs b/basement/Basement/PrimType.hs
|
||||||
|
index f8ca2926..a888ec91 100644
|
||||||
|
--- a/basement/Basement/PrimType.hs
|
||||||
|
+++ b/basement/Basement/PrimType.hs
|
||||||
|
@@ -54,7 +54,11 @@ import Basement.Nat
|
||||||
|
import qualified Prelude (quot)
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
-import GHC.IntWord64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
+import GHC.IntWord64
|
||||||
|
+#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FOUNDATION_BOUNDS_CHECK
|
||||||
|
diff --git a/basement/Basement/Types/OffsetSize.hs b/basement/Basement/Types/OffsetSize.hs
|
||||||
|
index cd944927..1ea80dad 100644
|
||||||
|
--- a/basement/Basement/Types/OffsetSize.hs
|
||||||
|
+++ b/basement/Basement/Types/OffsetSize.hs
|
||||||
|
@@ -70,8 +70,12 @@ import Data.List (foldl')
|
||||||
|
import qualified Prelude
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | File size in bytes
|
||||||
|
newtype FileSize = FileSize Word64
|
||||||
|
@@ -225,20 +229,26 @@ countOfRoundUp alignment (CountOf n) = CountOf ((n + (alignment-1)) .&. compleme
|
||||||
|
|
||||||
|
csizeOfSize :: CountOf Word8 -> CSize
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+csizeOfSize (CountOf (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
|
||||||
|
+#else
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W32# (int2Word# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
|
||||||
|
-
|
||||||
|
#else
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W64# (int2Word# sz))
|
||||||
|
-
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
csizeOfOffset :: Offset8 -> CSize
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+csizeOfOffset (Offset (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
|
||||||
|
+#else
|
||||||
|
csizeOfOffset (Offset (I# sz)) = CSize (W32# (int2Word# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
csizeOfOffset (Offset (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
|
||||||
|
@@ -250,7 +260,11 @@ csizeOfOffset (Offset (I# sz)) = CSize (W64# (int2Word# sz))
|
||||||
|
sizeOfCSSize :: CSsize -> CountOf Word8
|
||||||
|
sizeOfCSSize (CSsize (-1)) = error "invalid size: CSSize is -1"
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# (int32ToInt# sz))
|
||||||
|
+#else
|
||||||
|
sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# sz)
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# (int64ToInt# sz))
|
||||||
|
@@ -261,7 +275,11 @@ sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# sz)
|
||||||
|
|
||||||
|
sizeOfCSize :: CSize -> CountOf Word8
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# (word32ToWord# sz)))
|
||||||
|
+#else
|
||||||
|
sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
sizeOfCSize (CSize (W64# sz)) = CountOf (I# (word2Int# (word64ToWord# sz)))
|
38
srcpkgs/postgrest/patches/data-bword.patch
Normal file
38
srcpkgs/postgrest/patches/data-bword.patch
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
diff -ru data-bword-old/src/Data/BinaryWord.hs data-bword/src/Data/BinaryWord.hs
|
||||||
|
--- a/data-bword/src/Data/BinaryWord.hs 2001-09-09 02:46:40.000000000 +0100
|
||||||
|
+++ b/data-bword/src/Data/BinaryWord.hs 2025-07-09 15:54:46.655592632 +0100
|
||||||
|
@@ -26,7 +26,7 @@
|
||||||
|
#if __GLASGOW_HASKELL__ >= 705
|
||||||
|
import GHC.Prim (plusWord2#, timesWord2#)
|
||||||
|
# if __GLASGOW_HASKELL__ >= 904
|
||||||
|
-import GHC.Prim (word64ToWord#, wordToWord64#)
|
||||||
|
+import GHC.Prim (word32ToWord#, wordToWord32#, word64ToWord#, wordToWord64#)
|
||||||
|
# endif
|
||||||
|
# if WORD_SIZE_IN_BITS == 32
|
||||||
|
import GHC.Word (Word32(..))
|
||||||
|
@@ -217,9 +217,9 @@
|
||||||
|
{-# INLINE signedWord #-}
|
||||||
|
#if __GLASGOW_HASKELL__ >= 705 && WORD_SIZE_IN_BITS == 32
|
||||||
|
unwrappedAdd (W32# x) (W32# y) = hi `seq` lo `seq` (hi, lo)
|
||||||
|
- where !(# hi', lo' #) = plusWord2# x y
|
||||||
|
- lo = W32# lo'
|
||||||
|
- hi = W32# hi'
|
||||||
|
+ where !(# hi', lo' #) = plusWord2# (word32ToWord# x) (word32ToWord# y)
|
||||||
|
+ lo = W32# (wordToWord32# lo')
|
||||||
|
+ hi = W32# (wordToWord32# hi')
|
||||||
|
#else
|
||||||
|
unwrappedAdd x y = hi `seq` lo `seq` (hi, lo)
|
||||||
|
where s = fromIntegral x + fromIntegral y ∷ Word64
|
||||||
|
@@ -229,9 +229,9 @@
|
||||||
|
{-# INLINE unwrappedAdd #-}
|
||||||
|
#if __GLASGOW_HASKELL__ >= 705 && WORD_SIZE_IN_BITS == 32
|
||||||
|
unwrappedMul (W32# x) (W32# y) = hi `seq` lo `seq` (hi, lo)
|
||||||
|
- where !(# hi', lo' #) = timesWord2# x y
|
||||||
|
- lo = W32# lo'
|
||||||
|
- hi = W32# hi'
|
||||||
|
+ where !(# hi', lo' #) = timesWord2# (word32ToWord# x) (word32ToWord# y)
|
||||||
|
+ lo = W32# (wordToWord32# lo')
|
||||||
|
+ hi = W32# (wordToWord32# hi')
|
||||||
|
#else
|
||||||
|
unwrappedMul x y = hi `seq` lo `seq` (hi, lo)
|
||||||
|
where p = fromIntegral x * fromIntegral y ∷ Word64
|
36
srcpkgs/postgrest/patches/memory.patch
Normal file
36
srcpkgs/postgrest/patches/memory.patch
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
From 2738929ce15b4c8704bbbac24a08539b5d4bf30e Mon Sep 17 00:00:00 2001
|
||||||
|
From: sternenseemann <sternenseemann@systemli.org>
|
||||||
|
Date: Mon, 14 Aug 2023 10:51:30 +0200
|
||||||
|
Subject: [PATCH] Data.Memory.Internal.CompatPrim64: fix 32 bit with GHC >= 9.4
|
||||||
|
|
||||||
|
Since 9.4, GHC.Prim exports Word64# operations like timesWord64# even on
|
||||||
|
i686 whereas GHC.IntWord64 no longer exists. Therefore, we can just use
|
||||||
|
the ready made solution.
|
||||||
|
|
||||||
|
Closes #98, as it should be the better solution.
|
||||||
|
---
|
||||||
|
Data/Memory/Internal/CompatPrim64.hs | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/Data/Memory/Internal/CompatPrim64.hs b/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
index b9eef8a..a134c88 100644
|
||||||
|
--- a/memory/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
+++ b/memory/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
@@ -150,6 +150,7 @@ w64# :: Word# -> Word# -> Word# -> Word64#
|
||||||
|
w64# w _ _ = w
|
||||||
|
|
||||||
|
#elif WORD_SIZE_IN_BITS == 32
|
||||||
|
+#if __GLASGOW_HASKELL__ < 904
|
||||||
|
import GHC.IntWord64
|
||||||
|
import GHC.Prim (Word#)
|
||||||
|
|
||||||
|
@@ -158,6 +159,9 @@ timesWord64# a b =
|
||||||
|
let !ai = word64ToInt64# a
|
||||||
|
!bi = word64ToInt64# b
|
||||||
|
in int64ToWord64# (timesInt64# ai bi)
|
||||||
|
+#else
|
||||||
|
+import GHC.Prim
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
w64# :: Word# -> Word# -> Word# -> Word64#
|
||||||
|
w64# _ hw lw =
|
8
srcpkgs/postgrest/patches/project.patch
Normal file
8
srcpkgs/postgrest/patches/project.patch
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
--- a/cabal.project 2025-07-07 17:29:28.447471490 +0100
|
||||||
|
+++ b/cabal.project 2025-07-07 17:29:48.730469893 +0100
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-packages: postgrest.cabal
|
||||||
|
+packages: ./basement ./memory ./data-bword postgrest.cabal
|
||||||
|
tests: true
|
||||||
|
package *
|
||||||
|
ghc-options: -split-sections
|
|
@ -1,35 +1,32 @@
|
||||||
# Template file for 'postgrest'
|
# Template file for 'postgrest'
|
||||||
pkgname=postgrest
|
pkgname=postgrest
|
||||||
version=10.2.0
|
version=13.0.4
|
||||||
revision=1
|
revision=1
|
||||||
hostmakedepends="cabal-install postgresql-libs-devel"
|
build_style=cabal
|
||||||
makedepends="zlib-devel postgresql-libs-devel"
|
makedepends="zlib-devel postgresql-libs-devel"
|
||||||
short_desc="REST API for any Postgres database"
|
short_desc="REST API for any Postgres database"
|
||||||
maintainer="Piotr Wójcik <chocimier@tlen.pl>"
|
maintainer="Piotr Wójcik <chocimier@tlen.pl>"
|
||||||
license="MIT"
|
license="MIT"
|
||||||
homepage="https://postgrest.org/"
|
homepage="https://postgrest.org/"
|
||||||
distfiles="https://github.com/PostgREST/postgrest/archive/v${version}.tar.gz"
|
distfiles="https://github.com/PostgREST/postgrest/archive/v${version}.tar.gz
|
||||||
checksum=23d63292d50d303bf61154061704f642dd3d699367e2ccb159ec7604f2848487
|
https://hackage.haskell.org/package/basement-0.0.16/basement-0.0.16.tar.gz
|
||||||
|
https://hackage.haskell.org/package/memory-0.18.0/memory-0.18.0.tar.gz
|
||||||
|
https://hackage.haskell.org/package/data-bword-0.1.0.2/data-bword-0.1.0.2.tar.gz"
|
||||||
|
checksum="515ea77c049ef69f4553940ef0f13018dc2b72792195ec11a2020fe8914ceab9
|
||||||
|
7fb77e249aef76ba5aed3059d556800ce02b614597c488ba01f0a16449146300
|
||||||
|
fd4eb6f638e24b81b4e6cdd68772a531726f2f67686c8969d3407d82f7862e3e
|
||||||
|
d64880e7d6c7a2d635d7e79552888f415a417379ee637a29321abf08187e9635"
|
||||||
nocross="cabal does not support cross compilation"
|
nocross="cabal does not support cross compilation"
|
||||||
nopie=yes # ghc is currently built without PIE support
|
nopie=yes # ghc is currently built without PIE support
|
||||||
|
skip_extraction="basement-0.0.16.tar.gz memory-0.18.0.tar.gz data-bword-0.1.0.2.tar.gz"
|
||||||
|
make_check=no # tests require running postgres instance
|
||||||
|
|
||||||
_cabal_opts="-g"
|
post_extract() {
|
||||||
|
vsrcextract -C basement basement-0.0.16.tar.gz
|
||||||
if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
|
vsrcextract -C memory memory-0.18.0.tar.gz
|
||||||
_cabal_opts+=" --ghc-option -latomic"
|
vsrcextract -C data-bword data-bword-0.1.0.2.tar.gz
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$XBPS_MAKEJOBS" ]; then
|
|
||||||
_cabal_opts+=" --jobs=$XBPS_MAKEJOBS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
do_build() {
|
|
||||||
cabal update $_cabal_opts
|
|
||||||
cabal build $_cabal_opts
|
|
||||||
mv dist-newstyle/build/*/*/postgrest-${version}/x/postgrest/build/postgrest/postgrest postgrest
|
|
||||||
}
|
}
|
||||||
|
|
||||||
do_install() {
|
post_install() {
|
||||||
vbin postgrest
|
|
||||||
vlicense LICENSE
|
vlicense LICENSE
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
# Template file for 'shellcheck'
|
# Template file for 'shellcheck'
|
||||||
pkgname=shellcheck
|
pkgname=shellcheck
|
||||||
version=0.10.0
|
version=0.10.0
|
||||||
revision=1
|
revision=2
|
||||||
build_style=haskell-stack
|
build_style=haskell-stack
|
||||||
stackage="lts-19.0"
|
stackage="lts-23.26"
|
||||||
hostmakedepends="pandoc"
|
hostmakedepends="pandoc"
|
||||||
short_desc="Static analysis tool for shell scripts"
|
short_desc="Static analysis tool for shell scripts"
|
||||||
maintainer="Orphaned <orphan@voidlinux.org>"
|
maintainer="Orphaned <orphan@voidlinux.org>"
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
From 2738929ce15b4c8704bbbac24a08539b5d4bf30e Mon Sep 17 00:00:00 2001
|
||||||
|
From: sternenseemann <sternenseemann@systemli.org>
|
||||||
|
Date: Mon, 14 Aug 2023 10:51:30 +0200
|
||||||
|
Subject: [PATCH] Data.Memory.Internal.CompatPrim64: fix 32 bit with GHC >= 9.4
|
||||||
|
|
||||||
|
Since 9.4, GHC.Prim exports Word64# operations like timesWord64# even on
|
||||||
|
i686 whereas GHC.IntWord64 no longer exists. Therefore, we can just use
|
||||||
|
the ready made solution.
|
||||||
|
|
||||||
|
Closes #98, as it should be the better solution.
|
||||||
|
---
|
||||||
|
Data/Memory/Internal/CompatPrim64.hs | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/Data/Memory/Internal/CompatPrim64.hs b/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
index b9eef8a..a134c88 100644
|
||||||
|
--- a/memory/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
+++ b/memory/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
@@ -150,6 +150,7 @@ w64# :: Word# -> Word# -> Word# -> Word64#
|
||||||
|
w64# w _ _ = w
|
||||||
|
|
||||||
|
#elif WORD_SIZE_IN_BITS == 32
|
||||||
|
+#if __GLASGOW_HASKELL__ < 904
|
||||||
|
import GHC.IntWord64
|
||||||
|
import GHC.Prim (Word#)
|
||||||
|
|
||||||
|
@@ -158,6 +159,9 @@ timesWord64# a b =
|
||||||
|
let !ai = word64ToInt64# a
|
||||||
|
!bi = word64ToInt64# b
|
||||||
|
in int64ToWord64# (timesInt64# ai bi)
|
||||||
|
+#else
|
||||||
|
+import GHC.Prim
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
w64# :: Word# -> Word# -> Word# -> Word64#
|
||||||
|
w64# _ hw lw =
|
|
@ -0,0 +1,242 @@
|
||||||
|
From 38be2c93acb6f459d24ed6c626981c35ccf44095 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sylvain Henry <sylvain@haskus.fr>
|
||||||
|
Date: Thu, 16 Feb 2023 15:40:45 +0100
|
||||||
|
Subject: [PATCH] Fix build on 32-bit architectures
|
||||||
|
|
||||||
|
---
|
||||||
|
basement/Basement/Bits.hs | 4 ++++
|
||||||
|
basement/Basement/From.hs | 24 -----------------------
|
||||||
|
basement/Basement/Numerical/Additive.hs | 4 ++++
|
||||||
|
basement/Basement/Numerical/Conversion.hs | 20 +++++++++++++++++++
|
||||||
|
basement/Basement/PrimType.hs | 6 +++++-
|
||||||
|
basement/Basement/Types/OffsetSize.hs | 22 +++++++++++++++++++--
|
||||||
|
6 files changed, 53 insertions(+), 27 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/basement/Basement/Bits.hs b/basement/Basement/Bits.hs
|
||||||
|
index 7eeea0f5..24520ed7 100644
|
||||||
|
--- a/basement/Basement/Bits.hs
|
||||||
|
+++ b/basement/Basement/Bits.hs
|
||||||
|
@@ -54,8 +54,12 @@ import GHC.Int
|
||||||
|
import Basement.Compat.Primitive
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | operation over finite bits
|
||||||
|
class FiniteBitsOps bits where
|
||||||
|
diff --git a/basement/Basement/From.hs b/basement/Basement/From.hs
|
||||||
|
index 7bbe141c..80014b3e 100644
|
||||||
|
--- a/basement/Basement/From.hs
|
||||||
|
+++ b/basement/Basement/From.hs
|
||||||
|
@@ -272,23 +272,11 @@ instance (NatWithinBound (CountOf ty) n, KnownNat n, PrimType ty)
|
||||||
|
tryFrom = BlockN.toBlockN . UArray.toBlock . BoxArray.mapToUnboxed id
|
||||||
|
|
||||||
|
instance (KnownNat n, NatWithinBound Word8 n) => From (Zn64 n) Word8 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word16 n) => From (Zn64 n) Word16 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word32 n) => From (Zn64 n) Word32 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance From (Zn64 n) Word64 where
|
||||||
|
from = unZn64
|
||||||
|
instance From (Zn64 n) Word128 where
|
||||||
|
@@ -297,23 +285,11 @@ instance From (Zn64 n) Word256 where
|
||||||
|
from = from . unZn64
|
||||||
|
|
||||||
|
instance (KnownNat n, NatWithinBound Word8 n) => From (Zn n) Word8 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word16 n) => From (Zn n) Word16 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word32 n) => From (Zn n) Word32 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word64 n) => From (Zn n) Word64 where
|
||||||
|
from = naturalToWord64 . unZn
|
||||||
|
instance (KnownNat n, NatWithinBound Word128 n) => From (Zn n) Word128 where
|
||||||
|
diff --git a/basement/Basement/Numerical/Additive.hs b/basement/Basement/Numerical/Additive.hs
|
||||||
|
index d0dfb973..8ab65aa0 100644
|
||||||
|
--- a/basement/Basement/Numerical/Additive.hs
|
||||||
|
+++ b/basement/Basement/Numerical/Additive.hs
|
||||||
|
@@ -30,8 +30,12 @@ import qualified Basement.Types.Word128 as Word128
|
||||||
|
import qualified Basement.Types.Word256 as Word256
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | Represent class of things that can be added together,
|
||||||
|
-- contains a neutral element and is commutative.
|
||||||
|
diff --git a/basement/Basement/Numerical/Conversion.hs b/basement/Basement/Numerical/Conversion.hs
|
||||||
|
index db502c07..fddc8232 100644
|
||||||
|
--- a/basement/Basement/Numerical/Conversion.hs
|
||||||
|
+++ b/basement/Basement/Numerical/Conversion.hs
|
||||||
|
@@ -26,8 +26,12 @@ import GHC.Word
|
||||||
|
import Basement.Compat.Primitive
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
intToInt64 :: Int -> Int64
|
||||||
|
#if WORD_SIZE_IN_BITS == 64
|
||||||
|
@@ -96,11 +100,22 @@ int64ToWord64 (I64# i) = W64# (int64ToWord64# i)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS == 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+word64ToWord# :: Word64# -> Word#
|
||||||
|
+word64ToWord# i = word64ToWord# i
|
||||||
|
+#else
|
||||||
|
word64ToWord# :: Word# -> Word#
|
||||||
|
word64ToWord# i = i
|
||||||
|
+#endif
|
||||||
|
{-# INLINE word64ToWord# #-}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+word64ToWord32# :: Word64# -> Word32#
|
||||||
|
+word64ToWord32# i = wordToWord32# (word64ToWord# i)
|
||||||
|
+{-# INLINE word64ToWord32# #-}
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
-- | 2 Word32s
|
||||||
|
data Word32x2 = Word32x2 {-# UNPACK #-} !Word32
|
||||||
|
{-# UNPACK #-} !Word32
|
||||||
|
@@ -113,9 +128,14 @@ word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# (G
|
||||||
|
word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# w64 32#))) (W32# (wordToWord32# w64))
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+word64ToWord32s :: Word64 -> Word32x2
|
||||||
|
+word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord32# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord32# w64))
|
||||||
|
+#else
|
||||||
|
word64ToWord32s :: Word64 -> Word32x2
|
||||||
|
word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord# w64))
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
wordToChar :: Word -> Char
|
||||||
|
wordToChar (W# word) = C# (chr# (word2Int# word))
|
||||||
|
diff --git a/basement/Basement/PrimType.hs b/basement/Basement/PrimType.hs
|
||||||
|
index f8ca2926..a888ec91 100644
|
||||||
|
--- a/basement/Basement/PrimType.hs
|
||||||
|
+++ b/basement/Basement/PrimType.hs
|
||||||
|
@@ -54,7 +54,11 @@ import Basement.Nat
|
||||||
|
import qualified Prelude (quot)
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
-import GHC.IntWord64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
+import GHC.IntWord64
|
||||||
|
+#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FOUNDATION_BOUNDS_CHECK
|
||||||
|
diff --git a/basement/Basement/Types/OffsetSize.hs b/basement/Basement/Types/OffsetSize.hs
|
||||||
|
index cd944927..1ea80dad 100644
|
||||||
|
--- a/basement/Basement/Types/OffsetSize.hs
|
||||||
|
+++ b/basement/Basement/Types/OffsetSize.hs
|
||||||
|
@@ -70,8 +70,12 @@ import Data.List (foldl')
|
||||||
|
import qualified Prelude
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | File size in bytes
|
||||||
|
newtype FileSize = FileSize Word64
|
||||||
|
@@ -225,20 +229,26 @@ countOfRoundUp alignment (CountOf n) = CountOf ((n + (alignment-1)) .&. compleme
|
||||||
|
|
||||||
|
csizeOfSize :: CountOf Word8 -> CSize
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+csizeOfSize (CountOf (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
|
||||||
|
+#else
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W32# (int2Word# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
|
||||||
|
-
|
||||||
|
#else
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W64# (int2Word# sz))
|
||||||
|
-
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
csizeOfOffset :: Offset8 -> CSize
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+csizeOfOffset (Offset (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
|
||||||
|
+#else
|
||||||
|
csizeOfOffset (Offset (I# sz)) = CSize (W32# (int2Word# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
csizeOfOffset (Offset (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
|
||||||
|
@@ -250,7 +260,11 @@ csizeOfOffset (Offset (I# sz)) = CSize (W64# (int2Word# sz))
|
||||||
|
sizeOfCSSize :: CSsize -> CountOf Word8
|
||||||
|
sizeOfCSSize (CSsize (-1)) = error "invalid size: CSSize is -1"
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# (int32ToInt# sz))
|
||||||
|
+#else
|
||||||
|
sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# sz)
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# (int64ToInt# sz))
|
||||||
|
@@ -261,7 +275,11 @@ sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# sz)
|
||||||
|
|
||||||
|
sizeOfCSize :: CSize -> CountOf Word8
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# (word32ToWord# sz)))
|
||||||
|
+#else
|
||||||
|
sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
sizeOfCSize (CSize (W64# sz)) = CountOf (I# (word2Int# (word64ToWord# sz)))
|
|
@ -1,46 +0,0 @@
|
||||||
commit 09e233ed73aa3335642f97c080ef27e42047c527
|
|
||||||
Author: q66 <daniel@octaforge.org>
|
|
||||||
Date: Fri Mar 11 04:37:15 2022 +0100
|
|
||||||
|
|
||||||
constrain aeson to prevent build failures
|
|
||||||
|
|
||||||
diff --git a/stack.cabal b/stack.cabal
|
|
||||||
index dba5bf0..0195f2c 100644
|
|
||||||
--- a/stack.cabal
|
|
||||||
+++ b/stack.cabal
|
|
||||||
@@ -231,7 +231,7 @@ library
|
|
||||||
|
|
||||||
build-depends:
|
|
||||||
Cabal >=3.2.1.0,
|
|
||||||
- aeson >=1.5.6.0,
|
|
||||||
+ aeson >=1.5.6.0 && <1.6,
|
|
||||||
annotated-wl-pprint >=0.7.0,
|
|
||||||
ansi-terminal >=0.10.3,
|
|
||||||
array >=0.5.4.0,
|
|
||||||
@@ -357,7 +357,7 @@ executable stack
|
|
||||||
|
|
||||||
build-depends:
|
|
||||||
Cabal >=3.2.1.0,
|
|
||||||
- aeson >=1.5.6.0,
|
|
||||||
+ aeson >=1.5.6.0 && <1.6,
|
|
||||||
annotated-wl-pprint >=0.7.0,
|
|
||||||
ansi-terminal >=0.10.3,
|
|
||||||
array >=0.5.4.0,
|
|
||||||
@@ -485,7 +485,7 @@ executable stack-integration-test
|
|
||||||
|
|
||||||
build-depends:
|
|
||||||
Cabal >=3.2.1.0,
|
|
||||||
- aeson >=1.5.6.0,
|
|
||||||
+ aeson >=1.5.6.0 && <1.6,
|
|
||||||
annotated-wl-pprint >=0.7.0,
|
|
||||||
ansi-terminal >=0.10.3,
|
|
||||||
array >=0.5.4.0,
|
|
||||||
@@ -621,7 +621,7 @@ test-suite stack-test
|
|
||||||
build-depends:
|
|
||||||
Cabal >=3.2.1.0,
|
|
||||||
QuickCheck >=2.14.2,
|
|
||||||
- aeson >=1.5.6.0,
|
|
||||||
+ aeson >=1.5.6.0 && <1.6,
|
|
||||||
annotated-wl-pprint >=0.7.0,
|
|
||||||
ansi-terminal >=0.10.3,
|
|
||||||
array >=0.5.4.0,
|
|
212
srcpkgs/stack/patches/cborg.patch
Normal file
212
srcpkgs/stack/patches/cborg.patch
Normal file
|
@ -0,0 +1,212 @@
|
||||||
|
commit 9d1418bb8b38cb9a438d7f18835b1ef7ef12b234
|
||||||
|
Author: amesgen <amesgen@amesgen.de>
|
||||||
|
Date: Sun Sep 10 20:03:40 2023 +0200
|
||||||
|
|
||||||
|
Fix compilation and support GHC >=9.2 on 32bit
|
||||||
|
|
||||||
|
diff --git a/cborg/src/Codec/CBOR/Decoding.hs b/cborg/src/Codec/CBOR/Decoding.hs
|
||||||
|
index a7d774c..bf68e68 100644
|
||||||
|
--- a/cborg/src/Codec/CBOR/Decoding.hs
|
||||||
|
+++ b/cborg/src/Codec/CBOR/Decoding.hs
|
||||||
|
@@ -315,11 +315,16 @@ getDecodeAction (Decoder k) = k (\x -> return (Done x))
|
||||||
|
toInt8 :: Int# -> Int8
|
||||||
|
toInt16 :: Int# -> Int16
|
||||||
|
toInt32 :: Int# -> Int32
|
||||||
|
-toInt64 :: Int# -> Int64
|
||||||
|
toWord8 :: Word# -> Word8
|
||||||
|
toWord16 :: Word# -> Word16
|
||||||
|
toWord32 :: Word# -> Word32
|
||||||
|
+#if defined(ARCH_64bit)
|
||||||
|
+toInt64 :: Int# -> Int64
|
||||||
|
toWord64 :: Word# -> Word64
|
||||||
|
+#else
|
||||||
|
+toInt64 :: Int64# -> Int64
|
||||||
|
+toWord64 :: Word64# -> Word64
|
||||||
|
+#endif
|
||||||
|
#if MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
toInt8 n = I8# (intToInt8# n)
|
||||||
|
toInt16 n = I16# (intToInt16# n)
|
||||||
|
@@ -327,8 +332,7 @@ toInt32 n = I32# (intToInt32# n)
|
||||||
|
toWord8 n = W8# (wordToWord8# n)
|
||||||
|
toWord16 n = W16# (wordToWord16# n)
|
||||||
|
toWord32 n = W32# (wordToWord32# n)
|
||||||
|
-#if WORD_SIZE_IN_BITS == 64
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && defined(ARCH_64bit)
|
||||||
|
toInt64 n = I64# (intToInt64# n)
|
||||||
|
toWord64 n = W64# (wordToWord64# n)
|
||||||
|
#else
|
||||||
|
@@ -336,10 +340,6 @@ toInt64 n = I64# n
|
||||||
|
toWord64 n = W64# n
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
-toInt64 n = I64# (intToInt64# n)
|
||||||
|
-toWord64 n = W64# (wordToWord64# n)
|
||||||
|
-#endif
|
||||||
|
-#else
|
||||||
|
toInt8 n = I8# n
|
||||||
|
toInt16 n = I16# n
|
||||||
|
toInt32 n = I32# n
|
||||||
|
@@ -986,7 +986,7 @@ type ByteOffset = Int64
|
||||||
|
-- @since 0.2.2.0
|
||||||
|
peekByteOffset :: Decoder s ByteOffset
|
||||||
|
peekByteOffset = Decoder (\k -> return (PeekByteOffset (\off# -> k (I64#
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && !defined(ARCH_32bit)
|
||||||
|
(intToInt64# off#)
|
||||||
|
#else
|
||||||
|
off#
|
||||||
|
diff --git a/cborg/src/Codec/CBOR/Magic.hs b/cborg/src/Codec/CBOR/Magic.hs
|
||||||
|
index cdeb455..bfae638 100644
|
||||||
|
--- a/cborg/src/Codec/CBOR/Magic.hs
|
||||||
|
+++ b/cborg/src/Codec/CBOR/Magic.hs
|
||||||
|
@@ -120,7 +120,7 @@ import qualified Numeric.Half as Half
|
||||||
|
import Data.Bits ((.|.), unsafeShiftL)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#if defined(ARCH_32bit)
|
||||||
|
+#if defined(ARCH_32bit) && !MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
import GHC.IntWord64 (wordToWord64#, word64ToWord#,
|
||||||
|
intToInt64#, int64ToInt#,
|
||||||
|
leWord64#, ltWord64#, word64ToInt64#)
|
||||||
|
@@ -173,7 +173,7 @@ grabWord64 (Ptr ip#) = W64# (wordToWord64# (byteSwap# (word64ToWord# (indexWord6
|
||||||
|
grabWord64 (Ptr ip#) = W64# (byteSwap# (indexWord64OffAddr# ip# 0#))
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
-grabWord64 (Ptr ip#) = W64# (byteSwap64# (word64ToWord# (indexWord64OffAddr# ip# 0#)))
|
||||||
|
+grabWord64 (Ptr ip#) = W64# (byteSwap64# (indexWord64OffAddr# ip# 0#))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#elif defined(MEM_UNALIGNED_OPS) && \
|
||||||
|
@@ -484,7 +484,7 @@ word16ToInt (W16# w#) = I# (word2Int# (word16ToWord# w#))
|
||||||
|
word32ToInt (W32# w#) = I# (word2Int# (word32ToWord# w#))
|
||||||
|
#else
|
||||||
|
word32ToInt (W32# w#) =
|
||||||
|
- case isTrue# (w# `ltWord#` 0x80000000##) of
|
||||||
|
+ case isTrue# (word32ToWord# w# `ltWord#` 0x80000000##) of
|
||||||
|
True -> Just (I# (word2Int# (word32ToWord# w#)))
|
||||||
|
False -> Nothing
|
||||||
|
#endif
|
||||||
|
@@ -530,6 +530,19 @@ word64ToInt (W64# w#) =
|
||||||
|
{-# INLINE word64ToInt #-}
|
||||||
|
|
||||||
|
#if defined(ARCH_32bit)
|
||||||
|
+#if MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
+word8ToInt64 (W8# w#) = I64# (intToInt64# (word2Int# (word8ToWord# w#)))
|
||||||
|
+word16ToInt64 (W16# w#) = I64# (intToInt64# (word2Int# (word16ToWord# w#)))
|
||||||
|
+word32ToInt64 (W32# w#) = I64# (word64ToInt64# (wordToWord64# (word32ToWord# w#)))
|
||||||
|
+word64ToInt64 (W64# w#) =
|
||||||
|
+ case isTrue# (w# `ltWord64#` uncheckedShiftL64# (wordToWord64# 1##) 63#) of
|
||||||
|
+ True -> Just (I64# (word64ToInt64# w#))
|
||||||
|
+ False -> Nothing
|
||||||
|
+
|
||||||
|
+word8ToWord64 (W8# w#) = W64# (wordToWord64# (word8ToWord# w#))
|
||||||
|
+word16ToWord64 (W16# w#) = W64# (wordToWord64# (word16ToWord# w#))
|
||||||
|
+word32ToWord64 (W32# w#) = W64# (wordToWord64# (word32ToWord# w#))
|
||||||
|
+#else
|
||||||
|
word8ToInt64 (W8# w#) = I64# (intToInt64# (word2Int# w#))
|
||||||
|
word16ToInt64 (W16# w#) = I64# (intToInt64# (word2Int# w#))
|
||||||
|
word32ToInt64 (W32# w#) = I64# (word64ToInt64# (wordToWord64# w#))
|
||||||
|
@@ -541,6 +554,7 @@ word64ToInt64 (W64# w#) =
|
||||||
|
word8ToWord64 (W8# w#) = W64# (wordToWord64# w#)
|
||||||
|
word16ToWord64 (W16# w#) = W64# (wordToWord64# w#)
|
||||||
|
word32ToWord64 (W32# w#) = W64# (wordToWord64# w#)
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
{-# INLINE word8ToInt64 #-}
|
||||||
|
{-# INLINE word16ToInt64 #-}
|
||||||
|
diff --git a/cborg/src/Codec/CBOR/Read.hs b/cborg/src/Codec/CBOR/Read.hs
|
||||||
|
index 6546575..c4dc761 100644
|
||||||
|
--- a/cborg/src/Codec/CBOR/Read.hs
|
||||||
|
+++ b/cborg/src/Codec/CBOR/Read.hs
|
||||||
|
@@ -63,7 +63,7 @@ import qualified Data.Text as T
|
||||||
|
import qualified Data.Text.Encoding as T
|
||||||
|
import Data.Word
|
||||||
|
import GHC.Word
|
||||||
|
-#if defined(ARCH_32bit)
|
||||||
|
+#if defined(ARCH_32bit) && !MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
import GHC.Exts
|
||||||
|
@@ -510,8 +510,8 @@ go_fast !bs da@(ConsumeNegWord64Canonical k) =
|
||||||
|
go_fast !bs da@(ConsumeInt64Canonical k) =
|
||||||
|
case tryConsumeInt64 (BS.unsafeHead bs) bs of
|
||||||
|
DecodeFailure -> go_fast_end bs da
|
||||||
|
- DecodedToken sz i@(I64# i#)
|
||||||
|
- | isInt64Canonical sz i -> k i# >>= go_fast (BS.unsafeDrop sz bs)
|
||||||
|
+ DecodedToken sz (I64# i#)
|
||||||
|
+ | isInt64Canonical sz i# -> k i# >>= go_fast (BS.unsafeDrop sz bs)
|
||||||
|
| otherwise -> go_fast_end bs da
|
||||||
|
|
||||||
|
go_fast !bs da@(ConsumeListLen64Canonical k) =
|
||||||
|
@@ -994,8 +994,8 @@ go_fast_end !bs (ConsumeNegWord64Canonical k) =
|
||||||
|
go_fast_end !bs (ConsumeInt64Canonical k) =
|
||||||
|
case tryConsumeInt64 (BS.unsafeHead bs) bs of
|
||||||
|
DecodeFailure -> return $! SlowFail bs "expected int64"
|
||||||
|
- DecodedToken sz i@(I64# i#)
|
||||||
|
- | isInt64Canonical sz i -> k i# >>= go_fast_end (BS.unsafeDrop sz bs)
|
||||||
|
+ DecodedToken sz (I64# i#)
|
||||||
|
+ | isInt64Canonical sz i# -> k i# >>= go_fast_end (BS.unsafeDrop sz bs)
|
||||||
|
| otherwise -> return $! SlowFail bs "non-canonical int64"
|
||||||
|
|
||||||
|
go_fast_end !bs (ConsumeListLen64Canonical k) =
|
||||||
|
@@ -1271,7 +1271,7 @@ go_slow da bs !offset = do
|
||||||
|
|
||||||
|
SlowPeekByteOffset bs' k ->
|
||||||
|
lift
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && !defined(ARCH_32bit)
|
||||||
|
(k (int64ToInt# off#))
|
||||||
|
#else
|
||||||
|
(k off#)
|
||||||
|
@@ -1381,7 +1381,7 @@ go_slow_overlapped da sz bs_cur bs_next !offset =
|
||||||
|
SlowPeekByteOffset bs_empty k ->
|
||||||
|
assert (BS.null bs_empty) $ do
|
||||||
|
lift
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && !defined(ARCH_32bit)
|
||||||
|
(k (int64ToInt# off#))
|
||||||
|
#else
|
||||||
|
(k off#)
|
||||||
|
@@ -1565,17 +1565,17 @@ isIntCanonical sz i
|
||||||
|
{-# INLINE isWord64Canonical #-}
|
||||||
|
isWord64Canonical :: Int -> Word64 -> Bool
|
||||||
|
isWord64Canonical sz w
|
||||||
|
- | sz == 2 = w > 0x17)
|
||||||
|
- | sz == 3 = w > 0xff)
|
||||||
|
- | sz == 5 = w > 0xffff)
|
||||||
|
- | sz == 9 = w > 0xffffffff)
|
||||||
|
+ | sz == 2 = w > 0x17
|
||||||
|
+ | sz == 3 = w > 0xff
|
||||||
|
+ | sz == 5 = w > 0xffff
|
||||||
|
+ | sz == 9 = w > 0xffffffff
|
||||||
|
| otherwise = True
|
||||||
|
|
||||||
|
{-# INLINE isInt64Canonical #-}
|
||||||
|
isInt64Canonical :: Int -> Int64# -> Bool
|
||||||
|
isInt64Canonical sz i#
|
||||||
|
- | isTrue# (i# `ltInt64#` intToInt64# 0#) = isWord64Canonical sz (not64# w#)
|
||||||
|
- | otherwise = isWord64Canonical sz w#
|
||||||
|
+ | isTrue# (i# `ltInt64#` intToInt64# 0#) = isWord64Canonical sz (W64# (not64# w#))
|
||||||
|
+ | otherwise = isWord64Canonical sz (W64# w#)
|
||||||
|
where
|
||||||
|
w# = int64ToWord64# i#
|
||||||
|
#endif
|
||||||
|
@@ -1796,7 +1796,7 @@ tryConsumeInteger hdr !bs = case word8ToWord hdr of
|
||||||
|
0x1b -> let !w = eatTailWord64 bs
|
||||||
|
sz = 9
|
||||||
|
#if defined(ARCH_32bit)
|
||||||
|
- in DecodedToken sz (BigIntToken (isWord64Canonical sz (word64ToWord w)) $! toInteger w)
|
||||||
|
+ in DecodedToken sz (BigIntToken (isWord64Canonical sz w) $! toInteger w)
|
||||||
|
#else
|
||||||
|
in DecodedToken sz (BigIntToken (isWordCanonical sz (word64ToWord w)) $! toInteger w)
|
||||||
|
#endif
|
||||||
|
@@ -1838,7 +1838,7 @@ tryConsumeInteger hdr !bs = case word8ToWord hdr of
|
||||||
|
0x3b -> let !w = eatTailWord64 bs
|
||||||
|
sz = 9
|
||||||
|
#if defined(ARCH_32bit)
|
||||||
|
- in DecodedToken sz (BigIntToken (isWord64Canonical sz (word64ToWord w)) $! (-1 - toInteger w))
|
||||||
|
+ in DecodedToken sz (BigIntToken (isWord64Canonical sz w) $! (-1 - toInteger w))
|
||||||
|
#else
|
||||||
|
in DecodedToken sz (BigIntToken (isWordCanonical sz (word64ToWord w)) $! (-1 - toInteger w))
|
||||||
|
#endif
|
|
@ -1,20 +0,0 @@
|
||||||
--- a/src/Stack/Build/Execute.hs
|
|
||||||
+++ b/src/Stack/Build/Execute.hs
|
|
||||||
@@ -26,7 +26,7 @@ import Control.Concurrent.Exec
|
|
||||||
import Control.Concurrent.STM (check)
|
|
||||||
import Stack.Prelude hiding (Display (..))
|
|
||||||
import Crypto.Hash
|
|
||||||
-import Data.Attoparsec.Text hiding (try)
|
|
||||||
+import Data.Attoparsec.Text as P hiding (try)
|
|
||||||
import qualified Data.ByteArray as Mem (convert)
|
|
||||||
import qualified Data.ByteString as S
|
|
||||||
import qualified Data.ByteString.Builder
|
|
||||||
@@ -2160,7 +2160,7 @@ mungeBuildOutput excludeTHLoading makeAb
|
|
||||||
lineCol = char ':'
|
|
||||||
>> choice
|
|
||||||
[ num >> char ':' >> num >> optional (char '-' >> num) >> return ()
|
|
||||||
- , char '(' >> num >> char ',' >> num >> string ")-(" >> num >> char ',' >> num >> char ')' >> return ()
|
|
||||||
+ , char '(' >> num >> char ',' >> num >> P.string ")-(" >> num >> char ',' >> num >> char ')' >> return ()
|
|
||||||
]
|
|
||||||
>> char ':'
|
|
||||||
>> return ()
|
|
|
@ -1,16 +0,0 @@
|
||||||
src/Stack/FileWatch.hs:29:49: error: Not in scope: ‘confUsePolling’
|
|
||||||
|
|
|
||||||
29 | fileWatchPoll = fileWatchConf $ defaultConfig { confUsePolling = True }
|
|
||||||
| ^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
--- a/stack.cabal
|
|
||||||
+++ b/stack.cabal
|
|
||||||
@@ -256,7 +256,7 @@ library
|
|
||||||
file-embed >=0.0.14.0,
|
|
||||||
filelock >=0.1.1.5,
|
|
||||||
filepath >=1.4.2.1,
|
|
||||||
- fsnotify >=0.3.0.1,
|
|
||||||
+ fsnotify >=0.3.0.1 && <0.4.0.0,
|
|
||||||
generic-deriving >=1.13.1,
|
|
||||||
hackage-security >=0.6.0.1,
|
|
||||||
hashable >=1.3.0.0,
|
|
|
@ -1,212 +0,0 @@
|
||||||
From cb7e56842a25f93142545fad21306a7c1750fbbf Mon Sep 17 00:00:00 2001
|
|
||||||
From: Brandon Chinn <brandon@leapyear.io>
|
|
||||||
Date: Fri, 4 Jun 2021 16:26:22 -0700
|
|
||||||
Subject: [PATCH 1/6] Use Cabal 3.4.0.0
|
|
||||||
|
|
||||||
---
|
|
||||||
stack.yaml | 3 +++
|
|
||||||
1 file changed, 3 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/stack.yaml b/stack.yaml
|
|
||||||
index 005bd19f4..9472509be 100644
|
|
||||||
--- a/stack.yaml
|
|
||||||
+++ b/stack.yaml
|
|
||||||
@@ -20,6 +20,9 @@ flags:
|
|
||||||
ghc-options:
|
|
||||||
"$locals": -fhide-source-paths
|
|
||||||
|
|
||||||
+extra-deps:
|
|
||||||
+- Cabal-3.4.0.0
|
|
||||||
+
|
|
||||||
drop-packages:
|
|
||||||
# See https://github.com/commercialhaskell/stack/pull/4712
|
|
||||||
- cabal-install
|
|
||||||
|
|
||||||
From 11e11ab0edeba033b40a7fc62434be58dea82ce2 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Brandon Chinn <brandon@leapyear.io>
|
|
||||||
Date: Fri, 4 Jun 2021 16:40:56 -0700
|
|
||||||
Subject: [PATCH 2/6] Fix Flag => PackageFlag
|
|
||||||
|
|
||||||
---
|
|
||||||
src/Stack/BuildPlan.hs | 2 +-
|
|
||||||
src/Stack/Package.hs | 8 ++++----
|
|
||||||
2 files changed, 5 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/Stack/BuildPlan.hs b/src/Stack/BuildPlan.hs
|
|
||||||
index 36f82236e..c5c80efc6 100644
|
|
||||||
--- a/src/Stack/BuildPlan.hs
|
|
||||||
+++ b/src/Stack/BuildPlan.hs
|
|
||||||
@@ -224,7 +224,7 @@ selectPackageBuildPlan platform compiler pool gpd =
|
|
||||||
flagCombinations :: NonEmpty [(FlagName, Bool)]
|
|
||||||
flagCombinations = mapM getOptions (genPackageFlags gpd)
|
|
||||||
where
|
|
||||||
- getOptions :: C.Flag -> NonEmpty (FlagName, Bool)
|
|
||||||
+ getOptions :: C.PackageFlag -> NonEmpty (FlagName, Bool)
|
|
||||||
getOptions f
|
|
||||||
| flagManual f = (fname, flagDefault f) :| []
|
|
||||||
| flagDefault f = (fname, True) :| [(fname, False)]
|
|
||||||
diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
|
|
||||||
index 4db50d2a4..d9bca7af5 100644
|
|
||||||
--- a/src/Stack/Package.hs
|
|
||||||
+++ b/src/Stack/Package.hs
|
|
||||||
@@ -128,7 +128,7 @@ resolvePackage packageConfig gpkg =
|
|
||||||
(resolvePackageDescription packageConfig gpkg)
|
|
||||||
|
|
||||||
packageFromPackageDescription :: PackageConfig
|
|
||||||
- -> [D.Flag]
|
|
||||||
+ -> [PackageFlag]
|
|
||||||
-> PackageDescriptionPair
|
|
||||||
-> Package
|
|
||||||
packageFromPackageDescription packageConfig pkgFlags (PackageDescriptionPair pkgNoMod pkg) =
|
|
||||||
@@ -935,9 +935,9 @@ resolvePackageDescription packageConfig (GenericPackageDescription desc defaultF
|
|
||||||
-- | Make a map from a list of flag specifications.
|
|
||||||
--
|
|
||||||
-- What is @flagManual@ for?
|
|
||||||
-flagMap :: [Flag] -> Map FlagName Bool
|
|
||||||
+flagMap :: [PackageFlag] -> Map FlagName Bool
|
|
||||||
flagMap = M.fromList . map pair
|
|
||||||
- where pair :: Flag -> (FlagName, Bool)
|
|
||||||
+ where pair :: PackageFlag -> (FlagName, Bool)
|
|
||||||
pair = flagName &&& flagDefault
|
|
||||||
|
|
||||||
data ResolveConditions = ResolveConditions
|
|
||||||
@@ -986,7 +986,7 @@ resolveConditions rc addDeps (CondNode lib deps cs) = basic <> children
|
|
||||||
case v of
|
|
||||||
OS os -> os == rcOS rc
|
|
||||||
Arch arch -> arch == rcArch rc
|
|
||||||
- Flag flag ->
|
|
||||||
+ PackageFlag flag ->
|
|
||||||
fromMaybe False $ M.lookup flag (rcFlags rc)
|
|
||||||
-- NOTE: ^^^^^ This should never happen, as all flags
|
|
||||||
-- which are used must be declared. Defaulting to
|
|
||||||
|
|
||||||
From 8facd731ec3f2bbc15a083750740929167b33bb2 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Brandon Chinn <brandon@leapyear.io>
|
|
||||||
Date: Fri, 4 Jun 2021 16:55:30 -0700
|
|
||||||
Subject: [PATCH 3/6] Fix CabalSpecVersion
|
|
||||||
|
|
||||||
---
|
|
||||||
src/Stack/Package.hs | 5 +++--
|
|
||||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
|
|
||||||
index d9bca7af5..fca039140 100644
|
|
||||||
--- a/src/Stack/Package.hs
|
|
||||||
+++ b/src/Stack/Package.hs
|
|
||||||
@@ -32,6 +32,7 @@ import Data.List (find, isPrefixOf, unzip)
|
|
||||||
import qualified Data.Map.Strict as M
|
|
||||||
import qualified Data.Set as S
|
|
||||||
import qualified Data.Text as T
|
|
||||||
+import Distribution.CabalSpecVersion (CabalSpecVersion, cabalSpecMinimumLibraryVersion)
|
|
||||||
import Distribution.Compiler
|
|
||||||
import Distribution.ModuleName (ModuleName)
|
|
||||||
import qualified Distribution.ModuleName as Cabal
|
|
||||||
@@ -190,7 +191,7 @@ packageFromPackageDescription packageConfig pkgFlags (PackageDescriptionPair pkg
|
|
||||||
(library pkg)
|
|
||||||
, packageBuildType = buildType pkg
|
|
||||||
, packageSetupDeps = msetupDeps
|
|
||||||
- , packageCabalSpec = either orLaterVersion id $ specVersionRaw pkg
|
|
||||||
+ , packageCabalSpec = orLaterVersion $ mkVersion $ cabalSpecMinimumLibraryVersion $ specVersion pkg
|
|
||||||
}
|
|
||||||
where
|
|
||||||
extraLibNames = S.union subLibNames foreignLibNames
|
|
||||||
@@ -696,7 +697,7 @@ packageDescModulesAndFiles pkg = do
|
|
||||||
|
|
||||||
-- | Resolve globbing of files (e.g. data files) to absolute paths.
|
|
||||||
resolveGlobFiles
|
|
||||||
- :: Version -- ^ cabal file version
|
|
||||||
+ :: CabalSpecVersion -- ^ cabal file version
|
|
||||||
-> [String]
|
|
||||||
-> RIO Ctx (Set (Path Abs File))
|
|
||||||
resolveGlobFiles cabalFileVersion =
|
|
||||||
|
|
||||||
From 004f14652409b7d0645215d354b2e599eb7f76bc Mon Sep 17 00:00:00 2001
|
|
||||||
From: Brandon Chinn <brandon@leapyear.io>
|
|
||||||
Date: Fri, 4 Jun 2021 16:55:40 -0700
|
|
||||||
Subject: [PATCH 4/6] Fix GenericPackageDescription
|
|
||||||
|
|
||||||
---
|
|
||||||
src/Stack/Build.hs | 2 +-
|
|
||||||
src/Stack/Package.hs | 2 +-
|
|
||||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/Stack/Build.hs b/src/Stack/Build.hs
|
|
||||||
index 23b9a9719..856903bed 100644
|
|
||||||
--- a/src/Stack/Build.hs
|
|
||||||
+++ b/src/Stack/Build.hs
|
|
||||||
@@ -358,7 +358,7 @@ checkComponentsBuildable lps =
|
|
||||||
checkSubLibraryDependencies :: HasLogFunc env => [ProjectPackage] -> RIO env ()
|
|
||||||
checkSubLibraryDependencies proj = do
|
|
||||||
forM_ proj $ \p -> do
|
|
||||||
- C.GenericPackageDescription _ _ lib subLibs foreignLibs exes tests benches <- liftIO $ cpGPD . ppCommon $ p
|
|
||||||
+ C.GenericPackageDescription _ _ _ lib subLibs foreignLibs exes tests benches <- liftIO $ cpGPD . ppCommon $ p
|
|
||||||
|
|
||||||
let dependencies = concatMap getDeps subLibs <>
|
|
||||||
concatMap getDeps foreignLibs <>
|
|
||||||
diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
|
|
||||||
index fca039140..39aad4d2f 100644
|
|
||||||
--- a/src/Stack/Package.hs
|
|
||||||
+++ b/src/Stack/Package.hs
|
|
||||||
@@ -863,7 +863,7 @@ data PackageDescriptionPair = PackageDescriptionPair
|
|
||||||
resolvePackageDescription :: PackageConfig
|
|
||||||
-> GenericPackageDescription
|
|
||||||
-> PackageDescriptionPair
|
|
||||||
-resolvePackageDescription packageConfig (GenericPackageDescription desc defaultFlags mlib subLibs foreignLibs' exes tests benches) =
|
|
||||||
+resolvePackageDescription packageConfig (GenericPackageDescription desc _ defaultFlags mlib subLibs foreignLibs' exes tests benches) =
|
|
||||||
PackageDescriptionPair
|
|
||||||
{ pdpOrigBuildable = go False
|
|
||||||
, pdpModifiedBuildable = go True
|
|
||||||
|
|
||||||
From 820797b566ef981936907f4d19658259d4a635a8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Brandon Chinn <brandon@leapyear.io>
|
|
||||||
Date: Fri, 4 Jun 2021 17:01:01 -0700
|
|
||||||
Subject: [PATCH 5/6] Fix generatePackageVersionMacros
|
|
||||||
|
|
||||||
---
|
|
||||||
src/Stack/Build/Execute.hs | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/Stack/Build/Execute.hs b/src/Stack/Build/Execute.hs
|
|
||||||
index 1e381dd21..aedd7fee5 100644
|
|
||||||
--- a/src/Stack/Build/Execute.hs
|
|
||||||
+++ b/src/Stack/Build/Execute.hs
|
|
||||||
@@ -1214,7 +1214,7 @@ withSingleContext ActionContext {..} ee@ExecuteEnv {..} task@Task {..} allDeps m
|
|
||||||
let macroDeps = mapMaybe snd matchedDeps
|
|
||||||
cppMacrosFile = setupDir </> relFileSetupMacrosH
|
|
||||||
cppArgs = ["-optP-include", "-optP" ++ toFilePath cppMacrosFile]
|
|
||||||
- writeBinaryFileAtomic cppMacrosFile (encodeUtf8Builder (T.pack (C.generatePackageVersionMacros macroDeps)))
|
|
||||||
+ writeBinaryFileAtomic cppMacrosFile (encodeUtf8Builder (T.pack (C.generatePackageVersionMacros (packageVersion package) macroDeps)))
|
|
||||||
return (packageDBArgs ++ depsArgs ++ cppArgs)
|
|
||||||
|
|
||||||
-- This branch is usually taken for builds, and
|
|
||||||
|
|
||||||
From 336ab515e30f03c274f89ebe1cbc6aa1e597c2a4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Brandon Chinn <brandon@leapyear.io>
|
|
||||||
Date: Fri, 4 Jun 2021 17:04:16 -0700
|
|
||||||
Subject: [PATCH 6/6] Fix ModuleReexport
|
|
||||||
|
|
||||||
---
|
|
||||||
src/Stack/Script.hs | 3 ++-
|
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/Stack/Script.hs b/src/Stack/Script.hs
|
|
||||||
index 6bb67c049..9ebd2173d 100644
|
|
||||||
--- a/src/Stack/Script.hs
|
|
||||||
+++ b/src/Stack/Script.hs
|
|
||||||
@@ -18,6 +18,7 @@ import Distribution.Compiler (CompilerFlavor (..))
|
|
||||||
import Distribution.ModuleName (ModuleName)
|
|
||||||
import qualified Distribution.PackageDescription as PD
|
|
||||||
import qualified Distribution.Types.CondTree as C
|
|
||||||
+import qualified Distribution.Types.ModuleReexport as ModuleReexport
|
|
||||||
import Distribution.Types.PackageName (mkPackageName)
|
|
||||||
import Distribution.Types.VersionRange (withinRange)
|
|
||||||
import Distribution.System (Platform (..))
|
|
||||||
@@ -280,7 +281,7 @@ allExposedModules gpd = do
|
|
||||||
mlibrary = snd . C.simplifyCondTree checkCond <$> PD.condLibrary gpd
|
|
||||||
pure $ case mlibrary of
|
|
||||||
Just lib -> PD.exposedModules lib ++
|
|
||||||
- map PD.moduleReexportName (PD.reexportedModules lib)
|
|
||||||
+ map ModuleReexport.moduleReexportName (PD.reexportedModules lib)
|
|
||||||
Nothing -> mempty
|
|
||||||
|
|
||||||
-- | The Stackage project introduced the concept of hidden packages,
|
|
|
@ -1,26 +0,0 @@
|
||||||
Adapted from: https://github.com/commercialhaskell/stack/commit/4afcf774d2a821e69b6a1afca67bf34341c84e85
|
|
||||||
|
|
||||||
--- a/src/Options/Applicative/Complicated.hs
|
|
||||||
+++ b/src/Options/Applicative/Complicated.hs
|
|
||||||
@@ -136,20 +136,9 @@ complicatedParser commandMetavar commonP
|
|
||||||
(,) <$>
|
|
||||||
commonParser <*>
|
|
||||||
case runWriter (runExceptT commandParser) of
|
|
||||||
- (Right (),d) -> hsubparser' commandMetavar d
|
|
||||||
+ (Right (), m) -> hsubparser (m <> metavar commandMetavar)
|
|
||||||
(Left b,_) -> pure (b,mempty)
|
|
||||||
|
|
||||||
--- | Subparser with @--help@ argument. Borrowed with slight modification
|
|
||||||
--- from Options.Applicative.Extra.
|
|
||||||
-hsubparser' :: String -> Mod CommandFields a -> Parser a
|
|
||||||
-hsubparser' commandMetavar m = mkParser d g rdr
|
|
||||||
- where
|
|
||||||
- Mod _ d g = metavar commandMetavar `mappend` m
|
|
||||||
- (groupName, cmds, subs) = mkCommand m
|
|
||||||
- rdr = CmdReader groupName cmds (fmap add_helper . subs)
|
|
||||||
- add_helper pinfo = pinfo
|
|
||||||
- { infoParser = infoParser pinfo <**> helpOption }
|
|
||||||
-
|
|
||||||
-- | Non-hidden help option.
|
|
||||||
helpOption :: Parser (a -> a)
|
|
||||||
helpOption =
|
|
|
@ -1,40 +0,0 @@
|
||||||
constrain http-download to prevent build failures
|
|
||||||
|
|
||||||
--- a/stack.cabal
|
|
||||||
+++ b/stack.cabal
|
|
||||||
@@ -267,7 +267,7 @@ library
|
|
||||||
http-client >=0.6.4.1,
|
|
||||||
http-client-tls >=0.3.5.3,
|
|
||||||
http-conduit >=2.3.8,
|
|
||||||
- http-download >=0.2.0.0,
|
|
||||||
+ http-download >=0.2.0.0 && <0.2.1,
|
|
||||||
http-types >=0.12.3,
|
|
||||||
memory >=0.15.0,
|
|
||||||
microlens >=0.4.11.2,
|
|
||||||
@@ -393,7 +393,7 @@ executable stack
|
|
||||||
http-client >=0.6.4.1,
|
|
||||||
http-client-tls >=0.3.5.3,
|
|
||||||
http-conduit >=2.3.8,
|
|
||||||
- http-download >=0.2.0.0,
|
|
||||||
+ http-download >=0.2.0.0 && <0.2.1,
|
|
||||||
http-types >=0.12.3,
|
|
||||||
memory >=0.15.0,
|
|
||||||
microlens >=0.4.11.2,
|
|
||||||
@@ -522,7 +522,7 @@ executable stack-integration-test
|
|
||||||
http-client >=0.6.4.1,
|
|
||||||
http-client-tls >=0.3.5.3,
|
|
||||||
http-conduit >=2.3.8,
|
|
||||||
- http-download >=0.2.0.0,
|
|
||||||
+ http-download >=0.2.0.0 && <0.2.1,
|
|
||||||
http-types >=0.12.3,
|
|
||||||
memory >=0.15.0,
|
|
||||||
microlens >=0.4.11.2,
|
|
||||||
@@ -658,7 +658,7 @@ test-suite stack-test
|
|
||||||
http-client >=0.6.4.1,
|
|
||||||
http-client-tls >=0.3.5.3,
|
|
||||||
http-conduit >=2.3.8,
|
|
||||||
- http-download >=0.2.0.0,
|
|
||||||
+ http-download >=0.2.0.0 && <0.2.1,
|
|
||||||
http-types >=0.12.3,
|
|
||||||
memory >=0.15.0,
|
|
||||||
microlens >=0.4.11.2,
|
|
|
@ -1,40 +0,0 @@
|
||||||
constrain pantry to prevent build failures
|
|
||||||
|
|
||||||
--- a/stack.cabal
|
|
||||||
+++ b/stack.cabal
|
|
||||||
@@ -279,7 +279,7 @@ library
|
|
||||||
network-uri >=2.6.4.1,
|
|
||||||
open-browser >=0.2.1.0,
|
|
||||||
optparse-applicative >=0.14.3.0,
|
|
||||||
- pantry >=0.5.3,
|
|
||||||
+ pantry >=0.5.3 && <0.6.0,
|
|
||||||
path >=0.7.0,
|
|
||||||
path-io >=1.6.3,
|
|
||||||
persistent >=2.11.0.4 && <2.14.0.0,
|
|
||||||
@@ -405,7 +405,7 @@ executable stack
|
|
||||||
network-uri >=2.6.4.1,
|
|
||||||
open-browser >=0.2.1.0,
|
|
||||||
optparse-applicative >=0.14.3.0,
|
|
||||||
- pantry >=0.5.3,
|
|
||||||
+ pantry >=0.5.3 && <0.6.0,
|
|
||||||
path >=0.7.0,
|
|
||||||
path-io >=1.6.3,
|
|
||||||
persistent >=2.11.0.4 && <2.14.0.0,
|
|
||||||
@@ -535,7 +535,7 @@ executable stack-integration-test
|
|
||||||
open-browser >=0.2.1.0,
|
|
||||||
optparse-applicative >=0.14.3.0,
|
|
||||||
optparse-generic >=1.3.1,
|
|
||||||
- pantry >=0.5.3,
|
|
||||||
+ pantry >=0.5.3 && <0.6.0,
|
|
||||||
path >=0.7.0,
|
|
||||||
path-io >=1.6.3,
|
|
||||||
persistent >=2.11.0.4 && <2.14.0.0,
|
|
||||||
@@ -670,7 +670,7 @@ test-suite stack-test
|
|
||||||
network-uri >=2.6.4.1,
|
|
||||||
open-browser >=0.2.1.0,
|
|
||||||
optparse-applicative >=0.14.3.0,
|
|
||||||
- pantry >=0.5.3,
|
|
||||||
+ pantry >=0.5.3 && <0.6.0,
|
|
||||||
path >=0.7.0,
|
|
||||||
path-io >=1.6.3,
|
|
||||||
persistent >=2.11.0.4 && <2.14.0.0,
|
|
|
@ -1,46 +0,0 @@
|
||||||
commit 188d7ece06ee06ed6ccaf0df0c46285bd43898f4
|
|
||||||
Author: q66 <daniel@octaforge.org>
|
|
||||||
Date: Thu Apr 28 05:02:09 2022 +0200
|
|
||||||
|
|
||||||
constrain persistent to fix build
|
|
||||||
|
|
||||||
diff --git a/stack.cabal b/stack.cabal
|
|
||||||
index dba5bf0..e221321 100644
|
|
||||||
--- a/stack.cabal
|
|
||||||
+++ b/stack.cabal
|
|
||||||
@@ -281,7 +281,7 @@ library
|
|
||||||
pantry >=0.5.3,
|
|
||||||
path >=0.7.0,
|
|
||||||
path-io >=1.6.3,
|
|
||||||
- persistent >=2.11.0.4,
|
|
||||||
+ persistent >=2.11.0.4 && <2.14.0.0,
|
|
||||||
persistent-sqlite >=2.11.1.0,
|
|
||||||
persistent-template >=2.9.1.0,
|
|
||||||
pretty >=1.1.3.6,
|
|
||||||
@@ -407,7 +407,7 @@ executable stack
|
|
||||||
pantry >=0.5.3,
|
|
||||||
path >=0.7.0,
|
|
||||||
path-io >=1.6.3,
|
|
||||||
- persistent >=2.11.0.4,
|
|
||||||
+ persistent >=2.11.0.4 && <2.14.0.0,
|
|
||||||
persistent-sqlite >=2.11.1.0,
|
|
||||||
persistent-template >=2.9.1.0,
|
|
||||||
pretty >=1.1.3.6,
|
|
||||||
@@ -537,7 +537,7 @@ executable stack-integration-test
|
|
||||||
pantry >=0.5.3,
|
|
||||||
path >=0.7.0,
|
|
||||||
path-io >=1.6.3,
|
|
||||||
- persistent >=2.11.0.4,
|
|
||||||
+ persistent >=2.11.0.4 && <2.14.0.0,
|
|
||||||
persistent-sqlite >=2.11.1.0,
|
|
||||||
persistent-template >=2.9.1.0,
|
|
||||||
pretty >=1.1.3.6,
|
|
||||||
@@ -672,7 +672,7 @@ test-suite stack-test
|
|
||||||
pantry >=0.5.3,
|
|
||||||
path >=0.7.0,
|
|
||||||
path-io >=1.6.3,
|
|
||||||
- persistent >=2.11.0.4,
|
|
||||||
+ persistent >=2.11.0.4 && <2.14.0.0,
|
|
||||||
persistent-sqlite >=2.11.1.0,
|
|
||||||
persistent-template >=2.9.1.0,
|
|
||||||
pretty >=1.1.3.6,
|
|
|
@ -1,32 +0,0 @@
|
||||||
--- a/src/Stack/Setup.hs
|
|
||||||
+++ b/src/Stack/Setup.hs
|
|
||||||
@@ -91,6 +91,7 @@
|
|
||||||
import System.FilePath (searchPathSeparator)
|
|
||||||
import qualified System.FilePath as FP
|
|
||||||
import System.Permissions (setFileExecutable)
|
|
||||||
+import System.Endian (getSystemEndianness, Endianness (..))
|
|
||||||
import System.Uname (getRelease)
|
|
||||||
import Data.List.Split (splitOn)
|
|
||||||
|
|
||||||
@@ -1241,6 +1242,11 @@
|
|
||||||
Platform X86_64 Cabal.Windows -> return "windows64"
|
|
||||||
Platform Arm Cabal.Linux -> return "linux-armv7"
|
|
||||||
Platform AArch64 Cabal.Linux -> return "linux-aarch64"
|
|
||||||
+ Platform PPC Cabal.Linux -> return "linux-powerpc"
|
|
||||||
+ Platform PPC64 Cabal.Linux ->
|
|
||||||
+ case getSystemEndianness of
|
|
||||||
+ LittleEndian -> return "linux-powerpc64le"
|
|
||||||
+ BigEndian -> return "linux-powerpc64"
|
|
||||||
Platform Sparc Cabal.Linux -> return "linux-sparc"
|
|
||||||
Platform arch os -> throwM $ UnsupportedSetupCombo os arch
|
|
||||||
|
|
||||||
--- a/stack.cabal
|
|
||||||
+++ b/stack.cabal
|
|
||||||
@@ -246,6 +246,7 @@
|
|
||||||
conduit >=1.3.4.1,
|
|
||||||
conduit-extra >=1.3.5,
|
|
||||||
containers >=0.6.2.1,
|
|
||||||
+ cpu >=0.1.2,
|
|
||||||
cryptonite >=0.27,
|
|
||||||
cryptonite-conduit >=0.2.2,
|
|
||||||
deepseq >=1.4.4.0,
|
|
8
srcpkgs/stack/patches/project.patch
Normal file
8
srcpkgs/stack/patches/project.patch
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
--- a/cabal.project 2025-07-05 18:24:05.053213076 +0100
|
||||||
|
+++ b/cabal.project 2025-07-05 18:12:23.016337449 +0100
|
||||||
|
@@ -37,4 +37,4 @@
|
||||||
|
--
|
||||||
|
with-compiler: ghc-9.8.4
|
||||||
|
import: cabal.config
|
||||||
|
-packages: .
|
||||||
|
+packages: ./basement ./memory ./cborg .
|
|
@ -1,40 +0,0 @@
|
||||||
constrain unix-compat version to prevent build failures
|
|
||||||
|
|
||||||
--- a/stack.cabal
|
|
||||||
+++ b/stack.cabal
|
|
||||||
@@ -307,7 +308,7 @@ library
|
|
||||||
transformers >=0.5.6.2,
|
|
||||||
typed-process >=0.2.6.0,
|
|
||||||
unicode-transforms >=0.3.7.1,
|
|
||||||
- unix-compat >=0.5.3,
|
|
||||||
+ unix-compat >=0.5.3 && < 0.7,
|
|
||||||
unliftio >=0.2.18,
|
|
||||||
unordered-containers >=0.2.14.0,
|
|
||||||
vector >=0.12.1.2,
|
|
||||||
@@ -434,7 +435,7 @@ executable stack
|
|
||||||
transformers >=0.5.6.2,
|
|
||||||
typed-process >=0.2.6.0,
|
|
||||||
unicode-transforms >=0.3.7.1,
|
|
||||||
- unix-compat >=0.5.3,
|
|
||||||
+ unix-compat >=0.5.3 && < 0.7,
|
|
||||||
unliftio >=0.2.18,
|
|
||||||
unordered-containers >=0.2.14.0,
|
|
||||||
vector >=0.12.1.2,
|
|
||||||
@@ -563,7 +564,7 @@ executable stack-integration-test
|
|
||||||
transformers >=0.5.6.2,
|
|
||||||
typed-process >=0.2.6.0,
|
|
||||||
unicode-transforms >=0.3.7.1,
|
|
||||||
- unix-compat >=0.5.3,
|
|
||||||
+ unix-compat >=0.5.3 && < 0.7,
|
|
||||||
unliftio >=0.2.18,
|
|
||||||
unordered-containers >=0.2.14.0,
|
|
||||||
vector >=0.12.1.2,
|
|
||||||
@@ -701,7 +702,7 @@ test-suite stack-test
|
|
||||||
transformers >=0.5.6.2,
|
|
||||||
typed-process >=0.2.6.0,
|
|
||||||
unicode-transforms >=0.3.7.1,
|
|
||||||
- unix-compat >=0.5.3,
|
|
||||||
+ unix-compat >=0.5.3 && < 0.7,
|
|
||||||
unliftio >=0.2.18,
|
|
||||||
unordered-containers >=0.2.14.0,
|
|
||||||
vector >=0.12.1.2,
|
|
|
@ -1,31 +1,38 @@
|
||||||
# Template file for 'stack'
|
# Template file for 'stack'
|
||||||
pkgname=stack
|
pkgname=stack
|
||||||
version=2.7.5
|
version=3.7.1
|
||||||
revision=2
|
revision=1
|
||||||
_stackage="lts-19.0"
|
build_style=cabal
|
||||||
hostmakedepends="cabal-install pkg-config unzip"
|
cabal_index_state="2025-06-29T20:30:08Z"
|
||||||
makedepends="zlib-devel pcre-devel"
|
make_build_args="-f disable-git-info"
|
||||||
|
makedepends="zlib-devel"
|
||||||
depends="git gmp-devel iana-etc"
|
depends="git gmp-devel iana-etc"
|
||||||
short_desc="Cross-platform program for developing Haskell projects"
|
short_desc="Cross-platform program for developing Haskell projects"
|
||||||
maintainer="Leah Neukirchen <leah@vuxu.org>"
|
maintainer="Leah Neukirchen <leah@vuxu.org>"
|
||||||
license="BSD-3-Clause"
|
license="BSD-3-Clause"
|
||||||
homepage="https://haskellstack.org"
|
homepage="https://haskellstack.org"
|
||||||
|
# cborg will likely be fixed in the next release and can then be removed here.
|
||||||
|
# https://github.com/well-typed/cborg/pull/322
|
||||||
|
# The other two are unmaintained and archived, the only way they get fixed
|
||||||
|
# is if the dependency is removed from stack.
|
||||||
distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz
|
distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz
|
||||||
https://www.stackage.org/${_stackage}/cabal.config>cabal.config-${_stackage}"
|
https://hackage.haskell.org/package/basement-0.0.16/basement-0.0.16.tar.gz
|
||||||
checksum="9ddd44c2a62e9404194d69e7dc1c94e707910620316b66d6ac0b3201a8f37e80
|
https://hackage.haskell.org/package/memory-0.18.0/memory-0.18.0.tar.gz
|
||||||
2e836f769693cde2592963f200c97a3e8a87eb58777fa4289d7c3c671f971186"
|
https://hackage.haskell.org/package/cborg-0.2.10.0/cborg-0.2.10.0.tar.gz"
|
||||||
skip_extraction="cabal.config-${_stackage}"
|
checksum="412a7a8d654ba38b29ea88f473c771d612c1836af80c0293fe092faa430ac80e
|
||||||
|
7fb77e249aef76ba5aed3059d556800ce02b614597c488ba01f0a16449146300
|
||||||
|
fd4eb6f638e24b81b4e6cdd68772a531726f2f67686c8969d3407d82f7862e3e
|
||||||
|
17fe070c38fc498cab49bcb9d6215b7747d53bedf96502e9bcce9cad73b9c797"
|
||||||
nocross=yes
|
nocross=yes
|
||||||
nopie_files="/usr/bin/stack"
|
nopie_files="/usr/bin/stack"
|
||||||
|
skip_extraction="basement-0.0.16.tar.gz memory-0.18.0.tar.gz cborg-0.2.10.0.tar.gz"
|
||||||
|
|
||||||
do_build() {
|
post_extract() {
|
||||||
cp ${XBPS_SRCDISTDIR}/${pkgname}-${version}/cabal.config-${_stackage} cabal.config
|
vsrcextract -C basement basement-0.0.16.tar.gz
|
||||||
HOME=$PWD cabal update
|
vsrcextract -C memory memory-0.18.0.tar.gz
|
||||||
HOME=$PWD cabal new-build ${makejobs} --flag disable-git-info \
|
vsrcextract -C cborg cborg-0.2.10.0.tar.gz
|
||||||
--constraint 'lukko -ofd-locking' # https://github.com/haskell/cabal/issues/7313
|
|
||||||
}
|
}
|
||||||
|
|
||||||
do_install() {
|
post_install() {
|
||||||
eval vbin dist-newstyle/build/*/*/*/build/stack/stack
|
|
||||||
vlicense LICENSE
|
vlicense LICENSE
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
resolver: lts-19.0
|
|
||||||
packages:
|
|
||||||
- .
|
|
||||||
extra-deps:
|
|
||||||
- iwlib-0.1.0
|
|
||||||
- netlink-1.1.1.0
|
|
242
srcpkgs/xmobar/patches/basement.patch
Normal file
242
srcpkgs/xmobar/patches/basement.patch
Normal file
|
@ -0,0 +1,242 @@
|
||||||
|
From 38be2c93acb6f459d24ed6c626981c35ccf44095 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sylvain Henry <sylvain@haskus.fr>
|
||||||
|
Date: Thu, 16 Feb 2023 15:40:45 +0100
|
||||||
|
Subject: [PATCH] Fix build on 32-bit architectures
|
||||||
|
|
||||||
|
---
|
||||||
|
basement/Basement/Bits.hs | 4 ++++
|
||||||
|
basement/Basement/From.hs | 24 -----------------------
|
||||||
|
basement/Basement/Numerical/Additive.hs | 4 ++++
|
||||||
|
basement/Basement/Numerical/Conversion.hs | 20 +++++++++++++++++++
|
||||||
|
basement/Basement/PrimType.hs | 6 +++++-
|
||||||
|
basement/Basement/Types/OffsetSize.hs | 22 +++++++++++++++++++--
|
||||||
|
6 files changed, 53 insertions(+), 27 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/basement/Basement/Bits.hs b/basement/Basement/Bits.hs
|
||||||
|
index 7eeea0f5..24520ed7 100644
|
||||||
|
--- a/basement/Basement/Bits.hs
|
||||||
|
+++ b/basement/Basement/Bits.hs
|
||||||
|
@@ -54,8 +54,12 @@ import GHC.Int
|
||||||
|
import Basement.Compat.Primitive
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | operation over finite bits
|
||||||
|
class FiniteBitsOps bits where
|
||||||
|
diff --git a/basement/Basement/From.hs b/basement/Basement/From.hs
|
||||||
|
index 7bbe141c..80014b3e 100644
|
||||||
|
--- a/basement/Basement/From.hs
|
||||||
|
+++ b/basement/Basement/From.hs
|
||||||
|
@@ -272,23 +272,11 @@ instance (NatWithinBound (CountOf ty) n, KnownNat n, PrimType ty)
|
||||||
|
tryFrom = BlockN.toBlockN . UArray.toBlock . BoxArray.mapToUnboxed id
|
||||||
|
|
||||||
|
instance (KnownNat n, NatWithinBound Word8 n) => From (Zn64 n) Word8 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word16 n) => From (Zn64 n) Word16 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word32 n) => From (Zn64 n) Word32 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . unZn64 where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . unZn64 where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance From (Zn64 n) Word64 where
|
||||||
|
from = unZn64
|
||||||
|
instance From (Zn64 n) Word128 where
|
||||||
|
@@ -297,23 +285,11 @@ instance From (Zn64 n) Word256 where
|
||||||
|
from = from . unZn64
|
||||||
|
|
||||||
|
instance (KnownNat n, NatWithinBound Word8 n) => From (Zn n) Word8 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W8# (wordToWord8# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word16 n) => From (Zn n) Word16 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W16# (wordToWord16# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word32 n) => From (Zn n) Word32 where
|
||||||
|
-#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
- from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# (GHC.Prim.word64ToWord# w)))
|
||||||
|
-#else
|
||||||
|
from = narrow . naturalToWord64 . unZn where narrow (W64# w) = W32# (wordToWord32# (word64ToWord# w))
|
||||||
|
-#endif
|
||||||
|
instance (KnownNat n, NatWithinBound Word64 n) => From (Zn n) Word64 where
|
||||||
|
from = naturalToWord64 . unZn
|
||||||
|
instance (KnownNat n, NatWithinBound Word128 n) => From (Zn n) Word128 where
|
||||||
|
diff --git a/basement/Basement/Numerical/Additive.hs b/basement/Basement/Numerical/Additive.hs
|
||||||
|
index d0dfb973..8ab65aa0 100644
|
||||||
|
--- a/basement/Basement/Numerical/Additive.hs
|
||||||
|
+++ b/basement/Basement/Numerical/Additive.hs
|
||||||
|
@@ -30,8 +30,12 @@ import qualified Basement.Types.Word128 as Word128
|
||||||
|
import qualified Basement.Types.Word256 as Word256
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | Represent class of things that can be added together,
|
||||||
|
-- contains a neutral element and is commutative.
|
||||||
|
diff --git a/basement/Basement/Numerical/Conversion.hs b/basement/Basement/Numerical/Conversion.hs
|
||||||
|
index db502c07..fddc8232 100644
|
||||||
|
--- a/basement/Basement/Numerical/Conversion.hs
|
||||||
|
+++ b/basement/Basement/Numerical/Conversion.hs
|
||||||
|
@@ -26,8 +26,12 @@ import GHC.Word
|
||||||
|
import Basement.Compat.Primitive
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
intToInt64 :: Int -> Int64
|
||||||
|
#if WORD_SIZE_IN_BITS == 64
|
||||||
|
@@ -96,11 +100,22 @@ int64ToWord64 (I64# i) = W64# (int64ToWord64# i)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS == 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+word64ToWord# :: Word64# -> Word#
|
||||||
|
+word64ToWord# i = word64ToWord# i
|
||||||
|
+#else
|
||||||
|
word64ToWord# :: Word# -> Word#
|
||||||
|
word64ToWord# i = i
|
||||||
|
+#endif
|
||||||
|
{-# INLINE word64ToWord# #-}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+word64ToWord32# :: Word64# -> Word32#
|
||||||
|
+word64ToWord32# i = wordToWord32# (word64ToWord# i)
|
||||||
|
+{-# INLINE word64ToWord32# #-}
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
-- | 2 Word32s
|
||||||
|
data Word32x2 = Word32x2 {-# UNPACK #-} !Word32
|
||||||
|
{-# UNPACK #-} !Word32
|
||||||
|
@@ -113,9 +128,14 @@ word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# (G
|
||||||
|
word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (uncheckedShiftRL# w64 32#))) (W32# (wordToWord32# w64))
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+word64ToWord32s :: Word64 -> Word32x2
|
||||||
|
+word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord32# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord32# w64))
|
||||||
|
+#else
|
||||||
|
word64ToWord32s :: Word64 -> Word32x2
|
||||||
|
word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord# w64))
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
wordToChar :: Word -> Char
|
||||||
|
wordToChar (W# word) = C# (chr# (word2Int# word))
|
||||||
|
diff --git a/basement/Basement/PrimType.hs b/basement/Basement/PrimType.hs
|
||||||
|
index f8ca2926..a888ec91 100644
|
||||||
|
--- a/basement/Basement/PrimType.hs
|
||||||
|
+++ b/basement/Basement/PrimType.hs
|
||||||
|
@@ -54,7 +54,11 @@ import Basement.Nat
|
||||||
|
import qualified Prelude (quot)
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
-import GHC.IntWord64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
+import GHC.IntWord64
|
||||||
|
+#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FOUNDATION_BOUNDS_CHECK
|
||||||
|
diff --git a/basement/Basement/Types/OffsetSize.hs b/basement/Basement/Types/OffsetSize.hs
|
||||||
|
index cd944927..1ea80dad 100644
|
||||||
|
--- a/basement/Basement/Types/OffsetSize.hs
|
||||||
|
+++ b/basement/Basement/Types/OffsetSize.hs
|
||||||
|
@@ -70,8 +70,12 @@ import Data.List (foldl')
|
||||||
|
import qualified Prelude
|
||||||
|
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+import GHC.Exts
|
||||||
|
+#else
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-- | File size in bytes
|
||||||
|
newtype FileSize = FileSize Word64
|
||||||
|
@@ -225,20 +229,26 @@ countOfRoundUp alignment (CountOf n) = CountOf ((n + (alignment-1)) .&. compleme
|
||||||
|
|
||||||
|
csizeOfSize :: CountOf Word8 -> CSize
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+csizeOfSize (CountOf (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
|
||||||
|
+#else
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W32# (int2Word# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
|
||||||
|
-
|
||||||
|
#else
|
||||||
|
csizeOfSize (CountOf (I# sz)) = CSize (W64# (int2Word# sz))
|
||||||
|
-
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
csizeOfOffset :: Offset8 -> CSize
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+csizeOfOffset (Offset (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
|
||||||
|
+#else
|
||||||
|
csizeOfOffset (Offset (I# sz)) = CSize (W32# (int2Word# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
csizeOfOffset (Offset (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
|
||||||
|
@@ -250,7 +260,11 @@ csizeOfOffset (Offset (I# sz)) = CSize (W64# (int2Word# sz))
|
||||||
|
sizeOfCSSize :: CSsize -> CountOf Word8
|
||||||
|
sizeOfCSSize (CSsize (-1)) = error "invalid size: CSSize is -1"
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# (int32ToInt# sz))
|
||||||
|
+#else
|
||||||
|
sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# sz)
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# (int64ToInt# sz))
|
||||||
|
@@ -261,7 +275,11 @@ sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# sz)
|
||||||
|
|
||||||
|
sizeOfCSize :: CSize -> CountOf Word8
|
||||||
|
#if WORD_SIZE_IN_BITS < 64
|
||||||
|
+#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
+sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# (word32ToWord# sz)))
|
||||||
|
+#else
|
||||||
|
sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# sz))
|
||||||
|
+#endif
|
||||||
|
#else
|
||||||
|
#if __GLASGOW_HASKELL__ >= 904
|
||||||
|
sizeOfCSize (CSize (W64# sz)) = CountOf (I# (word2Int# (word64ToWord# sz)))
|
212
srcpkgs/xmobar/patches/cborg.patch
Normal file
212
srcpkgs/xmobar/patches/cborg.patch
Normal file
|
@ -0,0 +1,212 @@
|
||||||
|
commit 9d1418bb8b38cb9a438d7f18835b1ef7ef12b234
|
||||||
|
Author: amesgen <amesgen@amesgen.de>
|
||||||
|
Date: Sun Sep 10 20:03:40 2023 +0200
|
||||||
|
|
||||||
|
Fix compilation and support GHC >=9.2 on 32bit
|
||||||
|
|
||||||
|
diff --git a/cborg/src/Codec/CBOR/Decoding.hs b/cborg/src/Codec/CBOR/Decoding.hs
|
||||||
|
index a7d774c..bf68e68 100644
|
||||||
|
--- a/cborg/src/Codec/CBOR/Decoding.hs
|
||||||
|
+++ b/cborg/src/Codec/CBOR/Decoding.hs
|
||||||
|
@@ -315,11 +315,16 @@ getDecodeAction (Decoder k) = k (\x -> return (Done x))
|
||||||
|
toInt8 :: Int# -> Int8
|
||||||
|
toInt16 :: Int# -> Int16
|
||||||
|
toInt32 :: Int# -> Int32
|
||||||
|
-toInt64 :: Int# -> Int64
|
||||||
|
toWord8 :: Word# -> Word8
|
||||||
|
toWord16 :: Word# -> Word16
|
||||||
|
toWord32 :: Word# -> Word32
|
||||||
|
+#if defined(ARCH_64bit)
|
||||||
|
+toInt64 :: Int# -> Int64
|
||||||
|
toWord64 :: Word# -> Word64
|
||||||
|
+#else
|
||||||
|
+toInt64 :: Int64# -> Int64
|
||||||
|
+toWord64 :: Word64# -> Word64
|
||||||
|
+#endif
|
||||||
|
#if MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
toInt8 n = I8# (intToInt8# n)
|
||||||
|
toInt16 n = I16# (intToInt16# n)
|
||||||
|
@@ -327,8 +332,7 @@ toInt32 n = I32# (intToInt32# n)
|
||||||
|
toWord8 n = W8# (wordToWord8# n)
|
||||||
|
toWord16 n = W16# (wordToWord16# n)
|
||||||
|
toWord32 n = W32# (wordToWord32# n)
|
||||||
|
-#if WORD_SIZE_IN_BITS == 64
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && defined(ARCH_64bit)
|
||||||
|
toInt64 n = I64# (intToInt64# n)
|
||||||
|
toWord64 n = W64# (wordToWord64# n)
|
||||||
|
#else
|
||||||
|
@@ -336,10 +340,6 @@ toInt64 n = I64# n
|
||||||
|
toWord64 n = W64# n
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
-toInt64 n = I64# (intToInt64# n)
|
||||||
|
-toWord64 n = W64# (wordToWord64# n)
|
||||||
|
-#endif
|
||||||
|
-#else
|
||||||
|
toInt8 n = I8# n
|
||||||
|
toInt16 n = I16# n
|
||||||
|
toInt32 n = I32# n
|
||||||
|
@@ -986,7 +986,7 @@ type ByteOffset = Int64
|
||||||
|
-- @since 0.2.2.0
|
||||||
|
peekByteOffset :: Decoder s ByteOffset
|
||||||
|
peekByteOffset = Decoder (\k -> return (PeekByteOffset (\off# -> k (I64#
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && !defined(ARCH_32bit)
|
||||||
|
(intToInt64# off#)
|
||||||
|
#else
|
||||||
|
off#
|
||||||
|
diff --git a/cborg/src/Codec/CBOR/Magic.hs b/cborg/src/Codec/CBOR/Magic.hs
|
||||||
|
index cdeb455..bfae638 100644
|
||||||
|
--- a/cborg/src/Codec/CBOR/Magic.hs
|
||||||
|
+++ b/cborg/src/Codec/CBOR/Magic.hs
|
||||||
|
@@ -120,7 +120,7 @@ import qualified Numeric.Half as Half
|
||||||
|
import Data.Bits ((.|.), unsafeShiftL)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#if defined(ARCH_32bit)
|
||||||
|
+#if defined(ARCH_32bit) && !MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
import GHC.IntWord64 (wordToWord64#, word64ToWord#,
|
||||||
|
intToInt64#, int64ToInt#,
|
||||||
|
leWord64#, ltWord64#, word64ToInt64#)
|
||||||
|
@@ -173,7 +173,7 @@ grabWord64 (Ptr ip#) = W64# (wordToWord64# (byteSwap# (word64ToWord# (indexWord6
|
||||||
|
grabWord64 (Ptr ip#) = W64# (byteSwap# (indexWord64OffAddr# ip# 0#))
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
-grabWord64 (Ptr ip#) = W64# (byteSwap64# (word64ToWord# (indexWord64OffAddr# ip# 0#)))
|
||||||
|
+grabWord64 (Ptr ip#) = W64# (byteSwap64# (indexWord64OffAddr# ip# 0#))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#elif defined(MEM_UNALIGNED_OPS) && \
|
||||||
|
@@ -484,7 +484,7 @@ word16ToInt (W16# w#) = I# (word2Int# (word16ToWord# w#))
|
||||||
|
word32ToInt (W32# w#) = I# (word2Int# (word32ToWord# w#))
|
||||||
|
#else
|
||||||
|
word32ToInt (W32# w#) =
|
||||||
|
- case isTrue# (w# `ltWord#` 0x80000000##) of
|
||||||
|
+ case isTrue# (word32ToWord# w# `ltWord#` 0x80000000##) of
|
||||||
|
True -> Just (I# (word2Int# (word32ToWord# w#)))
|
||||||
|
False -> Nothing
|
||||||
|
#endif
|
||||||
|
@@ -530,6 +530,19 @@ word64ToInt (W64# w#) =
|
||||||
|
{-# INLINE word64ToInt #-}
|
||||||
|
|
||||||
|
#if defined(ARCH_32bit)
|
||||||
|
+#if MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
+word8ToInt64 (W8# w#) = I64# (intToInt64# (word2Int# (word8ToWord# w#)))
|
||||||
|
+word16ToInt64 (W16# w#) = I64# (intToInt64# (word2Int# (word16ToWord# w#)))
|
||||||
|
+word32ToInt64 (W32# w#) = I64# (word64ToInt64# (wordToWord64# (word32ToWord# w#)))
|
||||||
|
+word64ToInt64 (W64# w#) =
|
||||||
|
+ case isTrue# (w# `ltWord64#` uncheckedShiftL64# (wordToWord64# 1##) 63#) of
|
||||||
|
+ True -> Just (I64# (word64ToInt64# w#))
|
||||||
|
+ False -> Nothing
|
||||||
|
+
|
||||||
|
+word8ToWord64 (W8# w#) = W64# (wordToWord64# (word8ToWord# w#))
|
||||||
|
+word16ToWord64 (W16# w#) = W64# (wordToWord64# (word16ToWord# w#))
|
||||||
|
+word32ToWord64 (W32# w#) = W64# (wordToWord64# (word32ToWord# w#))
|
||||||
|
+#else
|
||||||
|
word8ToInt64 (W8# w#) = I64# (intToInt64# (word2Int# w#))
|
||||||
|
word16ToInt64 (W16# w#) = I64# (intToInt64# (word2Int# w#))
|
||||||
|
word32ToInt64 (W32# w#) = I64# (word64ToInt64# (wordToWord64# w#))
|
||||||
|
@@ -541,6 +554,7 @@ word64ToInt64 (W64# w#) =
|
||||||
|
word8ToWord64 (W8# w#) = W64# (wordToWord64# w#)
|
||||||
|
word16ToWord64 (W16# w#) = W64# (wordToWord64# w#)
|
||||||
|
word32ToWord64 (W32# w#) = W64# (wordToWord64# w#)
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
{-# INLINE word8ToInt64 #-}
|
||||||
|
{-# INLINE word16ToInt64 #-}
|
||||||
|
diff --git a/cborg/src/Codec/CBOR/Read.hs b/cborg/src/Codec/CBOR/Read.hs
|
||||||
|
index 6546575..c4dc761 100644
|
||||||
|
--- a/cborg/src/Codec/CBOR/Read.hs
|
||||||
|
+++ b/cborg/src/Codec/CBOR/Read.hs
|
||||||
|
@@ -63,7 +63,7 @@ import qualified Data.Text as T
|
||||||
|
import qualified Data.Text.Encoding as T
|
||||||
|
import Data.Word
|
||||||
|
import GHC.Word
|
||||||
|
-#if defined(ARCH_32bit)
|
||||||
|
+#if defined(ARCH_32bit) && !MIN_VERSION_ghc_prim(0,8,0)
|
||||||
|
import GHC.IntWord64
|
||||||
|
#endif
|
||||||
|
import GHC.Exts
|
||||||
|
@@ -510,8 +510,8 @@ go_fast !bs da@(ConsumeNegWord64Canonical k) =
|
||||||
|
go_fast !bs da@(ConsumeInt64Canonical k) =
|
||||||
|
case tryConsumeInt64 (BS.unsafeHead bs) bs of
|
||||||
|
DecodeFailure -> go_fast_end bs da
|
||||||
|
- DecodedToken sz i@(I64# i#)
|
||||||
|
- | isInt64Canonical sz i -> k i# >>= go_fast (BS.unsafeDrop sz bs)
|
||||||
|
+ DecodedToken sz (I64# i#)
|
||||||
|
+ | isInt64Canonical sz i# -> k i# >>= go_fast (BS.unsafeDrop sz bs)
|
||||||
|
| otherwise -> go_fast_end bs da
|
||||||
|
|
||||||
|
go_fast !bs da@(ConsumeListLen64Canonical k) =
|
||||||
|
@@ -994,8 +994,8 @@ go_fast_end !bs (ConsumeNegWord64Canonical k) =
|
||||||
|
go_fast_end !bs (ConsumeInt64Canonical k) =
|
||||||
|
case tryConsumeInt64 (BS.unsafeHead bs) bs of
|
||||||
|
DecodeFailure -> return $! SlowFail bs "expected int64"
|
||||||
|
- DecodedToken sz i@(I64# i#)
|
||||||
|
- | isInt64Canonical sz i -> k i# >>= go_fast_end (BS.unsafeDrop sz bs)
|
||||||
|
+ DecodedToken sz (I64# i#)
|
||||||
|
+ | isInt64Canonical sz i# -> k i# >>= go_fast_end (BS.unsafeDrop sz bs)
|
||||||
|
| otherwise -> return $! SlowFail bs "non-canonical int64"
|
||||||
|
|
||||||
|
go_fast_end !bs (ConsumeListLen64Canonical k) =
|
||||||
|
@@ -1271,7 +1271,7 @@ go_slow da bs !offset = do
|
||||||
|
|
||||||
|
SlowPeekByteOffset bs' k ->
|
||||||
|
lift
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && !defined(ARCH_32bit)
|
||||||
|
(k (int64ToInt# off#))
|
||||||
|
#else
|
||||||
|
(k off#)
|
||||||
|
@@ -1381,7 +1381,7 @@ go_slow_overlapped da sz bs_cur bs_next !offset =
|
||||||
|
SlowPeekByteOffset bs_empty k ->
|
||||||
|
assert (BS.null bs_empty) $ do
|
||||||
|
lift
|
||||||
|
-#if MIN_VERSION_base(4,17,0)
|
||||||
|
+#if MIN_VERSION_base(4,17,0) && !defined(ARCH_32bit)
|
||||||
|
(k (int64ToInt# off#))
|
||||||
|
#else
|
||||||
|
(k off#)
|
||||||
|
@@ -1565,17 +1565,17 @@ isIntCanonical sz i
|
||||||
|
{-# INLINE isWord64Canonical #-}
|
||||||
|
isWord64Canonical :: Int -> Word64 -> Bool
|
||||||
|
isWord64Canonical sz w
|
||||||
|
- | sz == 2 = w > 0x17)
|
||||||
|
- | sz == 3 = w > 0xff)
|
||||||
|
- | sz == 5 = w > 0xffff)
|
||||||
|
- | sz == 9 = w > 0xffffffff)
|
||||||
|
+ | sz == 2 = w > 0x17
|
||||||
|
+ | sz == 3 = w > 0xff
|
||||||
|
+ | sz == 5 = w > 0xffff
|
||||||
|
+ | sz == 9 = w > 0xffffffff
|
||||||
|
| otherwise = True
|
||||||
|
|
||||||
|
{-# INLINE isInt64Canonical #-}
|
||||||
|
isInt64Canonical :: Int -> Int64# -> Bool
|
||||||
|
isInt64Canonical sz i#
|
||||||
|
- | isTrue# (i# `ltInt64#` intToInt64# 0#) = isWord64Canonical sz (not64# w#)
|
||||||
|
- | otherwise = isWord64Canonical sz w#
|
||||||
|
+ | isTrue# (i# `ltInt64#` intToInt64# 0#) = isWord64Canonical sz (W64# (not64# w#))
|
||||||
|
+ | otherwise = isWord64Canonical sz (W64# w#)
|
||||||
|
where
|
||||||
|
w# = int64ToWord64# i#
|
||||||
|
#endif
|
||||||
|
@@ -1796,7 +1796,7 @@ tryConsumeInteger hdr !bs = case word8ToWord hdr of
|
||||||
|
0x1b -> let !w = eatTailWord64 bs
|
||||||
|
sz = 9
|
||||||
|
#if defined(ARCH_32bit)
|
||||||
|
- in DecodedToken sz (BigIntToken (isWord64Canonical sz (word64ToWord w)) $! toInteger w)
|
||||||
|
+ in DecodedToken sz (BigIntToken (isWord64Canonical sz w) $! toInteger w)
|
||||||
|
#else
|
||||||
|
in DecodedToken sz (BigIntToken (isWordCanonical sz (word64ToWord w)) $! toInteger w)
|
||||||
|
#endif
|
||||||
|
@@ -1838,7 +1838,7 @@ tryConsumeInteger hdr !bs = case word8ToWord hdr of
|
||||||
|
0x3b -> let !w = eatTailWord64 bs
|
||||||
|
sz = 9
|
||||||
|
#if defined(ARCH_32bit)
|
||||||
|
- in DecodedToken sz (BigIntToken (isWord64Canonical sz (word64ToWord w)) $! (-1 - toInteger w))
|
||||||
|
+ in DecodedToken sz (BigIntToken (isWord64Canonical sz w) $! (-1 - toInteger w))
|
||||||
|
#else
|
||||||
|
in DecodedToken sz (BigIntToken (isWordCanonical sz (word64ToWord w)) $! (-1 - toInteger w))
|
||||||
|
#endif
|
14
srcpkgs/xmobar/patches/gtk2hs-buildtools.patch
Normal file
14
srcpkgs/xmobar/patches/gtk2hs-buildtools.patch
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
diff -ru gtk2hs-buildtools-old/c2hs/toplevel/C2HSConfig.hs gtk2hs-buildtools/c2hs/toplevel/C2HSConfig.hs
|
||||||
|
--- a/gtk2hs-buildtools/c2hs/toplevel/C2HSConfig.hs 2025-07-06 12:48:16.827097351 +0100
|
||||||
|
+++ b/gtk2hs-buildtools/c2hs/toplevel/C2HSConfig.hs 2025-07-06 12:50:54.803997950 +0100
|
||||||
|
@@ -70,8 +70,8 @@
|
||||||
|
cppopts :: [String]
|
||||||
|
cppopts = case (os,cpp) of
|
||||||
|
("openbsd","cpp") -> ["-xc", "-w"]
|
||||||
|
- (_,"cpp") -> ["-x", "c", "-w"]
|
||||||
|
- (_,"gcc") -> ["-E", "-x", "c", "-w"]
|
||||||
|
+ (_,"cpp") -> ["-x", "c", "-w", "-std=c99", "-D_Noreturn=", "-D_Nullable=", "-D_Nonnull="]
|
||||||
|
+ (_,"gcc") -> ["-E", "-x", "c", "-w", "-std=c99", "-D_Noreturn=", "-D_Nullable=", "-D_Nonnull="]
|
||||||
|
_ -> []
|
||||||
|
|
||||||
|
-- C preprocessor option for including only definitions (EXPORTED)
|
36
srcpkgs/xmobar/patches/memory.patch
Normal file
36
srcpkgs/xmobar/patches/memory.patch
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
From 2738929ce15b4c8704bbbac24a08539b5d4bf30e Mon Sep 17 00:00:00 2001
|
||||||
|
From: sternenseemann <sternenseemann@systemli.org>
|
||||||
|
Date: Mon, 14 Aug 2023 10:51:30 +0200
|
||||||
|
Subject: [PATCH] Data.Memory.Internal.CompatPrim64: fix 32 bit with GHC >= 9.4
|
||||||
|
|
||||||
|
Since 9.4, GHC.Prim exports Word64# operations like timesWord64# even on
|
||||||
|
i686 whereas GHC.IntWord64 no longer exists. Therefore, we can just use
|
||||||
|
the ready made solution.
|
||||||
|
|
||||||
|
Closes #98, as it should be the better solution.
|
||||||
|
---
|
||||||
|
Data/Memory/Internal/CompatPrim64.hs | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/Data/Memory/Internal/CompatPrim64.hs b/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
index b9eef8a..a134c88 100644
|
||||||
|
--- a/memory/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
+++ b/memory/Data/Memory/Internal/CompatPrim64.hs
|
||||||
|
@@ -150,6 +150,7 @@ w64# :: Word# -> Word# -> Word# -> Word64#
|
||||||
|
w64# w _ _ = w
|
||||||
|
|
||||||
|
#elif WORD_SIZE_IN_BITS == 32
|
||||||
|
+#if __GLASGOW_HASKELL__ < 904
|
||||||
|
import GHC.IntWord64
|
||||||
|
import GHC.Prim (Word#)
|
||||||
|
|
||||||
|
@@ -158,6 +159,9 @@ timesWord64# a b =
|
||||||
|
let !ai = word64ToInt64# a
|
||||||
|
!bi = word64ToInt64# b
|
||||||
|
in int64ToWord64# (timesInt64# ai bi)
|
||||||
|
+#else
|
||||||
|
+import GHC.Prim
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
w64# :: Word# -> Word# -> Word# -> Word64#
|
||||||
|
w64# _ hw lw =
|
|
@ -1,11 +1,12 @@
|
||||||
# Template file for 'xmobar'
|
# Template file for 'xmobar'
|
||||||
pkgname=xmobar
|
pkgname=xmobar
|
||||||
version=0.42
|
version=0.50
|
||||||
revision=1
|
revision=1
|
||||||
build_style=haskell-stack
|
build_style=cabal
|
||||||
|
cabal_index_state=2025-07-05T14:01:16Z
|
||||||
hostmakedepends="pkg-config"
|
hostmakedepends="pkg-config"
|
||||||
makedepends="libX11-devel libXinerama-devel libXrandr-devel libXScrnSaver-devel
|
makedepends="libX11-devel libXinerama-devel libXrandr-devel libXScrnSaver-devel
|
||||||
$(vopt_if xft libXft-devel)
|
glib-devel cairo-devel pango-devel
|
||||||
$(vopt_if iwlib wireless_tools-devel)
|
$(vopt_if iwlib wireless_tools-devel)
|
||||||
$(vopt_if xpm libXpm-devel)
|
$(vopt_if xpm libXpm-devel)
|
||||||
$(vopt_if dbus libxml2-devel $(vopt_if mpris libxml2-devel))
|
$(vopt_if dbus libxml2-devel $(vopt_if mpris libxml2-devel))
|
||||||
|
@ -14,15 +15,29 @@ short_desc="Minimalistic Text Based Status Bar"
|
||||||
maintainer="Orphaned <orphan@voidlinux.org>"
|
maintainer="Orphaned <orphan@voidlinux.org>"
|
||||||
license="BSD-3-Clause"
|
license="BSD-3-Clause"
|
||||||
homepage="https://xmobar.org"
|
homepage="https://xmobar.org"
|
||||||
distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz"
|
distfiles="https://hackage.haskell.org/package/${pkgname}-${version}/${pkgname}-${version}.tar.gz
|
||||||
checksum=53f4a06d79c3db32ef1a498ec7b764b17d03ebf9bca3126c6b8259595492769b
|
https://hackage.haskell.org/package/gtk2hs-buildtools-0.13.12.0/gtk2hs-buildtools-0.13.12.0.tar.gz
|
||||||
build_options="dbus threaded utf8 xft mpd mpris inotify iwlib alsa datezone
|
https://hackage.haskell.org/package/basement-0.0.16/basement-0.0.16.tar.gz
|
||||||
|
https://hackage.haskell.org/package/memory-0.18.0/memory-0.18.0.tar.gz
|
||||||
|
https://hackage.haskell.org/package/cborg-0.2.10.0/cborg-0.2.10.0.tar.gz"
|
||||||
|
checksum="09249e50546f1eb93888bf1e134d0034d486cadb29a8fde4df097d140e06da08
|
||||||
|
2308f302b1a55376c715778b89b15d0d7e0cc20c8589b803b5f9010ea2f1e495
|
||||||
|
7fb77e249aef76ba5aed3059d556800ce02b614597c488ba01f0a16449146300
|
||||||
|
fd4eb6f638e24b81b4e6cdd68772a531726f2f67686c8969d3407d82f7862e3e
|
||||||
|
17fe070c38fc498cab49bcb9d6215b7747d53bedf96502e9bcce9cad73b9c797"
|
||||||
|
build_options="dbus threaded mpd mpris inotify iwlib alsa datezone
|
||||||
xpm uvmeter weather nl80211"
|
xpm uvmeter weather nl80211"
|
||||||
build_options_default="threaded utf8 xft inotify nl80211 datezone weather xpm alsa mpris mpd dbus"
|
build_options_default="threaded inotify nl80211 datezone weather xpm alsa mpris mpd dbus"
|
||||||
nopie_files="/usr/bin/xmobar"
|
nopie_files="/usr/bin/xmobar"
|
||||||
nocross=yes
|
nocross=yes
|
||||||
|
skip_extraction="
|
||||||
|
gtk2hs-buildtools-0.13.12.0.tar.gz
|
||||||
|
basement-0.0.16.tar.gz
|
||||||
|
memory-0.18.0.tar.gz
|
||||||
|
cborg-0.2.10.0.tar.gz"
|
||||||
|
make_check=no # TODO figure out how hspec works
|
||||||
vopt_hflag() {
|
vopt_hflag() {
|
||||||
echo $(vopt_if $1 "--flag ${pkgname}:with_$1" "--flag ${pkgname}:-with_$1")
|
echo $(vopt_if $1 "--flags=with_$1" "--flags=-with_$1")
|
||||||
}
|
}
|
||||||
mk_string_build_args() {
|
mk_string_build_args() {
|
||||||
for optn in $1
|
for optn in $1
|
||||||
|
@ -31,6 +46,18 @@ mk_string_build_args() {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
make_build_args=$(mk_string_build_args "$build_options")
|
make_build_args=$(mk_string_build_args "$build_options")
|
||||||
|
|
||||||
|
post_extract() {
|
||||||
|
vsrcextract -C gtk2hs-buildtools gtk2hs-buildtools-0.13.12.0.tar.gz
|
||||||
|
vsrcextract -C basement basement-0.0.16.tar.gz
|
||||||
|
vsrcextract -C memory memory-0.18.0.tar.gz
|
||||||
|
vsrcextract -C cborg cborg-0.2.10.0.tar.gz
|
||||||
|
}
|
||||||
|
|
||||||
|
pre_configure() {
|
||||||
|
echo 'packages: ./gtk2hs-buildtools ./basement ./memory ./cborg .' > cabal.project
|
||||||
|
}
|
||||||
|
|
||||||
post_install() {
|
post_install() {
|
||||||
vlicense license
|
vlicense license
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue