1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-07-07 20:34:06 +02:00

Compare commits

..

1 Commits

Author SHA1 Message Date
Vagrant Cascadian f0a4f6d214 gnu: linux-libre: Update default version to 7.0.
* gnu/packages/linux.scm (linux-libre-version, linux-libre-gnu-revision,
linux-libre-pristine-source, linux-libre-source, linux-libre,
linux-libre-arm64-mnt-reform): Update to 7.0.
2026-05-27 12:30:54 -07:00
47 changed files with 10146 additions and 11269 deletions
+8 -3
View File
@@ -1452,7 +1452,6 @@ dist_patch_DATA = \
%D%/packages/patches/ghc-aeson-encodeDouble.patch \
%D%/packages/patches/ghc-basement-fix-32bit.patch \
%D%/packages/patches/ghc-bytestring-handle-ghc9.patch \
%D%/packages/patches/ghc-chell-quickcheck-enable-qc-2.15.patch \
%D%/packages/patches/ghc-clock-realfrag.patch \
%D%/packages/patches/ghc-language-haskell-extract-ghc-8.10.patch \
%D%/packages/patches/ghc-memory-fix-32bit.patch \
@@ -2369,8 +2368,16 @@ dist_patch_DATA = \
%D%/packages/patches/renpy-fix-integer-slots.patch \
%D%/packages/patches/reposurgeon-add-missing-docbook-files.patch \
%D%/packages/patches/rdkit-unbundle-external-dependencies.patch \
%D%/packages/patches/r-biostrings-r4.6.0-compat.patch \
%D%/packages/patches/r-h5mread-0001-h5mread-1.3.2-Get-rid-of-non-API-calls-to-R.patch \
%D%/packages/patches/r-httpuv-1.6.6-unvendor-libuv.patch \
%D%/packages/patches/r-mscoreutils-0001-fix-non-API-call-to-R-SETLENGTH-by-using-lengthgets.patch \
%D%/packages/patches/r-rsamtools-r-4.6.0-compat.patch \
%D%/packages/patches/r-snpstats-0001-fixed-non-API-except-for-IS_S4_OBJECT.patch \
%D%/packages/patches/r-snpstats-0002-fixed-IS_S4_OBJECT.patch \
%D%/packages/patches/r-sapa-lapack.patch \
%D%/packages/patches/r-shortread-0001-ShortRead-1.69.3-Get-rid-of-non-API-calls-to-R.patch \
%D%/packages/patches/r-sparsearray-r-4.6.0-compat.patch \
%D%/packages/patches/ripperx-missing-file.patch \
%D%/packages/patches/rpcbind-CVE-2017-8779.patch \
%D%/packages/patches/rtosc-0.3.1-fix-invalid-comparison-operator.patch \
@@ -2455,7 +2462,6 @@ dist_patch_DATA = \
%D%/packages/patches/shared-mime-info-xdgmime-path.patch \
%D%/packages/patches/sharutils-CVE-2018-1000097.patch \
%D%/packages/patches/showtime-python-3.11-compat.patch \
%D%/packages/patches/simpleitk-r-4.6.0.patch \
%D%/packages/patches/sipwitch-fix-build-with-exosip5.patch \
%D%/packages/patches/slim-config.patch \
%D%/packages/patches/slim-gcc-14.patch \
@@ -2490,7 +2496,6 @@ dist_patch_DATA = \
%D%/packages/patches/swift-corelibs-libdispatch-5.7.3-modulemap.patch \
%D%/packages/patches/swift-llvm-5.7.3-linux.patch \
%D%/packages/patches/swig-support-gcc-12.patch \
%D%/packages/patches/swig-support-r-4.6.0.patch \
%D%/packages/patches/swish-e-search.patch \
%D%/packages/patches/swish-e-format-security.patch \
%D%/packages/patches/t1lib-CVE-2010-2642.patch \
+1 -11
View File
@@ -2135,17 +2135,7 @@ envelope follower, distortion effects, tape effects and more.")
(base32
"01hnx4hhbz3ap3bw15s42q4q1mw1mhdjwygq4550wvjfg6k4ga8w"))))
(build-system waf-build-system)
(arguments
(list
#:tests? #false ;There are no tests.
#:phases
'(modify-phases %standard-phases
(add-after 'unpack 'python3.12-compatibility
(lambda _
(substitute* "waflib/Context.py"
(("imp.new_module") "types.ModuleType")
(("import os, re, imp, sys")
"import os, re, types, sys")))))))
(arguments (list #:tests? #false)) ;There are no tests.
(inputs (list lv2))
(native-inputs (list pkg-config))
(home-page "https://git.drobilla.net/cgit.cgi/omins.lv2.git/")
+1599 -1704
View File
File diff suppressed because it is too large Load Diff
+268 -241
View File
@@ -1430,86 +1430,33 @@ within this package are the 3000 bone marrow cells used for vignettes.")
(license license:gpl3))))
(define-public r-pizzarr
(package
(name "r-pizzarr")
(version "0.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/keller-mark/pizzarr")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1m38c57pfliycxkhb3mwgh01cl2q76r1jhd3vnk07dbfhqdbqai6"))))
(properties `((upstream-name . "pizzarr")))
(build-system cargo-build-system)
(arguments
(list
#:imported-modules
(append %cargo-build-system-modules
%r-build-system-modules)
#:modules
'((guix build cargo-build-system)
((guix build r-build-system) #:prefix r:)
(guix build utils))
#:cargo-build-flags
'(list "--target-dir=./target" "--release")
#:phases
#~(append (modify-phases %standard-phases
(add-after 'unpack 'patch-Makevars
(lambda _
;; At this point we've already built the Rust parts.
(substitute* "src/Makevars.in"
(("^all:.*") "all:")
(("^\\$\\(STATLIB\\):") "NOBODYCARES:")
(("@PKG_LIBS_EXTRA@") "@PKG_LIBS_EXTRA@ -lzstd -lz"))))
(add-after 'patch-Makevars 'chdir
(lambda _ (chdir "src/rust")))
(add-after 'chdir 'patch-rust-dependency
(lambda _
(setenv "RUSTFLAGS" "--print=native-static-libs")
(substitute* "Cargo.toml"
(("extendr-api = \\{ git.* \\}") "extendr-api = \"0.8.1\""))))
(add-after 'package 'chdir-back
(lambda _ (chdir "../..")))
(delete 'install)
(delete 'check))
(modify-phases (@ (guix build r-build-system) %standard-phases)
(delete 'unpack)
(replace 'patch-tests
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
((assoc-ref (@ (guix build r-build-system) %standard-phases)
'patch-tests)
#:skipped-tests
;; These files contain tests that require Internet access.
'("test-compat.R" "test-get.R"
;; HttpStore requires the crul package
("test-zarrs-dispatch.R" "can_use_zarrs_create returns FALSE for HttpStore")
("test-zarrs-store-cache.R" "HttpStore get_store_identifier returns URL")))))
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
((assoc-ref (@ (guix build r-build-system) %standard-phases)
'check)
#:test-target "tests"
#:test-types #false
#:inputs inputs
#:outputs outputs
#:tests? tests?)))))))
(propagated-inputs (list r-jsonlite r-memoise r-qs2 r-r6 r-stringr))
(inputs
(cons* openssl zlib `(,zstd "lib")
(cargo-inputs 'r-pizzarr)))
(native-inputs
(list pkg-config
r-minimal r-pbapply r-testthat r-vcr))
(home-page "https://github.com/keller-mark/pizzarr")
(synopsis "Slice into Zarr arrays in R")
(description
"This package provides an implementation of chunked, compressed,
(let ((commit "5f4705789ba29344dcb97023f290a26a7f7abd0c")
(revision "2"))
(package
(name "r-pizzarr")
(version (git-version "0.1.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/keller-mark/pizzarr")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "17pd6bk8kvnrvvyfqvm8q47kzghlfyfjdd9b7cwiazc5xr4vz6f0"))))
(properties `((upstream-name . "pizzarr")))
(build-system r-build-system)
;; Some tests require Internet access.
(arguments (list #:tests? #false))
(propagated-inputs (list r-jsonlite r-memoise r-qs r-r6 r-stringr))
(native-inputs (list r-pbapply r-testthat r-vcr))
(home-page "https://github.com/keller-mark/pizzarr")
(synopsis "Slice into Zarr arrays in R")
(description
"This package provides an implementation of chunked, compressed,
N-dimensional arrays for R, Zarr specification version 2 (2024)
<doi:10.5281/zenodo.11320255>.")
(license license:expat)))
(license license:expat))))
(define-public r-rhtslib12
(let ((commit "ee186daf04876969c7f31c16a0e0fda8e7c16a30")
@@ -4625,11 +4572,8 @@ into separate processes; and more.")
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'python3.12-compatibility
(add-after 'unpack 'python3.11-compatibility
(lambda _
;; This was removed in Python 3.12
(substitute* "Bio/Align/_aligners.c"
(("case PyUnicode_WCHAR_KIND:") ""))
;; Py_TYPE was changed to an inline static function in Python
;; 3.11, so it cannot be used on the left-hand side.
(substitute* "Bio/triemodule.c"
@@ -14046,20 +13990,33 @@ of scRNA-seq data.")
(define-public r-misha
(package
(name "r-misha")
(version "5.6.23")
(version "4.1.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tanaylab/misha")
(commit (string-append "v" version))))
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1k973j04iq02dy4f7qgi3cmp3rcx5yinyx0m7vyag54rqanird8x"))))
"0bgivx3lzjh3173jsfrhb5kvhjsn53br0n4hmyx7i3dwy2cnnp2p"))
;; Delete bundled executable.
(snippet
'(delete-file "exec/bigWigToWig"))))
(build-system r-build-system)
(propagated-inputs (list r-curl r-digest r-magrittr r-ps r-yaml))
(native-inputs (list r-knitr r-testthat))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'do-not-use-bundled-bigWigToWig
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "R/misha.R"
(("get\\(\".GLIBDIR\"\\), \"/exec/bigWigToWig")
(string-append "\""
(assoc-ref inputs "kentutils")
"/bin/bigWigToWig"))))))))
(inputs
(list kentutils))
(home-page "https://github.com/tanaylab/misha")
(synopsis "Toolkit for analysis of genomic data")
(description "This package is intended to help users to efficiently
@@ -18859,28 +18816,26 @@ activity prediction from transcriptomics data, and its R implementation
(build-system r-build-system)
(arguments
(list
#:skipped-tests
;; These tests attempt to connect to the Internet.
'(("test-liana_utils.R" "Test liana pipe")
("test-liana_tensor.R"
".*Test tensor wrapper.*"
".*Test decompose_tensor.*")
;; XXX: This test returns a data.frame instead of an error.
("test-liana_cytotalk.R" ".*Test Cytotalk Wrap.*"))
#:phases
'(modify-phases %standard-phases
;; This is needed to find ~/.config/OmnipathR/omnipathr.yml
(add-after 'unpack 'set-HOME
(lambda _ (setenv "HOME" "/tmp")))
(add-after 'unpack 'seurat-compatibility
(add-after 'unpack 'disable-bad-tests
(lambda _
;; The `slot` argument of `GetAssayData()` was deprecated in
;; SeuratObject 5.0.0.
(substitute* '("R/cellchat_pipe.R"
"R/sca_pipe.R"
"R/liana_prep.R"
"R/natmi_pipe.R")
(("slot =") "layer =")))))))
;; These tests attempt to connect to the Internet.
(substitute* "tests/testthat/test-liana_utils.R"
((".*Test liana pipe.*" m)
(string-append m "skip('guix')\n")))
(substitute* "tests/testthat/test-liana_tensor.R"
((".*Test tensor wrapper.*" m)
(string-append m "skip('guix')\n"))
((".*Test decompose_tensor.*" m)
(string-append m "skip('guix')\n")))
;; XXX: This test returns a data.frame instead of an error.
(substitute* "tests/testthat/test-liana_cytotalk.R"
((".*Test Cytotalk Wrap.*" m)
(string-append m "skip('guix')\n"))))))))
(propagated-inputs
(list r-basilisk
r-basilisk-utils
@@ -21745,6 +21700,70 @@ want to explore e.g.: the function of a set of differentially expressed
genes.")
(license license:gpl3))))
(define-public r-seurat-utils
(let ((commit "c0374cc9e25ce391ba8013fda0f8c7babbb9201d")
(revision "1"))
(package
(name "r-seurat-utils")
(version (git-version "2.5.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/vertesy/Seurat.utils")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"15l86b43q245gzz7gsr5rhs4sir74lc14d64yqxfqcb0zrb2bzzd"))))
(properties `((upstream-name . "Seurat.utils")))
(build-system r-build-system)
(propagated-inputs (list r-codeandroll2
r-cowplot
r-databaselinke-r
r-dplyr
r-enhancedvolcano
r-foreach
r-ggcorrplot
r-ggexpress
r-ggplot2
r-ggpubr
r-ggrepel
r-hgnchelper
r-htmlwidgets
r-job
r-magrittr
r-markdownhelpers
r-markdownreports
r-matrix
r-matrixstats
r-pheatmap
r-plotly
r-princurve
r-qs
r-r-utils
r-readr
r-readwriter
r-reshape2
r-rstudioapi
r-scales
r-seurat
r-soupx
r-sparsematrixstats
r-stringendo
r-stringr
r-tibble
r-tictoc
r-tidyverse
r-vroom))
(home-page "https://github.com/vertesy/Seurat.utils")
(synopsis "Collection of utility functions for Seurat")
(description
"This is a collection of utility functions for Seurat. These functions
allow the automation and multiplexing of plotting, 3D plotting, visualization
of statistics & QC, interaction with the Seurat object. Some functionalities
require functions from CodeAndRoll and MarkdownReports libraries.")
(license license:gpl3))))
(define-public r-seuratextend
(let ((commit "5dacd7c1e1da3bc0e78ab81d60056f6d7da3d386")
(revision "1"))
@@ -22459,39 +22478,38 @@ frames with arbitrary sets of columns.")
(license license:expat))))
(define-public r-imagearray
(package
(name "r-imagearray")
(version "1.0.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "ImageArray" version))
(sha256
(base32 "07zq5fcw2dsvm4qaksaj4gy9gj5lxcgq82l497c5kgvl4wba049c"))))
(properties `((upstream-name . "ImageArray")))
(build-system r-build-system)
(arguments
(list
#:skipped-tests
;; RBiomFormats is not installed.
'(("test-array.R" "check indexing \\(BFArray\\)"))))
(propagated-inputs (list r-delayedarray
r-ebimage
r-hdf5array
r-magick
r-rarr
r-rhdf5
r-s4arrays
r-s4vectors
r-zarrarray))
(native-inputs (list r-ggplot2 r-knitr r-testthat))
(home-page "https://github.com/BIMSBbioinfo/ImageArray")
(synopsis "Framework for on-disk and in-memory image arrays")
(description
"@code{ImageArray} provides a framework for on-disk and in-memory image
arrays, specifically for pyramidal images stored in HDF5, Zarr and life
sciences image file formats (OME Bio-Formats).")
(license license:expat)))
(let ((commit "2f90694fa33ed8320a6a2f7e0ad5c8a1796cbfc6")
(revision "1"))
(package
(name "r-imagearray")
(version (git-version "0.99.6" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/BIMSBbioinfo/ImageArray")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1mf68b007dc5wdzdva4vkjgkavgagjk45qv05f7vahbpi24yjj4n"))))
(properties `((upstream-name . "ImageArray")))
(build-system r-build-system)
(propagated-inputs (list r-delayedarray
r-ebimage
r-hdf5array
r-magick
r-rarr
r-rhdf5
r-s4arrays
r-s4vectors))
(native-inputs (list r-knitr r-testthat))
(home-page "https://github.com/BIMSBbioinfo/ImageArray")
(synopsis "Framework for on-disk and in-memory image arrays")
(description
"@code{ImageArray} provides a framework for on-disk and in-memory image
arrays, specifically for pyramidal images stored in either HDF5 files or Zarr
stores.")
(license license:expat))))
(define-public r-velocyto
(let ((commit "d7790346cb99f49ab9c2b23ba70dcf9d2c9fc350")
@@ -22575,7 +22593,7 @@ dependencies of @code{VoltRon} package.")
(define-public r-voltron
(package
(name "r-voltron")
(version "0.2.6")
(version "0.2.5")
(source
(origin
(method git-fetch)
@@ -22584,7 +22602,7 @@ dependencies of @code{VoltRon} package.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "00fl5dmyd9ad4hd0cblgi0415sf6q4q67wh04r7fws828vs5vaj1"))))
(base32 "057n4yipkq3gnlyrb63l2ryi78nlmaas02avargm352g5ra1xl9s"))))
(properties `((upstream-name . "VoltRon")))
(build-system r-build-system)
(arguments
@@ -22648,15 +22666,18 @@ guix_python <- \"~a\";"
r-irlba
r-magick
r-matrix
r-pizzarr
r-rann
r-rcdt
r-rcpp
r-rcppannoy
r-rcpparmadillo
r-reshape2
r-reticulate
r-rhdf5
r-rjson
r-rlang
r-s4arrays
r-s4vectors
r-shiny
r-shinyjs
r-sp
@@ -22709,8 +22730,8 @@ spots, cells and even molecules.")
(license license:expat)))
(define-public r-zarrdataframe
(let ((commit "f5f671521934b2afc3c511f8c09181bc7bb789a4")
(revision "3"))
(let ((commit "84c7db2f6f5f84b4a4308f8eb72bedc131fb68bc")
(revision "2"))
(package
(name "r-zarrdataframe")
(version (git-version "0.0.0" revision commit))
@@ -22722,13 +22743,13 @@ spots, cells and even molecules.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0klp2njn6qsa8n6c01v1z2dfaa93lhbzhwhbyhl23h8gg7d28yc1"))))
(base32 "1idrvdlzbwyixlg830sn19vfdn3n3irmlyr4ncf7dpk72r08g3hw"))))
(properties
'((upstream-name . "ZarrDataFrame")
(updater-extra-native-inputs . ("r-testthat"))))
(build-system r-build-system)
(propagated-inputs (list r-biocgenerics r-delayedarray r-rarr
r-s4vectors r-zarrarray))
r-s4vectors))
(native-inputs (list r-knitr r-testthat))
(home-page "https://github.com/BIMSBbioinfo/ZarrDataFrame")
(synopsis "Bioconductor-friendly Bindings for Zarr")
@@ -22740,35 +22761,39 @@ frames with arbitrary sets of columns.")
(license license:expat))))
(define-public r-zarrarray
(package
(name "r-zarrarray")
(version "1.0.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "ZarrArray" version))
(sha256
(base32 "1ny91qg257kgb1hz2h4jvb0rna9cwyw7fqyj5axv52r3b98xn040"))))
(properties `((upstream-name . "ZarrArray")))
(build-system r-build-system)
(propagated-inputs (list r-biocgenerics
r-delayedarray
r-iranges
r-rarr
r-s4arrays
r-s4vectors
r-sparsearray))
(native-inputs (list r-knitr r-testthat))
(home-page "https://bioconductor.org/packages/ZarrArray")
(synopsis "Bring Zarr datasets in R as DelayedArray objects")
(description
"The @code{ZarrArray} package leverages the Rarr package to bring Zarr
datasets in R as @code{DelayedArray} objects. The main class in the package
is the @code{ZarrArray} class. A @code{ZarrArray} object is an array-like
object that represents a Zarr dataset in R. @code{ZarrArray} objects are
@code{DelayedArray} derivatives and therefore support all operations (delayed
or block-processed) supported by @code{DelayedArray} objects.")
(license license:artistic2.0)))
(let ((commit "3cc3e6acf986074dfaece2ad23f9b56962054625")
(revision "2"))
(package
(name "r-zarrarray")
(version (git-version "1.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/BIMSBbioinfo/ZarrArray")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1qjj92cpxpm3zh05vf60h5gmcn1qady0s38hibb0l57iwdhlhrb3"))))
(properties
'((upstream-name . "ZarrArray")
(updater-extra-native-inputs . ("r-testthat"))))
(build-system r-build-system)
;; The tests seem to be outdated.
(arguments (list #:tests? #false))
(propagated-inputs (list r-biocgenerics
r-delayedarray
r-iranges
r-matrix
r-rarr
r-s4arrays
r-s4vectors
r-sparsearray))
(native-inputs (list r-testthat))
(home-page "https://github.com/BIMSBbioinfo/ZarrArray")
(synopsis "Zarr backend for DelayedArray objects")
(description "Zarr backend for @code{DelayedArray} objects.")
(license license:expat))))
(define-public methyldackel
(package
@@ -24406,77 +24431,79 @@ It also handles cell type-specific differential expression.")
(license license:gpl3))))
(define-public r-spectre
(package
(name "r-spectre")
(version "1.3.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ImmuneDynamics/Spectre")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"15g9w08x0pz2ia9qfalhcg3z5z2zx2085mfbr8gx9w5yxnw475ld"))))
(properties `((upstream-name . "Spectre")))
(build-system r-build-system)
(propagated-inputs
(list r-biobase
r-biocmanager
r-caret
r-class
r-colorramps
r-data-table
r-dendsort
r-devtools
r-dplyr
r-exactextractr
r-factoextra
r-flowcore
r-flowsom
r-flowviz
r-fnn
r-ggplot2
r-ggpointdensity
r-ggpubr
r-ggraph
r-ggthemes
r-gridextra
r-gridextra
r-gtools
r-hdf5array
r-irlba
r-patchwork
r-pheatmap
r-plyr
r-qs2
r-raster
r-rcolorbrewer
r-rhdf5
r-rstudioapi
r-rsvd
r-rtsne
r-s2
r-scales
r-scattermore
r-sf
r-sp
r-stars
r-stringr
r-tidygraph
r-tidyr
r-tidyr
r-tiff
r-umap
r-uwot))
(home-page "https://github.com/ImmuneDynamics/Spectre")
(synopsis "High-dimensional cytometry and imaging analysis")
(description
"This package provides a computational toolkit in R for the
(let ((commit "ff5314fd5b3f29121e52f948d91e222a19dd4d25")
(revision "1"))
(package
(name "r-spectre")
(version "1.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ImmuneDynamics/Spectre")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0hziqlaq6mnkxi4bwp5xilxy90yh1vz1j1n117d38vmchvclx9yq"))))
(properties `((upstream-name . "Spectre")))
(build-system r-build-system)
(propagated-inputs
(list r-biobase
r-biocmanager
r-caret
r-class
r-colorramps
r-data-table
r-dendsort
r-devtools
r-dplyr
r-exactextractr
r-factoextra
r-flowcore
r-flowsom
r-flowviz
r-fnn
r-ggplot2
r-ggpointdensity
r-ggpubr
r-ggraph
r-ggthemes
r-gridextra
r-gridextra
r-gtools
r-hdf5array
r-irlba
r-patchwork
r-pheatmap
r-plyr
r-qs
r-raster
r-rcolorbrewer
r-rhdf5
r-rstudioapi
r-rsvd
r-rtsne
r-s2
r-scales
r-scattermore
r-sf
r-sp
r-stars
r-stringr
r-tidygraph
r-tidyr
r-tidyr
r-tiff
r-umap
r-uwot))
(home-page "https://github.com/ImmuneDynamics/Spectre")
(synopsis "High-dimensional cytometry and imaging analysis")
(description
"This package provides a computational toolkit in R for the
integration, exploration, and analysis of high-dimensional single-cell
cytometry and imaging data.")
(license license:expat)))
(license license:expat))))
(define-public r-compgenomrdata
(let ((commit "24484cb77631e1123ead6c329b9d62c160e600c6")
+12 -11
View File
@@ -302,7 +302,7 @@ will name the threaded machine type unless THREADS? is provided as #f."
(name "chez-scheme-for-racket")
;; The version should match `(scheme-version #t)`.
;; See s/cmacros.ss c. line 360.
(version "10.4.0-pre-release.1-1") ; expect a chez-nanopass-bootstrap update
(version "10.3.0-pre-release.2") ; expect a chez-nanopass-bootstrap update
(source #f)
(build-system gnu-build-system)
(inputs `(,@(if (nix-system->native-chez-machine-type)
@@ -507,7 +507,7 @@ version of Chez Scheme.")
(name "chez-scheme")
;; The version should match `(scheme-version-number #t)`.
;; See s/cmacros.ss c. line 360.
(version "10.4.0") ; expect a chez-nanopass-bootstrap update
(version "10.2.0") ; expect a chez-nanopass-bootstrap update
(source (origin
(method git-fetch)
(uri (git-reference
@@ -515,7 +515,7 @@ version of Chez Scheme.")
(commit (string-append "v" version))))
(sha256
(base32
"079vlkl27qdvsg1rsynmd828m42n98c2dnldkhsxf2slfsqd9kv5"))
"14iv4kfkyvrkigr1n2prf71n2l3vs0sf0549rvh6y4x2faa2l329"))
(file-name (git-file-name name version))
(patches (search-patches "chez-scheme-bin-sh.patch"))
(snippet #~(begin
@@ -840,9 +840,9 @@ User's Guix}, among other documents.")
(define-public chez-nanopass-bootstrap
(hidden-package
(package
(name "chez-nanopass-bootstrap")
(version "1.9.4")
(properties '((chez-nanopass-release-date . "December 29, 2025")))
(name "chez-nanopass")
(version "1.9.2")
(properties `((chez-nanopass-release-date . "October 18, 2020")))
(source
(origin
(method git-fetch)
@@ -850,7 +850,7 @@ User's Guix}, among other documents.")
(url "https://github.com/nanopass/nanopass-framework-scheme")
(commit (string-append "v" version))))
(sha256
(base32 "1qq0vnbrvcialgjgnblfq3qp1ilqg94h0kg896ksd9v4g7ipj9v0"))
(base32 "16vjsik9rrzbabbhbxbaha51ppi3f9n8rk59pc6zdyffs0vziy4i"))
(file-name (git-file-name "nanopass-framework-scheme" version))
(snippet
#~(begin
@@ -929,9 +929,10 @@ create compilers, making them easier to understand and maintain.")
(define-public chez-nanopass
(package
(inherit chez-nanopass-bootstrap)
(name "chez-nanopass")
(version "1.9.4")
(properties '((chez-nanopass-release-date . "December 29, 2025")))
;; This release has a significant bug fix. Expect the next releases of
;; chez-scheme{,-for-racket} to want this for chez-nanopass-bootstrap.
(version "1.9.3")
(properties '((chez-nanopass-release-date . "August 24, 2025")))
(source
(let ((bootstrap-origin (package-source chez-nanopass-bootstrap)))
(origin
@@ -940,7 +941,7 @@ create compilers, making them easier to understand and maintain.")
(url (git-reference-url (origin-uri bootstrap-origin)))
(commit (string-append "v" version))))
(sha256
(base32 "1qq0vnbrvcialgjgnblfq3qp1ilqg94h0kg896ksd9v4g7ipj9v0"))
(base32 "0757x3a3b4kcd3jk52h4ikqzv7cc1mvphlw592f0r5pz99bkxiin"))
(file-name (git-file-name "nanopass-framework-scheme" version)))))
(native-inputs (list chez-scheme stex))))
+537 -953
View File
File diff suppressed because it is too large Load Diff
+2 -4
View File
@@ -5645,7 +5645,7 @@ with integrated support for finding required rows quickly.")
(define-public apache-arrow
(package
(name "apache-arrow")
(version "24.0.0")
(version "23.0.1")
(source
(origin
(method git-fetch)
@@ -5655,7 +5655,7 @@ with integrated support for finding required rows quickly.")
(file-name (git-file-name name version))
(sha256
(base32
"1j3gs5ffa9gx2y2nggmi2zn5rj0bsnjnxrzfnipx6050jz6n8dx9"))))
"1qn7wgavi3kiz4d6w1naqj5631bg87fnj6gbhaxmpmynm5hi9wm7"))))
(build-system cmake-build-system)
(arguments
(list
@@ -5823,8 +5823,6 @@ __version_tuple__ = version_tuple = (~a)~%" version version-tuple))))))
pkg-config
python-cython
python-pytest
python-pytest-runner
python-scikit-build-core
python-setuptools-scm
python-setuptools))
(outputs '("out"))
+12 -10
View File
@@ -31,13 +31,13 @@
(define-public dhall
(package
(name "dhall")
(version "1.42.2")
(source
(origin
(method url-fetch)
(uri (hackage-uri "dhall" version))
(sha256
(base32 "0fvvqvh6diqi55dmncfs06rvcw8k0a1hs2gq228yxvsfbzcpv44s"))))
(version "1.41.2")
(source (origin
(method url-fetch)
(uri (hackage-uri "dhall" version))
(sha256
(base32
"14m5rrvkid76qnvg0l14xw1mnqclhip3gjrz20g1lp4fd5p056ka"))))
(build-system haskell-build-system)
(properties '((upstream-name . "dhall")))
(inputs (list ghc-aeson
@@ -73,8 +73,8 @@
ghc-text-manipulate
ghc-text-short
ghc-th-lift-instances
ghc-unix-compat
ghc-unordered-containers
ghc-uri-encode
ghc-vector
ghc-cryptohash-sha256
ghc-http-types
@@ -86,6 +86,7 @@
ghc-quickcheck-instances
ghc-special-values
ghc-spoon
ghc-system-filepath
ghc-tasty
ghc-tasty-expected-failure
ghc-tasty-hunit
@@ -96,8 +97,9 @@
ghc-mockery
ghc-doctest))
(arguments
`(#:cabal-revision ("2"
"1h9kxpn3kzwmxj07mqc0cxjj2ak3dyxnifb78z5vn34xn747j5bk")))
`(#:tests? #f ; Tries to access httpbin.org
#:cabal-revision ("4"
"0innb3cn98ynb8bd83jdyrm64ij7wcvajg5qcwzdwbyzpr62anfx")))
(home-page "http://hackage.haskell.org/package/dhall")
(synopsis "Configuration language guaranteed to terminate")
(description
+1 -1
View File
@@ -1314,7 +1314,7 @@ package.")
#:tests? #f)) ;no test suite
(native-inputs (list asciidoc
gettext-minimal
git-minimal/pinned
git-minimal
perl
perl-unicode-linebreak
perl-yaml-tiny
+4 -4
View File
@@ -23831,8 +23831,8 @@ actually changing the buffer's text.")
(define-public emacs-diff-hl
;; No new tags or releases since 2024.
(let ((commit "7d873b2f58908de1ea2f499da9bf993e088953d7")
(revision "1"))
(let ((commit "e79aa49ad3cbbe85379cf6646db3aaacd3b04708")
(revision "0"))
(package
(name "emacs-diff-hl")
(version (git-version "1.10.0" revision commit))
@@ -23844,7 +23844,7 @@ actually changing the buffer's text.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "15a9cjlpjsfcb2hxqbb123389qhiqs06mn01pas2l0jqhc2p86v9"))))
(base32 "0fvxngcbx36vqj72fllfp5iqwihcqd1dfhmqr3m1284191q83na3"))))
(build-system emacs-build-system)
(arguments
(list
@@ -23867,7 +23867,7 @@ actually changing the buffer's text.")
(invoke "git" "init")
(invoke "git" "add" ".")
(invoke "git" "commit" "-m" "Commit all."))))))
(native-inputs (list git-minimal/pinned))
(native-inputs (list git-minimal))
(home-page "https://github.com/dgutov/diff-hl")
(synopsis "Highlight uncommitted changes using VC")
(description
+18 -24
View File
@@ -321,41 +321,37 @@ based on Qt.")
(define-public ghc-hledger
(package
(name "ghc-hledger")
(version "1.43.2")
(source
(origin
(method url-fetch)
(uri (hackage-uri "hledger" version))
(sha256
(base32 "043gw3amc29fbjxlzyc4m97bw5i5462352lmk61adlxcd12l47i1"))))
(version "1.27.1")
(source (origin
(method url-fetch)
(uri (hackage-uri "hledger" version))
(sha256
(base32
"0qdg87m7ys2ykqqq32p7h7aw827w4f5bcqx4dspxxq6zqlvzddqb"))))
(build-system haskell-build-system)
(properties '((upstream-name . "hledger")))
(inputs (list ghc-decimal
ghc-diff
ghc-aeson
ghc-ansi-terminal
ghc-breakpoint
ghc-cmdargs
ghc-data-default
ghc-extra
ghc-githash
ghc-hashable
ghc-hledger-lib
ghc-http-client
ghc-http-types
ghc-lucid
ghc-math-functions
ghc-megaparsec
ghc-microlens
ghc-modern-uri
ghc-regex-tdfa
ghc-req
ghc-safe
ghc-shakespeare
ghc-split
ghc-tabular
ghc-tasty
ghc-temporary
ghc-text-ansi
ghc-timeit
ghc-unordered-containers
ghc-utf8-string
@@ -386,8 +382,8 @@ Accounting.")
#~(modify-phases %standard-phases
(add-after 'install 'install-doc
(lambda _
(install-file "embeddedfiles/hledger.info" (string-append #$output "/share/info"))
(install-file "embeddedfiles/hledger.1" (string-append #$output "/man/man1"))))
(install-file "hledger.info" (string-append #$output "/share/info"))
(install-file "hledger.1" (string-append #$output "/man/man1"))))
(add-after 'register 'remove-libraries
(lambda* (#:key outputs #:allow-other-keys)
(delete-file-recursively (string-append (assoc-ref outputs "out") "/lib")))))))))
@@ -2284,13 +2280,13 @@ textual ledgers to Beancount files.")
(define-public hledger-web
(package
(name "hledger-web")
(version "1.43.2")
(source
(origin
(method url-fetch)
(uri (hackage-uri "hledger-web" version))
(sha256
(base32 "0d4sv9k3m7s0764lbq2l8w9p2p47cby177l0avl5w3fa9y8d0gyd"))))
(version "1.27.1")
(source (origin
(method url-fetch)
(uri (hackage-uri "hledger-web" version))
(sha256
(base32
"151dxci7dld8626dzw823sr3d9iaac92wfzbfcbdz4jh9f7n07wa"))))
(build-system haskell-build-system)
(properties '((upstream-name . "hledger-web")))
(inputs (list ghc-decimal
@@ -2298,6 +2294,7 @@ textual ledgers to Beancount files.")
ghc-base64
ghc-blaze-html
ghc-blaze-markup
ghc-breakpoint
ghc-case-insensitive
ghc-clientsession
ghc-cmdargs
@@ -2305,8 +2302,6 @@ textual ledgers to Beancount files.")
ghc-conduit-extra
ghc-data-default
ghc-extra
ghc-file-embed
ghc-githash
ghc-hjsmin
ghc-hledger
ghc-hledger-lib
@@ -2316,7 +2311,6 @@ textual ledgers to Beancount files.")
ghc-http-types
ghc-megaparsec
ghc-network
ghc-safe
ghc-shakespeare
ghc-unix-compat
ghc-unordered-containers
+3 -35
View File
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017-2026 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017-2025 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
;;; Copyright © 2018, 2020, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019, 2021, 2022, 2024 Efraim Flashner <efraim@flashner.co.il>
@@ -227,7 +227,7 @@ more.")
(package
(inherit igraph)
(name "igraph")
(version "1.0.1")
(version "0.10.15")
(source
(origin
(inherit (package-source igraph))
@@ -239,39 +239,7 @@ more.")
(file-name (git-file-name name version))
(sha256
(base32
"01mynhbl2ph0gkc0zr5klwqvczwcimfs2kdn6didwg4k8gsrcxlr"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
;; We need the vendored versions of qhull and cxsparse.
(snippet '(begin
(delete-file-recursively "src/isomorphism/bliss")
(substitute* '("src/CMakeLists.txt"
"etc/cmake/benchmark_helpers.cmake")
;; Remove extraneous bundling related variables.
((".*_IS_VENDORED.*") "")
((".*add_sub.*isomorphism/bliss.*") "")
(("(.*TARGETS.*)bliss(.*)pcg(.*)"
_ part1 part2 part3)
(string-append part1 part2 part3))
((" pcg ") " pcg_random "))))))
(arguments
(substitute-keyword-arguments (package-arguments igraph)
((#:phases phases '%standard-phases)
#~(modify-phases #$phases
;; We have to use the bundled version because it has been
;; modified from upstream.
(delete 'patch-suitesparse)))
((#:configure-flags flags)
#~(list "-DBUILD_SHARED_LIBS=ON"
"-DIGRAPH_INFOMAP_SUPPORT=OFF"
"-DCMAKE_C_FLAGS=-Wno-error=incompatible-pointer-types"
;; Use the same integer width as suitesparse-cxsparse, which
;; uses int64_t in SuiteSparse v6.0.0 and later.
"-DIGRAPH_INTEGER_SIZE=64"))))
(inputs
(modify-inputs (package-inputs igraph)
(delete "suitesparse-cxsparse"))))))
"0z9jqvl65j4z6brrjlfyykba2bs10az6dx6m8g41snlfnx21a82d")))))))
(define-public python-igraph
(package
+166 -204
View File
@@ -64,17 +64,16 @@
(define-public apply-refact
(package
(name "apply-refact")
(version "0.15.0.0")
(version "0.10.0.0")
(source (origin
(method url-fetch)
(uri (hackage-uri "apply-refact" version))
(sha256
(base32
"0iny8ynxx46afbzjp14rvpd4sqk8c1p5883mbln53gmlxcm8zq53"))))
"129bf8n66kpwh5420rxprngg43bqr2agyd8q8d7l49k2rxsjl1fb"))))
(build-system haskell-build-system)
(properties '((upstream-name . "apply-refact")))
(inputs (list ghc-refact
ghc-data-default
ghc-exactprint
ghc-paths
ghc-extra
@@ -97,13 +96,13 @@ library. It is primarily used with HLint's @code{--refactor} flag.")
(define-public cabal-install
(package
(name "cabal-install")
(version "3.12.1.0")
(source
(origin
(method url-fetch)
(uri (hackage-uri "cabal-install" version))
(sha256
(base32 "1cmifq189i4x0r0yha3dl8nrzzfh92bnd2saak7dqvvjkkysqj38"))))
(version "3.6.2.0")
(source (origin
(method url-fetch)
(uri (hackage-uri "cabal-install" version))
(sha256
(base32
"0dihpm4h3xh13vnpvwflnb7v614qdvljycc6ffg5cvhwbwfrxyfw"))))
(build-system haskell-build-system)
(properties '((upstream-name . "cabal-install")))
(inputs (list ghc-async
@@ -118,35 +117,13 @@ library. It is primarily used with HLint's @code{--refactor} flag.")
ghc-tar
ghc-zlib
ghc-hackage-security
ghc-open-browser
ghc-regex-base
ghc-regex-posix
ghc-safe-exceptions
ghc-semaphore-compat
ghc-resolv
ghc-lukko))
(native-inputs (list ghc-tasty
ghc-tasty-golden
ghc-tasty-quickcheck
ghc-tasty-expected-failure
ghc-tasty-hunit
ghc-tree-diff
ghc-quickcheck
ghc-tasty
ghc-tasty-hunit
ghc-tasty
ghc-tasty-hunit
ghc-tagged
ghc-tagged
ghc-tasty
ghc-tasty-expected-failure
ghc-tasty-hunit
ghc-tasty-quickcheck
ghc-quickcheck
ghc-pretty-show))
(arguments
`(#:cabal-revision ("2"
"0fdzqdkg2vbyg0lnbk9bdskr2d23hwjpmnc7jnvpzkcmxmcvl99n")))
"1kpgyfl5njxp4c8ax5ziag1bhqvph3h0pn660v3vpxalz8d1j6xv")))
(home-page "https://www.haskell.org/cabal/")
(synopsis "Command-line interface for Cabal and Hackage")
(description
@@ -168,10 +145,11 @@ installation of Haskell libraries and programs.")
"17wi7fma2qaqdm1hwgaam3fd140v9bpa8ky0wg708h1pqc5v2nbz"))))
(build-system haskell-build-system)
(properties '((upstream-name . "cpphs")))
(inputs (list ghc-polyparse))
(inputs
(list ghc-polyparse ghc-old-locale ghc-old-time))
(arguments
`(#:cabal-revision ("2"
"0vxav36p0kplp4dpd17i4cfzrsl3r437d840xwv83lf1bqp7mrxc")))
`(#:cabal-revision ("1"
"1f8jzs8zdh4wwbcq8fy6qqxkv75ypnvsm4yzw49wpr3b9vpnzlha")))
(home-page "https://projects.haskell.org/cpphs/")
(synopsis "Liberalised re-implementation of cpp, the C pre-processor")
(description "Cpphs is a re-implementation of the C pre-processor that is
@@ -291,18 +269,20 @@ unique algebra of patches called @url{http://darcs.net/Theory,Patchtheory}.
(define-public ghcid
(package
(name "ghcid")
(version "0.8.9")
(version "0.8.7")
(source
(origin
(method url-fetch)
(uri (hackage-uri "ghcid" version))
(sha256
(base32 "1dq8lc0dwzib8y21279q4j54cmm7lvx64b3hw2yiym1kzi9rrhj4"))))
(base32 "0yqc1pkfajnr56gnh43sbj50r7c3r41b2jfz07ivgl6phi4frjbq"))))
(build-system haskell-build-system)
(properties '((upstream-name . "ghcid")))
(inputs (list ghc-extra ghc-ansi-terminal ghc-cmdargs ghc-fsnotify
ghc-terminal-size))
(native-inputs (list ghc-tasty ghc-tasty-hunit))
(inputs
(list ghc-extra ghc-ansi-terminal ghc-cmdargs ghc-fsnotify
ghc-terminal-size))
(native-inputs
(list ghc-tasty ghc-tasty-hunit))
(home-page "https://github.com/ndmitchell/ghcid#readme")
(synopsis "GHCi based bare bones IDE")
(description
@@ -424,97 +404,95 @@ to @code{cabal repl}).")
(string-append bin "/git-remote-annex"))
(symlink (string-append bin "/git-annex")
(string-append bin "/git-remote-tor-annex"))))))))
(inputs (list ghc-network-uri
ghc-optparse-applicative
ghc-uuid
ghc-data-default
ghc-case-insensitive
ghc-random
ghc-dlist
ghc-unix-compat
ghc-safesemaphore
ghc-async
ghc-disk-free-space
ghc-ifelse
ghc-monad-logger
ghc-free
ghc-utf8-string
ghc-sandi
ghc-monad-control
ghc-bloomfilter
ghc-edit-distance
ghc-resourcet
ghc-http-client
ghc-http-client-tls
ghc-http-types
ghc-http-conduit
ghc-http-client-restricted
ghc-conduit
ghc-old-locale
ghc-persistent-sqlite
ghc-persistent
ghc-persistent-template
ghc-unliftio-core
ghc-microlens
ghc-aeson
ghc-vector
ghc-tagsoup
ghc-unordered-containers
ghc-feed
ghc-regex-tdfa
ghc-socks
ghc-byteable
ghc-stm-chans
ghc-securemem
ghc-crypto-api
ghc-memory
ghc-split
ghc-attoparsec
ghc-concurrent-output
ghc-unbounded-delays
ghc-quickcheck
ghc-tasty
ghc-tasty-hunit
ghc-tasty-quickcheck
ghc-tasty-rerun
ghc-ansi-terminal
ghc-aws
ghc-dav
ghc-network
ghc-network-bsd
ghc-git-lfs
ghc-clock
ghc-crypton
ghc-servant
ghc-servant-server
ghc-servant-client
ghc-servant-client-core
ghc-warp
ghc-warp-tls
ghc-os-string
ghc-file-io
ghc-mountpoints
ghc-yesod
ghc-yesod-static
ghc-yesod-form
ghc-yesod-core
ghc-path-pieces
ghc-wai
ghc-wai-extra
ghc-blaze-builder
ghc-clientsession
ghc-shakespeare
ghc-hinotify
ghc-dbus
ghc-fdo-notify
ghc-network-multicast
ghc-network-info
ghc-torrent
ghc-magic
ghc-criterion))
(inputs
(list curl
ghc-aeson
ghc-ansi-terminal
ghc-async
ghc-attoparsec
ghc-aws
ghc-bloomfilter
ghc-byteable
ghc-case-insensitive
ghc-clientsession
ghc-concurrent-output
ghc-conduit
ghc-connection
ghc-crypto-api
ghc-cryptonite
ghc-data-default
ghc-dav
ghc-dbus
ghc-disk-free-space
ghc-dlist
ghc-edit-distance
ghc-exceptions
ghc-fdo-notify
ghc-feed
ghc-filepath-bytestring
ghc-free
ghc-git-lfs
ghc-hinotify
ghc-http-client
ghc-http-client-tls
ghc-http-client-restricted
ghc-http-conduit
ghc-http-types
ghc-ifelse
ghc-magic
ghc-memory
ghc-microlens
ghc-monad-control
ghc-monad-logger
ghc-mountpoints
ghc-network
ghc-network-bsd
ghc-network-info
ghc-network-multicast
ghc-network-uri
ghc-old-locale
ghc-optparse-applicative
ghc-persistent
ghc-persistent-sqlite
ghc-persistent-template
ghc-quickcheck
ghc-random
ghc-regex-tdfa
ghc-resourcet
ghc-safesemaphore
ghc-sandi
ghc-securemem
ghc-servant-client
ghc-servant-server
ghc-socks
ghc-split
ghc-stm-chans
ghc-tagsoup
ghc-torrent
ghc-transformers
ghc-unbounded-delays
ghc-unix-compat
ghc-unliftio-core
ghc-unordered-containers
ghc-utf8-string
ghc-uuid
ghc-vector
ghc-wai
ghc-wai-extra
ghc-warp
ghc-warp-tls
ghc-yesod
ghc-yesod-core
ghc-yesod-form
ghc-yesod-static
lsof
rsync
xdg-utils))
(propagated-inputs
(list git))
(native-inputs (list ghc-filepath-bytestring))
(native-inputs
(list ghc-tasty ghc-tasty-hunit ghc-tasty-quickcheck ghc-tasty-rerun
perl))
(home-page "https://git-annex.branchable.com/")
(synopsis "Manage files with Git, without checking in their contents")
(description "This package allows managing files with Git, without
@@ -535,13 +513,13 @@ used to keep a folder in sync between computers.")
(define-public hlint
(package
(name "hlint")
(version "3.10")
(source
(origin
(method url-fetch)
(uri (hackage-uri "hlint" version))
(sha256
(base32 "0dzy7spc45v88yplczhd3la464bhcbaihi619a45bd06ghrp55nr"))))
(version "3.4.1")
(source (origin
(method url-fetch)
(uri (hackage-uri "hlint" version))
(sha256
(base32
"0bkk03c9hacvfd73dk89g4r81b50g7pjgw5pavldali4qwss34cz"))))
(build-system haskell-build-system)
(properties '((upstream-name . "hlint")))
(inputs (list ghc-unordered-containers
@@ -558,10 +536,12 @@ used to keep a folder in sync between computers.")
ghc-aeson
ghc-deriving-aeson
ghc-filepattern
ghc-lib-parser
ghc-lib-parser-ex
hscolour
ghc-yaml))
(arguments
`(#:cabal-revision ("1"
"1rdaffg5n179yfcn5zjwjb0bki09qy13gz2ijky455y9pbaz8yz9")))
(home-page "https://github.com/ndmitchell/hlint#readme")
(synopsis "Suggest improvements for Haskell source code")
(description
@@ -573,13 +553,13 @@ unwanted suggestions, and to add your own custom suggestions.")
(define-public hoogle
(package
(name "hoogle")
(version "5.0.18.4")
(source
(origin
(method url-fetch)
(uri (hackage-uri "hoogle" version))
(sha256
(base32 "08z32d87vqzhapb2vw21h25jb2g74csxlpvd8f54xl91k3ijs3wx"))))
(version "5.0.18.3")
(source (origin
(method url-fetch)
(uri (hackage-uri "hoogle" version))
(sha256
(base32
"0v6k75w0an9pqgb7a6cicnpf9rz77xd2lmxfbafc5l4f99jg83bn"))))
(build-system haskell-build-system)
(properties '((upstream-name . "hoogle")))
(inputs (list ghc-quickcheck
@@ -589,7 +569,7 @@ unwanted suggestions, and to add your own custom suggestions.")
ghc-cmdargs
ghc-conduit
ghc-conduit-extra
ghc-crypton-connection
ghc-connection
ghc-extra
ghc-foundation
ghc-old-locale
@@ -602,7 +582,6 @@ unwanted suggestions, and to add your own custom suggestions.")
ghc-mmap
ghc-process-extras
ghc-resourcet
ghc-safe
ghc-storable-tuple
ghc-tar
ghc-uniplate
@@ -614,9 +593,6 @@ unwanted suggestions, and to add your own custom suggestions.")
ghc-warp-tls
ghc-zlib
ghc-semigroups))
(arguments
`(#:cabal-revision ("1"
"1129flhhb1992rijw46dclvmpqlylmbrzl4swsnk2knylx6jgw5a")))
(home-page "https://hoogle.haskell.org/")
(synopsis "Haskell API Search")
(description
@@ -628,13 +604,14 @@ or by approximate type signature.")
(define-public hscolour
(package
(name "hscolour")
(version "1.25")
(version "1.24.4")
(source
(origin
(method url-fetch)
(uri (hackage-uri "hscolour" version))
(sha256
(base32 "0z679khnmb6as1zcdb44n9qjk7in32jpm4ldscpqg7jrapd31kjl"))))
(base32
"079jwph4bwllfp03yfr26s5zc6m6kw3nhb1cggrifh99haq34cr4"))))
(build-system haskell-build-system)
(properties '((upstream-name . "hscolour")))
(home-page "https://hackage.haskell.org/package/hscolour")
@@ -783,12 +760,12 @@ Wayland, and Linux console environments alike.")
ghc-text-zipper
ghc-timezone-olson
ghc-timezone-series
ghc-unix-compat
ghc-unix-compat-7
ghc-unordered-containers
ghc-utf8-string
ghc-uuid
ghc-vector
ghc-vty
ghc-vty-6
ghc-vty-crossplatform
ghc-word-wrap
ghc-xdg-basedir))
@@ -834,31 +811,20 @@ Wayland, and Linux console environments alike.")
(define-public nixfmt
(package
(name "nixfmt")
(version "1.1.0")
(version "0.5.0")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/NixOS/nixfmt")
(commit (string-append "v" version))))
(method url-fetch)
(uri (hackage-uri "nixfmt" version))
(sha256
(base32 "19sydkdw1579qmvzx0zq06s23bm6m6l9wp1kvsfhxawk8pkz2pc2"))
(snippet
#~(substitute* "nixfmt.cabal"
(("(megaparsec|filepath) *[0-9<>=^&|. ]*" _ package)
package)))
(modules '((guix build utils)))))
(base32 "0rxi8zrd2xr72w673nvgnhb0g3r7rssc1ahlhz8rmdpc6c1a82wl"))))
(build-system haskell-build-system)
(inputs (list ghc-megaparsec
ghc-parser-combinators
ghc-scientific
ghc-pretty-simple
ghc-cmdargs
ghc-file-embed
ghc-safe-exceptions))
(home-page "https://github.com/NixOS/nixfmt")
(synopsis "Official formatter for Nix code")
(properties '((upstream-name . "nixfmt")))
(inputs
(list ghc-megaparsec ghc-parser-combinators ghc-cmdargs
ghc-safe-exceptions))
(home-page "https://github.com/serokell/nixfmt")
(synopsis "Opinionated formatter for Nix")
(description
"Nixfmt is a formatter for Nix that ensures consistent and clear
formatting by forgetting all existing formatting during parsing.")
@@ -988,7 +954,6 @@ too slow and you'll get wound up in the scroll and crushed.")
(build-system haskell-build-system)
(arguments
(list #:haddock? #f ; TODO: Fails to build.
#:cabal-revision '("1" "1935jrzy1r3g9cc74b330fmxnz2i1j8hsdk9jnl557qgk6xjqzs7")
#:phases
#~(modify-phases %standard-phases
(add-after 'build 'build-man-page
@@ -1028,13 +993,13 @@ advanced user's otherwise working script to fail under future circumstances.
(define-public shelltestrunner
(package
(name "shelltestrunner")
(version "1.10")
(source
(origin
(method url-fetch)
(uri (hackage-uri "shelltestrunner" version))
(sha256
(base32 "1c6bjyxqa4mgnh3w4pqp6sbr5cf160n7jf9i1b4b9sdxzdjk7g87"))))
(version "1.9")
(source (origin
(method url-fetch)
(uri (hackage-uri "shelltestrunner" version))
(sha256
(base32
"1a5kzqbwg6990249ypw0cx6cqj6663as1kbj8nzblcky8j6kbi6b"))))
(build-system haskell-build-system)
(properties '((upstream-name . "shelltestrunner")))
(arguments
@@ -1057,19 +1022,17 @@ advanced user's otherwise working script to fail under future circumstances.
"tests/examples")
(format #t "test suite not run~%"))
#t))))))
(inputs (list ghc-diff
ghc-filemanip
ghc-hunit
ghc-cmdargs
ghc-pretty-show
ghc-regex-tdfa
ghc-safe
ghc-test-framework
ghc-test-framework-hunit
ghc-utf8-string
ghc-hspec
ghc-hspec-core
ghc-hspec-contrib))
(inputs
(list ghc-diff
ghc-cmdargs
ghc-filemanip
ghc-hunit
ghc-pretty-show
ghc-regex-tdfa
ghc-safe
ghc-utf8-string
ghc-test-framework
ghc-test-framework-hunit))
(home-page "https://github.com/simonmichael/shelltestrunner")
(synopsis "Test CLI programs")
(description
@@ -1082,13 +1045,13 @@ output, stderr, and exit status.")
(define-public stylish-haskell
(package
(name "stylish-haskell")
(version "0.15.1.0")
(source
(origin
(method url-fetch)
(uri (hackage-uri "stylish-haskell" version))
(sha256
(base32 "06y6f7bv5j5k7q81194v9jqcbmmqcv7h8ii3lq1783bpfnyd6h19"))))
(version "0.14.3.0")
(source (origin
(method url-fetch)
(uri (hackage-uri "stylish-haskell" version))
(sha256
(base32
"17w92v0qnwj7m6yqdq5cxbr04xiz0yfnnyx5q54218wdl7n5lf6d"))))
(build-system haskell-build-system)
(properties '((upstream-name . "stylish-haskell")))
(inputs (list ghc-aeson
@@ -1098,7 +1061,6 @@ output, stderr, and exit status.")
ghc-hsyaml-aeson
ghc-hsyaml
ghc-semigroups
ghc-lib-parser
ghc-lib-parser-ex
ghc-strict
ghc-optparse-applicative))
+285 -321
View File
@@ -45,18 +45,22 @@
(define-public ghc-tasty-ant-xml
(package
(name "ghc-tasty-ant-xml")
(version "1.1.9")
(version "1.1.8")
(source
(origin
(method url-fetch)
(uri (hackage-uri "tasty-ant-xml" version))
(sha256
(base32 "00zgsd6jjfwasr69d0y781vhjr7d8p1jbaaz4pn75ljf33akd92l"))))
(base32
"0h9mllhw9cd0rn34xhj8grwmbny7z7hpd8qmp9lfcdj0s4qx9vx8"))))
(build-system haskell-build-system)
(properties '((upstream-name . "tasty-ant-xml")))
(inputs (list ghc-generic-deriving ghc-tagged ghc-tasty ghc-xml))
(home-page "http://github.com/ocharles/tasty-ant-xml")
(synopsis "Render tasty output to XML for Jenkins")
(inputs
(list ghc-generic-deriving ghc-xml ghc-tagged ghc-tasty))
(home-page
"https://github.com/ocharles/tasty-ant-xml")
(synopsis
"Render tasty output to XML for Jenkins")
(description
"A tasty ingredient to output test results in XML, using the Ant
schema. This XML can be consumed by the Jenkins continuous integration
@@ -72,37 +76,33 @@ framework.")
(method url-fetch)
(uri (hackage-uri "tasty-smallcheck" version))
(sha256
(base32 "0csgwn3vch0jnpqyyfnrfjq4z0dpl67imh5a7byll3hhlyidgjym"))))
(base32
"0csgwn3vch0jnpqyyfnrfjq4z0dpl67imh5a7byll3hhlyidgjym"))))
(build-system haskell-build-system)
(properties '((upstream-name . "tasty-smallcheck")))
(inputs (list ghc-tasty ghc-smallcheck ghc-tagged ghc-optparse-applicative))
(arguments
`(#:cabal-revision ("1"
"0033ha2w9rzc1rxpzh1dkfdrn256i5lvb41pqbdh2i6kli0v5vmh")))
(home-page "https://github.com/feuerbach/tasty")
(inputs
(list ghc-tasty ghc-smallcheck ghc-async ghc-tagged))
(home-page "https://documentup.com/feuerbach/tasty")
(synopsis "SmallCheck support for the Tasty test framework")
(description "This package provides SmallCheck support for the Tasty
Haskell test framework.")
(license license:expat)))
(license license:bsd-3)))
(define-public ghc-tasty-quickcheck
(package
(name "ghc-tasty-quickcheck")
(version "0.11.1")
(source
(origin
(method url-fetch)
(uri (hackage-uri "tasty-quickcheck" version))
(sha256
(base32 "0si4ccgqlv8h33d6310rrqba7f4pz3g8cinqfj42yd7damsdxm73"))))
(version "0.10.2")
(source (origin
(method url-fetch)
(uri (hackage-uri "tasty-quickcheck" version))
(sha256
(base32
"1qnc6rdvjvlw08q6sln2n98rvj0s0pp689h6w4z58smjbn0lr25l"))))
(build-system haskell-build-system)
(properties '((upstream-name . "tasty-quickcheck")))
(inputs (list ghc-tagged ghc-tasty ghc-random ghc-quickcheck
ghc-optparse-applicative))
(native-inputs (list ghc-regex-tdfa ghc-tasty-hunit))
(arguments
`(#:cabal-revision ("3"
"1wzvha4xam8npx5mk33c056grmrqnjd6m38nnm6d7y99w2mn1a7w")))
(native-inputs (list ghc-tasty-hunit ghc-pcre-light))
(home-page "https://github.com/UnkindPartition/tasty")
(synopsis "QuickCheck support for the Tasty test framework")
(description "This package provides QuickCheck support for the Tasty
@@ -140,23 +140,22 @@ contains the correct result for the test.")
(define-public ghc-tasty
(package
(name "ghc-tasty")
(version "1.5.3")
(source
(origin
(method url-fetch)
(uri (hackage-uri "tasty" version))
(sha256
(base32 "10076vlklbcyiz7plakrihava5sy3dvwhskjldqzhfl18jvcg82l"))))
(version "1.4.3")
(source (origin
(method url-fetch)
(uri (hackage-uri "tasty" version))
(sha256
(base32
"006bf4gyc30i2gvb17hj1mzrh1kwnwf7l050x3f72wi6c2axl87l"))))
(build-system haskell-build-system)
(properties '((upstream-name . "tasty")))
(inputs
(list ghc-tagged
ghc-optparse-applicative
ghc-ansi-terminal
ghc-unbounded-delays)) ; needed on 32-bit architectures
(arguments
`(#:cabal-revision ("2"
"04llcf1i3gawdik0bjhxdgls2wkiqlx0gi76nfh784nv2qzxlpbb")))
(append
(list ghc-tagged ghc-optparse-applicative ghc-ansi-terminal)
;; TODO: Add ghc-unbounded-delays unconditionally on next rebuild cycle.
(if (member (%current-system) '("i686-linux"))
(list ghc-unbounded-delays)
'())))
(home-page "https://github.com/UnkindPartition/tasty")
(synopsis "Modern and extensible testing framework")
(description
@@ -168,20 +167,17 @@ and any other types of tests into a single test suite.")
(define-public ghc-tasty-hedgehog
(package
(name "ghc-tasty-hedgehog")
(version "1.4.0.2")
(source
(origin
(method url-fetch)
(uri (hackage-uri "tasty-hedgehog" version))
(sha256
(base32 "0lki03z0p38x0dkqx5cqga30zy5m31gxn1saqylja9bi6bbq8d25"))))
(version "1.3.1.0")
(source (origin
(method url-fetch)
(uri (hackage-uri "tasty-hedgehog" version))
(sha256
(base32
"1iq452mvd9wc9pfmjsmm848jwp3cvsk1faf2mlr21vcs0yaxvq3m"))))
(build-system haskell-build-system)
(properties '((upstream-name . "tasty-hedgehog")))
(inputs (list ghc-tagged ghc-tasty ghc-hedgehog))
(native-inputs (list ghc-tasty-expected-failure))
(arguments
`(#:cabal-revision ("6"
"1rb8ncp6xyy7jr6v0hyls9m529ba0djndsxgxmkgr52rk3qq8lrc")))
(home-page "https://github.com/qfpl/tasty-hedgehog")
(synopsis "Integration for tasty and hedgehog")
(description
@@ -194,25 +190,22 @@ framework}.")
(define-public ghc-tasty-hspec
(package
(name "ghc-tasty-hspec")
(version "1.2.0.4")
(version "1.2.0.2")
(source
(origin
(method url-fetch)
(uri (hackage-uri "tasty-hspec" version))
(sha256
(base32 "1hk1nkjvhp89xxgzj6dhbgw0fknnghpng6afq4i39hjkwv5p78ni"))))
(base32 "0cfcpi25jmnmzfzsx364qsj68q6gyph5z112kl8ja222hnhhr2n2"))))
(build-system haskell-build-system)
(properties '((upstream-name . "tasty-hspec")))
(inputs (list ghc-hspec
ghc-hspec-api
ghc-hspec-core
ghc-quickcheck
ghc-tasty
ghc-tasty-smallcheck
ghc-tasty-quickcheck))
(arguments
`(#:cabal-revision ("7"
"0s1y34i8g7fva0z10ws3ipcy2jmlvqk0v4hdbx8rqnby5n0l5kay")))
ghc-tasty-quickcheck
ghc-tagged))
(home-page "https://github.com/mitchellwrosen/tasty-hspec")
(synopsis "Hspec support for the Tasty test framework")
(description
@@ -222,17 +215,19 @@ framework}.")
(define-public ghc-tasty-hunit
(package
(name "ghc-tasty-hunit")
(version "0.10.2")
(version "0.10.0.3")
(source
(origin
(method url-fetch)
(uri (hackage-uri "tasty-hunit" version))
(sha256
(base32 "1xh33ss7dncm7zanzkzh7ywb3a46k7vkcbh6v8jb767gq6kizw2s"))))
(base32
"0gz6zz3w7s44pymw33xcxnawryl27zk33766sab96nz2xh91kvxp"))))
(build-system haskell-build-system)
(properties '((upstream-name . "tasty-hunit")))
(inputs (list ghc-tasty ghc-call-stack-boot))
(home-page "https://github.com/UnkindPartition/tasty")
(inputs
(list ghc-call-stack-boot ghc-tasty))
(home-page "http://documentup.com/feuerbach/tasty")
(synopsis "HUnit support for the Tasty test framework")
(description "This package provides HUnit support for the Tasty Haskell
test framework.")
@@ -262,13 +257,13 @@ tasty.")
(define-public ghc-tasty-lua
(package
(name "ghc-tasty-lua")
(version "1.1.1.1")
(source
(origin
(method url-fetch)
(uri (hackage-uri "tasty-lua" version))
(sha256
(base32 "03b2n3gw2w70cnl57w3sh3cv5ka270sf07jlxpb4zs0z5gh83p1r"))))
(version "1.0.2")
(source (origin
(method url-fetch)
(uri (hackage-uri "tasty-lua" version))
(sha256
(base32
"1vnyvgcjsvqhwwyqkbgqksr9ppj5whiihpwcqkg33sl7jj3ysdwv"))))
(build-system haskell-build-system)
(properties '((upstream-name . "tasty-lua")))
(inputs (list ghc-hslua-core
@@ -293,15 +288,16 @@ from Lua.")
(method url-fetch)
(uri (hackage-uri "tasty-th" version))
(sha256
(base32 "0b2ivrw2257m4cy4rjnkwqlarh83j1y3zywnmaqqqbvy667sqnj3"))))
(base32
"0b2ivrw2257m4cy4rjnkwqlarh83j1y3zywnmaqqqbvy667sqnj3"))))
(build-system haskell-build-system)
(properties '((upstream-name . "tasty-th")))
(inputs (list ghc-haskell-src-exts ghc-tasty))
(native-inputs (list ghc-tasty-hunit))
(inputs
(list ghc-haskell-src-exts ghc-tasty ghc-tasty-hunit))
(home-page "https://github.com/bennofs/tasty-th")
(synopsis "Automatically generate tasty TestTrees")
(description
"Tasty-th automatically generates tasty TestTrees from functions of the
"Tasty-th automatically generates tasty TestTrees from functions of the
current module, using TemplateHaskell. This is a fork the original
test-framework-th package, modified to work with tasty instead of
test-framework.")
@@ -310,27 +306,28 @@ test-framework.")
(define-public ghc-tasty-rerun
(package
(name "ghc-tasty-rerun")
(version "1.1.20")
(source
(origin
(method url-fetch)
(uri (hackage-uri "tasty-rerun" version))
(sha256
(base32 "0px58jm1yqbg32qf2s0yk09d2qdjxkkz9df89f31q3nzw85jv2ky"))))
(version "1.1.18")
(source (origin
(method url-fetch)
(uri (hackage-uri "tasty-rerun" version))
(sha256
(base32
"0sccp5zx9v2rx741nbmgd8mzjhy5m4v74hk26d23xz93ph8aqx7s"))))
(build-system haskell-build-system)
(properties '((upstream-name . "tasty-rerun")))
(inputs (list ghc-optparse-applicative ghc-split ghc-tagged ghc-tasty))
(inputs
(list ghc-optparse-applicative ghc-reducers ghc-split ghc-tagged
ghc-tasty))
(arguments
`(#:cabal-revision ("1"
"13xmx91hp7i0qzrhada9ckliqkynwlwa8x6pjbvxjcy1y0qsd7hk")))
`(#:cabal-revision ("3"
"0091arn90cx5rzn5n2bpb9alzybwraf9yj7hb0bwdfyamzpf3pkb")))
(home-page "https://github.com/ocharles/tasty-rerun")
(synopsis "Run tests by filtering the test tree")
(description
"This package adds the ability to run tests by filtering the
(description "This package adds the ability to run tests by filtering the
test tree based on the result of a previous test run. You can use this to run
only those tests that failed in the last run, or to only run the tests that have
been added since previous test run.")
(license license:bsd-3)))
(license license:bsd-3)))
(define-public ghc-tasty-expected-failure
(package
@@ -365,17 +362,17 @@ development.")
(define-public ghc-quickcheck-instances
(package
(name "ghc-quickcheck-instances")
(version "0.3.33")
(version "0.3.29.1")
(source
(origin
(method url-fetch)
(uri (hackage-uri "quickcheck-instances" version))
(sha256
(base32 "0rl8y3rb4fm4nqz122bp5f2aya4f8bc9m9i9n2vwlyq2gdacs0v8"))))
(base32 "0jx2wfy7y5dr14s9i457g2aah4isjxry4mlbqhj7vlav6ib84gdj"))))
(build-system haskell-build-system)
(properties '((upstream-name . "quickcheck-instances")))
(inputs (list ghc-quickcheck
ghc-splitmix-bootstrap
ghc-splitmix
ghc-case-insensitive
ghc-data-fix
ghc-hashable
@@ -386,15 +383,17 @@ development.")
ghc-scientific
ghc-strict
ghc-tagged
ghc-text-short
ghc-these
ghc-time-compat
ghc-transformers-compat
ghc-unordered-containers
ghc-uuid-types
ghc-vector))
ghc-vector
ghc-data-array-byte
ghc-text-short))
(arguments
`(#:cabal-revision ("1"
"1xkc7rsfgya4rwiizh0yfincws3knpdnh08m280v1dgik4kv37vh")))
`(#:cabal-revision ("2"
"118xy4z4dy4bpkzsp98daiv3l4n5j7ph9my0saca7cqjybqwkcip")))
(home-page "https://github.com/haskellari/qc-instances")
(synopsis "Common quickcheck instances")
(description "This package provides QuickCheck instances for types
@@ -410,38 +409,17 @@ provided by the Haskell Platform.")
(method url-fetch)
(uri (hackage-uri "quickcheck-unicode" version))
(sha256
(base32 "0s43s1bzbg3gwsjgm7fpyksd1339f0m26dlw2famxwyzgvm0a80k"))))
(base32
"0s43s1bzbg3gwsjgm7fpyksd1339f0m26dlw2famxwyzgvm0a80k"))))
(build-system haskell-build-system)
(properties '((upstream-name . "quickcheck-unicode")))
(inputs (list ghc-quickcheck))
(home-page "https://github.com/bos/quickcheck-unicode")
(home-page
"https://github.com/bos/quickcheck-unicode")
(synopsis "Generator functions Unicode-related tests")
(description "This package provides generator and shrink functions for
testing Unicode-related software.")
(license license:bsd-2)))
(define-public ghc-quickcheck-text
(package
(name "ghc-quickcheck-text")
(version "0.1.2.1")
(source
(origin
(method url-fetch)
(uri (hackage-uri "quickcheck-text" version))
(sha256
(base32 "02dbs0k6igmsa1hcw8yfvp09v7038vp4zlsp9706km3cmswgshj4"))))
(build-system haskell-build-system)
(properties '((upstream-name . "quickcheck-text")))
(inputs (list ghc-quickcheck))
(home-page "https://github.com/olorin/quickcheck-text")
(synopsis "Alternative arbitrary instance for Text")
(description
"The usual Arbitrary instance for Text (in
<https://hackage.haskell.org/package/quickcheck-instances quickcheck-instances>)
only has single-byte instances and so isn't an ideal representation of a valid
UTF-8 character. This package has generators for one-, two- and three-byte
UTF-8 characters (all that are currently in use).")
(license license:expat)))
(license license:bsd-3)))
(define-public ghc-quickcheck-io
(package
@@ -468,19 +446,17 @@ use HUnit assertions as QuickCheck properties.")
(define-public ghc-quickcheck
(package
(name "ghc-quickcheck")
(version "2.15.0.1")
(version "2.14.3")
(source
(origin
(method url-fetch)
(uri (hackage-uri "QuickCheck" version))
(sha256
(base32 "0zvfydg44ibs1br522rzvdlxj9mpz0h62js1hay1sj5gvdnj3cm3"))))
(base32 "0085lwy14r7hk7ibmv8d7d54ja9zin0ijf0b27xai898dfrj43sw"))))
(build-system haskell-build-system)
(properties '((upstream-name . "QuickCheck")))
(inputs (list ghc-random-bootstrap ghc-splitmix-bootstrap))
(arguments
`(#:cabal-revision ("1"
"0cgfp4s51cjphsn9cls6rndisvqmi94vn95xan9g1yz6p5xk7z8c")))
(inputs
(list ghc-random ghc-splitmix-bootstrap))
(home-page "https://github.com/nick8325/quickcheck")
(synopsis "Automatic testing of Haskell programs")
(description
@@ -503,8 +479,10 @@ expressed in Haskell, using combinators defined in the QuickCheck library.")
(base32 "1kyam4cy7qmnizjwjm8jamq43w7f0fs6ljfplwj0ib6wi2kjh0wv"))))
(build-system haskell-build-system)
(properties '((upstream-name . "quickcheck-assertions")))
(inputs (list ghc-quickcheck ghc-ieee754 ghc-pretty-show))
(native-inputs (list ghc-hspec))
(native-inputs
(list ghc-hspec))
(inputs
(list ghc-ieee754 ghc-pretty-show ghc-quickcheck))
(home-page "https://github.com/s9gf4ult/quickcheck-assertions")
(synopsis "HUnit-like assertions for QuickCheck")
(description
@@ -516,27 +494,33 @@ HUnit.")
(define-public ghc-test-framework
(package
(name "ghc-test-framework")
(version "0.8.2.2")
(version "0.8.2.0")
(source
(origin
(method url-fetch)
(uri (hackage-uri "test-framework" version))
(sha256
(base32 "04ijf5x6xx8i5lqv9ir33zs1rfzc4qkwwz8c1fdycnzvydcv4dnp"))))
(base32
"1hhacrzam6b8f10hyldmjw8pb7frdxh04rfg3farxcxwbnhwgbpm"))))
(build-system haskell-build-system)
(properties '((upstream-name . "test-framework")))
(inputs (list ghc-ansi-terminal
ghc-ansi-wl-pprint
ghc-random
ghc-regex-posix
ghc-old-locale
ghc-xml
ghc-hostname))
(native-inputs (list ghc-hunit ghc-quickcheck ghc-semigroups-bootstrap))
(arguments
`(#:cabal-revision ("1"
"1yv1qsr6bxphxk9430id9bqhfmkffdqmfg0k017dp9pnn4pqj0zh")))
(home-page "https://github.com/haskell/test-framework#readme")
`(#:tests? #f ; FIXME: Tests do not build.
#:cabal-revision
("6" "0wbq9wiaag69nsqxwijzhs5y1hb9kbpkp1x65dvx158cxp8i9w9r")))
;(native-inputs
; (list ghc-hunit ghc-quickcheck))
(inputs
`(("ghc-ansi-terminal" ,ghc-ansi-terminal)
("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
("ghc-hostname" ,ghc-hostname)
("ghc-old-locale" ,ghc-old-locale)
("ghc-random" ,ghc-random)
("ghc-regex-posix" ,ghc-regex-posix)
("ghc-xml" ,ghc-xml)
("ghc-libxml" ,ghc-libxml)
("ghc-semigroups" ,ghc-semigroups-bootstrap)))
(home-page "https://batterseapower.github.io/test-framework/")
(synopsis "Framework for running and organising tests")
(description
"This package allows tests such as QuickCheck properties and HUnit test
@@ -573,21 +557,23 @@ reporting and test statistics output.")
(define-public ghc-test-framework-quickcheck2
(package
(name "ghc-test-framework-quickcheck2")
(version "0.3.0.6")
(version "0.3.0.5")
(source
(origin
(method url-fetch)
(uri (hackage-uri "test-framework-quickcheck2" version))
(sha256
(base32 "1d0w2q9sm8aayk0aj1zr2irpnqwpzixn6pdfq1i904vs1kkb2xin"))))
(base32
"0ngf9vvby4nrdf1i7dxf5m9jn0g2pkq32w48xdr92n9hxka7ixn9"))))
(build-system haskell-build-system)
(properties '((upstream-name . "test-framework-quickcheck2")))
(inputs (list ghc-test-framework ghc-quickcheck ghc-extensible-exceptions
ghc-random))
(arguments
`(#:cabal-revision ("1"
"1af2gw9gvq143jdqmsnxj23cgss9ffdyr67951a5x151aps04y7z")))
(home-page "https://github.com/haskell/test-framework")
`(#:cabal-revision
("3" "0mglqfimla4vvv80mg08aj76zf4993wmngqlirh05h8i9nmgv6lh")))
(inputs
(list ghc-extensible-exceptions ghc-quickcheck ghc-random
ghc-test-framework))
(home-page "https://batterseapower.github.io/test-framework/")
(synopsis "QuickCheck2 support for test-framework")
(description
"This package provides QuickCheck2 support for the test-framework
@@ -606,8 +592,9 @@ package.")
(base32 "1xpgpk1gp4w7w46b4rhj80fa0bcyz8asj2dcjb5x1c37b7rw90b0"))))
(build-system haskell-build-system)
(properties '((upstream-name . "test-framework-smallcheck")))
(inputs (list ghc-test-framework ghc-smallcheck))
(home-page "https://github.com/feuerbach/smallcheck")
(inputs
(list ghc-smallcheck ghc-test-framework))
(home-page "https://github.com/Bodigrim/smallcheck")
(synopsis "SmallCheck support for test-framework")
(description
"This package lets programmers use SmallCheck properties in Haskell's
@@ -673,17 +660,17 @@ JUnit tool for Java.")
(define-public hspec-discover
(package
(name "hspec-discover")
(version "2.11.12")
(source
(origin
(method url-fetch)
(uri (hackage-uri "hspec-discover" version))
(sha256
(base32 "044vgsy45ff00h9z2k3jgn2m37npcjiacc4cifahrjlmwa7a7ylp"))))
(version "2.9.7")
(source (origin
(method url-fetch)
(uri (hackage-uri "hspec-discover" version))
(sha256
(base32
"0536kdxjw6p8b6gcwvmr22jbmb6cgzbddi0fkd01b2m847z37sb5"))))
(build-system haskell-build-system)
(properties '((upstream-name . "hspec-discover")))
(native-inputs (list ghc-quickcheck ghc-hspec-meta ghc-mockery-bootstrap))
(home-page "https://hspec.github.io/")
(home-page "http://hspec.github.io/")
(synopsis "Automatically discover and run Hspec tests")
(description "hspec-discover is a tool which automatically discovers and
runs Hspec tests.")
@@ -692,30 +679,28 @@ runs Hspec tests.")
(define-public ghc-hspec-core
(package
(name "ghc-hspec-core")
(version "2.11.12")
(source
(origin
(method url-fetch)
(uri (hackage-uri "hspec-core" version))
(sha256
(base32 "030400w95775jrivbi7n1nnx6j5z717rqd3986ggklb8h9hjalfc"))))
(version "2.9.7")
(source (origin
(method url-fetch)
(uri (hackage-uri "hspec-core" version))
(sha256
(base32
"040rzqiqwkp373jjpij8lkmv08pp2ya92zzcf95bw8px215rp08n"))))
(build-system haskell-build-system)
(properties '((upstream-name . "hspec-core")))
(inputs (list ghc-hunit
ghc-quickcheck
ghc-ansi-terminal
ghc-call-stack
ghc-haskell-lexer
ghc-clock
ghc-hspec-expectations
ghc-quickcheck-io
ghc-random
ghc-setenv
ghc-tf-random))
(native-inputs (list ghc-base-orphans-bootstrap ghc-hspec-meta
ghc-silently-bootstrap ghc-temporary-bootstrap))
(arguments
`(#:cabal-revision ("1"
"0yq9nnawcgbgxiz4ymfa8k66jrvgrhmv8j7g880x8k6q8q4ncqlq")))
(home-page "https://hspec.github.io/")
ghc-silently-bootstrap ghc-temporary))
(home-page "http://hspec.github.io/")
(synopsis "Testing framework for Haskell")
(description "This library exposes internal types and functions that can
be used to extend Hspec's functionality.")
@@ -724,28 +709,23 @@ be used to extend Hspec's functionality.")
(define-public ghc-hspec-meta
(package
(name "ghc-hspec-meta")
(version "2.11.12")
(source
(origin
(method url-fetch)
(uri (hackage-uri "hspec-meta" version))
(sha256
(base32 "1612pg5gihqjxrzqqvbbgckaqiwq3rmz3rg07lrjhzklg975nj69"))))
(version "2.9.3")
(source (origin
(method url-fetch)
(uri (hackage-uri "hspec-meta" version))
(sha256
(base32
"1raxwpsmcijl3x2h5naw6aydhbiknxvhj3x7v384bi1rqi51ainm"))))
(build-system haskell-build-system)
(properties '((upstream-name . "hspec-meta")))
(inputs (list ghc-hunit
ghc-quickcheck
(inputs (list ghc-quickcheck
ghc-ansi-terminal
ghc-call-stack-boot
ghc-haskell-lexer
ghc-hspec-expectations
ghc-clock
ghc-quickcheck-io
ghc-random
ghc-tf-random))
(arguments
`(#:cabal-revision ("2"
"1jrk14s51psb0zjici56220iyb98i3q06sd3rsyx594s3cddgn5d")))
(home-page "https://hspec.github.io/")
ghc-setenv))
(home-page "http://hspec.github.io/")
(synopsis "Version of Hspec to test Hspec itself")
(description "This library provides a stable version of Hspec which is
used to test the in-development version of Hspec.")
@@ -754,58 +734,38 @@ used to test the in-development version of Hspec.")
(define-public ghc-hspec
(package
(name "ghc-hspec")
(version "2.11.12")
(source
(origin
(method url-fetch)
(uri (hackage-uri "hspec" version))
(sha256
(base32 "1zdgkn0gkcphcsfqcqwcfqiqvkz12ljks46v3czpaysndz8icfip"))))
(version "2.9.7")
(source (origin
(method url-fetch)
(uri (hackage-uri "hspec" version))
(sha256
(base32
"092sfqjkargxxszp9jjqa8ldjz0xv34jwn6k21q59ys5ckvsrpc1"))))
(build-system haskell-build-system)
(properties '((upstream-name . "hspec")))
(inputs (list ghc-quickcheck ghc-hspec-core hspec-discover
ghc-hspec-expectations))
(home-page "https://hspec.github.io/")
(home-page "http://hspec.github.io/")
(synopsis "Testing Framework for Haskell")
(description "This library provides the Hspec testing framework for
Haskell, inspired by the Ruby library RSpec.")
(license license:expat)))
(define-public ghc-hspec-api
(package
(name "ghc-hspec-api")
(version "2.11.12")
(source
(origin
(method url-fetch)
(uri (hackage-uri "hspec-api" version))
(sha256
(base32 "1xn2b2hafyq6qm3zaia9nw27ir4cg8v2qn499bz2zwnp2vkjra07"))))
(build-system haskell-build-system)
(properties '((upstream-name . "hspec-api")))
(inputs (list ghc-hspec-core))
(native-inputs (list ghc-hspec))
(home-page "https://hspec.github.io/")
(synopsis "A Testing Framework for Haskell")
(description
"This package provides a stable API that can be used to extend Hspec's
functionality.")
(license license:expat)))
(define-public ghc-hspec-contrib
(package
(name "ghc-hspec-contrib")
(version "0.5.2")
(version "0.5.1.1")
(source
(origin
(method url-fetch)
(uri (hackage-uri "hspec-contrib" version))
(sha256
(base32 "0002xzvyh790iwf1y33d4nflrbp5sxvpsp010srcfryf1n3qx2b0"))))
(base32 "1nyb5n2jiq920yyf3flzyxrs5xpfyppl3jn18zhviyysjjk5drpx"))))
(build-system haskell-build-system)
(properties '((upstream-name . "hspec-contrib")))
(inputs (list ghc-hunit ghc-call-stack ghc-hspec-core))
(native-inputs (list ghc-quickcheck ghc-hspec hspec-discover))
(arguments (list #:tests? #f)) ; Fail to build.
(home-page "https://hspec.github.io/")
(synopsis "Contributed functionality for Hspec")
(description "This package provides contributed Hspec extensions.")
@@ -814,25 +774,22 @@ functionality.")
(define-public ghc-hspec-expectations
(package
(name "ghc-hspec-expectations")
(version "0.8.4")
(version "0.8.2")
(source
(origin
(method url-fetch)
(uri (hackage-uri "hspec-expectations" version))
(sha256
(base32 "1zr1pqchcwglfr5dvcrgc1l5x924n9w09n2zr68dmkqf4dzdx3bv"))))
(base32
"1vxl9zazbaapijr6zmcj72j9wf7ka1pirrjbwddwwddg3zm0g5l1"))))
(build-system haskell-build-system)
(properties '((upstream-name . "hspec-expectations")))
(inputs (list ghc-hunit ghc-call-stack))
(arguments
;; Tests depend on ghc-nanospec.
`(#:tests? #f
#:cabal-revision ("2"
"14zzsjqcz1zbnvi50i82lx84nc8b5da7ar5cazzh44lklyag0ds2")))
(home-page "https://github.com/hspec/hspec-expectations#readme")
(arguments '(#:tests? #f))
(inputs (list ghc-hunit))
(home-page "https://github.com/sol/hspec-expectations")
(synopsis "Catchy combinators for HUnit")
(description
"This library provides catchy combinators for HUnit, see
(description "This library provides catchy combinators for HUnit, see
@uref{https://github.com/sol/hspec-expectations#readme, the README}.")
(license license:expat)))
@@ -897,13 +854,13 @@ implementations of cryptographic ciphers.")
(define-public ghc-hedgehog
(package
(name "ghc-hedgehog")
(version "1.5")
(source
(origin
(method url-fetch)
(uri (hackage-uri "hedgehog" version))
(sha256
(base32 "0sl6x9q9kyrpv73565w9na9dm10wzxdl0qgiraqarffynfgn0hg9"))))
(version "1.1.2")
(source (origin
(method url-fetch)
(uri (hackage-uri "hedgehog" version))
(sha256
(base32
"0dbk75hk6hqpzkjdlpw3s63qhm42kqigij33p321by6xndb59jg1"))))
(build-system haskell-build-system)
(properties '((upstream-name . "hedgehog")))
(inputs (list ghc-ansi-terminal
@@ -918,12 +875,8 @@ implementations of cryptographic ciphers.")
ghc-primitive
ghc-random
ghc-resourcet
ghc-safe-exceptions
ghc-transformers-base
ghc-wl-pprint-annotated))
(arguments
`(#:cabal-revision ("2"
"1m0b9m8dw5nw4b3w1jbp5fd0b0kqlyvvy3qsfxc7md77iafxq169")))
(home-page "https://hedgehog.qa")
(synopsis "Property-based testing in the spirt of QuickCheck")
(description
@@ -939,16 +892,26 @@ To get started quickly, see the examples:
(define-public cabal-doctest
(package
(name "cabal-doctest")
(version "1.0.11")
(source
(origin
(method url-fetch)
(uri (hackage-uri "cabal-doctest" version))
(sha256
(base32 "0gwjpwv2v7c7gs2dvf7ixsxx6likmgw5yi0fy4bqc0i7nkqg4bfw"))))
(version "1.0.9")
(source (origin
(method url-fetch)
(uri (hackage-uri "cabal-doctest" version))
(sha256
(base32
"0wxs0xkspc80h0g8ks792lrzldxvcnhc9rja1j0k678ijs20hmjm"))))
(build-system haskell-build-system)
(properties '((upstream-name . "cabal-doctest")))
(home-page "https://github.com/ulidtko/cabal-doctest")
(arguments
`(#:cabal-revision ("2"
"0868js0qgfhvmyw4hjzrvmlzyqsm8dfsbmqhybxb90x44xi3r0i1")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'update-constraints
(lambda _
(substitute* "cabal-doctest.cabal"
(("\\b(Cabal|base)\\s+[^,]+" all dep)
dep)))))))
(home-page "https://github.com/haskellari/cabal-doctest")
(synopsis "Setup.hs helper for running doctests")
(description
"To properly work, the @code{doctest} package needs plenty of
@@ -1008,13 +971,13 @@ random testing, and hybrids of the two.")
(define-public ghc-inspection-testing
(package
(name "ghc-inspection-testing")
(version "0.6.2")
(source
(origin
(method url-fetch)
(uri (hackage-uri "inspection-testing" version))
(sha256
(base32 "0zi1q86sd9jy5dpqfs2j71acdl7kvik0ps78xirpdhyldhwwyqws"))))
(version "0.4.6.1")
(source (origin
(method url-fetch)
(uri (hackage-uri "inspection-testing" version))
(sha256
(base32
"0mxff0v3ciccbk4b8kxnh4752fzbwn7213qd8xji0csv6gi2w83y"))))
(build-system haskell-build-system)
(properties '((upstream-name . "inspection-testing")))
(home-page "https://github.com/nomeata/inspection-testing")
@@ -1047,33 +1010,33 @@ examples and more information.")
(name "ghc-quickcheck-classes")
(version "0.6.5.0")
(source
(origin
(method url-fetch)
(uri (hackage-uri "quickcheck-classes" version))
(sha256
(base32 "19iw15mvb7gws3ljdxqwsbb4pmfc0sfflf8szgmrhiqr3k82mqv2"))))
(origin
(method url-fetch)
(uri (hackage-uri "quickcheck-classes" version))
(sha256
(base32 "19iw15mvb7gws3ljdxqwsbb4pmfc0sfflf8szgmrhiqr3k82mqv2"))))
(build-system haskell-build-system)
(properties '((upstream-name . "quickcheck-classes")))
(inputs (list ghc-quickcheck
ghc-primitive
ghc-primitive-addr
ghc-quickcheck-classes-base
ghc-semigroups-bootstrap
ghc-fail
ghc-tagged
ghc-aeson
ghc-semigroupoids
ghc-semirings
ghc-vector))
(native-inputs (list ghc-base-orphans ghc-base-orphans ghc-tasty
ghc-tasty-quickcheck))
(arguments
`(#:cabal-revision ("3"
"1pawam5rsdcdv21fqc87khzqjm0ixwzklfxd6gk3b2qrr5q66bn5")))
(inputs
(list ghc-quickcheck
ghc-primitive
ghc-primitive-addr
ghc-quickcheck-classes-base
ghc-aeson
ghc-semigroupoids
ghc-semirings
ghc-vector))
(native-inputs
(list ghc-base-orphans
ghc-tagged
ghc-base-orphans
ghc-tagged
ghc-tasty
ghc-tasty-quickcheck))
(home-page "https://github.com/andrewthad/quickcheck-classes#readme")
(synopsis "QuickCheck common typeclasses")
(description
"This library provides QuickCheck properties to ensure that typeclass
"This library provides QuickCheck properties to ensure that typeclass
instances adhere to the set of laws that they are supposed to. There are
other libraries that do similar things, such as @code{genvalidity-hspec} and
@code{checkers}. This library differs from other solutions by not introducing
@@ -1089,26 +1052,24 @@ constraints more cleanly.")
(name "ghc-quickcheck-classes-base")
(version "0.6.2.0")
(source
(origin
(method url-fetch)
(uri (hackage-uri "quickcheck-classes-base" version))
(sha256
(base32 "16c6gq4cqpkwnq1pzkhm6r7mrwk4an50ha5w77bmiia2qkhla6ch"))))
(origin
(method url-fetch)
(uri (hackage-uri "quickcheck-classes-base" version))
(sha256
(base32 "16c6gq4cqpkwnq1pzkhm6r7mrwk4an50ha5w77bmiia2qkhla6ch"))))
(build-system haskell-build-system)
(properties '((upstream-name . "quickcheck-classes-base")))
(inputs (list ghc-quickcheck
ghc-contravariant
ghc-bifunctors
ghc-semigroups-bootstrap
ghc-fail
ghc-tagged))
(arguments
`(#:cabal-revision ("1"
"1p3v38jhpx0r6rnvaspkkivl8xyq2mq4xnmycgmkj1gr77vplkdr")))
(inputs
(list ghc-quickcheck
ghc-contravariant
ghc-bifunctors
ghc-semigroups
ghc-fail
ghc-tagged))
(home-page "https://github.com/andrewthad/quickcheck-classes#readme")
(synopsis "QuickCheck common typeclasses from `base`")
(description
"This library is a minimal variant of `quickcheck-classes` that only
"This library is a minimal variant of `quickcheck-classes` that only
provides laws for typeclasses from `base`. The main purpose of splitting this
out is so that `primitive` can depend on `quickcheck-classes-base` in its test
suite, avoiding the circular dependency that arises if `quickcheck-classes` is
@@ -1126,61 +1087,67 @@ this library uses the higher-kinded typeclasses
(define-public ghc-doctest-lib
(package
(name "ghc-doctest-lib")
(version "0.1.1.1")
(version "0.1")
(source
(origin
(method url-fetch)
(uri (hackage-uri "doctest-lib" version))
(sha256
(base32 "1hb3zx1xzib3v41blnwcbhc2v0rzwdzq7gm4sajqndimwjkkxc67"))))
(origin
(method url-fetch)
(uri (hackage-uri "doctest-lib" version))
(sha256
(base32 "1vswam0dhw52dihgnzirh18gqs8rj8h6jd7pl6y1mg2f9f9zmih2"))))
(build-system haskell-build-system)
(properties '((upstream-name . "doctest-lib")))
(home-page "https://hub.darcs.net/thielema/doctest-lib/")
(synopsis "Parts of doctest exposed as library")
(description
"Parts of doctest exposed as library. For use with the doctest-extract utility.")
"Parts of doctest exposed as library. For use with the doctest-extract utility.")
(license license:expat)))
(define-public ghc-doctest-exitcode-stdio
(package
(name "ghc-doctest-exitcode-stdio")
(version "0.0.0.1")
(version "0.0")
(source
(origin
(method url-fetch)
(uri (hackage-uri "doctest-exitcode-stdio" version))
(sha256
(base32 "0kg5xiw4giyvqpcj6cxqqnysvixhxlwm0pbg3qks8dzwb5w79dvk"))))
(origin
(method url-fetch)
(uri (hackage-uri "doctest-exitcode-stdio" version))
(sha256
(base32 "1g3c7yrqq2mwqbmvs8vkx1a3cf0p0x74b7fnn344dsk7bsfpgv0x"))))
(build-system haskell-build-system)
(properties '((upstream-name . "doctest-exitcode-stdio")))
(inputs (list ghc-doctest-lib ghc-quickcheck ghc-semigroups))
(inputs
(list ghc-doctest-lib ghc-quickcheck ghc-semigroups))
(arguments
`(#:cabal-revision ("1"
"1065s8bch6zhl6mc8nhvfpwd1irmjd04z7xgycbpihc14x4ijim3")))
(home-page "https://hub.darcs.net/thielema/doctest-exitcode-stdio/")
(synopsis "Run Doctests in a @code{Cabal.Test.exitcode-stdio} environment")
(description
"This package allows on to run Doctests in a Cabal.Test.exitcode-stdio
"This package allows on to run Doctests in a Cabal.Test.exitcode-stdio
environment.")
(license license:bsd-3)))
(define-public ghc-tasty-silver
(package
(name "ghc-tasty-silver")
(version "3.3.2.1")
(source
(origin
(method url-fetch)
(uri (hackage-uri "tasty-silver" version))
(sha256
(base32 "01w3576kymglcddinh10m1wgy71dia49k2pnw5y1c97jjrhanf17"))))
(version "3.3.1.1")
(source (origin
(method url-fetch)
(uri (hackage-uri "tasty-silver" version))
(sha256
(base32
"13j0zs0ciijv9q2nncna1gbgsgw2g7xc228hzmqic1750n3ybz9m"))))
(build-system haskell-build-system)
(properties '((upstream-name . "tasty-silver")))
(inputs (list ghc-ansi-terminal
ghc-async
ghc-optparse-applicative
ghc-process-extras
ghc-regex-tdfa
ghc-silently
ghc-tagged
ghc-tasty
ghc-temporary))
ghc-temporary
ghc-semigroups))
(native-inputs (list ghc-tasty-hunit))
(home-page "https://github.com/phile314/tasty-silver")
(synopsis "Fancy test runner, including support for golden tests")
@@ -1196,19 +1163,16 @@ result of golden tests.")
(define-public ghc-tasty-inspection-testing
(package
(name "ghc-tasty-inspection-testing")
(version "0.2.1")
(source
(origin
(method url-fetch)
(uri (hackage-uri "tasty-inspection-testing" version))
(sha256
(base32 "0wl2xlnbmqdkwhi4ic6a4q4lxf9qg433lidi8d0hlp3ykrjpbcay"))))
(version "0.1.0.1")
(source (origin
(method url-fetch)
(uri (hackage-uri "tasty-inspection-testing" version))
(sha256
(base32
"0p46w44f19w7lvdzyg3vq6qzix0rjp8p23ilxz82dviq38lgmifp"))))
(build-system haskell-build-system)
(properties '((upstream-name . "tasty-inspection-testing")))
(inputs (list ghc-inspection-testing ghc-tasty))
(arguments
`(#:cabal-revision ("2"
"0z9al0hyq381fw146agbpz7rf24rwms1w91m7s0k1w3xbfw16l9n")))
(home-page "https://github.com/Bodigrim/tasty-inspection-testing")
(synopsis "Inspection testing support for tasty")
(description
@@ -1218,13 +1182,13 @@ result of golden tests.")
(define-public ghc-proctest
(package
(name "ghc-proctest")
(version "0.1.3.1")
(version "0.1.3.0")
(source (origin
(method url-fetch)
(uri (hackage-uri "proctest" version))
(sha256
(base32
"0yvhc0l5aj170ymhjx4ig0im0yd7wfa150m5lqhabr8j7cf16l7y"))))
"02iz323arx9zwclvspgaaqz81bp6jdnj89pjm08n2gamg39zsbdn"))))
(build-system haskell-build-system)
(properties '((upstream-name . "proctest")))
(inputs (list ghc-hunit ghc-hspec ghc-quickcheck))
+143 -196
View File
@@ -62,19 +62,18 @@ format.")
(package
(name "ghc-asn1-encoding")
(version "0.9.6")
(source
(origin
(method url-fetch)
(uri (hackage-uri "asn1-encoding" version))
(sha256
(base32 "02nsr30h5yic1mk7znf0q4z3n560ip017n60hg7ya25rsfmxxy6r"))))
(source (origin
(method url-fetch)
(uri (hackage-uri "asn1-encoding" version))
(sha256
(base32
"02nsr30h5yic1mk7znf0q4z3n560ip017n60hg7ya25rsfmxxy6r"))))
(build-system haskell-build-system)
(properties '((upstream-name . "asn1-encoding")))
(inputs (list ghc-hourglass ghc-asn1-types))
(native-inputs (list ghc-tasty ghc-tasty-quickcheck))
(arguments
`(#:cabal-revision ("2"
"16503ryhq15f2rfdav2qnkq11dg2r3vk3f9v64q9dmxf8dh8zv97")))
(inputs
(list ghc-hourglass ghc-asn1-types))
(native-inputs
(list ghc-tasty ghc-tasty-quickcheck))
(home-page "https://github.com/vincenthz/hs-asn1")
(synopsis "ASN1 data reader and writer in RAW, BER and DER forms")
(description
@@ -112,18 +111,15 @@ when ASN1 pattern matching is not convenient.")
(method url-fetch)
(uri (hackage-uri "crypto-api" version))
(sha256
(base32 "19bsmkqkpnvh01b77pmyarx00fic15j4hvg4pzscrj4prskrx2i9"))))
(base32
"19bsmkqkpnvh01b77pmyarx00fic15j4hvg4pzscrj4prskrx2i9"))))
(build-system haskell-build-system)
(properties '((upstream-name . "crypto-api")))
(inputs (list ghc-cereal ghc-tagged ghc-entropy))
(arguments
`(#:cabal-revision ("1"
"1z6n1sa5pn3iqvqjrd8hv4bc2pxzsrhm5sh0l8z7g9lbqp6w0wp5")))
(home-page "https://github.com/TomMD/crypto-api")
(synopsis "Provides generic interface for cryptographic operations
for Haskell")
(description
"This Haskell package provides a generic interface for
(description "This Haskell package provides a generic interface for
cryptographic operations (hashes, ciphers, randomness).
Maintainers of hash and cipher implementations are encouraged to add instances
@@ -201,15 +197,13 @@ that hides the C implementation.")
(method url-fetch)
(uri (hackage-uri "cryptohash-md5" version))
(sha256
(base32 "018g13hkmq5782i24b4518hcd926fl6x6fh5hd7b9wlxwc5dn21v"))))
(base32
"018g13hkmq5782i24b4518hcd926fl6x6fh5hd7b9wlxwc5dn21v"))))
(build-system haskell-build-system)
(properties '((upstream-name . "cryptohash-md5")))
(native-inputs (list ghc-base16-bytestring ghc-puremd5 ghc-tasty
ghc-tasty-quickcheck ghc-tasty-hunit))
(arguments
`(#:cabal-revision ("6"
"0m7f9mgw4w9vcch37ja9zgbn0knq8rjppqr9x2ylkcdxfdnmhhif")))
(home-page "https://github.com/haskell-hvr/cryptohash-md5")
ghc-tasty-hunit ghc-tasty-quickcheck))
(home-page "https://github.com/hvr/cryptohash-md5")
(synopsis "MD5 implementation for Haskell")
(description "This Haskell package provides implementation of MD5.")
(license license:bsd-3)))
@@ -218,20 +212,20 @@ that hides the C implementation.")
(package
(name "ghc-cryptohash-sha1")
(version "0.11.101.0")
(source
(origin
(method url-fetch)
(uri (hackage-uri "cryptohash-sha1" version))
(sha256
(base32 "0h9jl9v38gj0vnscqx7xdklk634p05fa6z2pcvknisq2mnbjq154"))))
(source (origin
(method url-fetch)
(uri (hackage-uri "cryptohash-sha1" version))
(sha256
(base32
"0h9jl9v38gj0vnscqx7xdklk634p05fa6z2pcvknisq2mnbjq154"))))
(build-system haskell-build-system)
(properties '((upstream-name . "cryptohash-sha1")))
(native-inputs (list ghc-base16-bytestring ghc-sha ghc-tasty
ghc-tasty-quickcheck ghc-tasty-hunit))
(arguments
`(#:cabal-revision ("6"
"1cxdw2y10z4v0mz91wki7f233jziipx85j4qy5msig4nv3djkprb")))
(home-page "https://github.com/haskell-hvr/cryptohash-sha1")
`(#:cabal-revision ("1"
"0bz9rfl7b2iwn45m0lxcmsyi5rrv3xdgzx2lzr79bds91dw6i25b")))
(home-page "https://github.com/hvr/cryptohash-sha1")
(synopsis "SHA-1 implementation for Haskell")
(description
"This Haskell package provides an incremental and one-pass,
@@ -252,18 +246,20 @@ the C implementation.")
(method url-fetch)
(uri (hackage-uri "cryptohash-sha256" version))
(sha256
(base32 "1xkb7iqplbw4fy1122p79xf1zcb7k44rl0wmfj1q06l7cdqxr9vk"))))
(base32
"1xkb7iqplbw4fy1122p79xf1zcb7k44rl0wmfj1q06l7cdqxr9vk"))))
(build-system haskell-build-system)
(properties '((upstream-name . "cryptohash-sha256")))
(native-inputs (list ghc-base16-bytestring ghc-sha ghc-tasty
ghc-tasty-quickcheck ghc-tasty-hunit))
(arguments
`(#:cabal-revision ("6"
"01s12sl5mxvraj5fj3cs0pkb03pm8xpjz13y09dpl7i6rv6f578f")))
(home-page "https://github.com/haskell-hvr/cryptohash-sha256")
`(#:cabal-revision
("1" "1hyzqv30rpj920ddnr0zypyjjlh52vyp2d140pn2byayj820rkgs")
#:tests? #f)) ; TODO: tasty ==1.1.*
(native-inputs
(list ghc-base16-bytestring ghc-sha ghc-tasty ghc-tasty-hunit
ghc-tasty-quickcheck))
(home-page "https://github.com/hvr/cryptohash-sha1")
(synopsis "SHA-256 implementation for Haskell")
(description
"This Haskell package provides an incremental and
(description "This Haskell package provides an incremental and
one-pass, pure API to the @uref{https://en.wikipedia.org/wiki/SHA-2,
SHA-256 cryptographic hash algorithm}, with performance close to the
fastest implementations available in other languages.
@@ -276,12 +272,12 @@ the C implementation.")
(package
(name "ghc-cryptonite")
(version "0.30")
(source
(origin
(method url-fetch)
(uri (hackage-uri "cryptonite" version))
(sha256
(base32 "07bb97iszhnrfddh5ql6p3dqd0c13xycjw5n2kljw7d0ia59q2an"))))
(source (origin
(method url-fetch)
(uri (hackage-uri "cryptonite" version))
(sha256
(base32
"07bb97iszhnrfddh5ql6p3dqd0c13xycjw5n2kljw7d0ia59q2an"))))
(build-system haskell-build-system)
(properties '((upstream-name . "cryptonite")))
(inputs (list ghc-memory ghc-basement))
@@ -299,13 +295,13 @@ generators, and more.")
(define-public ghc-curve25519
(package
(name "ghc-curve25519")
(version "0.2.8.1")
(version "0.2.7")
(source
(origin
(method url-fetch)
(uri (hackage-uri "curve25519" version))
(sha256
(base32 "0p2rxad477cxbpxryvp78v8nrrf5gm35106jbqrj5cjgksappkdj"))))
(base32 "1p8b1lppkvc19974hr43lcqdi4nj55j2nf7gsnp8dn7gyf23aayq"))))
(build-system haskell-build-system)
(native-inputs
(list ghc-hunit
@@ -330,17 +326,19 @@ elsewhere.")
(define-public ghc-digest
(package
(name "ghc-digest")
(version "0.0.2.1")
(version "0.0.1.7")
(source
(origin
(method url-fetch)
(uri (hackage-uri "digest" version))
(sha256
(base32 "163418p50bqdxn8ajzj6x3455xbch9jq1w6psbkdz5qzw017py6b"))))
(base32 "02jzw0bsng87y1n2kgpy7vb30lvqsnpbfd8dpg4hmvbg9s06qgdj"))))
(build-system haskell-build-system)
(properties '((upstream-name . "digest")))
(arguments
`(#:extra-directories ("zlib")))
`(#:extra-directories ("zlib")
#:cabal-revision ("1"
"0wh34kyag2vhwvsdwv8qmvm13gy32nc94yfyqfdnl67nyc2sx8wl")))
(inputs (list zlib))
(native-inputs (list pkg-config))
(home-page "http://hackage.haskell.org/package/digest")
@@ -354,13 +352,13 @@ are implemented as FFI bindings to efficient code from zlib.")
(define-public ghc-entropy
(package
(name "ghc-entropy")
(version "0.4.1.11")
(source
(origin
(method url-fetch)
(uri (hackage-uri "entropy" version))
(sha256
(base32 "1slj5n783k2amsx2hqs5qwvcw4rgfhdhgmiyg7cii0wg4w0mmpgm"))))
(version "0.4.1.10")
(source (origin
(method url-fetch)
(uri (hackage-uri "entropy" version))
(sha256
(base32
"1rbx4ydabrjs8kkdg9laznkh9nisiq6b5z93vnp9bh6iy59ivb45"))))
(build-system haskell-build-system)
(properties '((upstream-name . "entropy")))
(home-page "https://github.com/TomMD/entropy")
@@ -417,35 +415,6 @@ the MD5 digest (hash) algorithm. This now supports the @code{crypto-api} class
interface.")
(license license:bsd-3)))
(define-public ghc-rsa
(package
(name "ghc-rsa")
(version "2.4.1")
(source
(origin
(method url-fetch)
(uri (hackage-uri "RSA" version))
(sha256
(base32 "0hchsqrxpfw7mqrqwscfy8ig1w2di6w3nxpzi873w0gibv2diibj"))))
(build-system haskell-build-system)
(properties '((upstream-name . "RSA")))
(inputs (list ghc-crypto-api ghc-crypto-pubkey-types ghc-sha))
(native-inputs (list ghc-quickcheck ghc-tagged ghc-test-framework
ghc-test-framework-quickcheck2))
(arguments
`(#:cabal-revision ("2"
"090yzm99fmh7c6z4m9hbkasqhc3xlw104g2b6wnk77n1abd13ryj")))
(home-page "http://hackage.haskell.org/package/RSA")
(synopsis
"Implementation of RSA, using the padding schemes of PKCS#1 v2.1.")
(description
"This library implements the RSA encryption and signature algorithms for
arbitrarily-sized @code{ByteStrings}. While the implementations work, they are
not necessarily the fastest ones on the planet. Particularly key generation.
The algorithms included are based of RFC 3447, or the Public-Key Cryptography
Standard for RSA, version 2.1 (a.k.a, PKCS#1 v2.1).")
(license license:bsd-3)))
(define-public ghc-sha
(package
(name "ghc-sha")
@@ -625,24 +594,6 @@ implementation. If it matters for your case, you should make sure you have
AES-NI available, or you'll need to use a different implementation.")
(license license:bsd-3)))
(define-public ghc-crypto-pubkey-types
(package
(name "ghc-crypto-pubkey-types")
(version "0.4.3")
(source
(origin
(method url-fetch)
(uri (hackage-uri "crypto-pubkey-types" version))
(sha256
(base32 "0q0wlzjmpx536h1zcdzrpxjkvqw8abj8z0ci38138kpch4igbnby"))))
(build-system haskell-build-system)
(properties '((upstream-name . "crypto-pubkey-types")))
(inputs (list ghc-asn1-types ghc-asn1-encoding))
(home-page "http://github.com/vincenthz/hs-crypto-pubkey-types")
(synopsis "Generic cryptography Public keys algorithm types")
(description "Generic cryptography public keys algorithm types.")
(license license:bsd-3)))
(define-public ghc-crypto-random
(package
(name "ghc-crypto-random")
@@ -666,13 +617,13 @@ abstraction for CPRNGs.")
(define-public ghc-crypton
(package
(name "ghc-crypton")
(version "1.0.4")
(version "0.34")
(source
(origin
(method url-fetch)
(uri (hackage-uri "crypton" version))
(sha256
(base32 "06h1qjvqd8gmiyzvh31sc061vcgns101l0774c44a8k44015925l"))))
(base32 "1mhypjhzn95in853bp7ary0a2xc6lsji6j8hrrgn2mfa4ilq8i24"))))
(build-system haskell-build-system)
(properties '((upstream-name . "crypton")))
(inputs (list ghc-memory ghc-basement))
@@ -702,13 +653,13 @@ abstraction for CPRNGs.")
(define-public ghc-crypton-x509
(package
(name "ghc-crypton-x509")
(version "1.7.7")
(version "1.7.6")
(source
(origin
(method url-fetch)
(uri (hackage-uri "crypton-x509" version))
(sha256
(base32 "10pkva9wvm6ih48bprxlnyhnn3nr6xq9dhkrk4hfxpsaij6f9v7g"))))
(base32 "1zyaz0krf08g36g30zr5wn8f2x51l4dj2zcjnhpiw9h05p54mdzb"))))
(build-system haskell-build-system)
(properties '((upstream-name . "crypton-x509")))
(inputs (list ghc-memory
@@ -718,7 +669,13 @@ abstraction for CPRNGs.")
ghc-asn1-encoding
ghc-asn1-parse
ghc-crypton))
(native-inputs (list ghc-tasty ghc-tasty-quickcheck))
(native-inputs (list ghc-tasty ghc-tasty-quickcheck ghc-x509))
(arguments
`(#:cabal-revision ("1"
"10a2x47znhbayyfr6fqgq27623akpycyjbfxz4hnavavf1x6ary5")
;; build phase fails when tests are activated.
;; See https://github.com/kazu-yamamoto/crypton-certificate/pull/7
#:tests? #f))
(home-page "https://github.com/kazu-yamamoto/crypton-certificate")
(synopsis "X509 reader and writer")
(description "This package provides generic X509 support for Haskell.")
@@ -727,13 +684,13 @@ abstraction for CPRNGs.")
(define-public ghc-crypton-x509-store
(package
(name "ghc-crypton-x509-store")
(version "1.6.11")
(version "1.6.9")
(source
(origin
(method url-fetch)
(uri (hackage-uri "crypton-x509-store" version))
(sha256
(base32 "07vq7f883cm5krqz2kc0qkh9ks54jknrwdqvfqsk91s12b693a83"))))
(base32 "0vr5b9cyf9x016wn1g0bryslf5nz8jq2sy8r3llwqfg02apihqiy"))))
(build-system haskell-build-system)
(properties '((upstream-name . "crypton-x509-store")))
(inputs (list ghc-pem ghc-asn1-types ghc-asn1-encoding ghc-crypton
@@ -770,25 +727,24 @@ storage methods, and accessors.")
(define-public ghc-crypton-x509-validation
(package
(name "ghc-crypton-x509-validation")
(version "1.6.14")
(version "1.6.12")
(source
(origin
(method url-fetch)
(uri (hackage-uri "crypton-x509-validation" version))
(sha256
(base32 "07b09kgrd3m5ahxpj458r5ycd30bz8ldwjwf19mdcnfv4x0kj3pd"))))
(base32 "1xjhwvmkcy47a6xiqxb3xy944ca7g660203jdrz5xzd46zibfq0f"))))
(build-system haskell-build-system)
(properties '((upstream-name . "crypton-x509-validation")))
(inputs (list ghc-memory
ghc-hourglass
ghc-data-default
ghc-data-default-class
ghc-pem
ghc-asn1-types
ghc-asn1-encoding
ghc-crypton-x509
ghc-crypton-x509-store
ghc-crypton
ghc-iproute))
ghc-crypton))
(native-inputs (list ghc-tasty ghc-tasty-hunit))
(home-page "https://github.com/kazu-yamamoto/crypton-certificate")
(synopsis "X.509 Certificate and CRL validation")
@@ -796,44 +752,6 @@ storage methods, and accessors.")
and @dfn{Certificates revocation list} (CRL) validation.")
(license license:bsd-3)))
(define-public ghc-crypton-socks
(package
(name "ghc-crypton-socks")
(version "0.6.2")
(source
(origin
(method url-fetch)
(uri (hackage-uri "crypton-socks" version))
(sha256
(base32 "0fwzlvndyxjwhxambxdjzzm63yvb6jzsg53dkv3i6x17biz0hdm8"))))
(build-system haskell-build-system)
(properties '((upstream-name . "crypton-socks")))
(inputs (list ghc-cereal ghc-network ghc-network-bsd))
(home-page "http://github.com/mpilgrem/crypton-socks")
(synopsis "SOCKS Protocol Version 5")
(description
"This package provides a library implementing SOCKS Protocol Version 5.")
(license license:bsd-3)))
(define-public ghc-crypto-token
(package
(name "ghc-crypto-token")
(version "0.1.2")
(source
(origin
(method url-fetch)
(uri (hackage-uri "crypto-token" version))
(sha256
(base32 "18xphlvn6wzyi6lqrvm5vic97pkcbiph1938p5l1mb22rj5215zm"))))
(build-system haskell-build-system)
(properties '((upstream-name . "crypto-token")))
(inputs (list ghc-crypton ghc-memory ghc-network-byte-order))
(native-inputs (list ghc-hspec hspec-discover))
(home-page "http://hackage.haskell.org/package/crypto-token")
(synopsis "crypto tokens")
(description "Encrypted tokens/tickets to keep state in the client side.")
(license license:bsd-3)))
(define-public ghc-cprng-aes
(package
(name "ghc-cprng-aes")
@@ -886,19 +804,20 @@ percent.
(method url-fetch)
(uri (hackage-uri "ed25519" version))
(sha256
(base32 "0v8msqvgzimhs7p5ri25hrb1ni2wvisl5rmdxy89fc59py79b9fq"))))
(base32
"0v8msqvgzimhs7p5ri25hrb1ni2wvisl5rmdxy89fc59py79b9fq"))))
(build-system haskell-build-system)
(properties '((upstream-name . "ed25519")))
(native-inputs (list ghc-quickcheck ghc-doctest))
(arguments
`(#:cabal-revision ("9"
"0y5vfdcys18waa5k5zxiq9n8jq0l05j76riml23i0gxmwgdhsmgi")
;; the tests don't work with current versions of the test frameworks
#:tests? #f))
(home-page "https://github.com/thoughtpolice/hs-ed25519/")
`(#:cabal-revision
("6" "0qyx6cl52fnll8lp6v9133wfvv3zhvq7v2crn441mng520j9wp48")
;; We omit these test suites because they require old versions of
;; packages and packages we do not have.
#:configure-flags
'("--flags=-test-hlint -test-doctests -test-properties")))
(home-page "http://thoughtpolice.github.com/hs-ed25519")
(synopsis "Ed25519 cryptographic signatures")
(description
"This package provides a simple, fast, self-contained
(description "This package provides a simple, fast, self-contained
copy of the Ed25519 public-key signature system with a clean interface.
It also includes support for detached signatures, and thorough
documentation on the design and implementation, including usage
@@ -908,41 +827,29 @@ guidelines.")
(define-public ghc-tls
(package
(name "ghc-tls")
(version "2.1.8")
(version "1.5.8")
(source (origin
(method url-fetch)
(uri (hackage-uri "tls" version))
(sha256
(base32
"1csdy3426lva1a5f7gh9qm96vzfraqj91jbxlm79wbf1jsdzfhsq"))))
"0rxdv8ab98kd4nqql7djmmi51k4vayq21s38s43sx3rzn0iyla3b"))))
(build-system haskell-build-system)
(properties '((upstream-name . "tls")))
(inputs (list ghc-asn1-types
ghc-asn1-encoding
ghc-base16-bytestring
ghc-cereal
ghc-crypton
ghc-crypton-x509
ghc-crypton-x509-store
ghc-crypton-x509-validation
ghc-data-default
(inputs (list ghc-cereal
ghc-data-default-class
ghc-memory
ghc-network
ghc-serialise
ghc-transformers
ghc-unix-time
ghc-zlib))
(native-inputs (list ghc-quickcheck
ghc-asn1-types
ghc-async
ghc-crypton
ghc-crypton-x509
ghc-crypton-x509-validation
ghc-hourglass
ghc-hspec
ghc-serialise
hspec-discover))
(home-page "http://github.com/haskell-tls/hs-tls")
ghc-cryptonite
ghc-asn1-types
ghc-asn1-encoding
ghc-x509
ghc-x509-store
ghc-x509-validation
ghc-async
ghc-hourglass
ghc-network))
(native-inputs (list ghc-tasty ghc-tasty-quickcheck ghc-quickcheck))
(home-page "http://github.com/vincenthz/hs-tls")
(synopsis "TLS/SSL protocol native implementation (Server and Client)")
(description
"Native Haskell TLS and SSL protocol implementation for server and client.
@@ -954,6 +861,43 @@ Ephemeral (Elliptic curve and regular) Diffie Hellman key exchanges, and many
extensions.")
(license license:bsd-3)))
(define-public ghc-tls-1.9
(package
(name "ghc-tls")
(version "1.9.0")
(source
(origin
(method url-fetch)
(uri (hackage-uri "tls" version))
(sha256
(base32 "0gj3af9sqd0bw7dpcqfyvbslpxsk2ij00a77kl710fwhw35vj1an"))))
(build-system haskell-build-system)
(properties '((upstream-name . "tls")))
(inputs (list ghc-cereal
ghc-data-default-class
ghc-memory
ghc-crypton
ghc-asn1-types
ghc-asn1-encoding
ghc-crypton-x509
ghc-crypton-x509-store
ghc-crypton-x509-validation
ghc-async
ghc-unix-time
ghc-network))
(native-inputs (list ghc-tasty ghc-tasty-quickcheck ghc-quickcheck))
(home-page "https://github.com/haskell-tls/hs-tls")
(synopsis "TLS/SSL protocol native implementation (server and client)")
(description
"This package provides a native Haskell TLS and SSL protocol
implementation for server and client. It provides a high-level implementation
of a sensitive security protocol, eliminating a common set of security issues
through the use of the advanced type system, high level constructions and
common Haskell features. It currently implements the SSL3.0, TLS1.0, TLS1.1
and TLS1.2 protocol, and supports RSA and Ephemeral (Elliptic curve and
regular) Diffie Hellman key exchanges, and many extensions.")
(license license:bsd-3)))
(define-public ghc-hsopenssl
(package
(name "ghc-hsopenssl")
@@ -1016,14 +960,17 @@ the tls package, and borrows some ideas from x509-system.")
(method url-fetch)
(uri (hackage-uri "openssl-streams" version))
(sha256
(base32 "10pnnpzgb5xr811kc9qdk7h2cgn6hk2yiyhnzz8f8p0fjzc0pwjm"))))
(base32
"10pnnpzgb5xr811kc9qdk7h2cgn6hk2yiyhnzz8f8p0fjzc0pwjm"))))
(build-system haskell-build-system)
(properties '((upstream-name . "openssl-streams")))
(inputs (list ghc-hsopenssl ghc-io-streams ghc-network))
(native-inputs (list ghc-hunit ghc-test-framework ghc-test-framework-hunit))
(inputs
(list ghc-hsopenssl ghc-io-streams ghc-network))
(native-inputs
(list ghc-hunit ghc-test-framework ghc-test-framework-hunit))
(arguments
`(#:cabal-revision ("3"
"1vizl9yajkbd59rrnfb38xwq7hfj36avbv6vwqnkhbvz3qaj3dwg")))
`(#:cabal-revision ("1"
"0vfawnfcjrw29qg1n7k6z6bk4bmnk869gjlr9mxw4mzxgl80b2vp")))
(home-page "https://hackage.haskell.org/package/openssl-streams")
(synopsis "OpenSSL network support for io-streams")
(description "This library contains io-streams routines for secure
File diff suppressed because it is too large Load Diff
+4464 -5204
View File
File diff suppressed because it is too large Load Diff
+12 -329
View File
@@ -1686,6 +1686,12 @@ SRC_HC_OPTS += -optc-mno-outline-atomics
(file-pattern ".*\\.conf\\.d$")
(file-type 'directory)))))))
;; Versions newer than ghc defined below (i.e. the compiler
;; haskell-build-system uses) should use ghc-next as their name to
;; ensure ghc (without version specification) and ghc-* packages are
;; always compatible. See https://issues.guix.gnu.org/issue/47335.
(define-public ghc ghc-9.2)
;; 9.4 is the last version to support the make-based build system,
;; but it boot with 9.2, only 9.0 is supported.
(define ghc-bootstrap-for-9.4 ghc-9.0)
@@ -1749,24 +1755,22 @@ SRC_HC_OPTS += -optc-mno-outline-atomics
(let ((base ghc-9.2))
(package
(inherit base)
(name "ghc")
(version "9.4.3")
(name "ghc-next")
(version "9.4.4")
(source (origin
(method url-fetch)
(uri (string-append "https://www.haskell.org/ghc/dist/" version
"/ghc-" version "-src.tar.xz"))
(sha256
(base32
"0nlhx2cbq1jh2yr6zk475lavjkh9sncj57qp77p51pkfad4kkxpa"))
"1qk7rlqf02s3b6m6sqqngmjq1mxnrz88h159lz6k25gddmdg5kp8"))
(patches (search-patches "ghc-9-StgCRunAsm-only-when-needed.patch"))))
(arguments
(substitute-keyword-arguments arguments
((#:phases phases '%standard-phases)
#~(modify-phases #$phases
;; Files dont exist any more.
(delete 'skip-tests)))
((#:tests? _ #f)
#f)))
(delete 'skip-tests)))))
(native-inputs
`(;; GHC 9.4 must be built with GHC >= 9.0.
("ghc-bootstrap" ,ghc-bootstrap-for-9.4)
@@ -1778,7 +1782,8 @@ SRC_HC_OPTS += -optc-mno-outline-atomics
version "/ghc-" version "-testsuite.tar.xz"))
(sha256
(base32
"1xbps33pq6mg2bwp5gvmc4qhgdq52yng5993if99b9s3fylqk86l"))))
"04p2lawxxg3nyv6frzhyjyh3arhqqyh5ka3alxa2pxhcd2hdcja3"))
(patches (search-patches "ghc-testsuite-recomp015-execstack.patch"))))
("ghc-alex" ,ghc-alex-bootstrap-for-9.4)
("ghc-happy" ,ghc-happy-bootstrap-for-9.4)
,@(filter (match-lambda
@@ -1793,326 +1798,4 @@ SRC_HC_OPTS += -optc-mno-outline-atomics
(file-pattern ".*\\.conf\\.d$")
(file-type 'directory)))))))
;;; GHC >= 9.6 must be built using it's new haskell-written Hadrian build
;;; system. Use this opportunity to cut the inheritance chain to simplify
;;; understanding what building ghc requires with the new build system.
(define-public ghc-9.8
(let ((ghc-bootstrap ghc-9.4))
(package
(name "ghc")
(version "9.8.1")
(source (origin
(method url-fetch)
(uri (string-append "https://downloads.haskell.org/~ghc/" version
"/ghc-" version "-src.tar.xz"))
(sha256
(base32
"0l87yb8hmd350klrp6lw2h9hjlla11pgzx1n4jlrfdvkgxmyvy5j"))))
(outputs (list "out" "doc"))
(arguments
(list
#:make-flags #~(list "-V" "--docs=no-sphinx")
#:configure-flags
#~(list
(string-append "--with-gmp-libraries="
(assoc-ref %build-inputs "gmp") "/lib")
(string-append "--with-gmp-includes="
(assoc-ref %build-inputs "gmp") "/include")
"--with-system-libffi"
(string-append "--with-ffi-libraries="
(assoc-ref %build-inputs "libffi") "/lib")
(string-append "--with-ffi-includes="
(assoc-ref %build-inputs "libffi") "/include")
(string-append "--with-curses-libraries="
(assoc-ref %build-inputs "ncurses") "/lib")
(string-append "--with-curses-includes="
(assoc-ref %build-inputs "ncurses") "/include"))
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'fix-iserv-rpath
(lambda _
(mkdir-p "_build")
(call-with-output-file
"_build/hadrian.settings"
(lambda (port)
(display
(string-append
"*.iserv.ghc.link.opts += -optl-Wl,-rpath,"
#$output "/lib/ghc-" #$(package-version this-package)
"/lib/" #$(or (%current-target-system)
(%current-system))
"-ghc-" #$(package-version this-package) "/")
port)))))
;; This phase patches the 'ghc-pkg' command so that it sorts the list
;; of packages in the binary cache it generates.
(add-before 'build 'fix-ghc-pkg-nondeterminism
(lambda _
(substitute* "utils/ghc-pkg/Main.hs"
(("confs = map \\(path </>\\) \\$ filter \\(\".conf\" `isSuffixOf`\\) fs")
"confs = map (path </>) $ filter (\".conf\" `isSuffixOf`) (sort fs)"))))
(add-after 'unpack 'unpack-testsuite
(lambda* (#:key inputs #:allow-other-keys)
(with-directory-excursion ".."
(invoke "tar" "xvf" (assoc-ref inputs "ghc-testsuite")))))
(add-after 'unpack-testsuite 'fix-/bin/sh-references
(lambda* (#:key inputs #:allow-other-keys)
(substitute*
(list "hadrian/src/Rules/BinaryDist.hs"
"hadrian/src/Rules/Test.hs"
"libraries/process/System/Process/Posix.hs"
"libraries/process/jsbits/process.js"
"libraries/unix/cbits/execvpe.c"
"testsuite/tests/driver/T8602/T8602.script"
"testsuite/timeout/timeout.py")
(("/bin/sh") (search-input-file inputs "/bin/sh")))))
(add-after 'unpack-testsuite 'fix-cc-reference
(lambda* (#:key inputs #:allow-other-keys)
(substitute*
(list "utils/hsc2hs/src/Common.hs")
(("\"cc\"") "\"gcc\""))))
;; XXX: something causes ld-wrapper to see test\ \ \ spaces/... and
;; look for the files "test\", "\", "\" and "spaces/...", which obviously
;; don't exist
(add-after 'unpack-testsuite 'fix-testsuite
(lambda _
(substitute*
(list "testsuite/driver/runtests.py")
(("'test spaces'") "'dont-test-spaces'"))))
(add-before 'configure 'set-target-programs
(lambda* (#:key inputs #:allow-other-keys)
(let ((binutils (assoc-ref inputs "binutils"))
(gcc (assoc-ref inputs "gcc"))
(ld-wrapper (assoc-ref inputs "ld-wrapper")))
(setenv "CC" (string-append gcc "/bin/gcc"))
(setenv "CXX" (string-append gcc "/bin/g++"))
(setenv "LD" (string-append ld-wrapper "/bin/ld"))
(setenv "NM" (string-append binutils "/bin/nm"))
(setenv "RANLIB" (string-append binutils "/bin/ranlib"))
(setenv "STRIP" (string-append binutils "/bin/strip"))
;; The 'ar' command does not follow the same pattern.
(setenv "fp_prog_ar" (string-append binutils "/bin/ar")))))
(add-before 'build 'build-hadrian
(lambda* (#:key (inputs '()) #:allow-other-keys)
(invoke "./hadrian/bootstrap/bootstrap.py"
"-s" (assoc-ref inputs "hadrian-bootstrap")
"-w" (which "ghc"))))
(add-before 'build-hadrian 'fix-environment
(lambda _
(unsetenv "GHC_PACKAGE_PATH")
(setenv "CONFIG_SHELL" (which "bash"))))
(replace 'build
(lambda* (#:key (parallel-build? #f) (make-flags '())
#:allow-other-keys)
(apply invoke "_build/bin/hadrian"
`("binary-dist-dir"
,@(if parallel-build?
(list (string-append
"-j" (number->string
(parallel-job-count)))))
,@make-flags))))
(replace 'check
(lambda* (#:key (tests? #t) (parallel-tests? #f) (make-flags '())
#:allow-other-keys)
(if tests?
(apply invoke "_build/bin/hadrian"
`(,@(if parallel-tests?
(list (string-append
"-j"
(number->string (parallel-job-count))))
'())
,@make-flags
"test"
,(string-append
"--broken-test="
(string-join
(list "T15904" ; ld-wrapper, apparently
"T16521" ; no idea
;; These fail due to gcc
;; -Wincompatible-pointer-types, which
;; apparently is not used in GHC's CI
;; https://gitlab.haskell.org/ghc/ghc/-/issues/22263
"hs_try_putmvar001"
"list_threads_and_misc_roots"
"testwsdeque")))
"--skip-perf"))
(format #t "test suite not run~%"))))
(replace 'install
(lambda* (#:key (make-flags '()) #:allow-other-keys)
(apply invoke "_build/bin/hadrian"
`("install"
,@make-flags
,(string-append "--prefix=" #$output)))))
(add-after 'install 'remove-unnecessary-references
(lambda* (#:key outputs #:allow-other-keys)
(substitute* (find-files (string-append (assoc-ref outputs "out") "/lib/")
"settings")
(("/gnu/store/.*/bin/(.*)" m program) program))
;; Remove references to "doc" output from "out" by rewriting
;; the "haddock-interfaces" fields and removing the optional
;; "haddock-html" field in the generated .conf files.
(let ((doc (assoc-ref outputs "doc"))
(out (assoc-ref outputs "out")))
(with-fluids ((%default-port-encoding #f))
(for-each (lambda (config-file)
(substitute* config-file
(("^haddock-html: .*") "\n")
(((format #f "^haddock-interfaces: ~a" doc))
(string-append "haddock-interfaces: " out))))
(find-files (string-append out "/lib") ".conf")))
;; Move the referenced files to the "out" output.
(for-each (lambda (haddock-file)
(let* ((subdir (string-drop haddock-file (string-length doc)))
(new (string-append out subdir)))
(mkdir-p (dirname new))
(rename-file haddock-file new)))
(find-files doc "\\.haddock$")))))
(add-after 'install 'replace-$pkgroot
(lambda* (#:key outputs #:allow-other-keys)
((@ (srfi srfi-11) let*-values)
(((out) (assoc-ref outputs "out"))
((_ version) (package-name->name+version
(strip-store-file-name out))))
;; We split out the version because we want this to also work
;; with packages named "ghc-next" instead of "ghc"
(substitute*
(find-files
(string-append (assoc-ref outputs "out") "/lib/ghc-"
version "/lib/package.conf.d/")
"^.*\\.conf$")
(("\\$\\{pkgroot\\}/")
(string-append (assoc-ref outputs "out") "/lib/ghc-"
version "/lib/")))))))))
(build-system gnu-build-system)
(inputs (list bash-minimal gmp ncurses libffi))
(native-inputs
`(("perl" ,perl)
("python" ,python)
("git" ,git-minimal/pinned)
("which" ,which)
("ghostscript" ,ghostscript)
("autoconf" ,autoconf)
("automake" ,automake)
("ghc-bootstrap" ,ghc-bootstrap)
("ghc-alex" ,ghc-alex-bootstrap-for-9.4)
("ghc-happy" ,ghc-happy-bootstrap-for-9.4)
("ghc-testsuite"
,(origin
(method url-fetch)
(uri (string-append
"https://www.haskell.org/ghc/dist/"
version "/ghc-" version "-testsuite.tar.xz"))
(sha256
(base32
"1hxylm3nhxzl7yidarlavvcg1240w4bk0hy5jnvwna24jyxz69i6"))
(patches (search-patches "ghc-testsuite-recomp015-execstack.patch"))))
("hadrian-bootstrap"
,(origin
(method url-fetch)
(uri (string-append "https://downloads.haskell.org/~ghc/"
version "/hadrian-bootstrap-sources/"
"hadrian-bootstrap-sources-"
(package-version ghc-bootstrap) ".tar.gz"))
(sha256
(base32
"14dkxif9x4hy85phcj3j0glf95k04g4ab6hfchpw9vxgvk97syi1"))))))
(native-search-paths
(list (search-path-specification
(variable "GHC_PACKAGE_PATH")
(files (list (string-append "lib/ghc-" version)))
(file-pattern ".*\\.conf\\.d$")
(file-type 'directory))))
(home-page "https://www.haskell.org/ghc")
(synopsis "The Glasgow Haskell Compiler")
(description
"The Glasgow Haskell Compiler (GHC) is a state-of-the-art compiler and
interactive environment for the functional language Haskell.")
(license license:bsd-3))))
(define-public ghc-9.10
(let ((base ghc-9.8))
(package
(inherit base)
(name "ghc")
(version "9.10.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://downloads.haskell.org/~ghc/" version
"/ghc-" version "-src.tar.xz"))
(sha256
(base32
"1pm84cgr3yg99r3srdjllgz6zig8h7dbwa597srwcnjp0nh41zam"))))
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases #~%standard-phases)
#~(modify-phases #$phases
(replace 'check
(lambda* (#:key (tests? #t) (parallel-tests? #f) (make-flags '())
#:allow-other-keys)
(if tests?
(apply invoke "_build/bin/hadrian"
`(,@(if parallel-tests?
(list (string-append
"-j"
(number->string (parallel-job-count))))
'())
,@make-flags
"test"
,(string-append
"--broken-test="
(string-join
(list "T15904" ; ld-wrapper, apparently
"T16521" ; no idea
;; These fail due to gcc
;; -Wincompatible-pointer-types, which
;; apparently is not used in GHC's CI
;; https://gitlab.haskell.org/ghc/ghc/-/issues/22263
"list_threads_and_misc_roots"
"stack_misc_closures")))
"--skip-perf"))
(format #t "test suite not run~%"))))))))
(native-inputs
`(("ghc-bootstrap" ,base)
("ghc-testsuite"
,(origin
(method url-fetch)
(uri (string-append
"https://downloads.haskell.org/~ghc/"
version "/ghc-" version "-testsuite.tar.xz"))
(sha256
(base32
"143ifc4g3jc6s9hcry5qha913rzwg4hpsvk6pqvxk5r0qigfxjwx"))
(patches (search-patches "ghc-testsuite-recomp015-execstack.patch"))))
("hadrian-bootstrap"
,(origin
(method url-fetch)
(uri (string-append "https://downloads.haskell.org/~ghc/" version
"/hadrian-bootstrap-sources/"
"hadrian-bootstrap-sources-"
(package-version base) ".tar.gz"))
(sha256
(base32
"162lbafvdamfhx1jldax3shgk8jbbqn4an97ny363lxbdjgdn708"))))
,@(filter (match-lambda
(("ghc-bootstrap" . _) #f)
(("ghc-testsuite" . _) #f)
(("hadrian-bootstrap" . _) #f)
(_ #t))
(package-native-inputs base))))
(native-search-paths
(list (search-path-specification
(variable "GHC_PACKAGE_PATH")
(files (list (string-append "lib/ghc-" version)))
(file-pattern ".*\\.conf\\.d$")
(file-type 'directory)))))))
;; Versions newer than ghc defined below (i.e. the compiler
;; haskell-build-system uses) should use ghc-next as their name to
;; ensure ghc (without version specification) and ghc-* packages are
;; always compatible. See https://issues.guix.gnu.org/issue/47335.
(define-public ghc ghc-9.10)
;;; haskell.scm ends here
+3 -5
View File
@@ -1923,7 +1923,7 @@ and Scan Tailor Enhanced versions as well as including many more bug fixes.")
(define-public simpleitk
(package
(name "simpleitk")
(version "2.5.4")
(version "2.5.3")
(source
(origin
(method git-fetch)
@@ -1932,9 +1932,7 @@ and Scan Tailor Enhanced versions as well as including many more bug fixes.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1bzj5naqbgv2b31iqgz7qqk9rixsvjqycjz6l7w3gm7v1aj14jpb"))
(patches
(search-patches "simpleitk-r-4.6.0.patch"))))
(base32 "0fvacjfq0p8v7r2cmzwwh7bxb6ayavznhj0m81dah463x472qkd2"))))
(build-system cmake-build-system)
(outputs '("out" "python" "r"))
(arguments
@@ -2034,7 +2032,7 @@ and Scan Tailor Enhanced versions as well as including many more bug fixes.")
version "/SimpleITKData-" version ".tar.gz"))
(sha256
(base32
"0hryvi9fgqac00ng1bfhw3lm0al1dh0ka6jglba2q368nls428nx")))))
"0i4f87g1rh6xxisw06gwwyi8f216qqs6ih3gghi3k49vsl0h4g5d")))))
(synopsis "Simplified interface to @acronym{ITK, Insight Toolkit}")
(description
"SimpleITK is an image analysis toolkit built on top of @acronym{ITK,
+8 -8
View File
@@ -1218,6 +1218,12 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
"aarch64-linux" "powerpc64le-linux" "riscv64-linux")
#:configuration-file kernel-config))
(define-public linux-libre-version linux-libre-7.0-version)
(define-public linux-libre-gnu-revision linux-libre-7.0-gnu-revision)
(define-public linux-libre-pristine-source linux-libre-7.0-pristine-source)
(define-public linux-libre-source linux-libre-7.0-source)
(define-public linux-libre linux-libre-7.0)
(define-public linux-libre-6.19
(make-linux-libre* linux-libre-6.19-version
linux-libre-6.19-gnu-revision
@@ -1234,12 +1240,6 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
"aarch64-linux" "powerpc64le-linux" "riscv64-linux")
#:configuration-file kernel-config))
(define-public linux-libre-version linux-libre-6.18-version)
(define-public linux-libre-gnu-revision linux-libre-6.18-gnu-revision)
(define-public linux-libre-pristine-source linux-libre-6.18-pristine-source)
(define-public linux-libre-source linux-libre-6.18-source)
(define-public linux-libre linux-libre-6.18)
(define-public linux-libre-6.12
(make-linux-libre* linux-libre-6.12-version
linux-libre-6.12-gnu-revision
@@ -1979,6 +1979,8 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-mnt-reform2-dsi.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-mnt-reform-next.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-mnt-pocket-reform.dtb")))))))))))
(define-public linux-libre-arm64-mnt-reform linux-libre-arm64-mnt-reform-7.0)
(define-public linux-libre-arm64-mnt-reform-6.19
;; Kernel for use on the MNT/Reform systems
;; https://mntre.com/reform.html
@@ -2315,8 +2317,6 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-mnt-reform2-dsi.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-mnt-reform-next.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-mnt-pocket-reform.dtb")))))))))))
(define-public linux-libre-arm64-mnt-reform linux-libre-arm64-mnt-reform-6.18)
(define-public linux-libre-arm64-mnt-reform-6.12
;; Kernel for use on the MNT/Reform systems
;; https://mntre.com/reform.html
+2 -6
View File
@@ -3857,15 +3857,11 @@ follows a traditional multi-track tape recorder control paradigm.")
(list
#:phases
'(modify-phases %standard-phases
(add-after 'unpack 'python3.12-compatibility
(add-after 'unpack 'python3.11-compatibility
(lambda _
(substitute* '("waflib/Context.py"
"waflib/ConfigSet.py")
(("'rU'") "'r'"))
(substitute* "waflib/Context.py"
(("imp.new_module") "types.ModuleType")
(("import os, re, imp, sys")
"import os, re, types, sys"))))
(("'rU'") "'r'"))))
(add-after 'unpack 'remove-sse-flags
(lambda* (#:key system #:allow-other-keys)
(unless (or (string-prefix? "x86_64" system)
+3 -7
View File
@@ -1006,11 +1006,11 @@ publish/subscribe, RPC-style request/reply, or service discovery.")
(home-page "https://nng.nanomsg.org/")
(license license:expat)))
(define-public nng-1.11
(define-public nng-1.10
(package
(inherit nng)
(name "nng")
(version "1.11")
(version "1.10.1")
(source
(origin
(method git-fetch)
@@ -1019,12 +1019,9 @@ publish/subscribe, RPC-style request/reply, or service discovery.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1l4rxwnc9knndwmy7xg53adyrm17ld7c5gxwm7vgfmgfy0my4zy8"))))
(base32 "13nmz1p8qd12gyj7wm8fz1ccap47qh41sxz4jqdhj8gnd0kiy5h4"))))
(arguments
(list
;; At least on aarch64-linux, running tests in parallel leads to ports
;; being unavailable in later tests, which then fail.
#:parallel-tests? #false
#:configure-flags
'(list "-DNNG_ENABLE_COVERAGE=ON"
"-DNNG_ENABLE_TLS=ON"
@@ -1038,7 +1035,6 @@ publish/subscribe, RPC-style request/reply, or service discovery.")
(("add_nng_test1\\(httpclient 60 NNG_SUPP_HTTP\\)") "")
(("add_nng_test\\(tls 60\\)") ""))
(substitute* "src/platform/CMakeLists.txt"
;; This test only seems to fail on aarch64-linux
(("nng_test\\(platform_test\\)") "")
(("nng_test\\(resolver_test\\)") ""))
(substitute* "src/sp/transport/tcp/CMakeLists.txt"
@@ -1,58 +0,0 @@
From 4617d2682738aeaece613ea61390dd47447c2d9f Mon Sep 17 00:00:00 2001
From: Potato Hatsue <1793913507@qq.com>
Date: Fri, 12 Sep 2025 06:07:02 -0700
Subject: [PATCH] Allow QuickCheck 2.15.0
---
Test/Chell/QuickCheck.hs | 8 ++++++++
chell-quickcheck.cabal | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/Test/Chell/QuickCheck.hs b/Test/Chell/QuickCheck.hs
index ea1c488..3227b8e 100644
--- a/Test/Chell/QuickCheck.hs
+++ b/Test/Chell/QuickCheck.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
module Test.Chell.QuickCheck (property) where
import Test.Chell qualified as Chell
@@ -30,7 +31,12 @@ property name prop = Chell.test name $ \opts -> Text.withNullTerminal $ \term ->
{ State.terminal = term,
State.maxSuccessTests = QuickCheck.maxSuccess args,
State.maxDiscardedRatio = QuickCheck.maxDiscardRatio args,
+#if MIN_VERSION_QuickCheck(2,15,0)
+ State.replayStartSize = Nothing,
+ State.maxTestSize = QuickCheck.maxSize args,
+#else
State.computeSize = computeSize (QuickCheck.maxSize args) (QuickCheck.maxSuccess args),
+#endif
State.numSuccessTests = 0,
State.numDiscardedTests = 0,
State.classes = mempty,
@@ -59,6 +65,7 @@ property name prop = Chell.test name $ \opts -> Text.withNullTerminal $ \term ->
Test.GaveUp {} -> Chell.TestAborted notes output
Test.NoExpectedFailure {} -> Chell.TestFailed notes [failure]
+#if !MIN_VERSION_QuickCheck(2,15,0)
-- copied from quickcheck-2.4.1.1/src/Test/QuickCheck/Test.hs
computeSize :: Int -> Int -> Int -> Int -> Int
computeSize maxSize maxSuccess n d
@@ -79,3 +86,4 @@ computeSize maxSize maxSuccess n d
roundTo :: Int -> Int -> Int
roundTo n m = (n `div` m) * m
+#endif
diff --git a/chell-quickcheck.cabal b/chell-quickcheck.cabal
index e854412..1f3a1d9 100644
--- a/chell-quickcheck.cabal
+++ b/chell-quickcheck.cabal
@@ -34,7 +34,7 @@ library
build-depends:
, base ^>= 4.16 || ^>= 4.17 || ^>= 4.18 || ^>= 4.19 || ^>= 4.20 || ^>= 4.21
, chell ^>= 0.5
- , QuickCheck ^>= 2.14.2
+ , QuickCheck ^>= 2.14.2 || ^>= 2.15.0
, random ^>= 1.2.1 || ^>= 1.3.0
exposed-modules:
@@ -4,7 +4,7 @@
# number of sections)
'$(TEST_HC)' $(TEST_HC_OPTS) Generate.hs
./Generate > ManySections.s
+ echo '.section .note.GNU-stack,"",@progbits' >> ManySections.s
+ echo '.section .note.GNU-stack,"",@progbits' > ManySections.s
echo 'main = putStrLn "Running main..."' > Main.hs
'$(TEST_HC)' $(TEST_HC_OPTS) -c ManySections.s
'$(TEST_HC)' $(TEST_HC_OPTS) --make -O Main.hs ManySections.o
@@ -0,0 +1,513 @@
This patch shas been backported from the development version or Biostrings.
From 100602242840322b5f6c267faaf8198c1a5aa2af Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Herv=C3=A9=20Pag=C3=A8s?= <hpages.on.github@gmail.com>
Date: Thu, 5 Mar 2026 22:36:30 -0800
Subject: [PATCH] Biostrings 2.79.5: Get rid of never-used SparseMIndex and
SparseList classes
This also eliminates the non-API calls to R.
---
DESCRIPTION | 3 +-
NAMESPACE | 2 -
R/MIndex-class.R | 79 -------------------------
R/SparseList-class.R | 80 -------------------------
man/Biostrings-internals.Rd | 9 ---
src/Biostrings.h | 41 -------------
src/MIndex_class.c | 67 ---------------------
src/R_init_Biostrings.c | 1 -
src/SparseList_utils.c | 113 ------------------------------------
9 files changed, 1 insertion(+), 394 deletions(-)
delete mode 100644 R/SparseList-class.R
delete mode 100644 src/SparseList_utils.c
diff --git a/DESCRIPTION b/DESCRIPTION
index a5d027cc..dbc323ea 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -76,3 +76,3 @@ Collate: utils.R IUPAC_CODE_MAP.R AMINO_ACID_CODE.R GENETIC_CODE.R
injectHardMask.R padAndClip.R strsplit-methods.R misc.R
- SparseList-class.R MIndex-class.R lowlevel-matching.R
+ MIndex-class.R lowlevel-matching.R
match-utils.R matchPattern.R maskMotif.R matchLRPatterns.R
diff --git a/NAMESPACE b/NAMESPACE
index ba1e3bfa..cf14db67 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -206,7 +206,6 @@ exportMethods(
### ==========================================================================
### STRING MATCHING
### --------------------------------------------------------------------------
-### SparseList-class.R
### MIndex-class.R
### lowlevel-matching.R
### match-utils.R
@@ -220,7 +219,6 @@ exportMethods(
### matchPDict.R
exportClasses(
- #SparseList,
MIndex, ByPos_MIndex,
PreprocessedTB, Twobit, ACtree2,
PDict3Parts,
diff --git a/R/MIndex-class.R b/R/MIndex-class.R
index 022f6746..f50f215e 100644
--- a/R/MIndex-class.R
+++ b/R/MIndex-class.R
@@ -218,82 +218,3 @@ ByPos_MIndex.combine <- function(mi_list)
new("ByPos_MIndex", width0=ans_width0, NAMES=ans_names, ends=ans_ends)
}
-
-### - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-### The "SparseMIndex" class (DISABLED FOR NOW).
-###
-### Slot description:
-###
-### ends_envir: a key-value list (environment) where the values are integer
-### vectors containing the ending positions of the pattern whose
-### position in the original dictionary is given by the key (the keys are
-### strings representing positive integers).
-###
-
-if (FALSE) {
-
- setClass("SparseMIndex",
- contains="MIndex",
- representation(
- ends_envir="environment"
- )
- )
-
- setMethod("show", "SparseMIndex",
- function(object)
- {
- cat("Sparse MIndex object of length ", length(object), "\n", sep="")
- }
- )
-
- setMethod("[[", "SparseMIndex",
- function(x, i, j, ...)
- {
- i <- normalizeDoubleBracketSubscript(i, x)
- ans_end <- x@ends_envir[[formatC(i, width=10, format="d", flag="0")]]
- if (is.null(ans_end))
- ans_end <- integer(0)
- ans_width <- rep.int(x@width0[i], length(ans_end))
- ans_start <- ans_end - x@width0[i] + 1L
- new2("IRanges", start=ans_start, width=ans_width, check=FALSE)
- }
- )
-
- ### An example of a SparseMIndex object of length 5 where only the
- ### 2nd pattern has matches:
- ### > width0 <- c(9L, 10L, 8L, 4L, 10L)
- ### > ends_envir <- new.env(hash=TRUE, parent=emptyenv())
- ### > ends_envir[['0000000002']] <- c(199L, 402L)
- ### > mindex <- new("SparseMIndex", width0=width0, NAMES=letters[1:5], ends_envir=ends_envir)
- ### > mindex[[1]]
- ### > mindex[[2]]
- ### > mindex[[6]] # Error in mindex[[6]] : subscript out of bounds
- ### > names(mindex)
- ### > mindex[["a"]]
- ### > mindex[["b"]]
- ### > mindex[["aa"]] # Error in mindex[["aa"]] : pattern name aa not found
- ### > startIndex(mindex)
- ### > endIndex(mindex)
- ### > elementNROWS(mindex)
- ###
- setMethod("startIndex", "SparseMIndex",
- function(x)
- {
- all.names <- TRUE
- .Call2("SparseMIndex_endIndex",
- x@ends_envir, x@width0, x@NAMES, all.names,
- PACKAGE="Biostrings")
- }
- )
- setMethod("endIndex", "SparseMIndex",
- function(x)
- {
- all.names <- TRUE
- .Call2("SparseMIndex_endIndex",
- x@ends_envir, NULL, x@NAMES, all.names,
- PACKAGE="Biostrings")
- }
- )
-
-}
-
diff --git a/R/SparseList-class.R b/R/SparseList-class.R
deleted file mode 100644
index 8295fd0f..00000000
--- a/R/SparseList-class.R
+++ /dev/null
@@ -1,80 +0,0 @@
-### =========================================================================
-### SparseList objects
-### -------------------------------------------------------------------------
-###
-
-setClass("SparseList",
- representation(
- length="integer",
- env="environment"
- )
-)
-
-### Typical use:
-### env <- new.env(hash=TRUE, parent=emptyenv())
-### key <- formatC(98L, width=10, format="d", flag="0")
-### value <- 3:-2
-### assign(key, value, envir=env)
-### x <- new("SparseList", length=100L, env=env)
-### length(x)
-### ls(x)
-### ls(x, all.names=TRUE)
-### as.list(x)
-### as.list(x, all.names=TRUE)
-### x[[1]]
-### x[[98]
-### x[[101]]]
-###
-
-setMethod("length", "SparseList", function(x) x@length)
-
-### 'pos', 'envir' and 'pattern' args are ignored
-setMethod("ls", signature(name="SparseList"),
- function(name, pos, envir, all.names=FALSE, pattern)
- {
- if (!all.names)
- return(ls(name@env, all.names=TRUE))
- seq_len(length(name))
- }
-)
-
-setMethod("as.list", "SparseList",
- function(x, all.names=FALSE, ...)
- {
- if (!all.names)
- return(as.list(x@env, all.names=TRUE))
- ans <- vector(mode="list", length=length(x))
- symbols <- ls(x)
- for (symb in symbols)
- ans[[as.integer(symb)]] <- get(symb, envir=x@env)
- ans
- }
-)
-
-### Supported 'i' types: character or numeric vector of length 1.
-setMethod("[[", "SparseList",
- function(x, i, j, ...)
- {
- if (!missing(j) || length(list(...)) > 0)
- stop("invalid subsetting")
- if (missing(i))
- stop("subscript is missing")
- if (!is.character(i) && !is.numeric(i))
- stop("invalid subscript type")
- if (length(i) < 1L)
- stop("attempt to select less than one element")
- if (length(i) > 1L)
- stop("attempt to select more than one element")
- if (is.na(i))
- stop("subscript cannot be NA")
- if (is.character(i))
- return(get(i, envir=x@env))
- if (!is.integer(i))
- i <- as.integer(i)
- if (i < 1L || i > length(x))
- stop("subscript out of bounds")
- i <- formatC(i, width=10, format="d", flag="0")
- get(i, envir=x@env)
- }
-)
-
diff --git a/man/Biostrings-internals.Rd b/man/Biostrings-internals.Rd
index 791b0870..609b7694 100644
--- a/man/Biostrings-internals.Rd
+++ b/man/Biostrings-internals.Rd
@@ -26,15 +26,6 @@
\alias{make_XStringSet_from_strings}
\alias{make_XStringSet_from_strings,XStringSet-method}
-% SparseList class and methods:
-\alias{class:SparseList}
-\alias{SparseList-class}
-\alias{SparseList}
-
-\alias{length,SparseList-method}
-%\alias{ls,SparseList-method}
-\alias{as.list,SparseList-method}
-\alias{[[,SparseList-method}
\title{Biostrings internals}
diff --git a/src/Biostrings.h b/src/Biostrings.h
index 6e725bd5..e86d0ff2 100644
--- a/src/Biostrings.h
+++ b/src/Biostrings.h
@@ -446,40 +446,6 @@ SEXP XStringSetList_unstrsplit(
);
-/* SparseList_utils.c */
-
-SEXP _SparseList_int2symb(int symb_as_int);
-
-int _SparseList_symb2int(SEXP symbol);
-
-SEXP _get_val_from_env(
- SEXP symbol,
- SEXP env,
- int error_on_unbound_value
-);
-
-SEXP _get_val_from_SparseList(
- int symb_as_int,
- SEXP env,
- int error_on_unbound_value
-);
-
-int _get_int_from_SparseList(
- int symb_as_int,
- SEXP env
-);
-
-void _set_env_from_IntAE(
- SEXP env,
- const IntAE *int_ae
-);
-
-void _set_env_from_IntAEAE(
- SEXP env,
- const IntAEAE *int_aeae
-);
-
-
/* match_reporting.c */
int _get_match_storing_code(const char *ms_mode);
@@ -558,13 +524,6 @@ SEXP ByPos_MIndex_endIndex(
SEXP x_width0
);
-SEXP SparseMIndex_endIndex(
- SEXP x_ends_envir,
- SEXP x_width0,
- SEXP x_names,
- SEXP all_names
-);
-
SEXP ByPos_MIndex_combine(SEXP ends_listlist);
diff --git a/src/MIndex_class.c b/src/MIndex_class.c
index 00212fe9..dd6ad546 100644
--- a/src/MIndex_class.c
+++ b/src/MIndex_class.c
@@ -157,73 +157,6 @@ SEXP ByPos_MIndex_endIndex(SEXP x_high2low, SEXP x_ends, SEXP x_width0)
return ans;
}
-/*
- * --- .Call ENTRY POINT ---
- * All the keys in 'x_ends_envir' must be representing integers left-padded with 0s
- * so they have the same length. This works properly:
- library(Biostrings)
- ends_envir <- new.env(parent=emptyenv())
- ends_envir[['0000000010']] <- -2:1
- ends_envir[['0000000004']] <- 9:6
- .Call("SparseMIndex_endIndex",
- ends_envir, NULL, letters[1:10], TRUE,
- PACKAGE="Biostrings")
- .Call("SparseMIndex_endIndex",
- ends_envir, NULL, letters[1:10], FALSE,
- PACKAGE="Biostrings")
- * but this doesn't:
- ends_envir[['3']] <- 33L
- .Call("SparseMIndex_endIndex",
- ends_envir, NULL, letters[1:10], FALSE,
- PACKAGE="Biostrings")
- */
-SEXP SparseMIndex_endIndex(SEXP x_ends_envir, SEXP x_width0, SEXP x_names, SEXP all_names)
-{
- SEXP ans, ans_elt, ans_names, symbols, end;
- int nelt, i, j;
- IntAE *poffsets, *poffsets_order;
-
- PROTECT(symbols = R_lsInternal(x_ends_envir, 1));
- poffsets = new_IntAE_from_CHARACTER(symbols, -1);
- nelt = IntAE_get_nelt(poffsets);
- if (LOGICAL(all_names)[0]) {
- PROTECT(ans = NEW_LIST(LENGTH(x_names)));
- for (i = 0; i < nelt; i++) {
- j = poffsets->elts[i];
- end = _get_val_from_env(STRING_ELT(symbols, i), x_ends_envir, 1);
- PROTECT(ans_elt = duplicate(end));
- if (x_width0 != R_NilValue)
- add_val_to_INTEGER(ans_elt, 1 - INTEGER(x_width0)[j]);
- SET_ELEMENT(ans, j, ans_elt);
- UNPROTECT(1);
- }
- SET_NAMES(ans, duplicate(x_names));
- UNPROTECT(1);
- } else {
- //poffsets_order = new_IntAE(nelt, 0, 0);
- //get_order_of_int_array(poffsets->elts, nelt, 0, 0,
- // poffsets_order->elts, 0);
- //IntAE_set_nelt(poffsets_order) = nelt; /* = poffsets_order->_buflength */
- PROTECT(ans = NEW_LIST(nelt));
- PROTECT(ans_names = NEW_CHARACTER(nelt));
- for (i = 0; i < nelt; i++) {
- //j = poffsets_order->elts[i];
- j = i;
- end = _get_val_from_env(STRING_ELT(symbols, j), x_ends_envir, 1);
- PROTECT(ans_elt = duplicate(end));
- if (x_width0 != R_NilValue)
- add_val_to_INTEGER(ans_elt, 1 - INTEGER(x_width0)[i]);
- SET_ELEMENT(ans, i, ans_elt);
- UNPROTECT(1);
- SET_STRING_ELT(ans_names, i, duplicate(STRING_ELT(x_names, poffsets->elts[j])));
- }
- SET_NAMES(ans, ans_names);
- UNPROTECT(2);
- }
- UNPROTECT(1);
- return ans;
-}
-
/*
* --- .Call ENTRY POINT ---
*/
diff --git a/src/R_init_Biostrings.c b/src/R_init_Biostrings.c
index 4d2943f8..c1410dbd 100644
--- a/src/R_init_Biostrings.c
+++ b/src/R_init_Biostrings.c
@@ -88,7 +88,6 @@ static const R_CallMethodDef callMethods[] = {
/* MIndex_class.c */
CALLMETHOD_DEF(ByPos_MIndex_endIndex, 3),
- CALLMETHOD_DEF(SparseMIndex_endIndex, 4),
CALLMETHOD_DEF(ByPos_MIndex_combine, 1),
/* lowlevel_matching.c */
diff --git a/src/SparseList_utils.c b/src/SparseList_utils.c
deleted file mode 100644
index 18597b55..00000000
--- a/src/SparseList_utils.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/****************************************************************************
- * Fast SparseList utilities *
- * Author: H. Pag\`es *
- ****************************************************************************/
-#include "Biostrings.h"
-#include "S4Vectors_interface.h"
-
-
-SEXP _SparseList_int2symb(int symb_as_int)
-{
- char symbbuf[11];
-
- snprintf(symbbuf, sizeof(symbbuf), "%010d", symb_as_int);
- return mkChar(symbbuf); /* UNPROTECTED! */
-}
-
-int _SparseList_symb2int(SEXP symbol)
-{
- int symb_as_int;
-
- sscanf(CHAR(symbol), "%d", &symb_as_int);
- return symb_as_int;
-}
-
-/* 'symbol' must be a CHARSXP */
-SEXP _get_val_from_env(SEXP symbol, SEXP env, int error_on_unbound_value)
-{
- SEXP ans;
-
- /* The following code was inspired by R's do_get() code.
- * Note that do_get() doesn't use PROTECT at all and so do we...
- */
- ans = findVar(install(translateChar(symbol)), env);
- if (ans == R_UnboundValue) {
- if (error_on_unbound_value)
- error("Biostrings internal error in _get_val_from_env(): "
- "unbound value");
- return R_UnboundValue;
- }
- if (TYPEOF(ans) == PROMSXP)
- ans = eval(ans, env);
- if (ans != R_NilValue && NAMED(ans) == 0)
- SET_NAMED(ans, 1);
- return ans;
-}
-
-SEXP _get_val_from_SparseList(int symb_as_int, SEXP env, int error_on_unbound_value)
-{
- SEXP symbol, ans;
-
- PROTECT(symbol = _SparseList_int2symb(symb_as_int));
- ans = _get_val_from_env(symbol, env, error_on_unbound_value);
- UNPROTECT(1);
- return ans;
-}
-
-int _get_int_from_SparseList(int symb_as_int, SEXP env)
-{
- SEXP value;
- int val;
-
- value = _get_val_from_SparseList(symb_as_int, env, 0);
- if (value == R_UnboundValue)
- return NA_INTEGER;
- if (LENGTH(value) != 1)
- error("Biostrings internal error in _get_int_from_SparseList(): "
- "value is not a single integer");
- val = INTEGER(value)[0];
- if (val == NA_INTEGER)
- error("Biostrings internal error in _get_int_from_SparseList(): "
- "value is NA");
- return val;
-}
-
-void _set_env_from_IntAE(SEXP env, const IntAE *int_ae)
-{
- int nelt, symb_as_int, elt;
- SEXP symbol, value;
-
- nelt = IntAE_get_nelt(int_ae);
- for (symb_as_int = 1; symb_as_int <= nelt; symb_as_int++)
- {
- elt = int_ae->elts[symb_as_int - 1];
- if (elt == NA_INTEGER)
- continue;
- PROTECT(symbol = _SparseList_int2symb(symb_as_int));
- PROTECT(value = ScalarInteger(elt));
- defineVar(install(translateChar(symbol)), value, env);
- UNPROTECT(2);
- }
- return;
-}
-
-void _set_env_from_IntAEAE(SEXP env, const IntAEAE *int_aeae)
-{
- int nelt, symb_as_int;
- IntAE *ae;
- SEXP symbol, value;
-
- nelt = IntAEAE_get_nelt(int_aeae);
- for (symb_as_int = 1; symb_as_int <= nelt; symb_as_int++)
- {
- ae = int_aeae->elts[symb_as_int - 1];
- if (IntAE_get_nelt(ae) == 0)
- continue;
- PROTECT(symbol = _SparseList_int2symb(symb_as_int));
- PROTECT(value = new_INTEGER_from_IntAE(ae));
- defineVar(install(translateChar(symbol)), value, env);
- UNPROTECT(2);
- }
- return;
-}
-
@@ -0,0 +1,142 @@
From 7fe34542bff0183c3a6a35a62df9035a71698eb2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Herv=C3=A9=20Pag=C3=A8s?= <hpages.on.github@gmail.com>
Date: Fri, 6 Mar 2026 15:54:23 -0800
Subject: [PATCH] h5mread 1.3.2: Get rid of non-API calls to R
---
DESCRIPTION | 2 +-
R/H5File-class.R | 27 ++++++++++++++++-----------
src/h5mread_index.c | 5 +++--
src/h5mread_startscounts.c | 3 ++-
4 files changed, 22 insertions(+), 15 deletions(-)
diff --git a/R/H5File-class.R b/R/H5File-class.R
index 2735166..6aeb80f 100644
--- a/R/H5File-class.R
+++ b/R/H5File-class.R
@@ -73,19 +73,23 @@
}
}
-.h5openfile <- function(filepath, s3=FALSE, s3credentials=NULL, use.rhdf5=FALSE)
+.h5openfile <- function(filepath, readonly=TRUE,
+ s3=FALSE, s3credentials=NULL, use.rhdf5=FALSE)
{
if (!isSingleString(filepath))
stop(wmsg("'filepath' must be a single string specifying ",
"the path or URL to an HDF5 file"))
+ if (!isTRUEorFALSE(readonly))
+ stop(wmsg("'readonly' must be TRUE or FALSE"))
if (!isTRUEorFALSE(s3))
stop(wmsg("'s3' must be TRUE or FALSE"))
-
+ if (s3 && !readonly)
+ stop(wmsg("'readonly' must be set to TRUE when 's3' is TRUE"))
if (s3) {
ID <- .h5openS3file(filepath, s3credentials=s3credentials,
use.rhdf5=use.rhdf5)
} else {
- ID <- .h5openlocalfile(filepath, readonly=TRUE, use.rhdf5=use.rhdf5)
+ ID <- .h5openlocalfile(filepath, readonly=readonly, use.rhdf5=use.rhdf5)
}
ID
}
@@ -136,16 +140,16 @@
.ID_is_closed <- function(ID) { is.null(ID) || is.na(ID) }
-.open_H5FileID_xp <- function(xp, filepath, s3=FALSE, s3credentials=NULL,
- use.rhdf5=FALSE)
+.open_H5FileID_xp <- function(xp, filepath, readonly=TRUE,
+ s3=FALSE, s3credentials=NULL, use.rhdf5=FALSE)
{
ID <- .get_H5FileID_xp_ID(xp)
if (!.ID_is_closed(ID)) {
## H5FileID object is already open.
return(FALSE)
}
- ID <- .h5openfile(filepath, s3=s3, s3credentials=s3credentials,
- use.rhdf5=use.rhdf5)
+ ID <- .h5openfile(filepath, readonly=readonly,
+ s3=s3, s3credentials=s3credentials, use.rhdf5=use.rhdf5)
.set_H5FileID_xp_ID(xp, ID)
TRUE
}
@@ -183,10 +187,11 @@ close.H5FileID <- function(con, ...)
.close_H5FileID_xp(con@xp, ..., use.rhdf5=con@from_rhdf5)
}
-H5FileID <- function(filepath, s3=FALSE, s3credentials=NULL, use.rhdf5=FALSE)
+H5FileID <- function(filepath, readonly=TRUE,
+ s3=FALSE, s3credentials=NULL, use.rhdf5=FALSE)
{
- ID <- .h5openfile(filepath, s3=s3, s3credentials=s3credentials,
- use.rhdf5=use.rhdf5)
+ ID <- .h5openfile(filepath, readonly=readonly,
+ s3=s3, s3credentials=s3credentials, use.rhdf5=use.rhdf5)
xp <- .new_H5FileID_xp(ID)
reg.finalizer(xp,
function(e) .close_H5FileID_xp(e, use.rhdf5=use.rhdf5),
@@ -272,7 +277,7 @@ H5File <- function(filepath, s3=FALSE, s3credentials=NULL, .no_rhdf5_h5id=FALSE)
rhdf5_h5id <- new("H5FileID")
} else {
rhdf5_h5id <- H5FileID(filepath, s3=s3, s3credentials=s3credentials,
- use.rhdf5=TRUE)
+ use.rhdf5=TRUE)
}
if (!s3)
filepath <- file_path_as_absolute(filepath)
diff --git a/src/h5mread_index.c b/src/h5mread_index.c
index 7284815..ec93c25 100644
--- a/src/h5mread_index.c
+++ b/src/h5mread_index.c
@@ -9,6 +9,7 @@
#include "h5mread_helpers.h"
#include "TouchedChunks.h"
+#include <R_ext/Altrep.h> /* only for DATAPTR_RW() */
#include <stdlib.h> /* for malloc, free */
#include <string.h> /* for memcmp */
//#include <time.h>
@@ -444,7 +445,7 @@ static int read_chunk_data_4_5(const H5DSetDescriptor *h5dset,
const size_t *Rarray_dim, SEXP Rarray,
int method, int use_H5Dread_chunk)
{
- void *out = DATAPTR(Rarray);
+ void *out = DATAPTR_RW(Rarray);
if (out == NULL)
return -1;
@@ -874,7 +875,7 @@ static int read_data_6(const AllTChunks *all_tchunks,
size_t *inner_nchip_buf = R_alloc0_size_t_array(ndim);
LLongAEAE *inner_breakpoint_bufs = new_LLongAEAE(ndim, ndim);
- void *out = DATAPTR(Rarray);
+ void *out = DATAPTR_RW(Rarray);
if (out == NULL) {
_destroy_TChunkIterator(&tchunk_iter);
return -1;
diff --git a/src/h5mread_startscounts.c b/src/h5mread_startscounts.c
index de57fd5..959014f 100644
--- a/src/h5mread_startscounts.c
+++ b/src/h5mread_startscounts.c
@@ -8,6 +8,7 @@
#include "uaselection.h"
#include "h5mread_helpers.h"
+#include <R_ext/Altrep.h> /* only for DATAPTR_RW() */
#include <stdlib.h> /* for malloc, free */
//#include <time.h>
@@ -402,7 +403,7 @@ SEXP _h5mread_startscounts(const H5DSetDescriptor *h5dset,
SEXP ans = PROTECT(allocVector(h5dset->h5type->Rtype, ans_len));
if (ans_len != 0) {
- void *mem = DATAPTR(ans);
+ void *mem = DATAPTR_RW(ans);
if (mem == NULL)
goto on_error;
--
2.52.0
@@ -0,0 +1,67 @@
From a827c9fdeb77edefe6cca81bdb9e0344bc8d3742 Mon Sep 17 00:00:00 2001
From: Sebastian Gibb <mail@sebastiangibb.de>
Date: Sat, 13 Dec 2025 23:06:12 +0100
Subject: [PATCH] fix: non-API call to R: SETLENGTH by using lengthgets
---
DESCRIPTION | 2 +-
NEWS.md | 6 ++++++
src/join.c | 12 ++++--------
src/reduce.c | 6 ++----
4 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/src/join.c b/src/join.c
index f13a703..3849fdf 100644
--- a/src/join.c
+++ b/src/join.c
@@ -111,12 +111,10 @@ SEXP C_join_inner(SEXP x, SEXP y, SEXP tolerance, SEXP nomatch) {
++j;
}
}
- SETLENGTH(rx, j);
- SETLENGTH(ry, j);
SEXP out = PROTECT(allocVector(VECSXP, 2));
SEXP nms = PROTECT(allocVector(STRSXP, 2));
- SET_VECTOR_ELT(out, 0, rx);
- SET_VECTOR_ELT(out, 1, ry);
+ SET_VECTOR_ELT(out, 0, lengthgets(rx, j));
+ SET_VECTOR_ELT(out, 1, lengthgets(ry, j));
SET_STRING_ELT(nms, 0, mkChar("x"));
SET_STRING_ELT(nms, 1, mkChar("y"));
setAttrib(out, R_NamesSymbol, nms);
@@ -201,12 +199,10 @@ SEXP C_join_outer(SEXP x, SEXP y, SEXP tolerance, SEXP nomatch) {
++i;
}
- SETLENGTH(rx, i);
- SETLENGTH(ry, i);
SEXP out = PROTECT(allocVector(VECSXP, 2));
SEXP nms = PROTECT(allocVector(STRSXP, 2));
- SET_VECTOR_ELT(out, 0, rx);
- SET_VECTOR_ELT(out, 1, ry);
+ SET_VECTOR_ELT(out, 0, lengthgets(rx, i));
+ SET_VECTOR_ELT(out, 1, lengthgets(ry, i));
SET_STRING_ELT(nms, 0, mkChar("x"));
SET_STRING_ELT(nms, 1, mkChar("y"));
setAttrib(out, R_NamesSymbol, nms);
diff --git a/src/reduce.c b/src/reduce.c
index 5f87966..8e48058 100644
--- a/src/reduce.c
+++ b/src/reduce.c
@@ -66,11 +66,9 @@ SEXP C_reduce(SEXP start, SEXP end, SEXP check) {
}
}
- SETLENGTH(rs, pos + 1);
- SETLENGTH(re, pos + 1);
SEXP out = PROTECT(allocVector(VECSXP, 2));
- SET_VECTOR_ELT(out, 0, rs);
- SET_VECTOR_ELT(out, 1, re);
+ SET_VECTOR_ELT(out, 0, lengthgets(rs, pos + 1));
+ SET_VECTOR_ELT(out, 1, lengthgets(re, pos + 1));
UNPROTECT(4);
--
2.52.0
@@ -0,0 +1,114 @@
From 57dc6579d8b53af9e633016705fa9a1cbe58c8c8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Herv=C3=A9=20Pag=C3=A8s?= <hpages.on.github@gmail.com>
Date: Fri, 6 Mar 2026 16:48:20 -0800
Subject: [PATCH] Rsamtools 2.27.1: Get rid of non-API calls to R
---
DESCRIPTION | 2 +-
src/utilities.h | 3 +--
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/utilities.h b/src/utilities.h
index bffb98f7..f9d5e09f 100644
--- a/src/utilities.h
+++ b/src/utilities.h
@@ -51,8 +51,7 @@ SEXP find_mate_within_groups(SEXP group_sizes,
/* call-building macros */
#define NEW_CALL(S, T, NAME, ENV, N) \
- PROTECT(S = T = allocList(N)); \
- SET_TYPEOF(T, LANGSXP); \
+ PROTECT(S = T = LCONS(R_NilValue, allocList(N-1))); \
SETCAR(T, findFun(install(NAME), ENV)); \
T = CDR(T)
#define CSET_CDR(T, NAME, VALUE) \
From 8cdec143023e8348a4f8bdc310acd609d14fe493 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Herv=C3=A9=20Pag=C3=A8s?= <hpages.on.github@gmail.com>
Date: Fri, 6 Mar 2026 16:59:42 -0800
Subject: [PATCH] oops, forgot to also get rid of non-API call to FORMALS()
---
src/pileupbam.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/pileupbam.c b/src/pileupbam.c
index f3256ba..7725628 100644
--- a/src/pileupbam.c
+++ b/src/pileupbam.c
@@ -655,7 +655,7 @@ SEXP apply_pileups(SEXP files, SEXP names, SEXP regions, SEXP param,
if (R_NilValue == regions)
Rf_error("'NULL' regions not (yet) supported");
_checkparams(regions, R_NilValue, R_NilValue);
- if (!Rf_isFunction(callback) || 1L != Rf_length(FORMALS(callback)))
+ if (!Rf_isFunction(callback) || 1L != Rf_length(R_ClosureFormals(callback)))
Rf_error("'callback' must be a function of 1 argument");
call = PROTECT(Rf_lang2(callback, R_NilValue));
From ee01a1f13f3b012b0717247d1f21580225b6f3a0 Mon Sep 17 00:00:00 2001
From: vjcitn <stvjc@channing.harvard.edu>
Date: Wed, 8 Apr 2026 14:04:26 -0400
Subject: [PATCH] API solutions
---
DESCRIPTION | 2 +-
src/tabixfile.c | 4 ++++
src/utilities.c | 13 ++++++++++---
3 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/src/tabixfile.c b/src/tabixfile.c
index 230a381..6f96568 100644
--- a/src/tabixfile.c
+++ b/src/tabixfile.c
@@ -187,8 +187,12 @@ SEXP index_tabix(SEXP filename, SEXP format, SEXP seq, SEXP begin, SEXP end,
LOGICAL(zeroBased)[0] == TRUE)
conf.preset |= TBX_UCSC;
+/* following is deprecated in HTSLIB with no precise replacement proposed */
+/* seems unimportant */
+/*
if (bgzf_is_bgzf(fn) != 1)
Rf_error("file does not appear to be bgzip'd");
+*/
if (tbx_index_build(fn, 0, &conf) == -1)
Rf_error("index build failed");
diff --git a/src/utilities.c b/src/utilities.c
index e224f91..d15c1d1 100644
--- a/src/utilities.c
+++ b/src/utilities.c
@@ -5,6 +5,13 @@
#include "XVector_interface.h"
#include <htslib/khash.h>
+#include <Rversion.h>
+
+#if R_VERSION < R_Version(4, 6, 0)
+# define R_getVar(x,y,z) findVar(x,y)
+#endif
+
+
void *_Rs_Realloc_impl(void *p, size_t n, size_t t)
{
/* R_Realloc(p, 0, *) fails inappropriately */
@@ -30,7 +37,7 @@ SEXP _get_namespace(const char *pkg)
void _as_strand(SEXP vec)
{
SEXP nmspc = PROTECT(_get_namespace("Rsamtools"));
- SEXP lvls = PROTECT(eval(findVar(install(".STRAND_LEVELS"), nmspc), nmspc));
+ SEXP lvls = PROTECT(eval(R_getVar(install(".STRAND_LEVELS"), nmspc, TRUE), nmspc));
_as_factor_SEXP(vec, lvls);
UNPROTECT(2);
}
@@ -38,8 +45,8 @@ void _as_strand(SEXP vec)
void _as_nucleotide(SEXP vec)
{
SEXP nmspc = PROTECT(_get_namespace("Rsamtools"));
- SEXP lvls = PROTECT(eval(findVar(install(".PILEUP_NUCLEOTIDE_LEVELS"),
- nmspc), nmspc));
+ SEXP lvls = PROTECT(eval(R_getVar(install(".PILEUP_NUCLEOTIDE_LEVELS"),
+ nmspc, TRUE), nmspc));
_as_factor_SEXP(vec, lvls);
UNPROTECT(2);
}
@@ -0,0 +1,103 @@
From e39852a54312bbc6ba435848890cc2a7f612357c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Herv=C3=A9=20Pag=C3=A8s?= <hpages.on.github@gmail.com>
Date: Fri, 6 Mar 2026 17:04:19 -0800
Subject: [PATCH] ShortRead 1.69.3: Get rid of non-API calls to R
---
DESCRIPTION | 2 +-
src/call.h | 3 +--
src/io.c | 10 +++++-----
3 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/src/call.h b/src/call.h
index e15bb5e..e72bbd6 100644
--- a/src/call.h
+++ b/src/call.h
@@ -6,8 +6,7 @@ extern "C" {
#endif
#define NEW_CALL(S, T, NAME, ENV, N) \
- PROTECT((S) = (T) = allocList((N))); \
- SET_TYPEOF((T), LANGSXP); \
+ PROTECT((S) = (T) = LCONS(R_NilValue, allocList((N)-1))); \
SETCAR((T), findFun(install((NAME)), (ENV))); \
(T) = CDR((T))
#define CSET_CDR(T, NAME, VALUE) \
diff --git a/src/io.c b/src/io.c
index 25a0111..9cf4bf8 100644
--- a/src/io.c
+++ b/src/io.c
@@ -46,9 +46,9 @@ SEXP write_fastq(SEXP id, SEXP sread, SEXP quality,
SEXP fname, SEXP fmode, SEXP full, SEXP compress,
SEXP max_width)
{
- if (!(IS_S4_OBJECT(id) && strcmp(get_classname(id), "BStringSet") == 0))
+ if (!(Rf_isS4(id) && strcmp(get_classname(id), "BStringSet") == 0))
Rf_error("'%s' must be '%s'", "id", "BStringSet");
- if (!(IS_S4_OBJECT(sread) &&
+ if (!(Rf_isS4(sread) &&
strcmp(get_classname(sread), "DNAStringSet") == 0))
Rf_error("'%s' must be '%s'", "sread", "DNAStringSet");
/* check in R -- C-level R_check_super... is not adequate */
@@ -693,14 +693,14 @@ int _solexa_export_make_id(SEXP result)
*x = INTEGER(VECTOR_ELT(result, SLX_X)),
*y = INTEGER(VECTOR_ELT(result, SLX_Y)), *pairedReadNumber = NULL;
const SEXP
- * run = STRING_PTR(VECTOR_ELT(result, SLX_RUN)),
+ * run = STRING_PTR_RO(VECTOR_ELT(result, SLX_RUN)),
*multiplexIndex = NULL,
- *machine = STRING_PTR(VECTOR_ELT(result, SLX_MACHINE));
+ *machine = STRING_PTR_RO(VECTOR_ELT(result, SLX_MACHINE));
const Rboolean
withMultiplexIndex = R_NilValue != VECTOR_ELT(result, SLX_MULTIPLEX),
withPairedReadNumber = R_NilValue != VECTOR_ELT(result, SLX_PAIRID);
if (withMultiplexIndex)
- multiplexIndex = STRING_PTR(VECTOR_ELT(result, SLX_MULTIPLEX));
+ multiplexIndex = STRING_PTR_RO(VECTOR_ELT(result, SLX_MULTIPLEX));
if (withPairedReadNumber)
pairedReadNumber = INTEGER(VECTOR_ELT(result, SLX_PAIRID));
--
2.52.0
From 2e3368a35e3955a0a92b7f3e2c8dface6709d135 Mon Sep 17 00:00:00 2001
From: vjcitn <stvjc@channing.harvard.edu>
Date: Thu, 16 Apr 2026 16:54:15 +0000
Subject: [PATCH] fixapi
---
src/util.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/src/util.c b/src/util.c
index 4a10a90..59c089b 100644
--- a/src/util.c
+++ b/src/util.c
@@ -6,6 +6,14 @@ unsigned char _bDecode(char);
unsigned char _dnaDecode(char);
unsigned char _rnaDecode(char);
+
+#include <Rversion.h>
+
+#if R_VERSION < R_Version(4, 6, 0)
+# define R_getVar(x,y,z) findVar(x,y)
+#endif
+
+
/*
* Encode / decode XString wrappers
*/
@@ -80,7 +88,7 @@ SEXP _get_namespace(const char *pkg)
SEXP _get_strand_levels()
{
SEXP nmspc = PROTECT(_get_namespace("ShortRead"));
- SEXP ans = eval(findVar(install(".STRAND_LEVELS"), nmspc), nmspc);
+ SEXP ans = eval(R_getVar(install(".STRAND_LEVELS"), nmspc, TRUE), nmspc);
UNPROTECT(1);
return ans;
}
--
2.52.0
@@ -0,0 +1,412 @@
From 803cda41994a22890e0a6e379e6588084d4bc91b Mon Sep 17 00:00:00 2001
From: vjcitn <stvjc@channing.harvard.edu>
Date: Fri, 13 Mar 2026 04:04:59 -0400
Subject: [PATCH 1/2] fixed non-API except for IS_S4_OBJECT
---
src/bind.c | 8 ++++----
src/glm_test_R.c | 20 ++++++++++----------
src/imputation.c | 8 ++++----
src/input.c | 2 +-
src/plink.c | 2 +-
src/read_uncertain.c | 4 ++--
src/readped.c | 2 +-
src/single_snp_tests.c | 8 ++++----
src/snp_summary.c | 8 ++++----
src/snpmpy.c | 8 ++++----
src/structure.c | 4 ++--
src/subset.c | 2 +-
src/switch.c | 2 +-
src/tdt.c | 8 ++++----
src/testBig.c | 2 +-
15 files changed, 44 insertions(+), 44 deletions(-)
diff --git a/src/bind.c b/src/bind.c
index 44b1536..fa87e7c 100644
--- a/src/bind.c
+++ b/src/bind.c
@@ -19,7 +19,7 @@ SEXP snp_rbind(SEXP args) {
const SEXP This = CAR(args);
Class = getAttrib(This, R_ClassSymbol);
if (TYPEOF(Class) != STRSXP) {
- Class = R_data_class(This, FALSE);
+ Class = R_class(This);
}
const char *cli = CHAR(STRING_ELT(Class, 0));
if(!IS_S4_OBJECT(This)) {
@@ -66,7 +66,7 @@ SEXP snp_rbind(SEXP args) {
SEXP Result, Rnames, Dnames, Diploid = R_NilValue;
PROTECT(Result = allocMatrix(RAWSXP, nr, nc));
classgets(Result, duplicate(Class));
- SET_S4_OBJECT(Result);
+ Rf_asS4(Result, TRUE, 0);
PROTECT(Rnames = allocVector(STRSXP, nr));
PROTECT(Dnames = allocVector(VECSXP, 2));
SET_VECTOR_ELT(Dnames, 0, Rnames);
@@ -148,7 +148,7 @@ SEXP snp_cbind(SEXP args) {
SEXP This = CAR(args);
Class = getAttrib(This, R_ClassSymbol);
if (TYPEOF(Class) != STRSXP) {
- Class = R_data_class(This, FALSE);
+ Class = R_class(This);
}
const char *cli = CHAR(STRING_ELT(Class, 0));
if(!IS_S4_OBJECT(This)) {
@@ -205,7 +205,7 @@ SEXP snp_cbind(SEXP args) {
SEXP Result, Cnames, Dnames;
PROTECT(Result = allocMatrix(RAWSXP, nr, nc));
classgets(Result, duplicate(Class));
- SET_S4_OBJECT(Result);
+ Rf_asS4(Result, TRUE, 0);
PROTECT(Dnames = allocVector(VECSXP, 2));
setAttrib(Result, R_DimNamesSymbol, Dnames);
PROTECT(Cnames = allocVector(STRSXP, nc));
diff --git a/src/glm_test_R.c b/src/glm_test_R.c
index d865182..dc8ebef 100644
--- a/src/glm_test_R.c
+++ b/src/glm_test_R.c
@@ -19,8 +19,8 @@ SEXP snp_lhs_score(const SEXP Y, const SEXP X, const SEXP Stratum,
/* Y should be a SnpMatrix or an XSnpMatrix */
const char *classY = NULL;
- if (TYPEOF(R_data_class(Y, FALSE)) == STRSXP) {
- classY = CHAR(STRING_ELT(R_data_class(Y, FALSE), 0));
+ if (TYPEOF(R_class(Y)) == STRSXP) {
+ classY = CHAR(STRING_ELT(R_class(Y), 0));
} else {
classY = CHAR(STRING_ELT(getAttrib(Y, R_ClassSymbol), 0));
}
@@ -431,8 +431,8 @@ SEXP snp_rhs_score(SEXP Y, SEXP family, SEXP link,
/* Z should be a SnpMatrix or an XSnpMatrix */
const char *classZ = NULL;
- if (TYPEOF(R_data_class(Z, FALSE)) == STRSXP) {
- classZ = CHAR(STRING_ELT(R_data_class(Z, FALSE), 0));
+ if (TYPEOF(R_class(Z)) == STRSXP) {
+ classZ = CHAR(STRING_ELT(R_class(Z), 0));
} else {
classZ = CHAR(STRING_ELT(getAttrib(Z, R_ClassSymbol), 0));
}
@@ -1003,8 +1003,8 @@ SEXP snp_lhs_estimate(const SEXP Y, const SEXP X, const SEXP Stratum,
/* Y should be a SnpMatrix or an XSnpMatrix */
const char *classY = NULL;
- if (TYPEOF(R_data_class(Y, FALSE)) == STRSXP) {
- classY = CHAR(STRING_ELT(R_data_class(Y, FALSE), 0));
+ if (TYPEOF(R_class(Y)) == STRSXP) {
+ classY = CHAR(STRING_ELT(R_class(Y), 0));
} else {
classY = CHAR(STRING_ELT(getAttrib(Y, R_ClassSymbol), 0));
}
@@ -1286,7 +1286,7 @@ SEXP snp_lhs_estimate(const SEXP Y, const SEXP X, const SEXP Stratum,
LOGICAL(Lhs)[0] = 1;
setAttrib(Estimates, install("snpLHS"), Lhs);
UNPROTECT(6);
- SET_S4_OBJECT(Estimates);
+ Rf_asS4(Estimates, TRUE, 0);
return(Estimates);
}
@@ -1360,8 +1360,8 @@ SEXP snp_rhs_estimate(SEXP Y, SEXP family, SEXP link,
/* Z should be a SnpMatrix or an XSnpMatrix */
const char *classZ = NULL;
- if (TYPEOF(R_data_class(Z, FALSE)) == STRSXP) {
- classZ = CHAR(STRING_ELT(R_data_class(Z, FALSE), 0));
+ if (TYPEOF(R_class(Z)) == STRSXP) {
+ classZ = CHAR(STRING_ELT(R_class(Z), 0));
} else {
classZ = CHAR(STRING_ELT(getAttrib(Z, R_ClassSymbol), 0));
}
@@ -1724,7 +1724,7 @@ SEXP snp_rhs_estimate(SEXP Y, SEXP family, SEXP link,
UNPROTECT(gen_names? 7: 6);
- SET_S4_OBJECT(Estimates);
+ Rf_asS4(Estimates, TRUE, 0);
return(Estimates);
}
diff --git a/src/imputation.c b/src/imputation.c
index ff9403b..d796c1b 100644
--- a/src/imputation.c
+++ b/src/imputation.c
@@ -77,7 +77,7 @@ SEXP snp_impute(const SEXP X, const SEXP Y, const SEXP Xord, const SEXP Yord,
int *diploid = NULL;
SEXP cl = GET_CLASS(X);
if (TYPEOF(cl) != STRSXP) {
- cl = R_data_class(X, FALSE); /* S4 way of getting class attribute */
+ cl = R_class(X); /* S4 way of getting class attribute */
}
if (!strcmp(CHAR(STRING_ELT(cl, 0)), "XSnpMatrix")) {
SEXP Diploid = R_do_slot(X, mkString("diploid"));
@@ -395,7 +395,7 @@ SEXP snp_impute(const SEXP X, const SEXP Y, const SEXP Xord, const SEXP Yord,
PROTECT(Maxpred = allocVector(INTSXP, 1));
INTEGER(Maxpred)[0] = maxpred;
setAttrib(Result, install("Max.predictors"), Maxpred);
- SET_S4_OBJECT(Result);
+ Rf_asS4(Result, TRUE, 0);
/* Tidy up */
@@ -701,7 +701,7 @@ SEXP impute_snps(const SEXP Rules, const SEXP Snps, const SEXP Subset,
int *diploid_in=NULL, *diploid=NULL;
SEXP cl = GET_CLASS(Snps);
if (TYPEOF(cl) != STRSXP) {
- cl = R_data_class(Snps, FALSE); /* S4 way of getting class attribute */
+ cl = R_class(Snps); /* S4 way of getting class attribute */
}
if (!strcmp(CHAR(STRING_ELT(cl, 0)), "XSnpMatrix")) {
SEXP Diploid = R_do_slot(Snps, mkString("diploid"));
@@ -753,7 +753,7 @@ SEXP impute_snps(const SEXP Rules, const SEXP Snps, const SEXP Subset,
SET_STRING_ELT(Package, 0, mkChar("snpStats"));
setAttrib(Class, install("package"), Package);
classgets(Result, Class);
- SET_S4_OBJECT(Result);
+ Rf_asS4(Result, TRUE, 0);
}
PROTECT(Dimnames = allocVector(VECSXP, 2));
SET_VECTOR_ELT(Dimnames, 0, VECTOR_ELT(names, 0));
diff --git a/src/input.c b/src/input.c
index 1d2a95b..60cdad8 100644
--- a/src/input.c
+++ b/src/input.c
@@ -330,7 +330,7 @@ SEXP insnp_new(const SEXP Filenames, const SEXP Sample_id, const SEXP Snp_id,
SET_STRING_ELT(Package, 0, mkChar("snpStats"));
setAttrib(Class, install("package"), Package);
classgets(Result, Class);
- SET_S4_OBJECT(Result);
+ Rf_asS4(Result, TRUE, 0);
unsigned char *result = RAW(Result);
memset(result, 0x00, Nsample*Nsnp);
diff --git a/src/plink.c b/src/plink.c
index a413440..9095c2d 100644
--- a/src/plink.c
+++ b/src/plink.c
@@ -59,7 +59,7 @@ SEXP readbed(SEXP Bed, SEXP Id, SEXP Snps, SEXP Rsel, SEXP Csel) {
SET_STRING_ELT(Package, 0, mkChar("snpStats"));
setAttrib(Class, install("package"), Package);
classgets(Result, Class);
- SET_S4_OBJECT(Result);
+ Rf_asS4(Result, TRUE, 0);
unsigned char *result = RAW(Result);
R_xlen_t ncell = (R_xlen_t)nrow*(R_xlen_t)ncol;
diff --git a/src/read_uncertain.c b/src/read_uncertain.c
index 2e3b901..fd82617 100644
--- a/src/read_uncertain.c
+++ b/src/read_uncertain.c
@@ -137,7 +137,7 @@ SEXP read_mach(const SEXP Filename, const SEXP Colnames, const SEXP Nsubject) {
SET_STRING_ELT(Package, 0, mkChar("snpStats"));
setAttrib(Class, install("package"), Package);
classgets(Result, Class);
- SET_S4_OBJECT(Result);
+ Rf_asS4(Result, TRUE, 0);
UNPROTECT(2);
/* Read in data */
@@ -278,7 +278,7 @@ SEXP read_impute(const SEXP Filename, const SEXP Rownames, const SEXP Nsnp,
SET_STRING_ELT(Package, 0, mkChar("snpStats"));
setAttrib(Class, install("package"), Package);
classgets(Result, Class);
- SET_S4_OBJECT(Result);
+ Rf_asS4(Result, TRUE, 0);
UNPROTECT(2);
char buffer[BUFFERSIZE];
diff --git a/src/readped.c b/src/readped.c
index 4e8563e..020d05f 100644
--- a/src/readped.c
+++ b/src/readped.c
@@ -327,7 +327,7 @@ SEXP readped(SEXP filename, SEXP snp_names, SEXP missing, SEXP X, SEXP sep) {
else
SET_STRING_ELT(SMClass, 0, mkChar("SnpMatrix"));
classgets(Smat, SMClass);
- SET_S4_OBJECT(Smat);
+ Rf_asS4(Smat, TRUE, 0);
PROTECT(DimNames = allocVector(VECSXP, 2));
SET_VECTOR_ELT(DimNames, 0, duplicate(Rnames));
protected += 2;
diff --git a/src/single_snp_tests.c b/src/single_snp_tests.c
index a242e17..08bd098 100644
--- a/src/single_snp_tests.c
+++ b/src/single_snp_tests.c
@@ -53,8 +53,8 @@ SEXP score_single(const SEXP Phenotype, const SEXP Stratum, const SEXP Snps,
/* SNPs ---- should be a SnpMatrix or an XSnpMatrix */
const char *classS = NULL;
- if (TYPEOF(R_data_class(Snps, FALSE)) == STRSXP) {
- classS = CHAR(STRING_ELT(R_data_class(Snps, FALSE), 0));
+ if (TYPEOF(R_class(Snps)) == STRSXP) {
+ classS = CHAR(STRING_ELT(R_class(Snps), 0));
} else {
classS = CHAR(STRING_ELT(getAttrib(Snps, R_ClassSymbol), 0));
}
@@ -108,8 +108,8 @@ SEXP score_single(const SEXP Phenotype, const SEXP Stratum, const SEXP Snps,
index_db name_index;
if (!isNull(Rules)) {
const char *classR = NULL;
- if (TYPEOF(R_data_class(Rules, FALSE)) == STRSXP) {
- classR = CHAR(STRING_ELT(R_data_class(Rules, FALSE), 0));
+ if (TYPEOF(R_class(Rules)) == STRSXP) {
+ classR = CHAR(STRING_ELT(R_class(Rules), 0));
} else {
classR = CHAR(STRING_ELT(getAttrib(Rules, R_ClassSymbol), 0));
}
diff --git a/src/snp_summary.c b/src/snp_summary.c
index 9b53693..6f181c9 100644
--- a/src/snp_summary.c
+++ b/src/snp_summary.c
@@ -47,8 +47,8 @@ SEXP X_snp_summary(const SEXP Snps, const SEXP Rules, const SEXP Uncertain) {
SEXP ruleNames = R_NilValue;
if (!isNull(Rules)) {
const char *classR = NULL;
- if (TYPEOF(R_data_class(Rules, FALSE)) == STRSXP) {
- classR = CHAR(STRING_ELT(R_data_class(Rules, FALSE), 0));
+ if (TYPEOF(R_class(Rules)) == STRSXP) {
+ classR = CHAR(STRING_ELT(R_class(Rules), 0));
} else {
classR = CHAR(STRING_ELT(getAttrib(Rules, R_ClassSymbol), 0));
}
@@ -321,8 +321,8 @@ SEXP snp_summary(const SEXP Snps, const SEXP Rules, const SEXP Uncertain) {
SEXP ruleNames = R_NilValue;
if (!isNull(Rules)) {
const char *classR = NULL;
- if (TYPEOF(R_data_class(Rules, FALSE)) == STRSXP) {
- classR = CHAR(STRING_ELT(R_data_class(Rules, FALSE), 0));
+ if (TYPEOF(R_class(Rules)) == STRSXP) {
+ classR = CHAR(STRING_ELT(R_class(Rules), 0));
} else {
classR = CHAR(STRING_ELT(getAttrib(Rules, R_ClassSymbol), 0));
}
diff --git a/src/snpmpy.c b/src/snpmpy.c
index 2447048..56b84d9 100644
--- a/src/snpmpy.c
+++ b/src/snpmpy.c
@@ -34,7 +34,7 @@ SEXP snp_pre(const SEXP Snps, const SEXP Mat, const SEXP Frequency,
int *ifdiploid = NULL;
SEXP cl = GET_CLASS(Snps);
if (TYPEOF(cl) != STRSXP) {
- cl = R_data_class(Snps, FALSE); /* S4 way of getting class attribute */
+ cl = R_class(Snps); /* S4 way of getting class attribute */
}
if (!strcmp(CHAR(STRING_ELT(cl, 0)), "XSnpMatrix")) {
SEXP diploid = R_do_slot(Snps, mkString("diploid"));
@@ -55,7 +55,7 @@ SEXP snp_pre(const SEXP Snps, const SEXP Mat, const SEXP Frequency,
cl = GET_CLASS(Mat);
if (TYPEOF(cl) != STRSXP) {
- cl = R_data_class(Mat, FALSE); /* S4 way of getting class attribute */
+ cl = R_class(Mat); /* S4 way of getting class attribute */
}
if (strcmp(CHAR(STRING_ELT(cl, 0)), "matrix"))
error("Argument error - Mat wrong type");
@@ -161,7 +161,7 @@ SEXP snp_post(const SEXP Snps, const SEXP Mat, const SEXP Frequency,
int *ifdiploid = NULL;
SEXP cl = GET_CLASS(Snps);
if (TYPEOF(cl) != STRSXP) {
- cl = R_data_class(Snps, FALSE); /* S4 way of getting class attribute */
+ cl = R_class(Snps); /* S4 way of getting class attribute */
}
if (!strcmp(CHAR(STRING_ELT(cl, 0)), "XSnpMatrix")) {
SEXP diploid = R_do_slot(Snps, mkString("diploid"));
@@ -182,7 +182,7 @@ SEXP snp_post(const SEXP Snps, const SEXP Mat, const SEXP Frequency,
cl = GET_CLASS(Mat);
if (TYPEOF(cl) != STRSXP) {
- cl = R_data_class(Mat, FALSE); /* S4 way of getting class attribute */
+ cl = R_class(Mat); /* S4 way of getting class attribute */
}
if (strcmp(CHAR(STRING_ELT(cl, 0)), "matrix"))
error("Argument error - Mat wrong type");
diff --git a/src/structure.c b/src/structure.c
index 2a05635..1f9b62e 100644
--- a/src/structure.c
+++ b/src/structure.c
@@ -66,7 +66,7 @@ SEXP xxt(const SEXP Snps, const SEXP Strata, const SEXP Correct_for_missing,
int *ifDiploid = NULL;
SEXP cl = GET_CLASS(Snps);
if (TYPEOF(cl) != STRSXP) {
- cl = R_data_class(Snps, FALSE); /* S4 way of getting class attribute */
+ cl = R_class(Snps); /* S4 way of getting class attribute */
}
if (!strcmp(CHAR(STRING_ELT(cl, 0)), "XSnpMatrix")) {
SEXP Diploid = R_do_slot(Snps, mkString("diploid"));
@@ -409,7 +409,7 @@ SEXP ibs_count(const SEXP Snps, const SEXP Uncertain) {
int *ifDiploid = NULL;
SEXP cl = GET_CLASS(Snps);
if (TYPEOF(cl) != STRSXP) {
- cl = R_data_class(Snps, FALSE); /* S4 way of getting class attribute */
+ cl = R_class(Snps); /* S4 way of getting class attribute */
}
if (!strcmp(CHAR(STRING_ELT(cl, 0)), "XSnpMatrix")) {
SEXP Diploid = R_do_slot(Snps, mkString("diploid"));
diff --git a/src/subset.c b/src/subset.c
index cc7992d..4c2e2c4 100644
--- a/src/subset.c
+++ b/src/subset.c
@@ -55,7 +55,7 @@ SEXP subset(SEXP X, SEXP Rows, SEXP Cols) {
SET_STRING_ELT(Package, 0, mkChar("snpStats"));
setAttrib(Rclass, install("package"), Package);
setAttrib(Result, R_ClassSymbol, Rclass);
- SET_S4_OBJECT(Result);
+ Rf_asS4(Result, TRUE, 0);
PROTECT(Rdim = allocVector(INTSXP, 2));
int *rdim = INTEGER(Rdim);
rdim[0] = nrows;
diff --git a/src/switch.c b/src/switch.c
index 60f7e6c..e2a3287 100644
--- a/src/switch.c
+++ b/src/switch.c
@@ -16,7 +16,7 @@ SEXP test_switch(const SEXP Snps, const SEXP Snps2, const SEXP Split,
int *female = NULL;
SEXP cl = GET_CLASS(Snps);
if (TYPEOF(cl) != STRSXP) {
- cl = R_data_class(Snps, FALSE); /* S4 way of getting class attribute */
+ cl = R_class(Snps); /* S4 way of getting class attribute */
}
SEXP diploid = NULL;
if (!strcmp(CHAR(STRING_ELT(cl, 0)), "XSnpMatrix")) {
diff --git a/src/tdt.c b/src/tdt.c
index cece0d9..000d1c7 100644
--- a/src/tdt.c
+++ b/src/tdt.c
@@ -43,8 +43,8 @@ SEXP score_tdt(const SEXP Proband, const SEXP Father, const SEXP Mother,
/* SNPs ---- should be a SnpMatrix or an XSnpMatrix */
const char *classS = NULL;
- if (TYPEOF(R_data_class(Snps, FALSE)) == STRSXP) {
- classS = CHAR(STRING_ELT(R_data_class(Snps, FALSE), 0));
+ if (TYPEOF(R_class(Snps)) == STRSXP) {
+ classS = CHAR(STRING_ELT(R_class(Snps), 0));
} else {
classS = CHAR(STRING_ELT(getAttrib(Snps, R_ClassSymbol), 0));
}
@@ -84,8 +84,8 @@ SEXP score_tdt(const SEXP Proband, const SEXP Father, const SEXP Mother,
GTYPE **gt2ht = NULL;
if (!isNull(Rules)) {
const char *classR = NULL;
- if (TYPEOF(R_data_class(Rules, FALSE)) == STRSXP) {
- classR = CHAR(STRING_ELT(R_data_class(Rules, FALSE), 0));
+ if (TYPEOF(R_class(Rules)) == STRSXP) {
+ classR = CHAR(STRING_ELT(R_class(Rules), 0));
} else {
classR = CHAR(STRING_ELT(getAttrib(Rules, R_ClassSymbol), 0));
}
diff --git a/src/testBig.c b/src/testBig.c
index a6eb76f..3dca1da 100644
--- a/src/testBig.c
+++ b/src/testBig.c
@@ -18,7 +18,7 @@ SEXP snp_big(SEXP nrow, SEXP ncol) {
SET_STRING_ELT(Package, 0, mkChar("snpStats"));
setAttrib(Class, install("package"), Package);
classgets(Result, Class);
- SET_S4_OBJECT(Result);
+ Rf_asS4(Result, TRUE, 0);
PROTECT(Dnames = allocVector(VECSXP, 2));
setAttrib(Result, R_DimNamesSymbol, Dnames);
--
2.52.0
@@ -0,0 +1,149 @@
From a505297e347aa72510ecfc83e7009668693e1260 Mon Sep 17 00:00:00 2001
From: vjcitn <stvjc@channing.harvard.edu>
Date: Fri, 13 Mar 2026 04:06:37 -0400
Subject: [PATCH 2/2] fixed IS_S4_OBJECT
---
src/bind.c | 4 ++--
src/fst.c | 2 +-
src/glm_test_R.c | 8 ++++----
src/single_snp_tests.c | 2 +-
src/snp_summary.c | 6 +++---
src/tdt.c | 2 +-
6 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/src/bind.c b/src/bind.c
index fa87e7c..b3ef928 100644
--- a/src/bind.c
+++ b/src/bind.c
@@ -22,7 +22,7 @@ SEXP snp_rbind(SEXP args) {
Class = R_class(This);
}
const char *cli = CHAR(STRING_ELT(Class, 0));
- if(!IS_S4_OBJECT(This)) {
+ if(!Rf_isS4(This)) {
warning("rbinding SnpMatrix object without S4 object bit");
}
int nci = ncols(This);
@@ -151,7 +151,7 @@ SEXP snp_cbind(SEXP args) {
Class = R_class(This);
}
const char *cli = CHAR(STRING_ELT(Class, 0));
- if(!IS_S4_OBJECT(This)) {
+ if(!Rf_isS4(This)) {
warning("cbinding SnpMatrix object without S4 object bit");
}
SEXP Di = R_NilValue;
diff --git a/src/fst.c b/src/fst.c
index bbc39c0..5451a51 100644
--- a/src/fst.c
+++ b/src/fst.c
@@ -23,7 +23,7 @@ SEXP Fst(SEXP Snps, SEXP Group, SEXP HapMap) {
ifX = 0; /* to avoid warning message */
error("Argument error - class(Snps)");
}
- if(!IS_S4_OBJECT(Snps)) {
+ if(!Rf_isS4(Snps)) {
error("Argument error - Snps is not S4 object");
}
diff --git a/src/glm_test_R.c b/src/glm_test_R.c
index dc8ebef..fe9d9c8 100644
--- a/src/glm_test_R.c
+++ b/src/glm_test_R.c
@@ -24,7 +24,7 @@ SEXP snp_lhs_score(const SEXP Y, const SEXP X, const SEXP Stratum,
} else {
classY = CHAR(STRING_ELT(getAttrib(Y, R_ClassSymbol), 0));
}
- if(!IS_S4_OBJECT(Y)) {
+ if(!Rf_isS4(Y)) {
error("Y in snp_lhs_score is missing S4 Object bit");
}
int ifX = 0;
@@ -443,7 +443,7 @@ SEXP snp_rhs_score(SEXP Y, SEXP family, SEXP link,
ifX = 1;
else
error("Argument error - class(Z)");
- if (!IS_S4_OBJECT(Z)) {
+ if (!Rf_isS4(Z)) {
error("Z in snp_rhs_score is missing S4 Object bit");
}
@@ -1008,7 +1008,7 @@ SEXP snp_lhs_estimate(const SEXP Y, const SEXP X, const SEXP Stratum,
} else {
classY = CHAR(STRING_ELT(getAttrib(Y, R_ClassSymbol), 0));
}
- if(!IS_S4_OBJECT(Y)) {
+ if(!Rf_isS4(Y)) {
error("Y in snp_lhs_score is missing S4 Object bit");
}
int ifX = 0;
@@ -1365,7 +1365,7 @@ SEXP snp_rhs_estimate(SEXP Y, SEXP family, SEXP link,
} else {
classZ = CHAR(STRING_ELT(getAttrib(Z, R_ClassSymbol), 0));
}
- if(!IS_S4_OBJECT(Z)) {
+ if(!Rf_isS4(Z)) {
error("Z in snp_rhs_score is missing S4 Object bit");
}
int ifX = 0;
diff --git a/src/single_snp_tests.c b/src/single_snp_tests.c
index 08bd098..b577300 100644
--- a/src/single_snp_tests.c
+++ b/src/single_snp_tests.c
@@ -67,7 +67,7 @@ SEXP score_single(const SEXP Phenotype, const SEXP Stratum, const SEXP Snps,
ifX = 0; /* to avoid warning message */
error("Argument error - class(Snps)");
}
- if(!IS_S4_OBJECT(Snps)) {
+ if(!Rf_isS4(Snps)) {
error("Argument error - Snps is not S4 object");
}
diff --git a/src/snp_summary.c b/src/snp_summary.c
index 6f181c9..c2f1c73 100644
--- a/src/snp_summary.c
+++ b/src/snp_summary.c
@@ -24,7 +24,7 @@ SEXP X_snp_summary(const SEXP Snps, const SEXP Rules, const SEXP Uncertain) {
if (Snps == R_NilValue) {
error("Argument error - Snps = NULL");
}
- if(!IS_S4_OBJECT(Snps)) {
+ if(!Rf_isS4(Snps)) {
error("Argument error - Snps is not S4 object");
}
const unsigned char *snps = RAW(Snps);
@@ -298,7 +298,7 @@ SEXP snp_summary(const SEXP Snps, const SEXP Rules, const SEXP Uncertain) {
if (Snps == R_NilValue) {
error("Argument error - Snps = NULL");
}
- if(!IS_S4_OBJECT(Snps)) {
+ if(!Rf_isS4(Snps)) {
error("Argument error - Snps is not S4 object");
}
const unsigned char *snps = RAW(Snps);
@@ -538,7 +538,7 @@ SEXP row_summary(const SEXP Snps) {
if (Snps == R_NilValue) {
error("Argument error - Snps = NULL");
}
- if(!IS_S4_OBJECT(Snps)) {
+ if(!Rf_isS4(Snps)) {
error("Argument error - Snps is not S4 object");
}
const unsigned char *snps = RAW(Snps);
diff --git a/src/tdt.c b/src/tdt.c
index 000d1c7..634e1b3 100644
--- a/src/tdt.c
+++ b/src/tdt.c
@@ -57,7 +57,7 @@ SEXP score_tdt(const SEXP Proband, const SEXP Father, const SEXP Mother,
ifX = 0; /* to avoid warning message */
error("Argument error - class(Snps)");
}
- if(!IS_S4_OBJECT(Snps)) {
+ if(!Rf_isS4(Snps)) {
error("Argument error - Snps is not S4 object");
}
--
2.52.0
@@ -0,0 +1,259 @@
From 633aa6e3f671e9b58b3508b3944ff0dd45f34f8a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Herv=C3=A9=20Pag=C3=A8s?= <hpages.on.github@gmail.com>
Date: Thu, 5 Mar 2026 14:58:23 -0800
Subject: [PATCH] SparseArray 1.11.11: Get rid of non-API calls to R
From 65383c02f986832b1416c6ad39da800d8ced05df Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Herv=C3=A9=20Pag=C3=A8s?= <hpages.on.github@gmail.com>
Date: Tue, 31 Mar 2026 11:38:20 -0700
Subject: [PATCH] SparseArray 1.11.13: Use R_getVar() instead of findVar() when
R >= 4.6.0
---
DESCRIPTION | 2 +-
src/Makevars | 1 +
src/Rvector_utils.c | 15 ++++++++-------
src/SparseArray_aperm.c | 2 +-
src/SparseArray_matrixStats.c | 5 +++--
src/SparseArray_subassignment.c | 6 +++---
src/SparseVec.h | 3 ++-
src/leaf_utils.c | 5 +++--
src/test.c | 3 +++
9 files changed, 25 insertions(+), 17 deletions(-)
diff --git a/src/Makevars b/src/Makevars
index 0ee3615..1c5b86e 100644
--- a/src/Makevars
+++ b/src/Makevars
@@ -1,2 +1,3 @@
+## See https://cran.r-project.org/doc/manuals/r-release/R-exts.html#OpenMP-support
PKG_CFLAGS = $(SHLIB_OPENMP_CFLAGS)
PKG_LIBS = $(SHLIB_OPENMP_CFLAGS)
diff --git a/src/Rvector_utils.c b/src/Rvector_utils.c
index ad80168..7e61ac1 100644
--- a/src/Rvector_utils.c
+++ b/src/Rvector_utils.c
@@ -4,6 +4,7 @@
****************************************************************************/
#include "Rvector_utils.h"
+#include <R_ext/Altrep.h> /* only for DATAPTR_RW() */
#include <string.h> /* for memset() and memcpy() */
@@ -242,7 +243,7 @@ void _fill_Rvector_block_with_val(SEXP Rvector,
(const SEXP) val);
return;
}
- _set_elts_to_val(TYPEOF(Rvector), DATAPTR(Rvector),
+ _set_elts_to_val(TYPEOF(Rvector), DATAPTR_RW(Rvector),
block_offset, block_len, val);
}
@@ -260,7 +261,7 @@ void _fill_Rvector_block_with_zeros(SEXP Rvector,
R_NilValue);
return;
}
- _set_elts_to_zero(Rtype, DATAPTR(Rvector), block_offset, block_len);
+ _set_elts_to_zero(Rtype, DATAPTR_RW(Rvector), block_offset, block_len);
return;
}
@@ -268,7 +269,7 @@ void _fill_Rvector_block_with_zeros(SEXP Rvector,
void _fill_Rvector_block_with_ones(SEXP Rvector,
R_xlen_t block_offset, R_xlen_t block_len)
{
- _set_elts_to_one(TYPEOF(Rvector), DATAPTR(Rvector),
+ _set_elts_to_one(TYPEOF(Rvector), DATAPTR_RW(Rvector),
block_offset, block_len);
return;
}
@@ -277,7 +278,7 @@ void _fill_Rvector_block_with_ones(SEXP Rvector,
void _fill_Rvector_block_with_minus_one(SEXP Rvector,
R_xlen_t block_offset, R_xlen_t block_len)
{
- _set_elts_to_minus_one(TYPEOF(Rvector), DATAPTR(Rvector),
+ _set_elts_to_minus_one(TYPEOF(Rvector), DATAPTR_RW(Rvector),
block_offset, block_len);
return;
}
@@ -293,7 +294,7 @@ void _fill_Rvector_block_with_NA(SEXP Rvector,
NA_STRING);
return;
}
- _set_elts_to_NA(Rtype, DATAPTR(Rvector), block_offset, block_len);
+ _set_elts_to_NA(Rtype, DATAPTR_RW(Rvector), block_offset, block_len);
return;
}
@@ -460,7 +461,7 @@ void _fill_Rvector_subset_with_zeros(SEXP Rvector,
R_NilValue);
return;
}
- _set_selected_elts_to_zero(Rtype, DATAPTR(Rvector),
+ _set_selected_elts_to_zero(Rtype, DATAPTR_RW(Rvector),
selection, selection_len, selection_offset);
return;
}
@@ -470,7 +471,7 @@ void _fill_Rvector_subset_with_ones(SEXP Rvector,
const int *selection, int selection_len,
R_xlen_t selection_offset)
{
- _set_selected_elts_to_one(TYPEOF(Rvector), DATAPTR(Rvector),
+ _set_selected_elts_to_one(TYPEOF(Rvector), DATAPTR_RW(Rvector),
selection, selection_len, selection_offset);
return;
}
diff --git a/src/SparseArray_aperm.c b/src/SparseArray_aperm.c
index 0bd092e..bbeaf2c 100644
--- a/src/SparseArray_aperm.c
+++ b/src/SparseArray_aperm.c
@@ -721,7 +721,7 @@ static SEXP REC_grow_output_tree(const int *dim, int ndim,
const type *nzvals_p = NULL; /* -Wmaybe-uninitialized */ \
type v; \
if (nzvals != R_NilValue) { /* standard leaf */ \
- nzvals_p = (const type *) DATAPTR(nzvals); \
+ nzvals_p = DATAPTR_RO(nzvals); \
} else { /* lacunar leaf */ \
v = type ## 1; \
} \
diff --git a/src/SparseArray_matrixStats.c b/src/SparseArray_matrixStats.c
index b626553..debacf6 100644
--- a/src/SparseArray_matrixStats.c
+++ b/src/SparseArray_matrixStats.c
@@ -16,6 +16,7 @@
#include "leaf_utils.h"
#include "SparseArray_summarization.h"
+#include <R_ext/Altrep.h> /* only for DATAPTR_RW() */
#include <string.h> /* for memcpy() and memset() */
@@ -272,7 +273,7 @@ SEXP C_colStats_SVT(SEXP x_dim, SEXP x_dimnames, SEXP x_type,
int warn = 0;
REC_colStats_SVT(x_SVT, x_bg_is_na, INTEGER(x_dim), LENGTH(x_dim),
&summarize_op,
- DATAPTR(ans), ans_Rtype,
+ DATAPTR_RW(ans), ans_Rtype,
out_incs, ans_ndim, pardim,
&warn);
if (warn)
@@ -1175,7 +1176,7 @@ SEXP C_rowStats_SVT(SEXP x_dim, SEXP x_dimnames, SEXP x_type,
SVT_rowMinsMaxs(x_SVT, x_Rtype, x_bg_is_na,
INTEGER(x_dim), LENGTH(x_dim),
opcode, narm,
- DATAPTR(ans), LENGTH(ans), ans_Rtype,
+ DATAPTR_RW(ans), LENGTH(ans), ans_Rtype,
out_incs, ans_ndim, nstrata);
break;
case SUM_OPCODE:
diff --git a/src/SparseArray_subassignment.c b/src/SparseArray_subassignment.c
index 4cf1c3d..c3b2d5e 100644
--- a/src/SparseArray_subassignment.c
+++ b/src/SparseArray_subassignment.c
@@ -966,13 +966,13 @@ static inline int next_coords0(NindexIterator *Nindex_iter)
midx_p++;
coords0_p++;
}
- printf("coords0: ");
+ //printf("coords0: ");
coords0_p = Nindex_iter->coords0_buf;
for (along = Nindex_iter->margin; along < Nindex_iter->ndim; along++) {
- printf(" %3d", *coords0_p);
+ //printf(" %3d", *coords0_p);
coords0_p++;
}
- printf("\n");
+ //printf("\n");
return 1;
}
diff --git a/src/SparseVec.h b/src/SparseVec.h
index 894709b..73cd841 100644
--- a/src/SparseVec.h
+++ b/src/SparseVec.h
@@ -5,6 +5,7 @@
#include "Rvector_utils.h"
+#include <R_ext/Altrep.h> /* only for DATAPTR_RW() */
#include <limits.h> /* for INT_MAX */
@@ -122,7 +123,7 @@ static inline SparseVec toSparseVec(SEXP nzvals, SEXP nzoffs,
if (IS_STRSXP_OR_VECSXP(Rtype)) {
sv.nzvals = nzvals;
} else {
- sv.nzvals = DATAPTR(nzvals);
+ sv.nzvals = DATAPTR_RW(nzvals);
}
}
sv.nzoffs = INTEGER(nzoffs);
diff --git a/src/leaf_utils.c b/src/leaf_utils.c
index e8066c3..c5ff3aa 100644
--- a/src/leaf_utils.c
+++ b/src/leaf_utils.c
@@ -10,6 +10,7 @@
#include "SparseVec_subsetting.h"
#include "SparseVec_subassignment.h"
+#include <R_ext/Altrep.h> /* only for DATAPTR_RW() */
#include <string.h> /* for memcpy() */
@@ -129,7 +130,7 @@ SEXP _make_leaf_from_two_arrays(SEXPTYPE Rtype,
return ans;
}
ans_nzvals = PROTECT(allocVector(Rtype, nzcount));
- memcpy(DATAPTR(ans_nzvals), nzvals_p, Rtype_size * nzcount);
+ memcpy(DATAPTR_RW(ans_nzvals), nzvals_p, Rtype_size * nzcount);
}
SEXP ans = zip_leaf(ans_nzvals, ans_nzoffs, 0);
UNPROTECT(2);
@@ -156,7 +157,7 @@ static SEXP make_leaf_from_Rvector_subset(SEXP Rvector,
if (avoid_copy_if_all_selected &&
selection_offset == 0 && selection_len == XLENGTH(Rvector) &&
- ATTRIB(Rvector) == R_NilValue)
+ !ANY_ATTRIB(Rvector))
{
/* The full 'Rvector' is selected so can be reused as-is
with no need to copy the selected elements to a new SEXP. */
diff --git a/src/test.c b/src/test.c
index 493538f..2205fa2 100644
--- a/src/test.c
+++ b/src/test.c
@@ -111,6 +111,9 @@ SEXP C_simple_omp_parallel_for_loop(SEXP nloop)
for (int i = 0; i < INTEGER(nloop)[0]; i++) {
#ifdef _OPENMP
int thread_num = omp_get_thread_num();
+ /* Can't use Rprintf() here because it's not thread-safe (it
+ can trigger R's garbage collector which itself is not
+ thread-safe). */
printf("thread_num = %d\n", thread_num);
#endif
}
diff --git a/src/readSparseCSV.c b/src/readSparseCSV.c
index a3d8da0..de1cb95 100644
--- a/src/readSparseCSV.c
+++ b/src/readSparseCSV.c
@@ -11,6 +11,7 @@
#include "ExtendableJaggedArray.h"
#include <R_ext/Connections.h>
+#include <Rversion.h>
#include <string.h> /* for memcpy() */
@@ -111,7 +112,11 @@ static SEXP dump_env_as_list_or_R_NilValue(SEXP env, int ans_len)
is_empty = 1;
for (i = 0; i < ans_len; i++) {
key = PROTECT(idx0_to_key(i));
+#if R_VERSION < R_Version(4, 6, 0)
ans_elt = findVar(install(translateChar(key)), env);
+#else
+ ans_elt = R_getVar(install(translateChar(key)), env, FALSE);
+#endif
UNPROTECT(1);
if (ans_elt == R_UnboundValue)
continue;
@@ -1,46 +0,0 @@
From 1654599ea228efdd7b378ff44ed4e19d547641e0 Mon Sep 17 00:00:00 2001
From: Bradley Lowekamp <blowekamp@mail.nih.gov>
Date: Wed, 29 Apr 2026 16:22:49 +0000
Subject: [PATCH 1/8] BUG: Replace removed CLOENV with R_ClosureEnv for R 4.6.0
compatibility
R 4.6.0 removed the non-API macro CLOENV from its public headers.
The replacement R_ClosureEnv() was added in R 4.5.0. Add a version-
guarded backport so that builds against older R versions (< 4.5.0)
continue to work.
Fixes #2574
---
Wrapping/R/sitkRCommand.cxx | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/Wrapping/R/sitkRCommand.cxx b/Wrapping/R/sitkRCommand.cxx
index 216a9327b8..c3a62bead9 100644
--- a/Wrapping/R/sitkRCommand.cxx
+++ b/Wrapping/R/sitkRCommand.cxx
@@ -19,10 +19,15 @@
// The python header defines _POSIX_C_SOURCE without a preceding #undef
#include <iostream>
#include <Rinternals.h>
+#include <Rversion.h>
#include "sitkRCommand.h"
#include "sitkExceptionObject.h"
+// R_ClosureEnv was added in R 4.5.0, CLOENV was removed in R 4.6.0
+#if R_VERSION < R_Version(4, 5, 0)
+# define R_ClosureEnv(x) CLOENV(x)
+#endif
namespace itk
{
@@ -86,7 +91,7 @@ RCommand::SetFunctionClosure(SEXP FN)
// element
R_fcall = PROTECT(Rf_lang1(this->m_FunctionClosure));
this->SetCallbackRCallable(R_fcall);
- this->SetCallbackREnviron(CLOENV(this->m_FunctionClosure));
+ this->SetCallbackREnviron(R_ClosureEnv(this->m_FunctionClosure));
UNPROTECT(1);
}
}
@@ -1,171 +0,0 @@
From 494259f19b3ca4ad0b11c858bc3ba9b587fa2ed5 Mon Sep 17 00:00:00 2001
From: Bradley Lowekamp <blowekamp@mail.nih.gov>
Date: Thu, 30 Apr 2026 16:09:54 +0000
Subject: [PATCH 1/2] [R] Fix compilation with R 4.6.0 which removed non-API
macros #3407
R 4.6.0 (April 2025) removed the non-API macro SET_S4_OBJECT and made
CHARACTER_POINTER return a const pointer, breaking compilation of SWIG
generated R code.
Replace with proper R API equivalents:
- SET_S4_OBJECT(x) -> x = Rf_asS4(x, TRUE, 0) (3 sites in rrun.swg)
- CHARACTER_POINTER(v)[i] = ... -> SET_STRING_ELT(v, i, ...) (2 sites in std_vector.i)
- CHARACTER_POINTER() via pstr -> STRING_ELT(, i) directly (argcargv.i)
All replacement APIs have been available since R 2.x so no version
guards are required.
---
CHANGES.current | 6 ++++++
Lib/r/argcargv.i | 4 +---
Lib/r/rrun.swg | 6 +++---
Lib/r/std_vector.i | 4 ++--
4 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/Lib/r/argcargv.i b/Lib/r/argcargv.i
index 73380f4e2c9..af7aa14d66c 100644
--- a/Lib/r/argcargv.i
+++ b/Lib/r/argcargv.i
@@ -14,7 +14,6 @@
%}
%typemap(in) (int ARGC, char **ARGV) {
$1_ltype i;
- SEXP *pstr;
if ($input == R_NilValue) {
/* Empty array */
$1 = 0;
@@ -22,14 +21,13 @@
SWIG_exception_fail(SWIG_RuntimeError, "Wrong array type.");
} else {
$1 = Rf_length($input);
- pstr = CHARACTER_POINTER($input);
}
$2 = ($2_ltype) malloc(($1+1)*sizeof($*2_ltype));
if ($2 == NULL) {
SWIG_exception_fail(SWIG_MemoryError, "Memory allocation failed.");
}
for (i = 0; i < $1; i++) {
- $2[i] = ($*2_ltype)STRING_VALUE(pstr[i]);
+ $2[i] = ($*2_ltype)STRING_VALUE(STRING_ELT($input, i));
}
$2[i] = NULL;
}
diff --git a/Lib/r/rrun.swg b/Lib/r/rrun.swg
index 4c03d5884d7..5dee391f32f 100644
--- a/Lib/r/rrun.swg
+++ b/Lib/r/rrun.swg
@@ -267,7 +267,7 @@ SWIG_MakePtr(void *ptr, const char *typeName, int flags)
R_RegisterCFinalizer(external, R_SWIG_ReferenceFinalizer);
r_obj = SET_SLOT(r_obj, Rf_mkString((char *) "ref"), external);
- SET_S4_OBJECT(r_obj);
+ r_obj = Rf_asS4(r_obj, TRUE, 0);
Rf_unprotect(2);
return(r_obj);
@@ -285,7 +285,7 @@ R_SWIG_create_SWIG_R_Array(const char *typeName, SEXP ref, int len)
Rf_protect(arr = R_do_slot_assign(arr, Rf_mkString("dims"), Rf_ScalarInteger(len)));
Rf_unprotect(3);
- SET_S4_OBJECT(arr);
+ arr = Rf_asS4(arr, TRUE, 0);
return arr;
}
@@ -308,7 +308,7 @@ SWIG_R_NewPointerObj(void *ptr, swig_type_info *type, int flags) {
}
rptr = R_MakeExternalPtr(ptr,
R_MakeExternalPtr(type, R_NilValue, R_NilValue), R_NilValue);
- SET_S4_OBJECT(rptr);
+ rptr = Rf_asS4(rptr, TRUE, 0);
return rptr;
}
diff --git a/Lib/r/std_vector.i b/Lib/r/std_vector.i
index 6b32c9f6fc2..7db6d3814ac 100644
--- a/Lib/r/std_vector.i
+++ b/Lib/r/std_vector.i
@@ -203,7 +203,7 @@
PROTECT(result = Rf_allocVector(STRSXP, val->size()));
for (unsigned pos = 0; pos < val->size(); pos++)
{
- CHARACTER_POINTER(result)[pos] = Rf_mkChar(((*val)[pos]).c_str());
+ SET_STRING_ELT(result, pos, Rf_mkChar(((*val)[pos]).c_str()));
}
UNPROTECT(1);
return(result);
@@ -669,7 +669,7 @@
// Fill the R vector
for (unsigned vpos = 0; vpos < val->at(pos).size(); ++vpos)
{
- CHARACTER_POINTER(VECTOR_ELT(result, pos))[vpos] = Rf_mkChar(val->at(pos).at(vpos).c_str());
+ SET_STRING_ELT(VECTOR_ELT(result, pos), vpos, Rf_mkChar(val->at(pos).at(vpos).c_str()));
}
}
UNPROTECT(1);
From 77d8826b46a967af158e982d56008aea2c8f6cb1 Mon Sep 17 00:00:00 2001
From: Erez Geva <ErezGeva2@gmail.com>
Date: Fri, 1 May 2026 18:47:42 +0200
Subject: [PATCH 2/2] Add versioned `R` testing
Signed-off-by: Erez Geva <ErezGeva2@gmail.com>
---
.github/workflows/linux.yml | 7 +++++++
Tools/CI-linux-install.sh | 20 +++++++++++++++++++-
configure.ac | 11 +++++++++++
3 files changed, 37 insertions(+), 1 deletion(-)
diff --git a/Tools/CI-linux-install.sh b/Tools/CI-linux-install.sh
index ad74ad3f21f..8f459899906 100644
--- a/Tools/CI-linux-install.sh
+++ b/Tools/CI-linux-install.sh
@@ -181,7 +181,25 @@ case "$SWIGLANG" in
fi
;;
"r")
- $RETRY sudo apt-get -qq install r-base
+ if [[ -n "$VER" ]]; then
+ # Should helps with old version, but do not work
+ #$RETRY sudo apt-get -qq remove r-base r-base-core r-base-dev r-base-html r-doc-html r-recommended
+ sudo sed -i 's%^# deb-src %deb-src %' /etc/apt/sources.list
+ sudo sed -i 's%^Types: deb$%Types: deb deb-src%' /etc/apt/sources.list.d/*
+ $RETRY sudo apt-get -qq update
+ $RETRY sudo apt-get -qq build-dep r-base
+ r_build=`mktemp -d`
+ r_tarball=R-$VER.tar.gz
+ URL=https://cran.r-project.org/src/base/R-${VER:0:1}
+ $RETRY wget $URL/$r_tarball
+ tar -xf "$r_tarball" --strip-components=1 -C "$r_build"
+ cd "$r_build"
+ ./configure
+ make
+ sudo make install
+ else
+ $RETRY sudo apt-get -qq install r-base
+ fi
;;
"ruby")
if [[ "$VER" ]]; then
diff --git a/configure.ac b/configure.ac
index e113f4b877c..e309b36ff45 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2292,6 +2292,17 @@ else
if test "x$RBIN" = xyes; then
AC_PATH_PROG(RBIN, R)
fi
+if test -n "$RBIN" && test -x "$RBIN"; then
+ r_min_version=2.4.0
+ AC_MSG_CHECKING([for R version])
+ r_version=`R --version | grep 'R version' | sed 's%^R version %%;s% (.*%%'`
+ AS_VERSION_COMPARE(["$r_version"], ["$r_min_version"],
+ [AC_MSG_RESULT([older then $r_min_version])
+ AS_UNSET([RBIN])], dnl bellow r_min_version
+ [AC_MSG_RESULT([$r_version])], dnl equal r_min_version
+ [AC_MSG_RESULT([$r_version])]) dnl above r_min_version
+fi
+
fi
AC_SUBST(RBIN)
+2 -2
View File
@@ -237,7 +237,7 @@ it.")
(define-public trealla
(package
(name "trealla")
(version "2.100.15")
(version "2.100.10")
(source
(origin
(method git-fetch)
@@ -246,7 +246,7 @@ it.")
(url "https://github.com/trealla-prolog/trealla")
(commit (string-append "v" version))))
(sha256
(base32 "1fr3h0hqk5bbzr8n415pd24n2nvxhyaxi03hn5s78q1yklynw13f"))
(base32 "09aqszk3kwjb8qznaywzvhir3nxkf6mkib68mkyn4f7siswb3apg"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(inputs
+2 -14
View File
@@ -18311,21 +18311,9 @@ is binding LibSass.")
(sha256
(base32 "1fj4zkcnx3mk7kbnf4d6pjgv331n17wzpphpwdnmr498ghbsph9k"))))
(build-system pyproject-build-system)
(arguments
(list
#:tests? #f ;circular dependency with python-aiohttp
#:phases
'(modify-phases %standard-phases
(add-after 'unpack 'python3.12-compatibility
(lambda _
(substitute* '("idna_ssl.py"
"tests/test_base.py")
(("import ssl")
"import ssl\nimport urllib3")
(("ssl.match_hostname")
"urllib3.util.ssl_match_hostname")))))))
(arguments (list #:tests? #f)) ;circular dependency with python-aiohttp
(native-inputs (list python-setuptools))
(propagated-inputs (list python-idna python-urllib3))
(propagated-inputs (list python-idna))
(home-page "https://github.com/aio-libs/idna-ssl")
(synopsis "Support Unicode(idna) domains for Python's @code{ssl} module")
(description
+2 -2
View File
@@ -1255,7 +1255,7 @@ base, via the @file{pythoncapi_compat.h} header file.")
(define-public micropython
(package
(name "micropython")
(version "1.28.0")
(version "1.26.1")
(source
(origin
(method url-fetch)
@@ -1263,7 +1263,7 @@ base, via the @file{pythoncapi_compat.h} header file.")
"releases/download/v" version
"/micropython-" version ".tar.xz"))
(sha256
(base32 "05d2gd3g8v3paxf4fin4cv5scgnc4yl0jdahpjs37nmqaybcahsf"))
(base32 "165c8g60f5zf82gw2d94snyjmcgn999jn4i8ngyc0wk2vwa6bghj"))
(modules '((guix build utils)))
(snippet
'(begin
+30 -31
View File
@@ -202,7 +202,7 @@
;;
;; CODE:
(define %racket-version "9.1") ; Remember to update chez-scheme-for-racket!
(define %racket-version "8.18") ; Remember to update chez-scheme-for-racket!
(define %racket-commit
(string-append "v" %racket-version))
(define %racket-origin
@@ -212,7 +212,7 @@
(url "https://github.com/racket/racket")
(commit %racket-commit)))
(sha256
(base32 "1yc6lkydg32998ajnqws83zakksmbp3hb21spq0sfaq4v7wg2ng6"))
(base32 "0m38im7a3b3w7sdl15vpsrx7dxw5iz22f1zzffy1bkbbqz45pm87"))
(file-name (git-file-name "racket" %racket-version))
(patches (search-patches "racket-chez-scheme-bin-sh.patch"
"racket-launcher-config-dir.patch"
@@ -695,7 +695,6 @@ DrRacket IDE, are not included.")
("net-lib" "pkgs/net-lib")
("racket-doc" "pkgs/racket-doc")
("racket-index" "pkgs/racket-index")
("racket-index-exe" "pkgs/racket-index-exe")
("scheme-doc" "pkgs/scheme-doc")
("sandbox-lib" "pkgs/sandbox-lib")
("sequence-tools-lib" "pkgs/sequence-tools-lib")
@@ -707,10 +706,10 @@ DrRacket IDE, are not included.")
"class-iop" (base32 "08z57q83cr7wnh6g8ah3hdhmsmf9zp1jfs7yvxv188l3hzvygy5l")
'("class-iop-lib"))
(simple-racket-origin
"compatibility" (base32 "0q5k4p44sf2y4gl69js11qvicyzqwy16ry74bvj1vrn8i8xws55b")
"compatibility" (base32 "1d1py9wizi4jnzak7b6d0p9filxv1x9mlx5gsp3yhcjajigq182p")
'("compatibility" "compatibility-doc" "compatibility-lib"))
(simple-racket-origin
"contract-profile" (base32 "068z8flwcznqg0bjk227i2qapqbciyrckgqf8mvk57gxmr6zh3d3")
"contract-profile" (base32 "1xm2z8g0dpv5d9h2sg680vx1a8ix9gbsdpxxb8qv1w7akp73paj3")
'(("contract-profile" ".")))
(simple-racket-origin
"data" (base32 "11ai6c9h0brbblc6xn045ajj4gyrvbjpk1pqcqm1m0dy9q2rzd4a")
@@ -719,7 +718,7 @@ DrRacket IDE, are not included.")
"datalog" (base32 "0nf6cy4djpyhfvgpa6yn72apbz9s83gp0qg95pzjd0az4v6qwq1s")
'(("datalog" ".")))
(simple-racket-origin
"db" (base32 "09f2wysqmgs46nbzmwrhbn6jqnkpj6bsabm6s6kw8qmp6azca9q2")
"db" (base32 "0qwl8gyd71sm56kcs021g99cpw5bibaycvk1x7ng69jhkylg6q6f")
'("db" "db-doc" "db-lib"))
(simple-racket-origin
"deinprogramm" (base32 "1zkasf94gzp97q0fhrd065d56zv10h0j0ncmaghzglkmjj8c3vvx")
@@ -732,10 +731,10 @@ DrRacket IDE, are not included.")
"distributed-places" (base32 "1dajpkj9balqcpv6cdk9hwjz592h1vq8rrx5vncariiac4vbdpa0")
'("distributed-places" "distributed-places-doc" "distributed-places-lib"))
(simple-racket-origin
"draw" (base32 "157r861rx2avbjpqhrrxwdqxwf5ksvw38km3pw7rxiwvwh9nys8k")
"draw" (base32 "1nny22h0hnd40qs3ndkhfrgg793y6f4gl9jpdz1g2k0cpr3818rg")
'("draw" "draw-doc" "draw-lib"))
(simple-racket-origin
"drracket" (base32 "17sszhx5nd549w7kj6pd3c3cyjps2swbp7rmg36yaxm71pli5gs5")
"drracket" (base32 "07qh9dzgd2xhd0375z78vcsf32za08cacj4s2mcrhilcvcgw9s0j")
'("drracket"
"drracket-core"
"drracket-core-lib"
@@ -754,7 +753,7 @@ DrRacket IDE, are not included.")
"eopl" (base32 "0qihajdpwf2q7hbs6fsw6mmmzy57kgzgry3vyp9z8w7ay8df3w15")
'(("eopl" ".")))
(simple-racket-origin
"errortrace" (base32 "02z80khr4kqhcpq1k3djz7jgkwa31vnacid4qx8naab9dkbcp5x8")
"errortrace" (base32 "0l9k2rx6z4jkid7kxhbs763s66pxbzvfrgxajykbrmqkv77lhb3w")
'("errortrace" "errortrace-doc" "errortrace-lib"))
(simple-racket-origin
"expeditor" (base32 "1nk88jq0blzcw45fr8nwp024cysplayi3paaay4z824lkn1smzaa")
@@ -771,13 +770,13 @@ DrRacket IDE, are not included.")
"games" (base32 "13z7fnbr48s98lmfxc0nbfhbqkd4hphymy2r63hqm783xzn6ylzi")
'(("games" ".")))
(simple-racket-origin
"gui" (base32 "1c47622y5cf1p7nnbycaf53m8vakf55lqzv8byqzj7zcvcsh8s16")
"gui" (base32 "0qkxa8cq0cblriamd7x502g918kjvq4348l6c8qmqdpn9cw9mg2h")
'("gui" "gui-doc" "gui-lib" "tex-table"))
(simple-racket-origin
"gui-pkg-manager" (base32 "1f0ssg37kdk3xn9js616ns345565q39j9h51wzd99753iqd45m92")
"gui-pkg-manager" (base32 "024880k3wmvkqhjc954prrkavwv3bgafcw00ajz7h2llygh0aqpl")
'("gui-pkg-manager-lib"))
(simple-racket-origin
"htdp" (base32 "02a5zny1njys40jfsi2spw82ar0kkbfddpk10al822ajs1manhak")
"htdp" (base32 "14bdv86zxs87rvvvbwvq3x0sqpg1hj16whjcv20r96c26b1xxj36")
'("htdp" "htdp-doc" "htdp-lib"))
(simple-racket-origin
"html" (base32 "18n1jnjgzfknc8nv8dppi85nb8q08gqdwkg6hfjk08x0p00anx2x")
@@ -792,16 +791,16 @@ DrRacket IDE, are not included.")
"lazy" (base32 "0rn8kd0ih7aw6fj1g7jdvi5978a6q4hyd6gbh89nb6j5ijvlgn43")
'(("lazy" ".")))
(simple-racket-origin
"macro-debugger" (base32 "08qmkrvm3qvac4829izmlwl9qrlsc1f6y8yqiradibhm05k7rwg7")
"macro-debugger" (base32 "133b74pxavbafcsmp34kgvwmx1l6xx4bykzvgwwjg3kg2fa5bg1g")
'("macro-debugger" "macro-debugger-text-lib"))
(simple-racket-origin
"main-distribution" (base32 "0gk7wrwy0r1yllk827h8awfswngl1lhlq765d6s42y841v33jn0i")
"main-distribution" (base32 "0m2n9s32s8a4a2gn4ywrm9l8jycdm5ayi5w9kh5wchhrrw7qzq7y")
'(("main-distribution" ".")))
(simple-racket-origin
"make" (base32 "10852fj30bz5r46c3d99s37fkgy5yh44gb01j29sf3kxnhi0g2sa")
'(("make" ".")))
(simple-racket-origin
"math" (base32 "1mgqxx9lbwhd8if3mxz7ji2wryvihjmq5imn2316skkvr16yy8mx")
"math" (base32 "1399mynmcrybipjsy2ikzs600jjxda0lah653w3vx2lfspsn31if")
'("math" "math-doc" "math-lib"))
(simple-racket-origin
"mysterx" (base32 "11p9jzrafw0hizhl0cs4sxx7rv281185q8hryic2rpk0kzjdyr48")
@@ -810,7 +809,7 @@ DrRacket IDE, are not included.")
"mzcom" (base32 "0rc9pfj7gwm5azghqvcibz6si1x5s2v8mr2yngk7ssq9gzfbi6a4")
'(("mzcom" ".")))
(simple-racket-origin
"mzscheme" (base32 "0p7bp8rmzw7k12sjxdqlxf31d8ama4wv9qz6ryvnmjn2qyhrr3d1")
"mzscheme" (base32 "04kyrhznq46mklacf7pms4fv47zsimqqk3948r3w2ym9n04fhjsx")
'("mzscheme" "mzscheme-doc" "mzscheme-lib"))
(racket-packages-origin
"net-cookies" (origin
@@ -819,7 +818,7 @@ DrRacket IDE, are not included.")
(url "https://github.com/RenaissanceBug/racket-cookies")
(commit %racket-commit)))
(sha256 (base32
"0v6lbpv8ly4jwpjr3rk0q6izpsnfp45ysgrhngpw7jshkjc5wgyd"))
"1fbl717w5801bydx3nzwxddd1rh1cc0gxwpjc7ka9zh5ak09sb0w"))
(file-name
(git-file-name "RenaissanceBug-racket-cookies" %racket-version)))
'("net-cookies" "net-cookies-doc" "net-cookies-lib"))
@@ -839,16 +838,16 @@ DrRacket IDE, are not included.")
"option-contract" (base32 "1914dcxy6qzpg3cpnzdm9lj0kwyw8xdb85mwiamqfkbg0xlyyhpa")
'("option-contract" "option-contract-doc" "option-contract-lib"))
(simple-racket-origin
"parser-tools" (base32 "0dp99d1a47kqyg2iqdijm5781qnd571iwvg85dvrjc76ab4pccgd")
"parser-tools" (base32 "0i822p7ik6q03l7mrlf0qb63xdxvx06yl5lg1g1qri5wmi5xj0pb")
'("parser-tools" "parser-tools-doc" "parser-tools-lib"))
(simple-racket-origin
"pconvert" (base32 "0xw9f9692v2qp16fwmwmwmrb118kpz259vmx8cq6s9vsw0112zpq")
'("pconvert-lib" "pconvert-doc"))
(simple-racket-origin
"pict" (base32 "1xs1k98nr052p5v30abn7kl8pm1rdwj8xqvrghw8b62bvhhb072a")
"pict" (base32 "17pldgiifmwi968dwlk23c1wnrlks0x7aj5jdmdfsf9xgq31wkb5")
'("pict" "pict-doc" "pict-lib"))
(simple-racket-origin
"pict-snip" (base32 "1qrqbigw6arhccqgqzblfqqcpsdy15dwb0y22axwxgpw1ax0ki6f")
"pict-snip" (base32 "081nwiy4a0n4f7xws16hqbhf0j3kz5alizndi3nnyr3chm4kng6x")
'("pict-snip" "pict-snip-doc" "pict-snip-lib"))
(simple-racket-origin
"picturing-programs" (base32 "1a3d6nw9n827b4711nvgrnw7w47k4fxvk8c2a8br6a1l748kxkwy")
@@ -866,7 +865,7 @@ DrRacket IDE, are not included.")
"preprocessor" (base32 "1p5aid58ifnjy4xl0ysh85cq39k25661v975jrpk182z3k5621mg")
'(("preprocessor" ".")))
(simple-racket-origin
"profile" (base32 "1n6jlhkq0zs2sd132k92nvw08qscadjz3d6p2r5pjlcdawkmkik0")
"profile" (base32 "10lv3iz58hqk043llnbqrkmjnm1pbvr4j1j188g85zg798rqyjzs")
'("profile" "profile-doc" "profile-lib"))
(racket-packages-origin
"quickscript" (origin
@@ -896,7 +895,7 @@ DrRacket IDE, are not included.")
(git-file-name "jeapostrophe-racket-cheat" %racket-version)))
'(("racket-cheat" ".")))
(simple-racket-origin
"racklog" (base32 "0i2jnghb5vqmk2f0cppgggyp73zy1q0dlhpvxrzdxw39skmhmgkc")
"racklog" (base32 "0fr8xij0sssfnmwn6dfdi4jj3l62f2yj3jrjljv13kaycrfls032")
'(("racklog" ".")))
(simple-racket-origin
"rackunit" (base32 "191x4lgxg1bbkimdndg6j562zyxq48l0g21f9j2ln2hmh9s1v065")
@@ -915,7 +914,7 @@ DrRacket IDE, are not included.")
"realm" (base32 "0rlvwyd6rpyl0zda4a5p8dp346fvqzc8555dgfnrhliymkxb6x4g")
'(("realm" ".")))
(simple-racket-origin
"redex" (base32 "1gg36wpd5kw01dwz353j5xvd2c673aws5l3jn2h2rzqlslk49dw7")
"redex" (base32 "1h60mhaaiiwqcnmskqfrl6jhg4d97xjdcxnhw9krm4aysa9b9bwf")
'("redex"
"redex-benchmark"
"redex-doc"
@@ -930,7 +929,7 @@ DrRacket IDE, are not included.")
"scheme-lib" (base32 "0pcf0y8rp4qyjhaz5ww5sr5diq0wpcdfrrnask7zapyklzx1jx8x")
'(("scheme-lib" ".")))
(simple-racket-origin
"scribble" (base32 "1h6rkkbvxa6fwcpv6y5n14y984z4bxlhn04hhv8r7398a6jsldg6")
"scribble" (base32 "0pg8brgyyziw3y8fp6ls6ii7i02cmm5168i4zmqfxjzywswljf17")
'("scribble"
"scribble-doc"
"scribble-html-lib"
@@ -956,13 +955,13 @@ DrRacket IDE, are not included.")
"slatex" (base32 "0pkm2isbbdk63slrbsxcql7rr0wdrw5kapw1xq4ps5k8dhlzv8x0")
'(("slatex" ".")))
(simple-racket-origin
"slideshow" (base32 "1aprcapyj0362lfh2pbcyxf4r2k01zmp6yy9ppag0xbz0jw437im")
"slideshow" (base32 "0dyg20qs40s2d6ha28zb9h5x4v7phkddinqm446b4jishyrg7dqc")
'("slideshow" "slideshow-doc" "slideshow-exe" "slideshow-lib" "slideshow-plugin"))
(simple-racket-origin
"snip" (base32 "10727bi2ybn2ahlkpikdknwfzfsppaw5wkvjmzd380jp1fw91q67")
"snip" (base32 "1jpy5728w9bszgsjczlzrjjxsvqlcn4ah6gd3rp0plp8zzk9mq0s")
'("snip" "snip-lib"))
(simple-racket-origin
"typed-racket" (base32 "1cmp3065fp9lm6rsfml7x5bvnilh1fs9k0511l11qdismz2sndpy")
"typed-racket" (base32 "00d5pb5h34066q4prb9v5s5m9ggbby31f3anshd9vfsrzhd38p4n")
'("source-syntax"
"typed-racket"
"typed-racket-compatibility"
@@ -973,7 +972,7 @@ DrRacket IDE, are not included.")
"srfi" (base32 "07q7wdgnf88z1rq0bfpn4b41abhfswa38c0s2hkn325blk53k4a6")
'("srfi" "srfi-doc" "srfi-lib" "srfi-lite-lib"))
(simple-racket-origin
"string-constants" (base32 "085anm6s5ghg5bfggavknpr52py1a72qwjihvp0rnxpkf181sn8c")
"string-constants" (base32 "0llalgdncn18ix5xnx82yyms221g47xh7s3w6inch53ip3yc6ksr")
'("string-constants" "string-constants-doc" "string-constants-lib"))
(simple-racket-origin
"swindle" (base32 "1q8vdxpzczzwdw2mys2caab45yvadmqkixsr29k8pl03n8dsg8j9")
@@ -985,16 +984,16 @@ DrRacket IDE, are not included.")
"trace" (base32 "1zx0kfbacidg5rllbvx842x949ra22n004irs3vm1hqmwmixy3is")
'(("trace" ".")))
(simple-racket-origin
"unix-socket" (base32 "039r2aqc6xc4b3x95ggjg4ab1pfiff6pavi4d40662zgwbi61pwk")
"unix-socket" (base32 "02dfwas5ynbpyz74w9kwb4wgb37y5wys7svrlmir8k0n9ph9vq0y")
'("unix-socket" "unix-socket-doc" "unix-socket-lib"))
(simple-racket-origin
"web-server" (base32 "0v66z9dklf02lc0g357h4rnfq5pnk87d1qz59sfrlzz24phxg9g6")
"web-server" (base32 "0ry5vwjd06ml9hmspgrwci8c99syx7zhp9sgldmhwwfvf5m1g29d")
'("web-server" "web-server-doc" "web-server-lib"))
(simple-racket-origin
"wxme" (base32 "1qp5gr9gqsakiq3alw6m4yyv5vw4i3hp4y4nhq8vl2nkjmirvn0b")
'("wxme" "wxme-lib"))
(simple-racket-origin
"xrepl" (base32 "1kkcm68qyck2d6mp56h1j5fnfbx938a15dnyn1cf5yqpj9cc637m")
"xrepl" (base32 "0sw531zvd8xqckmrh5da4fiq0sfjyg1nj5d508l7bl3azn35khil")
'("xrepl" "xrepl-doc" "xrepl-lib"))))
(build-system gnu-build-system)
(arguments
+7 -15
View File
@@ -31,7 +31,7 @@
;;; Copyright © 2022-2025 Remco van 't Veer <remco@remworks.net>
;;; Copyright © 2022 Taiju HIGASHI <higashi@taiju.info>
;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
;;; Copyright © 2023, 2024, 2025, 2026 gemmaro <gemmaro.dev@gmail.com>
;;; Copyright © 2023, 2024, 2025 gemmaro <gemmaro.dev@gmail.com>
;;; Copyright © 2023, 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2023-2025 Hartmut Goebel <h.goebel@crazy-compilers.com>
@@ -8201,27 +8201,19 @@ differences (added or removed nodes) between two XML/HTML documents.")
(define-public ruby-racc
(package
(name "ruby-racc")
(version "1.8.1")
(version "1.5.2")
(source
(origin
(method git-fetch) ;for tests
(uri (git-reference
(url "https://github.com/ruby/racc")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(method url-fetch)
(uri (rubygems-uri "racc" version))
(sha256
(base32
"1sg2mqp6yxdxrn9kbbsxkd6930fxvm4yjl8knsc0wq6fkipnhm8q"))))
"178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g"))))
(build-system ruby-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'compile
(lambda _
(invoke "rake" "compile"))))))
`(#:tests? #f)) ; Fails while parsing test instructions.
(native-inputs
(list ruby-rake-compiler ruby-test-unit-ruby-core))
(list ruby-hoe ruby-rake-compiler))
(synopsis "LALR(1) parser generator for Ruby")
(description
"Racc is a LALR(1) parser generator. It is written in Ruby itself, and
File diff suppressed because it is too large Load Diff
-44
View File
@@ -37,8 +37,6 @@
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages rust)
#:use-module (gnu packages statistics)
#:use-module (gnu packages textutils)
#:use-module (gnu packages virtualization))
@@ -248,48 +246,6 @@ transliterating them. It supports Emoji and Chinese.")
;; checkout and does not need a cargo input.
(inputs (cargo-inputs 'rust-deunicode-1.6.2.cfb8552))))))
;; Workspace dependency of r-pizzarr.
(define-public rust-extendr-0.8.1.93d7244
(let ((commit "93d7244e3145d94186bc2f35258ad0ef25a28908")
(revision "1"))
(hidden-package
(package
(name "rust-extendr")
(version (git-version "0.8.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/extendr/extendr")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"03d16y7f1r0y1s8gwzw7wzn5yhcqr1wn0vga9dvdjxpbga372vx7"))))
(build-system cargo-build-system)
(arguments
(list
#:cargo-package-crates
;; Note that the order matters!
'(list "extendr-ffi"
"extendr-macros"
"extendr-api"
"extendr-engine")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'set-R_HOME
(lambda _
(delete-file-recursively ".cargo")
(setenv "R_HOME"
(string-append
#$(this-package-input "r-minimal")
"/lib/R")))))))
(inputs (cons r-minimal (cargo-inputs 'extendr)))
(home-page "https://extendr.rs/")
(synopsis "R extension library for Rust")
(description "This library allows you to extend R with Rust. It can be
used to write R packages that link with Rust libraries.")
(license license:expat)))))
;; Workspace dependency of zed.
;;
;; Cargo side: Cargo unifies dependency versions across zed's
+12 -8
View File
@@ -244,21 +244,26 @@ This Guix package is built to use the nettle cryptographic library.")
(define-public sequoia-wot-tools
(package
(name "sequoia-wot-tools")
(version "0.15.2")
(version "0.15.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/sequoia-pgp/sequoia-wot.git/")
(commit (string-append "sequoia-wot/v" version))))
(url "https://gitlab.com/sequoia-pgp/sequoia-wot")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "18v713n36sq5pvd1pbs34v7dly1bi614kwra09qxpsxk0ffp225z"))))
(base32 "03wa4l582hx0qq28pkhrf0pagckyx6df01pb4chyngadk49q1xn7"))))
(build-system cargo-build-system)
(arguments
(list
#:features '(list "sequoia-openpgp/crypto-nettle")
#:cargo-package-crates ''("tools")
#:cargo-test-flags
'(list "--"
"--skip=gpg_trust_roots"
"--skip=backward_propagation::tests::cliques"
"--skip=tests::cliques")
#:install-source? #f
#:cargo-install-paths ''("tools")
#:phases
@@ -271,12 +276,11 @@ This Guix package is built to use the nettle cryptographic library.")
(for-each (lambda (file)
(install-file file man1))
(find-files "target/release" "\\.1$"))
(mkdir-p (string-append out "/share/bash-completion/completions"))
(mkdir-p (string-append out "/etc/bash_completion.d"))
(mkdir-p (string-append share "/fish/vendor_completions.d"))
(mkdir-p (string-append share "/elvish/lib"))
(copy-file (car (find-files "target/release" "sq-wot.bash"))
(string-append
out "/share/bash-completion/completions/sq-wot"))
(string-append out "/etc/bash_completion.d/sq-wot"))
(copy-file (car (find-files "target/release" "sq-wot.fish"))
(string-append
share "/fish/vendor_completions.d/sq-wot.fish"))
@@ -288,7 +292,7 @@ This Guix package is built to use the nettle cryptographic library.")
(inputs
(cons* nettle openssl sqlite (cargo-inputs 'sequoia-wot-tools)))
(native-inputs
(list clang gnupg pkg-config))
(list clang pkg-config))
(home-page "https://sequoia-pgp.org/")
(synopsis "Implementation of OpenPGP's web of trust")
(description
+1 -3
View File
@@ -88,9 +88,7 @@ you tailor the wrapping process to suit your application.")
name "-" version ".tar.gz"))
(sha256
(base32
"1kqz533599d00rrz0g2ryf8w2ynb25ayylpx10nmkxsndiq2l5j0"))
(patches
(search-patches "swig-support-r-4.6.0.patch"))))
"1kqz533599d00rrz0g2ryf8w2ynb25ayylpx10nmkxsndiq2l5j0"))))
(native-inputs (list boost
pcre2 ; for pcre2-config
;; The following are for tests and examples:
+7 -7
View File
@@ -1677,13 +1677,13 @@ tiled on several screens.")
(define-public ghc-xmobar
(package
(name "ghc-xmobar")
(version "0.50")
(version "0.48.1")
(source (origin
(method url-fetch)
(uri (hackage-uri "xmobar" version))
(sha256
(base32
"026s0q718z89vzjgva19vg58dm1l016i67mzi0wbj7kgai89w909"))))
"1infcisv7l00a4z4byjwjisg4yndk0cymibfii1c7yzyzrlvavhl"))))
(build-system haskell-build-system)
(properties '((upstream-name . "xmobar")))
(native-inputs
@@ -2804,7 +2804,7 @@ XDG-Output for wlclock to work.")
(define-public wlroots
(package
(name "wlroots")
(version "0.20.1")
(version "0.20.0")
(source
(origin
(method git-fetch)
@@ -2813,7 +2813,7 @@ XDG-Output for wlclock to work.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0n9wkmqnja5fnwn8an36jqn6nzlb1vjdzi0v932pn5bpgmv3brxs"))))
(base32 "1gdmy4mpi7x23g81cdmcr9aakk3g6csl69h9j98yzssa48k6all5"))))
(build-system meson-build-system)
(arguments
(list #:phases
@@ -4717,7 +4717,7 @@ read and write, and compatible with JSON.")
(define-public labwc
(package
(name "labwc")
(version "0.20.0")
(version "0.9.7")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -4726,7 +4726,7 @@ read and write, and compatible with JSON.")
(file-name (git-file-name name version))
(sha256
(base32
"0hq88p8ij1zd595rrfr6pxxkzbflgnafdvqjdw7p1y9l5dgkaar5"))))
"12mm4w9djgh7q30lswhl1q1cxf6h0pf8xr744jkcyjcqqsavynpf"))))
(build-system meson-build-system)
(native-inputs
(list pkg-config gettext-minimal scdoc))
@@ -4739,7 +4739,7 @@ read and write, and compatible with JSON.")
libxcb
libxml2
pango
wlroots-0.20))
wlroots-0.19))
(home-page "https://labwc.github.io")
(synopsis "Window-stacking compositor for Wayland")
(description
+4 -1
View File
@@ -84,6 +84,7 @@ and parameters ~s~%"
(lib (assoc-ref outputs "lib"))
(name-version (strip-store-file-name out))
(extra-dirs (filter-map (cut assoc-ref inputs <>) extra-directories))
(ghc-path (getenv "GHC_PACKAGE_PATH"))
(params `(,(string-append "--prefix=" out)
,(string-append "--libdir=" (or lib out) "/lib")
,(string-append "--docdir=" (or doc out)
@@ -119,7 +120,9 @@ and parameters ~s~%"
;; <https://www.haskell.org/cabal/users-guide/developing-packages.html>.
(when (file-exists? "configure")
(setenv "CONFIG_SHELL" "sh"))
(run-setuphs "configure" params)))
(run-setuphs "configure" params)
(setenv "GHC_PACKAGE_PATH" ghc-path)))
(define* (build #:key parallel-build? #:allow-other-keys)
"Build a given Haskell package."
+2 -2
View File
@@ -202,9 +202,9 @@ package definition."
(define %cran-canonical-url "https://cran.r-project.org/package=")
(define %bioconductor-url "https://bioconductor.org/packages/")
;; The latest Bioconductor release is 3.23. Bioconductor packages should be
;; The latest Bioconductor release is 3.22. Bioconductor packages should be
;; updated together.
(define %bioconductor-version "3.23")
(define %bioconductor-version "3.22")
(define* (bioconductor-packages-list-url #:optional type)
(string-append "https://bioconductor.org/packages/"
+1 -1
View File
@@ -50,7 +50,7 @@
(make-parameter "https://www.stackage.org/api/v1/snapshot"))
;; Latest LTS version compatible with current GHC.
(define %default-lts-version "24.9")
(define %default-lts-version "20.26")
(define-json-mapping <stackage-lts> make-stackage-lts
stackage-lts?