gnu: Add julia-finitedifferences.
[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
13a8b866 149(define-public julia-colors
150 (package
151 (name "julia-colors")
152 (version "0.12.6")
153 (source
154 (origin
155 (method git-fetch)
156 (uri (git-reference
157 (url "https://github.com/JuliaGraphics/Colors.jl")
158 (commit (string-append "v" version))))
159 (file-name (git-file-name name version))
160 (sha256
161 (base32 "156zsszgwh6bmznsan0zyha6yvcxw3c5mvc5vr2qfsgxbyh36ln6"))))
162 (build-system julia-build-system)
163 (propagated-inputs
164 `(("julia-colortypes" ,julia-colortypes)
165 ("julia-fixedpointnumbers" ,julia-fixedpointnumbers)
166 ("julia-reexport" ,julia-reexport)))
167 (home-page "https://github.com/JuliaGraphics/Colors.jl")
168 (synopsis "Tools for dealing with color")
169 (description "This package provides a wide array of functions for dealing
170with color. This includes conversion between colorspaces, measuring distance
171between colors, simulating color blindness, parsing colors, and generating
172color scales for graphics.")
173 (license license:expat)))
174
9b8b132e 175(define-public julia-colortypes
176 (package
177 (name "julia-colortypes")
178 (version "0.10.12")
179 (source
180 (origin
181 (method git-fetch)
182 (uri (git-reference
183 (url "https://github.com/JuliaGraphics/ColorTypes.jl")
184 (commit (string-append "v" version))))
185 (file-name (git-file-name name version))
186 (sha256
187 (base32 "176hr3qbz7lncmykks2qaj3cqisnzim7wi5jwsca9ld26wwyvyqq"))))
188 (arguments
189 '(#:tests? #f)) ;require Documenter, not packaged yet
190 (build-system julia-build-system)
191 (propagated-inputs
192 `(("julia-fixedpointnumbers" ,julia-fixedpointnumbers)))
193 (home-page "https://github.com/JuliaGraphics/ColorTypes.jl")
194 (synopsis "Basic color types and constructor")
195 (description "This minimalistic package serves as the foundation for
196working with colors in Julia. It defines basic color types and their
197constructors, and sets up traits and show methods to make them easier to work
198with.")
199 (license license:expat)))
200
a1315b7f 201(define-public julia-compat
202 (package
203 (name "julia-compat")
f7a98af0 204 (version "3.25.0")
a1315b7f 205 (source
206 (origin
207 (method git-fetch)
208 (uri (git-reference
209 (url "https://github.com/JuliaLang/Compat.jl")
210 (commit (string-append "v" version))))
54721e7e 211 (file-name (git-file-name name version))
a1315b7f 212 (sha256
f7a98af0 213 (base32 "1m4r5i8mq29xjp3mllh6047n5a78sdyld57m15anrnsjgaapcgby"))))
a1315b7f 214 (build-system julia-build-system)
215 (home-page "https://github.com/JuliaLang/Compat.jl")
216 (synopsis "Compatibility across Julia versions")
217 (description "The Compat package is designed to ease interoperability
218between older and newer versions of the Julia language. The Compat package
219provides a macro that lets you use the latest syntax in a backwards-compatible
220way.")
221 (license license:expat)))
eccd448c 222
35044d3e 223(define-public julia-constructionbase
224 (let ((commit "de77e2865b554f9b078fd8c35b593cce0554ae02"))
225 (package
226 (name "julia-constructionbase")
227 (version "1.1.0") ;tag not created upstream
228 (source
229 (origin
230 (method git-fetch)
231 (uri (git-reference
232 (url "https://github.com/JuliaObjects/ConstructionBase.jl")
233 (commit commit)))
234 (file-name (git-file-name name version))
235 (sha256
236 (base32 "1y79sfj0rds1skl9j16p9161hwa9khm0xc2m4hgjcbh5zzvyr57v"))))
237 (build-system julia-build-system)
238 (home-page "https://juliaobjects.github.io/ConstructionBase.jl/dev/")
239 (synopsis "Primitive functions for construction of objects")
240 (description "This very lightweight package provides primitive functions
241for construction of objects.")
242 (license license:expat))))
243
6545cef5 244(define-public julia-datastructures
245 (package
246 (name "julia-datastructures")
247 (version "0.18.9")
248 (source
249 (origin
250 (method git-fetch)
251 (uri (git-reference
252 (url "https://github.com/JuliaCollections/DataStructures.jl")
253 (commit (string-append "v" version))))
254 (file-name (git-file-name name version))
255 (sha256
256 (base32 "0hdqp8ipsqdw5bqqkdvz4j6n67x80sj5azr9vzyxwjfsgkfbnk2l"))))
257 (propagated-inputs
258 `(("julia-compat" ,julia-compat)
259 ("julia-orderedcollections" ,julia-orderedcollections)))
260 (build-system julia-build-system)
261 (home-page "https://github.com/JuliaCollections/DataStructures.jl")
262 (synopsis "Julia module providing different data structures")
263 (description "This package implements a variety of data structures,
264including, @code{CircularBuffer}, @code{Queue}, @code{Stack},
265@code{Accumulators}, @code{LinkedLists}, @code{SortedDicts} and many others.")
266 (license license:expat)))
267
fffb1e72 268(define-public julia-example
269 (let ((commit "f968c69dea24f851d0c7e686db23fa55826b5388"))
270 (package
271 (name "julia-example")
272 (version "0.5.4") ;tag not created upstream
273 (source
274 (origin
275 (method git-fetch)
276 (uri (git-reference
277 (url "https://github.com/JuliaLang/Example.jl")
278 (commit commit)))
279 (file-name (git-file-name name version))
280 (sha256
281 (base32 "1v3z0d6gh6wfbypffy9m9rhh36px6fm5wjzq0y6rbmc95r0qpqlx"))))
282 (build-system julia-build-system)
283 (home-page "https://github.com/JuliaLang/Example.jl")
284 (synopsis "Module providing examples")
285 (description "This package provides various examples.")
286 (license license:expat))))
287
f6c5a898 288(define-public julia-finitedifferences
289 (package
290 (name "julia-finitedifferences")
291 (version "0.12.2")
292 (source
293 (origin
294 (method git-fetch)
295 (uri (git-reference
296 (url "https://github.com/JuliaDiff/FiniteDifferences.jl")
297 (commit (string-append "v" version))))
298 (file-name (git-file-name name version))
299 (sha256
300 (base32 "0dcx34026xdpfmbjls3mrknl8ww62kxxfr77kfihbazsfg2gp5b4"))))
301 (build-system julia-build-system)
302 (inputs
303 `(("julia-benchmarktools" ,julia-benchmarktools)))
304 (propagated-inputs
305 `(("julia-chainrulescore" ,julia-chainrulescore)
306 ("julia-richardson" ,julia-richardson)
307 ("julia-staticarrays" ,julia-staticarrays)))
308 (home-page "https://github.com/JuliaDiff/FiniteDifferences.jl")
309 (synopsis "Estimates derivatives with finite differences")
310 (description "This package calculates approximate derivatives numerically
311using finite difference.")
312 (license license:expat)))
313
50f99cc5 314(define-public julia-fixedpointnumbers
315 (package
316 (name "julia-fixedpointnumbers")
317 (version "0.8.4")
318 (source
319 (origin
320 (method git-fetch)
321 (uri (git-reference
322 (url "https://github.com/JuliaMath/FixedPointNumbers.jl")
323 (commit (string-append "v" version))))
324 (file-name (git-file-name name version))
325 (sha256
326 (base32 "0j0n40n04q9sk68wh9jq90m6c67k4ws02k41djjzkrqmpzv4rcdi"))))
327 (build-system julia-build-system)
328 (arguments
329 `(#:phases
330 (modify-phases %standard-phases
331 (add-after 'unpack 'disable-failing-test
332 (lambda* (#:key outputs #:allow-other-keys)
333 (substitute* "test/fixed.jl"
334 ;; A deprecation warning is not thrown
335 (("@test_logs.*:warn" all) (string-append "# " all)))
336 #t)))))
337 (propagated-inputs `(("julia-compat" ,julia-compat)))
338 (home-page "https://github.com/JuliaMath/FixedPointNumbers.jl")
339 (synopsis "Fixed point types for Julia")
340 (description "@code{FixedPointNumbers.jl} implements fixed-point number
341types for Julia. A fixed-point number represents a fractional, or
342non-integral, number. In contrast with the more widely known floating-point
343numbers, with fixed-point numbers the decimal point doesn't \"float\":
344fixed-point numbers are effectively integers that are interpreted as being
345scaled by a constant factor. Consequently, they have a fixed number of
346digits (bits) after the decimal (radix) point.")
347 (license license:expat)))
d4987a50 348
349(define-public julia-http
350 (package
351 (name "julia-http")
352 (version "0.9.2")
353 (source
354 (origin
355 (method git-fetch)
356 (uri (git-reference
357 (url "https://github.com/JuliaWeb/HTTP.jl")
358 (commit (string-append "v" version))))
359 (file-name (git-file-name name version))
360 (sha256
361 (base32 "0ij0yci13c46p92m4zywvcs02nn8pm0abyfffiyhxvva6hq48lyl"))))
362 (build-system julia-build-system)
363 (arguments
364 `(#:phases
365 (modify-phases %standard-phases
366 (add-before 'install 'disable-network-tests
367 (lambda _
368 (substitute* "test/runtests.jl"
369 (("\"async.jl") "# \"async.jl")
370 (("\"client.jl") "# \"client.jl"))
371 (substitute* "test/aws4.jl"
372 (("@testset.*HTTP.request with AWS authentication.*" all)
373 (string-append all "return\n")))
374 (substitute* "test/insert_layers.jl"
375 (("@testset.*Inserted final layer runs handler.*" all)
376 (string-append all "return\n")))
377 (substitute* "test/multipart.jl"
378 (("@testset \"Setting of Content-Type.*" all)
379 (string-append all "return\n"))
380 (("@testset \"Deprecation of .*" all)
381 (string-append all "return\n")))
382 (substitute* "test/websockets.jl"
383 (("@testset.*External Host.*" all)
384 (string-append all "return\n")))
385 (substitute* "test/messages.jl"
386 (("@testset.*Read methods.*" all)
387 (string-append all "return\n"))
388 (("@testset.*Body - .*" all)
389 (string-append all "return\n"))
390 (("@testset.*Write to file.*" all)
391 (string-append all "return\n")))
392 #t)))))
393 (propagated-inputs
394 `(("julia-inifile" ,julia-inifile)
395 ("julia-mbedtls" ,julia-mbedtls)
396 ("julia-uris" ,julia-uris)))
397 ;; required for tests
398 (inputs
399 `(("julia-json" ,julia-json)
400 ("julia-bufferedstreams" ,julia-bufferedstreams)))
401 (home-page "https://juliaweb.github.io/HTTP.jl/")
402 (synopsis "HTTP support for Julia")
403 (description "@code{HTTP.jl} is a Julia library for HTTP Messages,
404implementing both a client and a server.")
405 (license license:expat)))
50f99cc5 406
fc781578 407(define-public julia-inifile
408 (package
409 (name "julia-inifile")
410 (version "0.5.0")
411 (source
412 (origin
413 (method git-fetch)
414 (uri (git-reference
415 (url "https://github.com/JuliaIO/IniFile.jl")
416 (commit "8ba59958495fa276d6489d2c3903e765d75e0bc0")))
417 (file-name (git-file-name name version))
418 (sha256
419 (base32 "11h6f99jpbg729lplw841m68jprka7q3n8yw390bndlmcdsjabpd"))))
420 (build-system julia-build-system)
421 (home-page "https://github.com/JuliaIO/IniFile.jl")
422 (synopsis "Reading Windows-style INI files")
423 (description "This is a Julia package that defines an IniFile type that
424allows to interface with @file{.ini} files.")
425 (license license:expat)))
426
57653707 427(define-public julia-irtools
428 (package
429 (name "julia-irtools")
430 (version "0.4.2")
431 (source
432 (origin
433 (method git-fetch)
434 (uri (git-reference
435 (url "https://github.com/FluxML/IRTools.jl")
436 (commit (string-append "v" version))))
437 (file-name (git-file-name name version))
438 (sha256
439 (base32 "0wwzy77jcdnffnd5fr6xan7162g4wydz67igrq82wflwnrhlcx5y"))))
440 (arguments
441 '(#:tests? #f)) ;require Documenter, not packaged yet
442 (build-system julia-build-system)
443 (propagated-inputs
444 `(("julia-macrotools" ,julia-macrotools)))
445 (home-page "https://github.com/FluxML/IRTools.jl")
446 (synopsis "Simple and flexible IR format")
447 (description "This package provides a simple and flexible IR format,
448expressive enough to work with both lowered and typed Julia code, as well as
449external IRs. It can be used with Julia metaprogramming tools such as
450Cassette.")
451 (license license:expat)))
452
a06db9c1 453(define-public julia-jllwrappers
454 (package
455 (name "julia-jllwrappers")
456 (version "1.2.0")
457 (source
458 (origin
459 (method git-fetch)
460 (uri (git-reference
461 (url "https://github.com/JuliaPackaging/JLLWrappers.jl")
462 (commit (string-append "v" version))))
463 (file-name (git-file-name name version))
464 (sha256
465 (base32 "1sj3mi2dcc13apqfpy401wic5n0pgbck1p98b2g3zw0mln9s83m4"))))
466 (arguments
467 ;; Wants to download stuff
468 '(#:tests? #f
469 #:phases
470 (modify-phases %standard-phases
471 (add-after 'unpack 'custom-override-path
472 (lambda* (#:key inputs #:allow-other-keys)
473 ;; Make @generate_wrapper_header take an optional argument that
474 ;; guix packagers can pass to override the default "override"
475 ;; binary path. This won't be needed when something like
476 ;; https://github.com/JuliaPackaging/JLLWrappers.jl/pull/27
477 ;; will be merged.
478 (substitute* "src/wrapper_generators.jl"
479 (("generate_wrapper_header.*")
480 "generate_wrapper_header(src_name, override_path = nothing)\n")
481 (("pkg_dir = .*" all)
482 (string-append
483 all "\n" "override = something(override_path,"
484 "joinpath(dirname(pkg_dir), \"override\"))\n"))
485 (("@static if isdir.*") "@static if isdir($override)\n")
486 (("return joinpath.*") "return $override\n"))
487 #t)))))
488 (build-system julia-build-system)
489 (home-page "https://github.com/JuliaPackaging/JLLWrappers.jl")
490 (synopsis "Julia macros used by JLL packages")
491 (description "This package contains Julia macros that enable JLL packages
492to generate themselves. It is not intended to be used by users, but rather is
493used in autogenerated packages via @code{BinaryBuilder.jl}.")
494 (license license:expat)))
495
dae521a0 496(define-public julia-json
497 (package
498 (name "julia-json")
499 (version "0.21.1")
500 (source
501 (origin
502 (method git-fetch)
503 (uri (git-reference
504 (url "https://github.com/JuliaIO/JSON.jl")
505 (commit (string-append "v" version))))
506 (file-name (git-file-name name version))
507 (sha256
508 (base32 "1f9k613kbknmp4fgjxvjaw4d5sfbx8a5hmcszmp1w9rqfqngjx9m"))))
509 (build-system julia-build-system)
510 (propagated-inputs
511 `(("julia-datastructures" ,julia-datastructures)
512 ("julia-fixedpointnumbers" ,julia-fixedpointnumbers)
513 ("julia-parsers" ,julia-parsers)
514 ("julia-offsetarrays" ,julia-offsetarrays)))
515 (home-page "https://github.com/JuliaIO/JSON.jl")
516 (synopsis "JSON parsing and printing library for Julia")
517 (description "@code{JSON.jl} is a pure Julia module which supports parsing
518and printing JSON documents.")
519 (license license:expat)))
520
45debc7b 521(define-public julia-macrotools
522 (package
523 (name "julia-macrotools")
524 (version "0.5.6")
525 (source
526 (origin
527 (method git-fetch)
528 (uri (git-reference
529 (url "https://github.com/FluxML/MacroTools.jl")
530 (commit (string-append "v" version))))
531 (file-name (git-file-name name version))
532 (sha256
533 (base32 "0k4z2hyasd9cwxf4l61zk3w4ajs44k69wx6z1ghdn8f5p8xy217f"))))
534 (build-system julia-build-system)
535 (home-page "https://fluxml.ai/MacroTools.jl")
536 (synopsis "Tools for working with Julia code and expressions")
537 (description "This library provides tools for working with Julia code and
538expressions. This includes a template-matching system and code-walking tools
539that let you do deep transformations of code.")
540 (license license:expat)))
541
a72d3ca8 542(define-public julia-mbedtls
543 (package
544 (name "julia-mbedtls")
545 (version "1.0.3")
546 (source
547 (origin
548 (method git-fetch)
549 (uri (git-reference
550 (url "https://github.com/JuliaLang/MbedTLS.jl")
551 (commit (string-append "v" version))))
552 (file-name (git-file-name name version))
553 (sha256
554 (base32 "0zjzf2r57l24n3k0gcqkvx3izwn5827iv9ak0lqix0aa5967wvfb"))))
555 (build-system julia-build-system)
556 (arguments
557 `(#:phases
558 (modify-phases %standard-phases
559 (add-before 'install 'disable-network-tests
560 ;; Tries to connect to httpbin.org
561 (lambda _
562 (substitute* "test/runtests.jl"
563 (("testhost =") "return #"))
564 #t)))))
565 (propagated-inputs `(("julia-mbedtls-jll" ,julia-mbedtls-jll)))
566 (home-page "https://github.com/JuliaLang/MbedTLS.jl")
567 (synopsis "Apache's mbed TLS library wrapper")
568 (description "@code{MbedTLS.jl} provides a wrapper around the @code{mbed
569TLS} and cryptography C libary for Julia.")
570 (license license:expat)))
571
3291e4ba 572(define-public julia-mbedtls-jll
573 (package
574 (name "julia-mbedtls-jll")
575 ;; version 2.25.0+0 is not compatible with current mbedtls 2.23.0,
576 ;; upgrade this when mbedtls is updated in guix
577 (version "2.24.0+1")
578 (source
579 (origin
580 (method git-fetch)
581 (uri (git-reference
582 (url "https://github.com/JuliaBinaryWrappers/MbedTLS_jll.jl")
583 (commit (string-append "MbedTLS-v" version))))
584 (file-name (git-file-name name version))
585 (sha256
586 (base32 "0kk9dlxdh7yms21npgrdfmjbj8q8ng6kdhrzw3jr2d7rp696kp99"))))
587 (build-system julia-build-system)
588 (arguments
589 '(#:tests? #f ; No runtests.jl
590 #:phases
591 (modify-phases %standard-phases
592 (add-after 'unpack 'override-binary-path
593 (lambda* (#:key inputs #:allow-other-keys)
594 (map
595 (lambda (wrapper)
596 (substitute* wrapper
597 (("generate_wrapper_header.*")
598 (string-append
599 "generate_wrapper_header(\"MbedTLS\", \""
600 (assoc-ref inputs "mbedtls-apache") "\")\n"))))
601 ;; There's a Julia file for each platform, override them all
602 (find-files "src/wrappers/" "\\.jl$"))
603 #t)))))
604 (inputs `(("mbedtls-apache" ,mbedtls-apache)))
605 (propagated-inputs `(("julia-jllwrappers" ,julia-jllwrappers)))
606 (home-page "https://github.com/JuliaBinaryWrappers/MbedTLS_jll.jl")
607 (synopsis "Apache's mbed TLS binary wrappers")
608 (description "This Julia module provides @code{mbed TLS} libraries and
609wrappers.")
610 (license license:expat)))
611
a5edd83d 612(define-public julia-nanmath
613 (package
614 (name "julia-nanmath")
615 (version "0.3.5")
616 (source
617 (origin
618 (method git-fetch)
619 (uri (git-reference
620 (url "https://github.com/mlubin/NaNMath.jl")
621 (commit (string-append "v" version))))
622 (file-name (git-file-name name version))
623 (sha256
624 (base32 "1hczhz00qj99w63vp627kwk02l2sr2qmzc2rkwwkdwvzy670p25q"))))
625 (build-system julia-build-system)
626 (home-page "https://github.com/mlubin/NaNMath.jl")
627 (synopsis "Implementations of basic math functions")
628 (description "Implementations of basic math functions which return
629@code{NaN} instead of throwing a @code{DomainError}.")
630 (license license:expat)))
631
eccd448c 632(define-public julia-orderedcollections
633 (package
634 (name "julia-orderedcollections")
635 (version "1.3.2")
636 (source
637 (origin
638 (method git-fetch)
639 (uri (git-reference
640 (url "https://github.com/JuliaCollections/OrderedCollections.jl")
641 (commit (string-append "v" version))))
642 (file-name (git-file-name name version))
643 (sha256
644 (base32 "0sfip1ixghsz91q2s7d62rgzw3gppg42fg6bccxlplqa3hfmbycf"))))
645 (build-system julia-build-system)
646 (home-page "https://github.com/JuliaCollections/OrderedCollections.jl")
647 (synopsis "Associative containers that preserve insertion order")
648 (description "This package implements @code{OrderedDicts} and
649@code{OrderedSets}, which are similar to containers in base Julia. However,
650during iteration the @code{Ordered*} containers return items in the order in
651which they were added to the collection.")
652 (license license:expat)))
c0c21d77 653
fb634a0e 654(define-public julia-offsetarrays
655 (package
656 (name "julia-offsetarrays")
657 (version "1.5.2")
658 (source
659 (origin
660 (method git-fetch)
661 (uri (git-reference
662 (url "https://github.com/JuliaArrays/OffsetArrays.jl")
663 (commit (string-append "v" version))))
664 (file-name (git-file-name name version))
665 (sha256
666 (base32 "1y3fnssw2hzyghrk6jfcxslab0f8sjkjszh482snfq4k6mkrhy77"))))
667 (build-system julia-build-system)
668 (propagated-inputs
669 `(("julia-adapt" ,julia-adapt)))
670 ;; CatIndices depends on OffsetArrays, introducing a recursive dependency
671 (arguments '(#:tests? #f))
672 (home-page "https://juliaarrays.github.io/OffsetArrays.jl/stable/")
673 (synopsis "Fortran-like arrays with arbitrary, zero or negative indices")
674 (description "@code{OffsetArrays.jl} provides Julia users with arrays that
675have arbitrary indices, similar to those found in some other programming
676languages like Fortran.")
677 (license license:expat)))
678
c0c21d77 679(define-public julia-parsers
680 (package
681 (name "julia-parsers")
682 (version "1.0.15")
683 (source
684 (origin
685 (method git-fetch)
686 (uri (git-reference
687 (url "https://github.com/JuliaData/Parsers.jl")
688 (commit (string-append "v" version))))
689 (file-name (git-file-name name version))
690 (sha256
691 (base32 "16iffl6l28kspgqch48mhi1s8qhspr3cpqcwsph3rqi72lbfqygx"))))
692 (build-system julia-build-system)
693 (home-page "https://github.com/JuliaData/Parsers.jl")
694 (synopsis "Fast parsing machinery for basic types in Julia")
695 (description "@code{Parsers.jl} is a collection of type parsers and
696utilities for Julia.")
697 (license license:expat)))
8f59a9fb 698
02543b52 699(define-public julia-reexport
700 (package
701 (name "julia-reexport")
702 (version "1.0.0")
703 (source
704 (origin
705 (method git-fetch)
706 (uri (git-reference
707 (url "https://github.com/simonster/Reexport.jl")
708 (commit version)))
709 (file-name (git-file-name name version))
710 (sha256
711 (base32 "1yhhja1zz6dy5f4fd19bdwd6jwgj7q4w3avzgyg1hjhmdl8jrh0s"))))
712 (build-system julia-build-system)
713 (home-page "https://github.com/simonster/Reexport.jl")
714 (synopsis "Re-export modules and symbols")
715 (description "This package provides tools to re-export modules and symbols.")
716 (license license:expat)))
717
658fca53 718(define-public julia-requires
719 (package
720 (name "julia-requires")
721 (version "1.1.3")
722 (source
723 (origin
724 (method git-fetch)
725 (uri (git-reference
726 (url "https://github.com/JuliaPackaging/Requires.jl/")
727 (commit (string-append "v" version))))
728 (file-name (git-file-name name version))
729 (sha256
730 (base32 "03hyfy7c0ma45b0y756j76awi3az2ii4bz4s8cxm3xw9yy1z7b01"))))
731 (build-system julia-build-system)
732 (inputs ;required for test
733 `(("julia-example" ,julia-example)))
734 (propagated-inputs
735 `(("julia-colors" ,julia-colors)))
736 (home-page "https://github.com/JuliaPackaging/Requires.jl/")
737 (synopsis "Faster package loader")
738 (description "This package make loading packages faster, maybe. It
739supports specifying glue code in packages which will load automatically when
740another package is loaded, so that explicit dependencies (and long load times)
741can be avoided.")
742 (license license:expat)))
743
dd7a77c3 744(define-public julia-richardson
745 (package
746 (name "julia-richardson")
747 (version "1.4.0")
748 (source
749 (origin
750 (method git-fetch)
751 (uri (git-reference
752 (url "https://github.com/JuliaMath/Richardson.jl")
753 (commit (string-append "v" version))))
754 (file-name (git-file-name name version))
755 (sha256
756 (base32 "06v9ii3d7hh41fsrfklaa8ap55z5s017f888mrd1c18y4fx9i4nx"))))
757 (build-system julia-build-system)
758 (home-page "https://juliapackages.com/p/richardson")
759 (synopsis "Extrapolate function using Richardson method")
760 (description "This package provides a function extrapolate that
761extrapolates a given function @code{f(x)} to @code{f(x0)}, evaluating @code{f}
762only at a geometric sequence of points @code{> x0} (or optionally @code{<
763x0}). The key algorithm is Richardson extrapolation using a Neville–Aitken
764tableau, which adaptively increases the degree of an extrapolation polynomial
765until convergence is achieved to a desired tolerance (or convergence stalls
766due to e.g. floating-point errors). This allows one to obtain @code{f(x0)} to
767high-order accuracy, assuming that @code{f(x0+h)} has a Taylor series or some
768other power series in @code{h}.")
769 (license license:expat)))
770
be802277 771(define-public julia-staticarrays
772 (package
773 (name "julia-staticarrays")
774 (version "1.0.1")
775 (source
776 (origin
777 (method git-fetch)
778 (uri (git-reference
779 (url "https://github.com/JuliaArrays/StaticArrays.jl")
780 (commit (string-append "v" version))))
781 (file-name (git-file-name name version))
782 (sha256
783 (base32 "01z8bcqwpfkp8p1h1r36pr5cc3798y76zkas7g3206pcsdhvlkz1"))))
784 (build-system julia-build-system)
785 (inputs
786 `(("julia-benchmarktools" ,julia-benchmarktools)))
787 (home-page "https://github.com/JuliaArrays/StaticArrays.jl")
788 (synopsis "Statically sized arrays")
789 (description "This package provides a framework for implementing
790statically sized arrays in Julia, using the abstract type
791@code{StaticArray{Size,T,N} <: AbstractArray{T,N}}. Subtypes of
792@code{StaticArray} will provide fast implementations of common array and
793linear algebra operations.")
794 (license license:expat)))
795
8f59a9fb 796(define-public julia-uris
797 (package
798 (name "julia-uris")
799 (version "1.2.0")
800 (source
801 (origin
802 (method git-fetch)
803 (uri (git-reference
804 (url "https://github.com/JuliaWeb/URIs.jl")
805 (commit (string-append "v" version))))
806 (file-name (git-file-name name version))
807 (sha256
808 (base32 "0fqyagsqks5za7m0czafr34m2xh5501f689k9cn5x3npajdnh2r3"))))
809 (build-system julia-build-system)
810 (arguments
811 '(#:julia-package-name "URIs" ;required to run tests
812 #:phases
813 (modify-phases %standard-phases
814 (add-before 'check 'change-dir
815 ;; Tests must be run from the testdir
816 (lambda* (#:key source outputs #:allow-other-keys)
817 (let ((out (assoc-ref outputs "out")))
818 (chdir
819 (string-append out "/share/julia/packages/URIs/test")))
820 #t)))))
821 ;; required for tests
822 (inputs `(("julia-json" ,julia-json)))
823 (home-page "https://github.com/JuliaWeb/URIs.jl")
824 (synopsis "URI parsing in Julia")
825 (description "@code{URIs.jl} is a Julia package that allows parsing and
826working with @acronym{URIs,Uniform Resource Identifiers}, as defined in RFC
8273986.")
828 (license license:expat)))
a8e3be6a 829
830(define-public julia-unitful
831 (package
832 (name "julia-unitful")
833 (version "1.6.0")
834 (source
835 (origin
836 (method git-fetch)
837 (uri (git-reference
838 (url "https://github.com/PainterQubits/Unitful.jl")
839 (commit (string-append "v" version))))
840 (file-name (git-file-name name version))
841 (sha256
842 (base32 "0g5bhlvay9yk11c5dqwbzmb3q7lzj0cq5zchyk39d59fkvvmxvq3"))))
843 (build-system julia-build-system)
844 (propagated-inputs
845 `(("julia-constructionbase" ,julia-constructionbase)))
846 (home-page "https://painterqubits.github.io/Unitful.jl/stable/")
847 (synopsis "Physical units in Julia")
848 (description "This package supports SI units and also many other unit
849system.")
850 (license license:expat)))