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 |
42 | acts 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 |
44 | be 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 |
65 | code easy by supplying a framework for writing and running groups of |
66 | benchmarks 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 |
86 | between older and newer versions of the Julia language. The Compat package |
87 | provides a macro that lets you use the latest syntax in a backwards-compatible |
88 | way.") |
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, |
111 | including, @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 |
142 | types for Julia. A fixed-point number represents a fractional, or |
143 | non-integral, number. In contrast with the more widely known floating-point |
144 | numbers, with fixed-point numbers the decimal point doesn't \"float\": |
145 | fixed-point numbers are effectively integers that are interpreted as being |
146 | scaled by a constant factor. Consequently, they have a fixed number of |
147 | digits (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 |
189 | to generate themselves. It is not intended to be used by users, but rather is |
190 | used 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 |
215 | and 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, |
236 | during iteration the @code{Ordered*} containers return items in the order in |
237 | which 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 |
261 | have arbitrary indices, similar to those found in some other programming |
262 | languages 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 |
282 | utilities for Julia.") |
283 | (license license:expat))) |