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