Add many julia packages (separate this in multiple commits)

master
nixo 2019-12-04 19:08:30 +01:00
parent 8aa3c608a8
commit d5893da6f6
6 changed files with 4068 additions and 181 deletions

View File

@ -1071,7 +1071,7 @@ and GPU architectures.")
(define-public gr
(package
(name "gr")
(version "0.41.4")
(version "0.41.5")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1081,7 +1081,7 @@ and GPU architectures.")
(file-name (git-file-name name version))
(sha256
(base32
"1r3f0vqw85i9g3awzfh20zzjcc71h8r7nld2qv4rmqf3gigck2kr"))
"1iymzpa6wbbn3vh7n11ax859bmxwq74n2n3y012fd5ad369yflcj"))
(modules '((guix build utils)))))
(build-system gnu-build-system)
(arguments

File diff suppressed because it is too large Load Diff

View File

@ -3426,6 +3426,42 @@ packages.")
;; GPUQREngine, RBio, SuiteSparse_GPURuntime, SuiteSparseQR, UMFPACK
(license (list license:gpl2+ license:lgpl2.1+))))
(define-public suitesparse-wrapper
(package
(name "suitesparse-wrapper")
(version "5.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url
"https://github.com/JuliaLinearAlgebra/SuiteSparseBuilder.git")
(commit (string-append "v" version "-0.2.20-1"))))
(file-name "SuiteSparse")
(sha256
(base32 "0wj4ipjv415aib5h398b1qxmwjk54f577n8h7dn68dkybpd2rnp3"))))
(native-inputs `(("suitesparse" ,suitesparse)))
(arguments
`(#:tests? #f ; no "check" target
#:make-flags (list "CC=gcc"
(string-append "prefix=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-before 'build 'make-output
(lambda* (#:key outputs #:allow-other-keys)
(mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
#t))
(add-before 'build 'change-directory
(lambda _
(chdir "src/SuiteSparse_wrapper/")
#t)))))
(build-system gnu-build-system)
(home-page "https://julialinearalgebra.github.io/SuiteSparse.jl/latest/")
(synopsis "SuiteSparse wrappers used by Julia SuiteSparse.jl")
(description "Binary wrappes for the Julia SuiteSparse.")
(license license:expat)))
(define-public atlas
(package
(name "atlas")

View File

@ -58,6 +58,7 @@
#:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
#:use-module (gnu packages java)
#:use-module (gnu packages julia)
#:use-module (gnu packages libffi)
#:use-module (gnu packages machine-learning)
#:use-module (gnu packages maths)
@ -395,6 +396,50 @@ available, greatly increasing its breadth and scope.")
(description
"This package provides the R math library as an independent package.")))
(define-public rmath-julia
(package
(name "rmath-julia")
(version "0.2.2")
(source
;; This ships it's own version of Rmath sources, version 3.4.1
;; Not sure if we should move our own there
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/JuliaStats/Rmath-julia.git")
(commit (string-append "v" version))))
(sha256
(base32 "107l5fgd7m1dx5wl53zvjxq8qnb5smzsnpganrhxycjgw708manj"))))
(build-system gnu-build-system)
(inputs `(("julia" ,julia)))
(arguments
'(#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'install)
(delete 'check)
(add-after 'build 'check
(lambda _
;; test.jl is a bit outdated
(substitute* "test.jl"
;; Random required for randexp
(("using Base.Test") "using Test; using Random")
(("Void") "Cvoid")
(("cfunction") "@cfunction"))
(invoke "julia" "test.jl") #t))
(add-after 'check 'install
(lambda* (#:key outputs inputs #:allow-other-keys)
(let ((out (string-append (assoc-ref outputs "out") "/lib/")))
(mkdir-p out)
(copy-file "src/libRmath-julia.so"
(string-append out "libRmath-julia.so")))
#t)))))
(home-page "https://github.com/JuliaStats/Rmath-julia")
(synopsis "The Rmath library from R, for Julia")
(description
"This is a slightly modified version of the standalone Rmath library from R, built to be used with the Rmath.jl Julia package.")
(license license:gpl2)))
(define-public r-boot
(package
(name "r-boot")

View File

@ -75,7 +75,7 @@
(define* (julia-build store name inputs
#:key source
(tests? #t)
(tests? #f)
(phases '(@ (guix build julia-build-system)
%standard-phases))
(outputs '("out"))

View File

@ -79,16 +79,21 @@
#t)
(define* (check #:key tests? source inputs outputs #:allow-other-keys)
(display "Running tests")
(when tests?
(let* ((out (assoc-ref outputs "out"))
(package (strip-store-file-name source))
(builddir (string-append out "/share/julia/")))
(setenv "JULIA_DEPOT_PATH" builddir)
(setenv "JULIA_LOAD_PATH" (generate-load-path inputs outputs))
(display builddir)
(invoke "julia" (string-append builddir
"packages/"
package "/test/runtests.jl"))))
(let* ((out (assoc-ref outputs "out"))
(package (strip-store-file-name source))
(builddir (string-append out "/share/julia/")))
(setenv "JULIA_DEPOT_PATH" builddir)
(setenv "JULIA_LOAD_PATH" (generate-load-path inputs outputs))
;; Sometimes tests require files in the current directory
(with-directory-excursion
(string-append builddir "packages/" package "/test")
(invoke "julia"
;; Force bound checking even when annotated not to
;; This appears to be the default on travis
"--check-bounds=yes"
"runtests.jl"))))
#t)
(define (julia-create-package-toml outputs source
@ -123,7 +128,7 @@ version = \"" version "\"
(delete 'check) ; tests must be run after installation
(replace 'install install)
(add-after 'install 'precompile precompile)
(add-after 'install 'check check)
(add-after 'precompile 'check check)
;; TODO: In the future we could add a "system-image-generation" phase
;; where we use PackageCompiler.jl to speed up package loading times
(delete 'configure)