gnu: Add julia-jllwrappers.
[jackhill/guix/guix.git] / gnu / packages / julia-xyz.scm
CommitLineData
a1315b7f 1;;; GNU Guix --- Functional package management for GNU
f7a98af0 2;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
a1315b7f 3;;;
4;;; This file is part of GNU Guix.
5;;;
6;;; GNU Guix is free software; you can redistribute it and/or modify it
7;;; under the terms of the GNU General Public License as published by
8;;; the Free Software Foundation; either version 3 of the License, or (at
9;;; your option) any later version.
10;;;
11;;; GNU Guix is distributed in the hope that it will be useful, but
12;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14;;; GNU General Public License for more details.
15;;;
16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18
19(define-module (gnu packages julia-xyz)
20 #:use-module ((guix licenses) #:prefix license:)
21 #:use-module (guix packages)
22 #:use-module (guix git-download)
23 #:use-module (guix build-system julia))
24
20767b9b 25(define-public julia-adapt
26 (package
27 (name "julia-adapt")
28 (version "3.1.1")
29 (source
30 (origin
31 (method git-fetch)
32 (uri (git-reference
33 (url "https://github.com/JuliaGPU/Adapt.jl")
34 (commit (string-append "v" version))))
81d45a66 35 (file-name (git-file-name name version))
20767b9b 36 (sha256
37 (base32 "1lks6k3a1gvwlplld47nh6xfy3nnlpc0vhkzg6zg0qn33qdmavrg"))))
38 (build-system julia-build-system)
39 (home-page "https://github.com/JuliaGPU/Adapt.jl")
40 (synopsis "Package providing the @code{adapt} function, similar to @code{convert}")
41 (description "This Julia package provides the @code{adapt(T, x)} function
42acts like @code{convert(T, x)}, but without the restriction of returning a
43@code{T}. This allows you to \"convert\" wrapper types like @code{Adjoint} to
44be GPU compatible without throwing away the wrapper.")
45 (license license:expat)))
46
03010d5d 47(define-public julia-benchmarktools
48 (package
49 (name "julia-benchmarktools")
50 (version "0.5.0")
51 (source
52 (origin
53 (method git-fetch)
54 (uri (git-reference
55 (url "https://github.com/JuliaCI/BenchmarkTools.jl")
56 (commit (string-append "v" version))))
57 (file-name (git-file-name name version))
58 (sha256
59 (base32 "0nsx21m3i5h22lkgyrmfj6r085va6ag40khwssqs8y7l0wz98lvp"))))
60 (build-system julia-build-system)
61 (propagated-inputs `(("julia-json" ,julia-json)))
62 (home-page "https://github.com/JuliaCI/BenchmarkTools.jl")
63 (synopsis "Benchmarking framework for the Julia language")
64 (description "@code{BenchmarkTools.jl} makes performance tracking of Julia
65code easy by supplying a framework for writing and running groups of
66benchmarks as well as comparing benchmark results.")
67 (license license:expat)))
68
a1315b7f 69(define-public julia-compat
70 (package
71 (name "julia-compat")
f7a98af0 72 (version "3.25.0")
a1315b7f 73 (source
74 (origin
75 (method git-fetch)
76 (uri (git-reference
77 (url "https://github.com/JuliaLang/Compat.jl")
78 (commit (string-append "v" version))))
54721e7e 79 (file-name (git-file-name name version))
a1315b7f 80 (sha256
f7a98af0 81 (base32 "1m4r5i8mq29xjp3mllh6047n5a78sdyld57m15anrnsjgaapcgby"))))
a1315b7f 82 (build-system julia-build-system)
83 (home-page "https://github.com/JuliaLang/Compat.jl")
84 (synopsis "Compatibility across Julia versions")
85 (description "The Compat package is designed to ease interoperability
86between older and newer versions of the Julia language. The Compat package
87provides a macro that lets you use the latest syntax in a backwards-compatible
88way.")
89 (license license:expat)))
eccd448c 90
6545cef5 91(define-public julia-datastructures
92 (package
93 (name "julia-datastructures")
94 (version "0.18.9")
95 (source
96 (origin
97 (method git-fetch)
98 (uri (git-reference
99 (url "https://github.com/JuliaCollections/DataStructures.jl")
100 (commit (string-append "v" version))))
101 (file-name (git-file-name name version))
102 (sha256
103 (base32 "0hdqp8ipsqdw5bqqkdvz4j6n67x80sj5azr9vzyxwjfsgkfbnk2l"))))
104 (propagated-inputs
105 `(("julia-compat" ,julia-compat)
106 ("julia-orderedcollections" ,julia-orderedcollections)))
107 (build-system julia-build-system)
108 (home-page "https://github.com/JuliaCollections/DataStructures.jl")
109 (synopsis "Julia module providing different data structures")
110 (description "This package implements a variety of data structures,
111including, @code{CircularBuffer}, @code{Queue}, @code{Stack},
112@code{Accumulators}, @code{LinkedLists}, @code{SortedDicts} and many others.")
113 (license license:expat)))
114
50f99cc5 115(define-public julia-fixedpointnumbers
116 (package
117 (name "julia-fixedpointnumbers")
118 (version "0.8.4")
119 (source
120 (origin
121 (method git-fetch)
122 (uri (git-reference
123 (url "https://github.com/JuliaMath/FixedPointNumbers.jl")
124 (commit (string-append "v" version))))
125 (file-name (git-file-name name version))
126 (sha256
127 (base32 "0j0n40n04q9sk68wh9jq90m6c67k4ws02k41djjzkrqmpzv4rcdi"))))
128 (build-system julia-build-system)
129 (arguments
130 `(#:phases
131 (modify-phases %standard-phases
132 (add-after 'unpack 'disable-failing-test
133 (lambda* (#:key outputs #:allow-other-keys)
134 (substitute* "test/fixed.jl"
135 ;; A deprecation warning is not thrown
136 (("@test_logs.*:warn" all) (string-append "# " all)))
137 #t)))))
138 (propagated-inputs `(("julia-compat" ,julia-compat)))
139 (home-page "https://github.com/JuliaMath/FixedPointNumbers.jl")
140 (synopsis "Fixed point types for Julia")
141 (description "@code{FixedPointNumbers.jl} implements fixed-point number
142types for Julia. A fixed-point number represents a fractional, or
143non-integral, number. In contrast with the more widely known floating-point
144numbers, with fixed-point numbers the decimal point doesn't \"float\":
145fixed-point numbers are effectively integers that are interpreted as being
146scaled by a constant factor. Consequently, they have a fixed number of
147digits (bits) after the decimal (radix) point.")
148 (license license:expat)))
149
a06db9c1 150(define-public julia-jllwrappers
151 (package
152 (name "julia-jllwrappers")
153 (version "1.2.0")
154 (source
155 (origin
156 (method git-fetch)
157 (uri (git-reference
158 (url "https://github.com/JuliaPackaging/JLLWrappers.jl")
159 (commit (string-append "v" version))))
160 (file-name (git-file-name name version))
161 (sha256
162 (base32 "1sj3mi2dcc13apqfpy401wic5n0pgbck1p98b2g3zw0mln9s83m4"))))
163 (arguments
164 ;; Wants to download stuff
165 '(#:tests? #f
166 #:phases
167 (modify-phases %standard-phases
168 (add-after 'unpack 'custom-override-path
169 (lambda* (#:key inputs #:allow-other-keys)
170 ;; Make @generate_wrapper_header take an optional argument that
171 ;; guix packagers can pass to override the default "override"
172 ;; binary path. This won't be needed when something like
173 ;; https://github.com/JuliaPackaging/JLLWrappers.jl/pull/27
174 ;; will be merged.
175 (substitute* "src/wrapper_generators.jl"
176 (("generate_wrapper_header.*")
177 "generate_wrapper_header(src_name, override_path = nothing)\n")
178 (("pkg_dir = .*" all)
179 (string-append
180 all "\n" "override = something(override_path,"
181 "joinpath(dirname(pkg_dir), \"override\"))\n"))
182 (("@static if isdir.*") "@static if isdir($override)\n")
183 (("return joinpath.*") "return $override\n"))
184 #t)))))
185 (build-system julia-build-system)
186 (home-page "https://github.com/JuliaPackaging/JLLWrappers.jl")
187 (synopsis "Julia macros used by JLL packages")
188 (description "This package contains Julia macros that enable JLL packages
189to generate themselves. It is not intended to be used by users, but rather is
190used in autogenerated packages via @code{BinaryBuilder.jl}.")
191 (license license:expat)))
192
dae521a0 193(define-public julia-json
194 (package
195 (name "julia-json")
196 (version "0.21.1")
197 (source
198 (origin
199 (method git-fetch)
200 (uri (git-reference
201 (url "https://github.com/JuliaIO/JSON.jl")
202 (commit (string-append "v" version))))
203 (file-name (git-file-name name version))
204 (sha256
205 (base32 "1f9k613kbknmp4fgjxvjaw4d5sfbx8a5hmcszmp1w9rqfqngjx9m"))))
206 (build-system julia-build-system)
207 (propagated-inputs
208 `(("julia-datastructures" ,julia-datastructures)
209 ("julia-fixedpointnumbers" ,julia-fixedpointnumbers)
210 ("julia-parsers" ,julia-parsers)
211 ("julia-offsetarrays" ,julia-offsetarrays)))
212 (home-page "https://github.com/JuliaIO/JSON.jl")
213 (synopsis "JSON parsing and printing library for Julia")
214 (description "@code{JSON.jl} is a pure Julia module which supports parsing
215and printing JSON documents.")
216 (license license:expat)))
217
eccd448c 218(define-public julia-orderedcollections
219 (package
220 (name "julia-orderedcollections")
221 (version "1.3.2")
222 (source
223 (origin
224 (method git-fetch)
225 (uri (git-reference
226 (url "https://github.com/JuliaCollections/OrderedCollections.jl")
227 (commit (string-append "v" version))))
228 (file-name (git-file-name name version))
229 (sha256
230 (base32 "0sfip1ixghsz91q2s7d62rgzw3gppg42fg6bccxlplqa3hfmbycf"))))
231 (build-system julia-build-system)
232 (home-page "https://github.com/JuliaCollections/OrderedCollections.jl")
233 (synopsis "Associative containers that preserve insertion order")
234 (description "This package implements @code{OrderedDicts} and
235@code{OrderedSets}, which are similar to containers in base Julia. However,
236during iteration the @code{Ordered*} containers return items in the order in
237which they were added to the collection.")
238 (license license:expat)))
c0c21d77 239
fb634a0e 240(define-public julia-offsetarrays
241 (package
242 (name "julia-offsetarrays")
243 (version "1.5.2")
244 (source
245 (origin
246 (method git-fetch)
247 (uri (git-reference
248 (url "https://github.com/JuliaArrays/OffsetArrays.jl")
249 (commit (string-append "v" version))))
250 (file-name (git-file-name name version))
251 (sha256
252 (base32 "1y3fnssw2hzyghrk6jfcxslab0f8sjkjszh482snfq4k6mkrhy77"))))
253 (build-system julia-build-system)
254 (propagated-inputs
255 `(("julia-adapt" ,julia-adapt)))
256 ;; CatIndices depends on OffsetArrays, introducing a recursive dependency
257 (arguments '(#:tests? #f))
258 (home-page "https://juliaarrays.github.io/OffsetArrays.jl/stable/")
259 (synopsis "Fortran-like arrays with arbitrary, zero or negative indices")
260 (description "@code{OffsetArrays.jl} provides Julia users with arrays that
261have arbitrary indices, similar to those found in some other programming
262languages like Fortran.")
263 (license license:expat)))
264
c0c21d77 265(define-public julia-parsers
266 (package
267 (name "julia-parsers")
268 (version "1.0.15")
269 (source
270 (origin
271 (method git-fetch)
272 (uri (git-reference
273 (url "https://github.com/JuliaData/Parsers.jl")
274 (commit (string-append "v" version))))
275 (file-name (git-file-name name version))
276 (sha256
277 (base32 "16iffl6l28kspgqch48mhi1s8qhspr3cpqcwsph3rqi72lbfqygx"))))
278 (build-system julia-build-system)
279 (home-page "https://github.com/JuliaData/Parsers.jl")
280 (synopsis "Fast parsing machinery for basic types in Julia")
281 (description "@code{Parsers.jl} is a collection of type parsers and
282utilities for Julia.")
283 (license license:expat)))