gnu: Add julia-offsetarrays.
[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>
a1315b7f 3;;;
4;;; This file is part of GNU Guix.
5;;;
6;;; GNU Guix is free software; you can redistribute it and/or modify it
7;;; under the terms of the GNU General Public License as published by
8;;; the Free Software Foundation; either version 3 of the License, or (at
9;;; your option) any later version.
10;;;
11;;; GNU Guix is distributed in the hope that it will be useful, but
12;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14;;; GNU General Public License for more details.
15;;;
16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18
19(define-module (gnu packages julia-xyz)
20 #:use-module ((guix licenses) #:prefix license:)
21 #:use-module (guix packages)
22 #:use-module (guix git-download)
23 #:use-module (guix build-system julia))
24
20767b9b 25(define-public julia-adapt
26 (package
27 (name "julia-adapt")
28 (version "3.1.1")
29 (source
30 (origin
31 (method git-fetch)
32 (uri (git-reference
33 (url "https://github.com/JuliaGPU/Adapt.jl")
34 (commit (string-append "v" version))))
35 (file-name "Adapt")
36 (sha256
37 (base32 "1lks6k3a1gvwlplld47nh6xfy3nnlpc0vhkzg6zg0qn33qdmavrg"))))
38 (build-system julia-build-system)
39 (home-page "https://github.com/JuliaGPU/Adapt.jl")
40 (synopsis "Package providing the @code{adapt} function, similar to @code{convert}")
41 (description "This Julia package provides the @code{adapt(T, x)} function
42acts like @code{convert(T, x)}, but without the restriction of returning a
43@code{T}. This allows you to \"convert\" wrapper types like @code{Adjoint} to
44be GPU compatible without throwing away the wrapper.")
45 (license license:expat)))
46
a1315b7f 47(define-public julia-compat
48 (package
49 (name "julia-compat")
f7a98af0 50 (version "3.25.0")
a1315b7f 51 (source
52 (origin
53 (method git-fetch)
54 (uri (git-reference
55 (url "https://github.com/JuliaLang/Compat.jl")
56 (commit (string-append "v" version))))
54721e7e 57 (file-name (git-file-name name version))
a1315b7f 58 (sha256
f7a98af0 59 (base32 "1m4r5i8mq29xjp3mllh6047n5a78sdyld57m15anrnsjgaapcgby"))))
a1315b7f 60 (build-system julia-build-system)
61 (home-page "https://github.com/JuliaLang/Compat.jl")
62 (synopsis "Compatibility across Julia versions")
63 (description "The Compat package is designed to ease interoperability
64between older and newer versions of the Julia language. The Compat package
65provides a macro that lets you use the latest syntax in a backwards-compatible
66way.")
67 (license license:expat)))
eccd448c 68
6545cef5 69(define-public julia-datastructures
70 (package
71 (name "julia-datastructures")
72 (version "0.18.9")
73 (source
74 (origin
75 (method git-fetch)
76 (uri (git-reference
77 (url "https://github.com/JuliaCollections/DataStructures.jl")
78 (commit (string-append "v" version))))
79 (file-name (git-file-name name version))
80 (sha256
81 (base32 "0hdqp8ipsqdw5bqqkdvz4j6n67x80sj5azr9vzyxwjfsgkfbnk2l"))))
82 (propagated-inputs
83 `(("julia-compat" ,julia-compat)
84 ("julia-orderedcollections" ,julia-orderedcollections)))
85 (build-system julia-build-system)
86 (home-page "https://github.com/JuliaCollections/DataStructures.jl")
87 (synopsis "Julia module providing different data structures")
88 (description "This package implements a variety of data structures,
89including, @code{CircularBuffer}, @code{Queue}, @code{Stack},
90@code{Accumulators}, @code{LinkedLists}, @code{SortedDicts} and many others.")
91 (license license:expat)))
92
50f99cc5 93(define-public julia-fixedpointnumbers
94 (package
95 (name "julia-fixedpointnumbers")
96 (version "0.8.4")
97 (source
98 (origin
99 (method git-fetch)
100 (uri (git-reference
101 (url "https://github.com/JuliaMath/FixedPointNumbers.jl")
102 (commit (string-append "v" version))))
103 (file-name (git-file-name name version))
104 (sha256
105 (base32 "0j0n40n04q9sk68wh9jq90m6c67k4ws02k41djjzkrqmpzv4rcdi"))))
106 (build-system julia-build-system)
107 (arguments
108 `(#:phases
109 (modify-phases %standard-phases
110 (add-after 'unpack 'disable-failing-test
111 (lambda* (#:key outputs #:allow-other-keys)
112 (substitute* "test/fixed.jl"
113 ;; A deprecation warning is not thrown
114 (("@test_logs.*:warn" all) (string-append "# " all)))
115 #t)))))
116 (propagated-inputs `(("julia-compat" ,julia-compat)))
117 (home-page "https://github.com/JuliaMath/FixedPointNumbers.jl")
118 (synopsis "Fixed point types for Julia")
119 (description "@code{FixedPointNumbers.jl} implements fixed-point number
120types for Julia. A fixed-point number represents a fractional, or
121non-integral, number. In contrast with the more widely known floating-point
122numbers, with fixed-point numbers the decimal point doesn't \"float\":
123fixed-point numbers are effectively integers that are interpreted as being
124scaled by a constant factor. Consequently, they have a fixed number of
125digits (bits) after the decimal (radix) point.")
126 (license license:expat)))
127
eccd448c 128(define-public julia-orderedcollections
129 (package
130 (name "julia-orderedcollections")
131 (version "1.3.2")
132 (source
133 (origin
134 (method git-fetch)
135 (uri (git-reference
136 (url "https://github.com/JuliaCollections/OrderedCollections.jl")
137 (commit (string-append "v" version))))
138 (file-name (git-file-name name version))
139 (sha256
140 (base32 "0sfip1ixghsz91q2s7d62rgzw3gppg42fg6bccxlplqa3hfmbycf"))))
141 (build-system julia-build-system)
142 (home-page "https://github.com/JuliaCollections/OrderedCollections.jl")
143 (synopsis "Associative containers that preserve insertion order")
144 (description "This package implements @code{OrderedDicts} and
145@code{OrderedSets}, which are similar to containers in base Julia. However,
146during iteration the @code{Ordered*} containers return items in the order in
147which they were added to the collection.")
148 (license license:expat)))
c0c21d77 149
fb634a0e 150(define-public julia-offsetarrays
151 (package
152 (name "julia-offsetarrays")
153 (version "1.5.2")
154 (source
155 (origin
156 (method git-fetch)
157 (uri (git-reference
158 (url "https://github.com/JuliaArrays/OffsetArrays.jl")
159 (commit (string-append "v" version))))
160 (file-name (git-file-name name version))
161 (sha256
162 (base32 "1y3fnssw2hzyghrk6jfcxslab0f8sjkjszh482snfq4k6mkrhy77"))))
163 (build-system julia-build-system)
164 (propagated-inputs
165 `(("julia-adapt" ,julia-adapt)))
166 ;; CatIndices depends on OffsetArrays, introducing a recursive dependency
167 (arguments '(#:tests? #f))
168 (home-page "https://juliaarrays.github.io/OffsetArrays.jl/stable/")
169 (synopsis "Fortran-like arrays with arbitrary, zero or negative indices")
170 (description "@code{OffsetArrays.jl} provides Julia users with arrays that
171have arbitrary indices, similar to those found in some other programming
172languages like Fortran.")
173 (license license:expat)))
174
c0c21d77 175(define-public julia-parsers
176 (package
177 (name "julia-parsers")
178 (version "1.0.15")
179 (source
180 (origin
181 (method git-fetch)
182 (uri (git-reference
183 (url "https://github.com/JuliaData/Parsers.jl")
184 (commit (string-append "v" version))))
185 (file-name (git-file-name name version))
186 (sha256
187 (base32 "16iffl6l28kspgqch48mhi1s8qhspr3cpqcwsph3rqi72lbfqygx"))))
188 (build-system julia-build-system)
189 (home-page "https://github.com/JuliaData/Parsers.jl")
190 (synopsis "Fast parsing machinery for basic types in Julia")
191 (description "@code{Parsers.jl} is a collection of type parsers and
192utilities for Julia.")
193 (license license:expat)))