Add many julia packages (separate this in multiple commits)

This commit is contained in:
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 (define-public gr
(package (package
(name "gr") (name "gr")
(version "0.41.4") (version "0.41.5")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -1081,7 +1081,7 @@ and GPU architectures.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1r3f0vqw85i9g3awzfh20zzjcc71h8r7nld2qv4rmqf3gigck2kr")) "1iymzpa6wbbn3vh7n11ax859bmxwq74n2n3y012fd5ad369yflcj"))
(modules '((guix build utils))))) (modules '((guix build utils)))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments

File diff suppressed because it is too large Load Diff

View File

@ -3426,6 +3426,42 @@ packages.")
;; GPUQREngine, RBio, SuiteSparse_GPURuntime, SuiteSparseQR, UMFPACK ;; GPUQREngine, RBio, SuiteSparse_GPURuntime, SuiteSparseQR, UMFPACK
(license (list license:gpl2+ license:lgpl2.1+)))) (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 (define-public atlas
(package (package
(name "atlas") (name "atlas")

View File

@ -58,6 +58,7 @@
#:use-module (gnu packages icu4c) #:use-module (gnu packages icu4c)
#:use-module (gnu packages image) #:use-module (gnu packages image)
#:use-module (gnu packages java) #:use-module (gnu packages java)
#:use-module (gnu packages julia)
#:use-module (gnu packages libffi) #:use-module (gnu packages libffi)
#:use-module (gnu packages machine-learning) #:use-module (gnu packages machine-learning)
#:use-module (gnu packages maths) #:use-module (gnu packages maths)
@ -395,6 +396,50 @@ available, greatly increasing its breadth and scope.")
(description (description
"This package provides the R math library as an independent package."))) "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 (define-public r-boot
(package (package
(name "r-boot") (name "r-boot")

View File

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

View File

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