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