gnu: Add julia-commonsubexpressions.
[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>
35044d3e 3;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
a1315b7f 4;;;
5;;; This file is part of GNU Guix.
6;;;
7;;; GNU Guix is free software; you can redistribute it and/or modify it
8;;; under the terms of the GNU General Public License as published by
9;;; the Free Software Foundation; either version 3 of the License, or (at
10;;; your option) any later version.
11;;;
12;;; GNU Guix is distributed in the hope that it will be useful, but
13;;; WITHOUT ANY WARRANTY; without even the implied warranty of
14;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15;;; GNU General Public License for more details.
16;;;
17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19
20(define-module (gnu packages julia-xyz)
21 #:use-module ((guix licenses) #:prefix license:)
22 #:use-module (guix packages)
23 #:use-module (guix git-download)
3291e4ba 24 #:use-module (guix build-system julia)
25 #:use-module (gnu packages tls))
a1315b7f 26
651a5573 27(define-public julia-abstractffts
28 (package
29 (name "julia-abstractffts")
30 (version "1.0.1")
31 (source
32 (origin
33 (method git-fetch)
34 (uri (git-reference
35 (url "https://github.com/JuliaMath/AbstractFFTS.jl")
36 (commit (string-append "v" version))))
37 (file-name (git-file-name name version))
38 (sha256
39 (base32 "0083pwdyxjb04i330ir9pc8kmp4bwk59lx1jgc9qi05y8j7xzbp0"))))
40 (build-system julia-build-system)
41 (inputs ;required for tests
42 `(("julia-unitful" ,julia-unitful)))
43 (home-page "https://github.com/JuliaGPU/Adapt.jl")
44 (synopsis "General framework for fast Fourier transforms (FFTs)")
45 (description "This package allows multiple FFT packages to co-exist with
46the same underlying @code{fft(x)} and @code{plan_fft(x)} interface. It is
47mainly not intended to be used directly. Instead, developers of packages that
48implement FFTs (such as @code{FFTW.jl} or @code{FastTransforms.jl}) extend the
49types/functions defined in AbstractFFTs.")
50 (license license:expat)))
51
20767b9b 52(define-public julia-adapt
53 (package
54 (name "julia-adapt")
55 (version "3.1.1")
56 (source
57 (origin
58 (method git-fetch)
59 (uri (git-reference
60 (url "https://github.com/JuliaGPU/Adapt.jl")
61 (commit (string-append "v" version))))
81d45a66 62 (file-name (git-file-name name version))
20767b9b 63 (sha256
64 (base32 "1lks6k3a1gvwlplld47nh6xfy3nnlpc0vhkzg6zg0qn33qdmavrg"))))
65 (build-system julia-build-system)
66 (home-page "https://github.com/JuliaGPU/Adapt.jl")
67 (synopsis "Package providing the @code{adapt} function, similar to @code{convert}")
68 (description "This Julia package provides the @code{adapt(T, x)} function
69acts like @code{convert(T, x)}, but without the restriction of returning a
70@code{T}. This allows you to \"convert\" wrapper types like @code{Adjoint} to
71be GPU compatible without throwing away the wrapper.")
72 (license license:expat)))
73
03010d5d 74(define-public julia-benchmarktools
75 (package
76 (name "julia-benchmarktools")
77 (version "0.5.0")
78 (source
79 (origin
80 (method git-fetch)
81 (uri (git-reference
82 (url "https://github.com/JuliaCI/BenchmarkTools.jl")
83 (commit (string-append "v" version))))
84 (file-name (git-file-name name version))
85 (sha256
86 (base32 "0nsx21m3i5h22lkgyrmfj6r085va6ag40khwssqs8y7l0wz98lvp"))))
87 (build-system julia-build-system)
88 (propagated-inputs `(("julia-json" ,julia-json)))
89 (home-page "https://github.com/JuliaCI/BenchmarkTools.jl")
90 (synopsis "Benchmarking framework for the Julia language")
91 (description "@code{BenchmarkTools.jl} makes performance tracking of Julia
92code easy by supplying a framework for writing and running groups of
93benchmarks as well as comparing benchmark results.")
94 (license license:expat)))
95
52d09b1f 96(define-public julia-bufferedstreams
97 (package
98 (name "julia-bufferedstreams")
99 (version "1.0.0")
100 (source
101 (origin
102 (method git-fetch)
103 (uri (git-reference
104 (url "https://github.com/BioJulia/BufferedStreams.jl")
105 (commit (string-append "v" version))))
106 (file-name (git-file-name name version))
107 (sha256
108 (base32 "0sf4sxbq55mg2pwxyxf0c839z1lk0yxg8nmb7617bfbvw31cp88z"))))
109 (build-system julia-build-system)
110 ;; The package is old and tests are using undefined functions. They also
111 ;; freeze, see
112 ;; https://travis-ci.org/BioJulia/BufferedStreams.jl/jobs/491050182
113 (arguments
114 '(#:tests? #f
115 #:julia-package-name "BufferedStreams"))
116 (propagated-inputs `(("julia-compat" ,julia-compat)))
117 (home-page "https://github.com/BioJulia/BufferedStreams.jl")
118 (synopsis "Fast composable IO streams")
119 (description "@code{BufferedStreams.jl} provides buffering for IO
120operations. It can wrap any @code{IO} type automatically making incremental
121reading and writing faster.")
122 (license license:expat)))
123
bb1ca1f3 124(define-public julia-chainrulescore
125 (package
126 (name "julia-chainrulescore")
127 (version "0.9.29")
128 (source
129 (origin
130 (method git-fetch)
131 (uri (git-reference
132 (url "https://github.com/JuliaDiff/ChainRulesCore.jl")
133 (commit (string-append "v" version))))
134 (file-name (git-file-name name version))
135 (sha256
136 (base32 "1k0iayw39n1ikkkhvyi4498vsnzc94skqs41gnd15632gxjfvki4"))))
137 (build-system julia-build-system)
138 (inputs ;required for tests
139 `(("julia-benchmarktools" ,julia-benchmarktools)
140 ("julia-staticarrays" ,julia-staticarrays)))
141 (propagated-inputs
142 `(("julia-compat" ,julia-compat)))
143 (home-page "https://github.com/JuliaDiff/ChainRulesCore.jl")
144 (synopsis "Common utilities used by downstream automatic differentiation tools")
145 (description "The package provides a light-weight dependency for defining
146sensitivities for functions without the need to depend on ChainRules itself.")
147 (license license:expat)))
148
9eb29396 149(define-public julia-chainrulestestutils
150 (package
151 (name "julia-chainrulestestutils")
152 (version "0.6.4")
153 (source
154 (origin
155 (method git-fetch)
156 (uri (git-reference
157 (url "https://github.com/JuliaDiff/ChainRulesTestUtils.jl")
158 (commit (string-append "v" version))))
159 (file-name (git-file-name name version))
160 (sha256
161 (base32 "1pzs947adnb3cx1qd0cxp2fidk9szz0zsqbas90z1lhydykkvkil"))))
162 (build-system julia-build-system)
163 (propagated-inputs
164 `(("julia-chainrulescore" ,julia-chainrulescore)
165 ("julia-compat" ,julia-compat)
166 ("julia-finitedifference" ,julia-finitedifferences)))
167 (home-page "https://github.com/JuliaDiff/ChainRulesTestUtils.jl")
168 (synopsis "Common utilities used by downstream automatic differentiation tools")
169 (description "This package is designed to help in testing
170@code{ChainRulesCore.frule} and @code{ChainRulesCore.rrule} methods. The main
171entry points are @code{ChainRulesTestUtils.frule_test},
172@code{ChainRulesTestUtils.rrule_test}, and
173@code{ChainRulesTestUtils.test_scalar}. Currently this is done via testing the
174rules against numerical differentiation (using @code{FiniteDifferences.jl}).
175
176@code{ChainRulesTestUtils.jl} is separated from @code{ChainRulesCore.jl} so that it
177can be a test-only dependency, allowing it to have potentially heavy
178dependencies, while keeping @code{ChainRulesCore.jl} as light-weight as possible.")
179 (license license:expat)))
180
13a8b866 181(define-public julia-colors
182 (package
183 (name "julia-colors")
184 (version "0.12.6")
185 (source
186 (origin
187 (method git-fetch)
188 (uri (git-reference
189 (url "https://github.com/JuliaGraphics/Colors.jl")
190 (commit (string-append "v" version))))
191 (file-name (git-file-name name version))
192 (sha256
193 (base32 "156zsszgwh6bmznsan0zyha6yvcxw3c5mvc5vr2qfsgxbyh36ln6"))))
194 (build-system julia-build-system)
195 (propagated-inputs
196 `(("julia-colortypes" ,julia-colortypes)
197 ("julia-fixedpointnumbers" ,julia-fixedpointnumbers)
198 ("julia-reexport" ,julia-reexport)))
199 (home-page "https://github.com/JuliaGraphics/Colors.jl")
200 (synopsis "Tools for dealing with color")
201 (description "This package provides a wide array of functions for dealing
202with color. This includes conversion between colorspaces, measuring distance
203between colors, simulating color blindness, parsing colors, and generating
204color scales for graphics.")
205 (license license:expat)))
206
9b8b132e 207(define-public julia-colortypes
208 (package
209 (name "julia-colortypes")
210 (version "0.10.12")
211 (source
212 (origin
213 (method git-fetch)
214 (uri (git-reference
215 (url "https://github.com/JuliaGraphics/ColorTypes.jl")
216 (commit (string-append "v" version))))
217 (file-name (git-file-name name version))
218 (sha256
219 (base32 "176hr3qbz7lncmykks2qaj3cqisnzim7wi5jwsca9ld26wwyvyqq"))))
220 (arguments
221 '(#:tests? #f)) ;require Documenter, not packaged yet
222 (build-system julia-build-system)
223 (propagated-inputs
224 `(("julia-fixedpointnumbers" ,julia-fixedpointnumbers)))
225 (home-page "https://github.com/JuliaGraphics/ColorTypes.jl")
226 (synopsis "Basic color types and constructor")
227 (description "This minimalistic package serves as the foundation for
228working with colors in Julia. It defines basic color types and their
229constructors, and sets up traits and show methods to make them easier to work
230with.")
231 (license license:expat)))
232
2ca38ee4 233(define-public julia-commonsubexpressions
234 (package
235 (name "julia-commonsubexpressions")
236 (version "0.3.0")
237 (source
238 (origin
239 (method git-fetch)
240 (uri (git-reference
241 (url "https://github.com/rdeits/CommonSubexpressions.jl")
242 (commit (string-append "v" version))))
243 (file-name (git-file-name name version))
244 (sha256
245 (base32 "0mgy90kk8ksv3l720kkk04gnhn4aqhh2dj4sp3x8yy3limngfjay"))))
246 (build-system julia-build-system)
247 (propagated-inputs
248 `(("julia-macrotools" ,julia-macrotools)))
249 (home-page "https://github.com/rdeits/CommonSubexpressions.jl")
250 (synopsis "Macro @code{@cse}")
251 (description "This package provides the @code{@cse} macro, which performs
252common subexpression elimination.")
253 (license license:expat)))
254
a1315b7f 255(define-public julia-compat
256 (package
257 (name "julia-compat")
f7a98af0 258 (version "3.25.0")
a1315b7f 259 (source
260 (origin
261 (method git-fetch)
262 (uri (git-reference
263 (url "https://github.com/JuliaLang/Compat.jl")
264 (commit (string-append "v" version))))
54721e7e 265 (file-name (git-file-name name version))
a1315b7f 266 (sha256
f7a98af0 267 (base32 "1m4r5i8mq29xjp3mllh6047n5a78sdyld57m15anrnsjgaapcgby"))))
a1315b7f 268 (build-system julia-build-system)
269 (home-page "https://github.com/JuliaLang/Compat.jl")
270 (synopsis "Compatibility across Julia versions")
271 (description "The Compat package is designed to ease interoperability
272between older and newer versions of the Julia language. The Compat package
273provides a macro that lets you use the latest syntax in a backwards-compatible
274way.")
275 (license license:expat)))
eccd448c 276
35044d3e 277(define-public julia-constructionbase
278 (let ((commit "de77e2865b554f9b078fd8c35b593cce0554ae02"))
279 (package
280 (name "julia-constructionbase")
281 (version "1.1.0") ;tag not created upstream
282 (source
283 (origin
284 (method git-fetch)
285 (uri (git-reference
286 (url "https://github.com/JuliaObjects/ConstructionBase.jl")
287 (commit commit)))
288 (file-name (git-file-name name version))
289 (sha256
290 (base32 "1y79sfj0rds1skl9j16p9161hwa9khm0xc2m4hgjcbh5zzvyr57v"))))
291 (build-system julia-build-system)
292 (home-page "https://juliaobjects.github.io/ConstructionBase.jl/dev/")
293 (synopsis "Primitive functions for construction of objects")
294 (description "This very lightweight package provides primitive functions
295for construction of objects.")
296 (license license:expat))))
297
6545cef5 298(define-public julia-datastructures
299 (package
300 (name "julia-datastructures")
301 (version "0.18.9")
302 (source
303 (origin
304 (method git-fetch)
305 (uri (git-reference
306 (url "https://github.com/JuliaCollections/DataStructures.jl")
307 (commit (string-append "v" version))))
308 (file-name (git-file-name name version))
309 (sha256
310 (base32 "0hdqp8ipsqdw5bqqkdvz4j6n67x80sj5azr9vzyxwjfsgkfbnk2l"))))
311 (propagated-inputs
312 `(("julia-compat" ,julia-compat)
313 ("julia-orderedcollections" ,julia-orderedcollections)))
314 (build-system julia-build-system)
315 (home-page "https://github.com/JuliaCollections/DataStructures.jl")
316 (synopsis "Julia module providing different data structures")
317 (description "This package implements a variety of data structures,
318including, @code{CircularBuffer}, @code{Queue}, @code{Stack},
319@code{Accumulators}, @code{LinkedLists}, @code{SortedDicts} and many others.")
320 (license license:expat)))
321
fffb1e72 322(define-public julia-example
323 (let ((commit "f968c69dea24f851d0c7e686db23fa55826b5388"))
324 (package
325 (name "julia-example")
326 (version "0.5.4") ;tag not created upstream
327 (source
328 (origin
329 (method git-fetch)
330 (uri (git-reference
331 (url "https://github.com/JuliaLang/Example.jl")
332 (commit commit)))
333 (file-name (git-file-name name version))
334 (sha256
335 (base32 "1v3z0d6gh6wfbypffy9m9rhh36px6fm5wjzq0y6rbmc95r0qpqlx"))))
336 (build-system julia-build-system)
337 (home-page "https://github.com/JuliaLang/Example.jl")
338 (synopsis "Module providing examples")
339 (description "This package provides various examples.")
340 (license license:expat))))
341
a0d3a73f 342(define-public julia-fillarrays
343 (package
344 (name "julia-fillarrays")
345 (version "0.11.7")
346 (source
347 (origin
348 (method git-fetch)
349 (uri (git-reference
350 (url "https://github.com/JuliaArrays/FillArrays.jl")
351 (commit (string-append "v" version))))
352 (file-name (git-file-name name version))
353 (sha256
354 (base32 "1q1qn9pb5dmppddnmf8gggdqyvivqh3ffvbblhn37smcf9r5sy7d"))))
355 (build-system julia-build-system)
356 (inputs ;required by tests
357 `(("julia-staticarrays" ,julia-staticarrays)))
358 (home-page "https://github.com/JuliaArrays/FillArrays.jl")
359 (synopsis "Lazy matrix representation")
360 (description "This package allows to lazily represent matrices filled with
361a single entry, as well as identity matrices. This package exports the
362following types: @code{Eye}, @code{Fill}, @code{Ones}, @code{Zeros},
363@code{Trues} and @code{Falses}.")
364 (license license:expat)))
365
f6c5a898 366(define-public julia-finitedifferences
367 (package
368 (name "julia-finitedifferences")
369 (version "0.12.2")
370 (source
371 (origin
372 (method git-fetch)
373 (uri (git-reference
374 (url "https://github.com/JuliaDiff/FiniteDifferences.jl")
375 (commit (string-append "v" version))))
376 (file-name (git-file-name name version))
377 (sha256
378 (base32 "0dcx34026xdpfmbjls3mrknl8ww62kxxfr77kfihbazsfg2gp5b4"))))
379 (build-system julia-build-system)
380 (inputs
381 `(("julia-benchmarktools" ,julia-benchmarktools)))
382 (propagated-inputs
383 `(("julia-chainrulescore" ,julia-chainrulescore)
384 ("julia-richardson" ,julia-richardson)
385 ("julia-staticarrays" ,julia-staticarrays)))
386 (home-page "https://github.com/JuliaDiff/FiniteDifferences.jl")
387 (synopsis "Estimates derivatives with finite differences")
388 (description "This package calculates approximate derivatives numerically
389using finite difference.")
390 (license license:expat)))
391
50f99cc5 392(define-public julia-fixedpointnumbers
393 (package
394 (name "julia-fixedpointnumbers")
395 (version "0.8.4")
396 (source
397 (origin
398 (method git-fetch)
399 (uri (git-reference
400 (url "https://github.com/JuliaMath/FixedPointNumbers.jl")
401 (commit (string-append "v" version))))
402 (file-name (git-file-name name version))
403 (sha256
404 (base32 "0j0n40n04q9sk68wh9jq90m6c67k4ws02k41djjzkrqmpzv4rcdi"))))
405 (build-system julia-build-system)
406 (arguments
407 `(#:phases
408 (modify-phases %standard-phases
409 (add-after 'unpack 'disable-failing-test
410 (lambda* (#:key outputs #:allow-other-keys)
411 (substitute* "test/fixed.jl"
412 ;; A deprecation warning is not thrown
413 (("@test_logs.*:warn" all) (string-append "# " all)))
414 #t)))))
415 (propagated-inputs `(("julia-compat" ,julia-compat)))
416 (home-page "https://github.com/JuliaMath/FixedPointNumbers.jl")
417 (synopsis "Fixed point types for Julia")
418 (description "@code{FixedPointNumbers.jl} implements fixed-point number
419types for Julia. A fixed-point number represents a fractional, or
420non-integral, number. In contrast with the more widely known floating-point
421numbers, with fixed-point numbers the decimal point doesn't \"float\":
422fixed-point numbers are effectively integers that are interpreted as being
423scaled by a constant factor. Consequently, they have a fixed number of
424digits (bits) after the decimal (radix) point.")
425 (license license:expat)))
d4987a50 426
427(define-public julia-http
428 (package
429 (name "julia-http")
430 (version "0.9.2")
431 (source
432 (origin
433 (method git-fetch)
434 (uri (git-reference
435 (url "https://github.com/JuliaWeb/HTTP.jl")
436 (commit (string-append "v" version))))
437 (file-name (git-file-name name version))
438 (sha256
439 (base32 "0ij0yci13c46p92m4zywvcs02nn8pm0abyfffiyhxvva6hq48lyl"))))
440 (build-system julia-build-system)
441 (arguments
442 `(#:phases
443 (modify-phases %standard-phases
444 (add-before 'install 'disable-network-tests
445 (lambda _
446 (substitute* "test/runtests.jl"
447 (("\"async.jl") "# \"async.jl")
448 (("\"client.jl") "# \"client.jl"))
449 (substitute* "test/aws4.jl"
450 (("@testset.*HTTP.request with AWS authentication.*" all)
451 (string-append all "return\n")))
452 (substitute* "test/insert_layers.jl"
453 (("@testset.*Inserted final layer runs handler.*" all)
454 (string-append all "return\n")))
455 (substitute* "test/multipart.jl"
456 (("@testset \"Setting of Content-Type.*" all)
457 (string-append all "return\n"))
458 (("@testset \"Deprecation of .*" all)
459 (string-append all "return\n")))
460 (substitute* "test/websockets.jl"
461 (("@testset.*External Host.*" all)
462 (string-append all "return\n")))
463 (substitute* "test/messages.jl"
464 (("@testset.*Read methods.*" all)
465 (string-append all "return\n"))
466 (("@testset.*Body - .*" all)
467 (string-append all "return\n"))
468 (("@testset.*Write to file.*" all)
469 (string-append all "return\n")))
470 #t)))))
471 (propagated-inputs
472 `(("julia-inifile" ,julia-inifile)
473 ("julia-mbedtls" ,julia-mbedtls)
474 ("julia-uris" ,julia-uris)))
475 ;; required for tests
476 (inputs
477 `(("julia-json" ,julia-json)
478 ("julia-bufferedstreams" ,julia-bufferedstreams)))
479 (home-page "https://juliaweb.github.io/HTTP.jl/")
480 (synopsis "HTTP support for Julia")
481 (description "@code{HTTP.jl} is a Julia library for HTTP Messages,
482implementing both a client and a server.")
483 (license license:expat)))
50f99cc5 484
fc781578 485(define-public julia-inifile
486 (package
487 (name "julia-inifile")
488 (version "0.5.0")
489 (source
490 (origin
491 (method git-fetch)
492 (uri (git-reference
493 (url "https://github.com/JuliaIO/IniFile.jl")
494 (commit "8ba59958495fa276d6489d2c3903e765d75e0bc0")))
495 (file-name (git-file-name name version))
496 (sha256
497 (base32 "11h6f99jpbg729lplw841m68jprka7q3n8yw390bndlmcdsjabpd"))))
498 (build-system julia-build-system)
499 (home-page "https://github.com/JuliaIO/IniFile.jl")
500 (synopsis "Reading Windows-style INI files")
501 (description "This is a Julia package that defines an IniFile type that
502allows to interface with @file{.ini} files.")
503 (license license:expat)))
504
57653707 505(define-public julia-irtools
506 (package
507 (name "julia-irtools")
508 (version "0.4.2")
509 (source
510 (origin
511 (method git-fetch)
512 (uri (git-reference
513 (url "https://github.com/FluxML/IRTools.jl")
514 (commit (string-append "v" version))))
515 (file-name (git-file-name name version))
516 (sha256
517 (base32 "0wwzy77jcdnffnd5fr6xan7162g4wydz67igrq82wflwnrhlcx5y"))))
518 (arguments
519 '(#:tests? #f)) ;require Documenter, not packaged yet
520 (build-system julia-build-system)
521 (propagated-inputs
522 `(("julia-macrotools" ,julia-macrotools)))
523 (home-page "https://github.com/FluxML/IRTools.jl")
524 (synopsis "Simple and flexible IR format")
525 (description "This package provides a simple and flexible IR format,
526expressive enough to work with both lowered and typed Julia code, as well as
527external IRs. It can be used with Julia metaprogramming tools such as
528Cassette.")
529 (license license:expat)))
530
a06db9c1 531(define-public julia-jllwrappers
532 (package
533 (name "julia-jllwrappers")
534 (version "1.2.0")
535 (source
536 (origin
537 (method git-fetch)
538 (uri (git-reference
539 (url "https://github.com/JuliaPackaging/JLLWrappers.jl")
540 (commit (string-append "v" version))))
541 (file-name (git-file-name name version))
542 (sha256
543 (base32 "1sj3mi2dcc13apqfpy401wic5n0pgbck1p98b2g3zw0mln9s83m4"))))
544 (arguments
545 ;; Wants to download stuff
546 '(#:tests? #f
547 #:phases
548 (modify-phases %standard-phases
549 (add-after 'unpack 'custom-override-path
550 (lambda* (#:key inputs #:allow-other-keys)
551 ;; Make @generate_wrapper_header take an optional argument that
552 ;; guix packagers can pass to override the default "override"
553 ;; binary path. This won't be needed when something like
554 ;; https://github.com/JuliaPackaging/JLLWrappers.jl/pull/27
555 ;; will be merged.
556 (substitute* "src/wrapper_generators.jl"
557 (("generate_wrapper_header.*")
558 "generate_wrapper_header(src_name, override_path = nothing)\n")
559 (("pkg_dir = .*" all)
560 (string-append
561 all "\n" "override = something(override_path,"
562 "joinpath(dirname(pkg_dir), \"override\"))\n"))
563 (("@static if isdir.*") "@static if isdir($override)\n")
564 (("return joinpath.*") "return $override\n"))
565 #t)))))
566 (build-system julia-build-system)
567 (home-page "https://github.com/JuliaPackaging/JLLWrappers.jl")
568 (synopsis "Julia macros used by JLL packages")
569 (description "This package contains Julia macros that enable JLL packages
570to generate themselves. It is not intended to be used by users, but rather is
571used in autogenerated packages via @code{BinaryBuilder.jl}.")
572 (license license:expat)))
573
dae521a0 574(define-public julia-json
575 (package
576 (name "julia-json")
577 (version "0.21.1")
578 (source
579 (origin
580 (method git-fetch)
581 (uri (git-reference
582 (url "https://github.com/JuliaIO/JSON.jl")
583 (commit (string-append "v" version))))
584 (file-name (git-file-name name version))
585 (sha256
586 (base32 "1f9k613kbknmp4fgjxvjaw4d5sfbx8a5hmcszmp1w9rqfqngjx9m"))))
587 (build-system julia-build-system)
588 (propagated-inputs
589 `(("julia-datastructures" ,julia-datastructures)
590 ("julia-fixedpointnumbers" ,julia-fixedpointnumbers)
591 ("julia-parsers" ,julia-parsers)
592 ("julia-offsetarrays" ,julia-offsetarrays)))
593 (home-page "https://github.com/JuliaIO/JSON.jl")
594 (synopsis "JSON parsing and printing library for Julia")
595 (description "@code{JSON.jl} is a pure Julia module which supports parsing
596and printing JSON documents.")
597 (license license:expat)))
598
45debc7b 599(define-public julia-macrotools
600 (package
601 (name "julia-macrotools")
602 (version "0.5.6")
603 (source
604 (origin
605 (method git-fetch)
606 (uri (git-reference
607 (url "https://github.com/FluxML/MacroTools.jl")
608 (commit (string-append "v" version))))
609 (file-name (git-file-name name version))
610 (sha256
611 (base32 "0k4z2hyasd9cwxf4l61zk3w4ajs44k69wx6z1ghdn8f5p8xy217f"))))
612 (build-system julia-build-system)
613 (home-page "https://fluxml.ai/MacroTools.jl")
614 (synopsis "Tools for working with Julia code and expressions")
615 (description "This library provides tools for working with Julia code and
616expressions. This includes a template-matching system and code-walking tools
617that let you do deep transformations of code.")
618 (license license:expat)))
619
a72d3ca8 620(define-public julia-mbedtls
621 (package
622 (name "julia-mbedtls")
623 (version "1.0.3")
624 (source
625 (origin
626 (method git-fetch)
627 (uri (git-reference
628 (url "https://github.com/JuliaLang/MbedTLS.jl")
629 (commit (string-append "v" version))))
630 (file-name (git-file-name name version))
631 (sha256
632 (base32 "0zjzf2r57l24n3k0gcqkvx3izwn5827iv9ak0lqix0aa5967wvfb"))))
633 (build-system julia-build-system)
634 (arguments
635 `(#:phases
636 (modify-phases %standard-phases
637 (add-before 'install 'disable-network-tests
638 ;; Tries to connect to httpbin.org
639 (lambda _
640 (substitute* "test/runtests.jl"
641 (("testhost =") "return #"))
642 #t)))))
643 (propagated-inputs `(("julia-mbedtls-jll" ,julia-mbedtls-jll)))
644 (home-page "https://github.com/JuliaLang/MbedTLS.jl")
645 (synopsis "Apache's mbed TLS library wrapper")
646 (description "@code{MbedTLS.jl} provides a wrapper around the @code{mbed
647TLS} and cryptography C libary for Julia.")
648 (license license:expat)))
649
3291e4ba 650(define-public julia-mbedtls-jll
651 (package
652 (name "julia-mbedtls-jll")
653 ;; version 2.25.0+0 is not compatible with current mbedtls 2.23.0,
654 ;; upgrade this when mbedtls is updated in guix
655 (version "2.24.0+1")
656 (source
657 (origin
658 (method git-fetch)
659 (uri (git-reference
660 (url "https://github.com/JuliaBinaryWrappers/MbedTLS_jll.jl")
661 (commit (string-append "MbedTLS-v" version))))
662 (file-name (git-file-name name version))
663 (sha256
664 (base32 "0kk9dlxdh7yms21npgrdfmjbj8q8ng6kdhrzw3jr2d7rp696kp99"))))
665 (build-system julia-build-system)
666 (arguments
667 '(#:tests? #f ; No runtests.jl
668 #:phases
669 (modify-phases %standard-phases
670 (add-after 'unpack 'override-binary-path
671 (lambda* (#:key inputs #:allow-other-keys)
672 (map
673 (lambda (wrapper)
674 (substitute* wrapper
675 (("generate_wrapper_header.*")
676 (string-append
677 "generate_wrapper_header(\"MbedTLS\", \""
678 (assoc-ref inputs "mbedtls-apache") "\")\n"))))
679 ;; There's a Julia file for each platform, override them all
680 (find-files "src/wrappers/" "\\.jl$"))
681 #t)))))
682 (inputs `(("mbedtls-apache" ,mbedtls-apache)))
683 (propagated-inputs `(("julia-jllwrappers" ,julia-jllwrappers)))
684 (home-page "https://github.com/JuliaBinaryWrappers/MbedTLS_jll.jl")
685 (synopsis "Apache's mbed TLS binary wrappers")
686 (description "This Julia module provides @code{mbed TLS} libraries and
687wrappers.")
688 (license license:expat)))
689
a5edd83d 690(define-public julia-nanmath
691 (package
692 (name "julia-nanmath")
693 (version "0.3.5")
694 (source
695 (origin
696 (method git-fetch)
697 (uri (git-reference
698 (url "https://github.com/mlubin/NaNMath.jl")
699 (commit (string-append "v" version))))
700 (file-name (git-file-name name version))
701 (sha256
702 (base32 "1hczhz00qj99w63vp627kwk02l2sr2qmzc2rkwwkdwvzy670p25q"))))
703 (build-system julia-build-system)
704 (home-page "https://github.com/mlubin/NaNMath.jl")
705 (synopsis "Implementations of basic math functions")
706 (description "Implementations of basic math functions which return
707@code{NaN} instead of throwing a @code{DomainError}.")
708 (license license:expat)))
709
eccd448c 710(define-public julia-orderedcollections
711 (package
712 (name "julia-orderedcollections")
713 (version "1.3.2")
714 (source
715 (origin
716 (method git-fetch)
717 (uri (git-reference
718 (url "https://github.com/JuliaCollections/OrderedCollections.jl")
719 (commit (string-append "v" version))))
720 (file-name (git-file-name name version))
721 (sha256
722 (base32 "0sfip1ixghsz91q2s7d62rgzw3gppg42fg6bccxlplqa3hfmbycf"))))
723 (build-system julia-build-system)
724 (home-page "https://github.com/JuliaCollections/OrderedCollections.jl")
725 (synopsis "Associative containers that preserve insertion order")
726 (description "This package implements @code{OrderedDicts} and
727@code{OrderedSets}, which are similar to containers in base Julia. However,
728during iteration the @code{Ordered*} containers return items in the order in
729which they were added to the collection.")
730 (license license:expat)))
c0c21d77 731
fb634a0e 732(define-public julia-offsetarrays
733 (package
734 (name "julia-offsetarrays")
735 (version "1.5.2")
736 (source
737 (origin
738 (method git-fetch)
739 (uri (git-reference
740 (url "https://github.com/JuliaArrays/OffsetArrays.jl")
741 (commit (string-append "v" version))))
742 (file-name (git-file-name name version))
743 (sha256
744 (base32 "1y3fnssw2hzyghrk6jfcxslab0f8sjkjszh482snfq4k6mkrhy77"))))
745 (build-system julia-build-system)
746 (propagated-inputs
747 `(("julia-adapt" ,julia-adapt)))
748 ;; CatIndices depends on OffsetArrays, introducing a recursive dependency
749 (arguments '(#:tests? #f))
750 (home-page "https://juliaarrays.github.io/OffsetArrays.jl/stable/")
751 (synopsis "Fortran-like arrays with arbitrary, zero or negative indices")
752 (description "@code{OffsetArrays.jl} provides Julia users with arrays that
753have arbitrary indices, similar to those found in some other programming
754languages like Fortran.")
755 (license license:expat)))
756
c0c21d77 757(define-public julia-parsers
758 (package
759 (name "julia-parsers")
760 (version "1.0.15")
761 (source
762 (origin
763 (method git-fetch)
764 (uri (git-reference
765 (url "https://github.com/JuliaData/Parsers.jl")
766 (commit (string-append "v" version))))
767 (file-name (git-file-name name version))
768 (sha256
769 (base32 "16iffl6l28kspgqch48mhi1s8qhspr3cpqcwsph3rqi72lbfqygx"))))
770 (build-system julia-build-system)
771 (home-page "https://github.com/JuliaData/Parsers.jl")
772 (synopsis "Fast parsing machinery for basic types in Julia")
773 (description "@code{Parsers.jl} is a collection of type parsers and
774utilities for Julia.")
775 (license license:expat)))
8f59a9fb 776
02543b52 777(define-public julia-reexport
778 (package
779 (name "julia-reexport")
780 (version "1.0.0")
781 (source
782 (origin
783 (method git-fetch)
784 (uri (git-reference
785 (url "https://github.com/simonster/Reexport.jl")
786 (commit version)))
787 (file-name (git-file-name name version))
788 (sha256
789 (base32 "1yhhja1zz6dy5f4fd19bdwd6jwgj7q4w3avzgyg1hjhmdl8jrh0s"))))
790 (build-system julia-build-system)
791 (home-page "https://github.com/simonster/Reexport.jl")
792 (synopsis "Re-export modules and symbols")
793 (description "This package provides tools to re-export modules and symbols.")
794 (license license:expat)))
795
658fca53 796(define-public julia-requires
797 (package
798 (name "julia-requires")
799 (version "1.1.3")
800 (source
801 (origin
802 (method git-fetch)
803 (uri (git-reference
804 (url "https://github.com/JuliaPackaging/Requires.jl/")
805 (commit (string-append "v" version))))
806 (file-name (git-file-name name version))
807 (sha256
808 (base32 "03hyfy7c0ma45b0y756j76awi3az2ii4bz4s8cxm3xw9yy1z7b01"))))
809 (build-system julia-build-system)
810 (inputs ;required for test
811 `(("julia-example" ,julia-example)))
812 (propagated-inputs
813 `(("julia-colors" ,julia-colors)))
814 (home-page "https://github.com/JuliaPackaging/Requires.jl/")
815 (synopsis "Faster package loader")
816 (description "This package make loading packages faster, maybe. It
817supports specifying glue code in packages which will load automatically when
818another package is loaded, so that explicit dependencies (and long load times)
819can be avoided.")
820 (license license:expat)))
821
dd7a77c3 822(define-public julia-richardson
823 (package
824 (name "julia-richardson")
825 (version "1.4.0")
826 (source
827 (origin
828 (method git-fetch)
829 (uri (git-reference
830 (url "https://github.com/JuliaMath/Richardson.jl")
831 (commit (string-append "v" version))))
832 (file-name (git-file-name name version))
833 (sha256
834 (base32 "06v9ii3d7hh41fsrfklaa8ap55z5s017f888mrd1c18y4fx9i4nx"))))
835 (build-system julia-build-system)
836 (home-page "https://juliapackages.com/p/richardson")
837 (synopsis "Extrapolate function using Richardson method")
838 (description "This package provides a function extrapolate that
839extrapolates a given function @code{f(x)} to @code{f(x0)}, evaluating @code{f}
840only at a geometric sequence of points @code{> x0} (or optionally @code{<
841x0}). The key algorithm is Richardson extrapolation using a Neville–Aitken
842tableau, which adaptively increases the degree of an extrapolation polynomial
843until convergence is achieved to a desired tolerance (or convergence stalls
844due to e.g. floating-point errors). This allows one to obtain @code{f(x0)} to
845high-order accuracy, assuming that @code{f(x0+h)} has a Taylor series or some
846other power series in @code{h}.")
847 (license license:expat)))
848
be802277 849(define-public julia-staticarrays
850 (package
851 (name "julia-staticarrays")
852 (version "1.0.1")
853 (source
854 (origin
855 (method git-fetch)
856 (uri (git-reference
857 (url "https://github.com/JuliaArrays/StaticArrays.jl")
858 (commit (string-append "v" version))))
859 (file-name (git-file-name name version))
860 (sha256
861 (base32 "01z8bcqwpfkp8p1h1r36pr5cc3798y76zkas7g3206pcsdhvlkz1"))))
862 (build-system julia-build-system)
863 (inputs
864 `(("julia-benchmarktools" ,julia-benchmarktools)))
865 (home-page "https://github.com/JuliaArrays/StaticArrays.jl")
866 (synopsis "Statically sized arrays")
867 (description "This package provides a framework for implementing
868statically sized arrays in Julia, using the abstract type
869@code{StaticArray{Size,T,N} <: AbstractArray{T,N}}. Subtypes of
870@code{StaticArray} will provide fast implementations of common array and
871linear algebra operations.")
872 (license license:expat)))
873
8f59a9fb 874(define-public julia-uris
875 (package
876 (name "julia-uris")
877 (version "1.2.0")
878 (source
879 (origin
880 (method git-fetch)
881 (uri (git-reference
882 (url "https://github.com/JuliaWeb/URIs.jl")
883 (commit (string-append "v" version))))
884 (file-name (git-file-name name version))
885 (sha256
886 (base32 "0fqyagsqks5za7m0czafr34m2xh5501f689k9cn5x3npajdnh2r3"))))
887 (build-system julia-build-system)
888 (arguments
889 '(#:julia-package-name "URIs" ;required to run tests
890 #:phases
891 (modify-phases %standard-phases
892 (add-before 'check 'change-dir
893 ;; Tests must be run from the testdir
894 (lambda* (#:key source outputs #:allow-other-keys)
895 (let ((out (assoc-ref outputs "out")))
896 (chdir
897 (string-append out "/share/julia/packages/URIs/test")))
898 #t)))))
899 ;; required for tests
900 (inputs `(("julia-json" ,julia-json)))
901 (home-page "https://github.com/JuliaWeb/URIs.jl")
902 (synopsis "URI parsing in Julia")
903 (description "@code{URIs.jl} is a Julia package that allows parsing and
904working with @acronym{URIs,Uniform Resource Identifiers}, as defined in RFC
9053986.")
906 (license license:expat)))
a8e3be6a 907
908(define-public julia-unitful
909 (package
910 (name "julia-unitful")
911 (version "1.6.0")
912 (source
913 (origin
914 (method git-fetch)
915 (uri (git-reference
916 (url "https://github.com/PainterQubits/Unitful.jl")
917 (commit (string-append "v" version))))
918 (file-name (git-file-name name version))
919 (sha256
920 (base32 "0g5bhlvay9yk11c5dqwbzmb3q7lzj0cq5zchyk39d59fkvvmxvq3"))))
921 (build-system julia-build-system)
922 (propagated-inputs
923 `(("julia-constructionbase" ,julia-constructionbase)))
924 (home-page "https://painterqubits.github.io/Unitful.jl/stable/")
925 (synopsis "Physical units in Julia")
926 (description "This package supports SI units and also many other unit
927system.")
928 (license license:expat)))