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