summaryrefslogtreecommitdiff
path: root/gnu/packages/julia-xyz.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/julia-xyz.scm')
-rw-r--r--gnu/packages/julia-xyz.scm1044
1 files changed, 1042 insertions, 2 deletions
diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index 34dba958ce..85949ec9e8 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
+;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -20,7 +21,35 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix git-download)
- #:use-module (guix build-system julia))
+ #:use-module (guix build-system julia)
+ #:use-module (gnu packages gcc)
+ #:use-module (gnu packages maths)
+ #:use-module (gnu packages tls))
+
+(define-public julia-abstractffts
+ (package
+ (name "julia-abstractffts")
+ (version "1.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaMath/AbstractFFTS.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0083pwdyxjb04i330ir9pc8kmp4bwk59lx1jgc9qi05y8j7xzbp0"))))
+ (build-system julia-build-system)
+ (inputs ;required for tests
+ `(("julia-unitful" ,julia-unitful)))
+ (home-page "https://github.com/JuliaGPU/Adapt.jl")
+ (synopsis "General framework for fast Fourier transforms (FFTs)")
+ (description "This package allows multiple FFT packages to co-exist with
+the same underlying @code{fft(x)} and @code{plan_fft(x)} interface. It is
+mainly not intended to be used directly. Instead, developers of packages that
+implement FFTs (such as @code{FFTW.jl} or @code{FastTransforms.jl}) extend the
+types/functions defined in AbstractFFTs.")
+ (license license:expat)))
(define-public julia-adapt
(package
@@ -32,7 +61,7 @@
(uri (git-reference
(url "https://github.com/JuliaGPU/Adapt.jl")
(commit (string-append "v" version))))
- (file-name "Adapt")
+ (file-name (git-file-name name version))
(sha256
(base32 "1lks6k3a1gvwlplld47nh6xfy3nnlpc0vhkzg6zg0qn33qdmavrg"))))
(build-system julia-build-system)
@@ -44,6 +73,242 @@ acts like @code{convert(T, x)}, but without the restriction of returning a
be GPU compatible without throwing away the wrapper.")
(license license:expat)))
+(define-public julia-benchmarktools
+ (package
+ (name "julia-benchmarktools")
+ (version "0.5.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaCI/BenchmarkTools.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0nsx21m3i5h22lkgyrmfj6r085va6ag40khwssqs8y7l0wz98lvp"))))
+ (build-system julia-build-system)
+ (propagated-inputs `(("julia-json" ,julia-json)))
+ (home-page "https://github.com/JuliaCI/BenchmarkTools.jl")
+ (synopsis "Benchmarking framework for the Julia language")
+ (description "@code{BenchmarkTools.jl} makes performance tracking of Julia
+code easy by supplying a framework for writing and running groups of
+benchmarks as well as comparing benchmark results.")
+ (license license:expat)))
+
+(define-public julia-bufferedstreams
+ (package
+ (name "julia-bufferedstreams")
+ (version "1.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/BioJulia/BufferedStreams.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0sf4sxbq55mg2pwxyxf0c839z1lk0yxg8nmb7617bfbvw31cp88z"))))
+ (build-system julia-build-system)
+ ;; The package is old and tests are using undefined functions. They also
+ ;; freeze, see
+ ;; https://travis-ci.org/BioJulia/BufferedStreams.jl/jobs/491050182
+ (arguments
+ '(#:tests? #f
+ #:julia-package-name "BufferedStreams"))
+ (propagated-inputs `(("julia-compat" ,julia-compat)))
+ (home-page "https://github.com/BioJulia/BufferedStreams.jl")
+ (synopsis "Fast composable IO streams")
+ (description "@code{BufferedStreams.jl} provides buffering for IO
+operations. It can wrap any @code{IO} type automatically making incremental
+reading and writing faster.")
+ (license license:expat)))
+
+(define-public julia-calculus
+ (package
+ (name "julia-calculus")
+ (version "0.5.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaMath/Calculus.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0xh0ak2ycsjw2h86ja24ch3kn2d18zx3frrds78aimwdnqb1gdc2"))))
+ (build-system julia-build-system)
+ (home-page "https://github.com/JuliaMath/Calculus.jl")
+ (synopsis "Common utilities for automatic differentiation")
+ (description "This package provides tools for working with the basic
+calculus operations of differentiation and integration. The @code{Calculus}
+package produces approximate derivatives by several forms of finite
+differencing or produces exact derivative using symbolic differentiation. It
+can also be used to compute definite integrals by different numerical
+methods.")
+ (license license:expat)))
+
+(define-public julia-chainrules
+ (package
+ (name "julia-chainrules")
+ (version "0.7.54")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaDiff/ChainRules.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1x4w71v8cw0vpba47h8f5xq4gyjfxbcvayzf7m41yg8gf49s9pkf"))))
+ (build-system julia-build-system)
+ (inputs ;required for test
+ `(("julia-chainrulestestutils" ,julia-chainrulestestutils)
+ ("julia-finitedifferences" ,julia-finitedifferences)
+ ("julia-nanmath" ,julia-nanmath)
+ ("julia-specialfunctions" ,julia-specialfunctions)))
+ (propagated-inputs
+ `(("julia-chainrulescore" ,julia-chainrulescore)
+ ("julia-compat" ,julia-compat)
+ ("julia-reexport" ,julia-reexport)
+ ("julia-requires" ,julia-requires)))
+ (home-page "https://github.com/JuliaDiff/ChainRules.jl")
+ (synopsis "Common utilities for automatic differentiation")
+ (description "The is package provides a variety of common utilities that
+can be used by downstream automatic differentiation (AD) tools to define and
+execute forward-, reverse-, and mixed-mode primitives.")
+ (license license:expat)))
+
+(define-public julia-chainrulescore
+ (package
+ (name "julia-chainrulescore")
+ (version "0.9.29")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaDiff/ChainRulesCore.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1k0iayw39n1ikkkhvyi4498vsnzc94skqs41gnd15632gxjfvki4"))))
+ (build-system julia-build-system)
+ (inputs ;required for tests
+ `(("julia-benchmarktools" ,julia-benchmarktools)
+ ("julia-staticarrays" ,julia-staticarrays)))
+ (propagated-inputs
+ `(("julia-compat" ,julia-compat)))
+ (home-page "https://github.com/JuliaDiff/ChainRulesCore.jl")
+ (synopsis "Common utilities used by downstream automatic differentiation tools")
+ (description "The package provides a light-weight dependency for defining
+sensitivities for functions without the need to depend on ChainRules itself.")
+ (license license:expat)))
+
+(define-public julia-chainrulestestutils
+ (package
+ (name "julia-chainrulestestutils")
+ (version "0.6.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaDiff/ChainRulesTestUtils.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1pzs947adnb3cx1qd0cxp2fidk9szz0zsqbas90z1lhydykkvkil"))))
+ (build-system julia-build-system)
+ (propagated-inputs
+ `(("julia-chainrulescore" ,julia-chainrulescore)
+ ("julia-compat" ,julia-compat)
+ ("julia-finitedifference" ,julia-finitedifferences)))
+ (home-page "https://github.com/JuliaDiff/ChainRulesTestUtils.jl")
+ (synopsis "Common utilities used by downstream automatic differentiation tools")
+ (description "This package is designed to help in testing
+@code{ChainRulesCore.frule} and @code{ChainRulesCore.rrule} methods. The main
+entry points are @code{ChainRulesTestUtils.frule_test},
+@code{ChainRulesTestUtils.rrule_test}, and
+@code{ChainRulesTestUtils.test_scalar}. Currently this is done via testing the
+rules against numerical differentiation (using @code{FiniteDifferences.jl}).
+
+@code{ChainRulesTestUtils.jl} is separated from @code{ChainRulesCore.jl} so that it
+can be a test-only dependency, allowing it to have potentially heavy
+dependencies, while keeping @code{ChainRulesCore.jl} as light-weight as possible.")
+ (license license:expat)))
+
+(define-public julia-colors
+ (package
+ (name "julia-colors")
+ (version "0.12.6")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaGraphics/Colors.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "156zsszgwh6bmznsan0zyha6yvcxw3c5mvc5vr2qfsgxbyh36ln6"))))
+ (build-system julia-build-system)
+ (propagated-inputs
+ `(("julia-colortypes" ,julia-colortypes)
+ ("julia-fixedpointnumbers" ,julia-fixedpointnumbers)
+ ("julia-reexport" ,julia-reexport)))
+ (home-page "https://github.com/JuliaGraphics/Colors.jl")
+ (synopsis "Tools for dealing with color")
+ (description "This package provides a wide array of functions for dealing
+with color. This includes conversion between colorspaces, measuring distance
+between colors, simulating color blindness, parsing colors, and generating
+color scales for graphics.")
+ (license license:expat)))
+
+(define-public julia-colortypes
+ (package
+ (name "julia-colortypes")
+ (version "0.10.12")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaGraphics/ColorTypes.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "176hr3qbz7lncmykks2qaj3cqisnzim7wi5jwsca9ld26wwyvyqq"))))
+ (arguments
+ '(#:tests? #f)) ;require Documenter, not packaged yet
+ (build-system julia-build-system)
+ (propagated-inputs
+ `(("julia-fixedpointnumbers" ,julia-fixedpointnumbers)))
+ (home-page "https://github.com/JuliaGraphics/ColorTypes.jl")
+ (synopsis "Basic color types and constructor")
+ (description "This minimalistic package serves as the foundation for
+working with colors in Julia. It defines basic color types and their
+constructors, and sets up traits and show methods to make them easier to work
+with.")
+ (license license:expat)))
+
+(define-public julia-commonsubexpressions
+ (package
+ (name "julia-commonsubexpressions")
+ (version "0.3.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rdeits/CommonSubexpressions.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0mgy90kk8ksv3l720kkk04gnhn4aqhh2dj4sp3x8yy3limngfjay"))))
+ (build-system julia-build-system)
+ (propagated-inputs
+ `(("julia-macrotools" ,julia-macrotools)))
+ (home-page "https://github.com/rdeits/CommonSubexpressions.jl")
+ (synopsis "@code{@@cse} macro for Julia")
+ (description "This package provides the @code{@@cse} macro, which performs
+common subexpression elimination.")
+ (license license:expat)))
+
(define-public julia-compat
(package
(name "julia-compat")
@@ -66,6 +331,71 @@ provides a macro that lets you use the latest syntax in a backwards-compatible
way.")
(license license:expat)))
+;;; TODO: Remove this autogenerated source package
+;;; and build it from realse source using <https://github.com/JuliaPackaging/Yggdrasil/>
+(define-public julia-compilersupportlibraries-jll
+ (package
+ (name "julia-compilersupportlibraries-jll")
+ (version "0.4.0+1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaBinaryWrappers/CompilerSupportLibraries_jll.jl")
+ (commit (string-append "CompilerSupportLibraries-v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "03j6xdvps259mhdzpjqf41l65w2l9sahvxg4wrp34hcf69wkrzpy"))))
+ (build-system julia-build-system)
+ (arguments
+ `(#:tests? #f ; no runtests.jl
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'override-binary-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (map
+ (lambda (wrapper)
+ (substitute* wrapper
+ (("generate_wrapper_header.*")
+ (string-append
+ "generate_wrapper_header(\"CompilerSupportLibraries\", \""
+ (assoc-ref inputs "gfortran:lib") "\")\n"))))
+ ;; There's a Julia file for each platform, override them all
+ (find-files "src/wrappers/" "\\.jl$"))
+ #t)))))
+ (inputs ;required by artifacts
+ `(("gfortran:lib" ,gfortran "lib")))
+ (propagated-inputs
+ `(("julia-jllwrappers" ,julia-jllwrappers)))
+ (home-page "https://github.com/JuliaBinaryWrappers/CompilerSupportLibraries_jll.jl")
+ (synopsis "Internal wrappers")
+ (description "This package provides compiler support for libraries. It is
+an autogenerated source package constructed using @code{BinaryBuilder.jl}. The
+originating @code{build_tarballs.jl} script can be found on the community
+build tree Yggdrasil.")
+ (license license:expat)))
+
+(define-public julia-constructionbase
+ (let ((commit "de77e2865b554f9b078fd8c35b593cce0554ae02"))
+ (package
+ (name "julia-constructionbase")
+ (version "1.1.0") ;tag not created upstream
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaObjects/ConstructionBase.jl")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1y79sfj0rds1skl9j16p9161hwa9khm0xc2m4hgjcbh5zzvyr57v"))))
+ (build-system julia-build-system)
+ (home-page "https://juliaobjects.github.io/ConstructionBase.jl/dev/")
+ (synopsis "Primitive functions for construction of objects")
+ (description "This very lightweight package provides primitive functions
+for construction of objects.")
+ (license license:expat))))
+
(define-public julia-datastructures
(package
(name "julia-datastructures")
@@ -90,6 +420,143 @@ including, @code{CircularBuffer}, @code{Queue}, @code{Stack},
@code{Accumulators}, @code{LinkedLists}, @code{SortedDicts} and many others.")
(license license:expat)))
+(define-public julia-diffresults
+ (package
+ (name "julia-diffresults")
+ (version "1.0.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaDiff/DiffResults.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1w6p3yxajvclax5b9g7cr2jmbc7lvr5nk4gq0aljxdycdq1d2y3v"))))
+ (propagated-inputs
+ `(("julia-staticarrays" ,julia-staticarrays)))
+ (build-system julia-build-system)
+ (home-page "https://github.com/JuliaDiff/DiffResults.jl")
+ (synopsis "In-place differentiation methods of primal values at multi-order")
+ (description "This package provides the @code{DiffResult} type, which can
+be passed to in-place differentiation methods instead of an output buffer.")
+ (license license:expat)))
+
+(define-public julia-diffrules
+ (package
+ (name "julia-diffrules")
+ (version "1.0.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaDiff/DiffRules.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0cwjvj4gma7924fm3yas0nf0jlnwwx4v7fi79ii3s290lkdldzfl"))))
+ (propagated-inputs
+ `(("julia-nanmath" ,julia-nanmath)
+ ("julia-specialfunctions" ,julia-specialfunctions)))
+ (build-system julia-build-system)
+ (home-page "https://github.com/JuliaDiff/DiffRules.jl")
+ (synopsis "Primitive differentiation rules")
+ (description "This package provides primitive differentiation rules that
+can be composed via various formulations of the chain rule. Using
+@code{DiffRules}, new differentiation rules can defined, query whether or not
+a given rule exists, and symbolically apply rules to simple Julia expressions.")
+ (license license:expat)))
+
+(define-public julia-difftests
+ (package
+ (name "julia-difftests")
+ (version "0.1.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaDiff/DiffTests.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1rxpnd5zi3pxgdd38l5jm2sxc3q6p7g57fqgll2dsiin07y3my57"))))
+ (build-system julia-build-system)
+ (home-page "https://github.com/JuliaDiff/DiffTests.jl")
+ (synopsis "Common test functions for differentiation tools")
+ (description "This package contains a common suite of test functions for
+stressing the robustness of differentiation tools.")
+ (license license:expat)))
+
+(define-public julia-example
+ (let ((commit "f968c69dea24f851d0c7e686db23fa55826b5388"))
+ (package
+ (name "julia-example")
+ (version "0.5.4") ;tag not created upstream
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaLang/Example.jl")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1v3z0d6gh6wfbypffy9m9rhh36px6fm5wjzq0y6rbmc95r0qpqlx"))))
+ (build-system julia-build-system)
+ (home-page "https://github.com/JuliaLang/Example.jl")
+ (synopsis "Module providing examples")
+ (description "This package provides various examples.")
+ (license license:expat))))
+
+(define-public julia-fillarrays
+ (package
+ (name "julia-fillarrays")
+ (version "0.11.7")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaArrays/FillArrays.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1q1qn9pb5dmppddnmf8gggdqyvivqh3ffvbblhn37smcf9r5sy7d"))))
+ (build-system julia-build-system)
+ (inputs ;required by tests
+ `(("julia-staticarrays" ,julia-staticarrays)))
+ (home-page "https://github.com/JuliaArrays/FillArrays.jl")
+ (synopsis "Lazy matrix representation")
+ (description "This package allows to lazily represent matrices filled with
+a single entry, as well as identity matrices. This package exports the
+following types: @code{Eye}, @code{Fill}, @code{Ones}, @code{Zeros},
+@code{Trues} and @code{Falses}.")
+ (license license:expat)))
+
+(define-public julia-finitedifferences
+ (package
+ (name "julia-finitedifferences")
+ (version "0.12.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaDiff/FiniteDifferences.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0dcx34026xdpfmbjls3mrknl8ww62kxxfr77kfihbazsfg2gp5b4"))))
+ (build-system julia-build-system)
+ (inputs
+ `(("julia-benchmarktools" ,julia-benchmarktools)))
+ (propagated-inputs
+ `(("julia-chainrulescore" ,julia-chainrulescore)
+ ("julia-richardson" ,julia-richardson)
+ ("julia-staticarrays" ,julia-staticarrays)))
+ (home-page "https://github.com/JuliaDiff/FiniteDifferences.jl")
+ (synopsis "Estimates derivatives with finite differences")
+ (description "This package calculates approximate derivatives numerically
+using finite difference.")
+ (license license:expat)))
+
(define-public julia-fixedpointnumbers
(package
(name "julia-fixedpointnumbers")
@@ -125,6 +592,185 @@ scaled by a constant factor. Consequently, they have a fixed number of
digits (bits) after the decimal (radix) point.")
(license license:expat)))
+(define-public julia-forwarddiff
+ (package
+ (name "julia-forwarddiff")
+ (version "0.10.17")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaDiff/ForwardDiff.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "17xaz4v0zr46p7w873w1fwf31phdnhr0vbdym9yr4flmpzi528jw"))))
+ (build-system julia-build-system)
+ (inputs ;required for tests
+ `(("julia-calculus" ,julia-calculus)
+ ("julia-difftests" ,julia-difftests)))
+ (propagated-inputs
+ `(("julia-commonsubexpressions" ,julia-commonsubexpressions)
+ ("julia-diffresults" ,julia-diffresults)
+ ("julia-diffrules" ,julia-diffrules)
+ ("julia-nanmath" ,julia-nanmath)
+ ("julia-specialfunctions" ,julia-specialfunctions)
+ ("julia-staticarrays" ,julia-staticarrays)))
+ (home-page "https://github.com/JuliaDiff/ForwardDiff.jl")
+ (synopsis "Methods to take multidimensional derivatives")
+ (description "This package implements methods to take derivatives,
+gradients, Jacobians, Hessians, and higher-order derivatives of native Julia
+functions (or any callable object, really) using forward mode automatic
+differentiation (AD).")
+ (license license:expat)))
+
+(define-public julia-http
+ (package
+ (name "julia-http")
+ (version "0.9.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaWeb/HTTP.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ij0yci13c46p92m4zywvcs02nn8pm0abyfffiyhxvva6hq48lyl"))))
+ (build-system julia-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'install 'disable-network-tests
+ (lambda _
+ (substitute* "test/runtests.jl"
+ (("\"async.jl") "# \"async.jl")
+ (("\"client.jl") "# \"client.jl"))
+ (substitute* "test/aws4.jl"
+ (("@testset.*HTTP.request with AWS authentication.*" all)
+ (string-append all "return\n")))
+ (substitute* "test/insert_layers.jl"
+ (("@testset.*Inserted final layer runs handler.*" all)
+ (string-append all "return\n")))
+ (substitute* "test/multipart.jl"
+ (("@testset \"Setting of Content-Type.*" all)
+ (string-append all "return\n"))
+ (("@testset \"Deprecation of .*" all)
+ (string-append all "return\n")))
+ (substitute* "test/websockets.jl"
+ (("@testset.*External Host.*" all)
+ (string-append all "return\n")))
+ (substitute* "test/messages.jl"
+ (("@testset.*Read methods.*" all)
+ (string-append all "return\n"))
+ (("@testset.*Body - .*" all)
+ (string-append all "return\n"))
+ (("@testset.*Write to file.*" all)
+ (string-append all "return\n")))
+ #t)))))
+ (propagated-inputs
+ `(("julia-inifile" ,julia-inifile)
+ ("julia-mbedtls" ,julia-mbedtls)
+ ("julia-uris" ,julia-uris)))
+ ;; required for tests
+ (inputs
+ `(("julia-json" ,julia-json)
+ ("julia-bufferedstreams" ,julia-bufferedstreams)))
+ (home-page "https://juliaweb.github.io/HTTP.jl/")
+ (synopsis "HTTP support for Julia")
+ (description "@code{HTTP.jl} is a Julia library for HTTP Messages,
+implementing both a client and a server.")
+ (license license:expat)))
+
+(define-public julia-inifile
+ (package
+ (name "julia-inifile")
+ (version "0.5.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaIO/IniFile.jl")
+ (commit "8ba59958495fa276d6489d2c3903e765d75e0bc0")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "11h6f99jpbg729lplw841m68jprka7q3n8yw390bndlmcdsjabpd"))))
+ (build-system julia-build-system)
+ (home-page "https://github.com/JuliaIO/IniFile.jl")
+ (synopsis "Reading Windows-style INI files")
+ (description "This is a Julia package that defines an IniFile type that
+allows to interface with @file{.ini} files.")
+ (license license:expat)))
+
+(define-public julia-irtools
+ (package
+ (name "julia-irtools")
+ (version "0.4.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/FluxML/IRTools.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0wwzy77jcdnffnd5fr6xan7162g4wydz67igrq82wflwnrhlcx5y"))))
+ (arguments
+ '(#:tests? #f)) ;require Documenter, not packaged yet
+ (build-system julia-build-system)
+ (propagated-inputs
+ `(("julia-macrotools" ,julia-macrotools)))
+ (home-page "https://github.com/FluxML/IRTools.jl")
+ (synopsis "Simple and flexible IR format")
+ (description "This package provides a simple and flexible IR format,
+expressive enough to work with both lowered and typed Julia code, as well as
+external IRs. It can be used with Julia metaprogramming tools such as
+Cassette.")
+ (license license:expat)))
+
+(define-public julia-jllwrappers
+ (package
+ (name "julia-jllwrappers")
+ (version "1.2.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaPackaging/JLLWrappers.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1sj3mi2dcc13apqfpy401wic5n0pgbck1p98b2g3zw0mln9s83m4"))))
+ (arguments
+ ;; Wants to download stuff
+ '(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'custom-override-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Make @generate_wrapper_header take an optional argument that
+ ;; guix packagers can pass to override the default "override"
+ ;; binary path. This won't be needed when something like
+ ;; https://github.com/JuliaPackaging/JLLWrappers.jl/pull/27
+ ;; will be merged.
+ (substitute* "src/wrapper_generators.jl"
+ (("generate_wrapper_header.*")
+ "generate_wrapper_header(src_name, override_path = nothing)\n")
+ (("pkg_dir = .*" all)
+ (string-append
+ all "\n" "override = something(override_path,"
+ "joinpath(dirname(pkg_dir), \"override\"))\n"))
+ (("@static if isdir.*") "@static if isdir($override)\n")
+ (("return joinpath.*") "return $override\n"))
+ #t)))))
+ (build-system julia-build-system)
+ (home-page "https://github.com/JuliaPackaging/JLLWrappers.jl")
+ (synopsis "Julia macros used by JLL packages")
+ (description "This package contains Julia macros that enable JLL packages
+to generate themselves. It is not intended to be used by users, but rather is
+used in autogenerated packages via @code{BinaryBuilder.jl}.")
+ (license license:expat)))
+
(define-public julia-json
(package
(name "julia-json")
@@ -150,6 +796,117 @@ digits (bits) after the decimal (radix) point.")
and printing JSON documents.")
(license license:expat)))
+(define-public julia-macrotools
+ (package
+ (name "julia-macrotools")
+ (version "0.5.6")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/FluxML/MacroTools.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0k4z2hyasd9cwxf4l61zk3w4ajs44k69wx6z1ghdn8f5p8xy217f"))))
+ (build-system julia-build-system)
+ (home-page "https://fluxml.ai/MacroTools.jl")
+ (synopsis "Tools for working with Julia code and expressions")
+ (description "This library provides tools for working with Julia code and
+expressions. This includes a template-matching system and code-walking tools
+that let you do deep transformations of code.")
+ (license license:expat)))
+
+(define-public julia-mbedtls
+ (package
+ (name "julia-mbedtls")
+ (version "1.0.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaLang/MbedTLS.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0zjzf2r57l24n3k0gcqkvx3izwn5827iv9ak0lqix0aa5967wvfb"))))
+ (build-system julia-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'install 'disable-network-tests
+ ;; Tries to connect to httpbin.org
+ (lambda _
+ (substitute* "test/runtests.jl"
+ (("testhost =") "return #"))
+ #t)))))
+ (propagated-inputs `(("julia-mbedtls-jll" ,julia-mbedtls-jll)))
+ (home-page "https://github.com/JuliaLang/MbedTLS.jl")
+ (synopsis "Apache's mbed TLS library wrapper")
+ (description "@code{MbedTLS.jl} provides a wrapper around the @code{mbed
+TLS} and cryptography C libary for Julia.")
+ (license license:expat)))
+
+(define-public julia-mbedtls-jll
+ (package
+ (name "julia-mbedtls-jll")
+ ;; version 2.25.0+0 is not compatible with current mbedtls 2.23.0,
+ ;; upgrade this when mbedtls is updated in guix
+ (version "2.24.0+1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaBinaryWrappers/MbedTLS_jll.jl")
+ (commit (string-append "MbedTLS-v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0kk9dlxdh7yms21npgrdfmjbj8q8ng6kdhrzw3jr2d7rp696kp99"))))
+ (build-system julia-build-system)
+ (arguments
+ '(#:tests? #f ; No runtests.jl
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'override-binary-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (map
+ (lambda (wrapper)
+ (substitute* wrapper
+ (("generate_wrapper_header.*")
+ (string-append
+ "generate_wrapper_header(\"MbedTLS\", \""
+ (assoc-ref inputs "mbedtls-apache") "\")\n"))))
+ ;; There's a Julia file for each platform, override them all
+ (find-files "src/wrappers/" "\\.jl$"))
+ #t)))))
+ (inputs `(("mbedtls-apache" ,mbedtls-apache)))
+ (propagated-inputs `(("julia-jllwrappers" ,julia-jllwrappers)))
+ (home-page "https://github.com/JuliaBinaryWrappers/MbedTLS_jll.jl")
+ (synopsis "Apache's mbed TLS binary wrappers")
+ (description "This Julia module provides @code{mbed TLS} libraries and
+wrappers.")
+ (license license:expat)))
+
+(define-public julia-nanmath
+ (package
+ (name "julia-nanmath")
+ (version "0.3.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mlubin/NaNMath.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1hczhz00qj99w63vp627kwk02l2sr2qmzc2rkwwkdwvzy670p25q"))))
+ (build-system julia-build-system)
+ (home-page "https://github.com/mlubin/NaNMath.jl")
+ (synopsis "Implementations of basic math functions")
+ (description "Implementations of basic math functions which return
+@code{NaN} instead of throwing a @code{DomainError}.")
+ (license license:expat)))
+
(define-public julia-orderedcollections
(package
(name "julia-orderedcollections")
@@ -197,6 +954,52 @@ have arbitrary indices, similar to those found in some other programming
languages like Fortran.")
(license license:expat)))
+;;; TODO: Remove this autogenerated source package
+;;; and build it from realse source using <https://github.com/JuliaPackaging/Yggdrasil/>
+(define-public julia-openspecfun-jll
+(let ((commit "6c505cce3bdcd9cd2b15b4f9362ec3a42c4da71c"))
+ (package
+ (name "julia-openspecfun-jll")
+ (version "0.5.3+4") ;tag not created upstream
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaBinaryWrappers/OpenSpecFun_jll.jl")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0bl2gcgndsbiwhwy8fl070cjm1fyf9kxj6gkikgirmzgjl29iakn"))))
+ (build-system julia-build-system)
+ (arguments
+ `(#:tests? #f ; no runtests.jl
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'override-binary-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (map
+ (lambda (wrapper)
+ (substitute* wrapper
+ (("generate_wrapper_header.*")
+ (string-append
+ "generate_wrapper_header(\"OpenSpecFun\", \""
+ (assoc-ref inputs "openspecfun") "\")\n"))))
+ ;; There's a Julia file for each platform, override them all
+ (find-files "src/wrappers/" "\\.jl$"))
+ #t)))))
+ (inputs
+ `(("openspecfun" ,openspecfun)))
+ (propagated-inputs
+ `(("julia-jllwrappers" ,julia-jllwrappers)
+ ("julia-compilersupportlibraries-jll" ,julia-compilersupportlibraries-jll)))
+ (home-page "https://github.com/JuliaBinaryWrappers/OpenSpecFun_jll.jl")
+ (synopsis "Internal wrappers")
+ (description "This package provides a wrapper for OpenSpecFun. It is an
+autogenerated source package constructed using @code{BinaryBuilder.jl}. The
+originating @code{build_tarballs.jl} script can be found on the community
+build tree Yggdrasil.")
+ (license license:expat))))
+
(define-public julia-parsers
(package
(name "julia-parsers")
@@ -216,3 +1019,240 @@ languages like Fortran.")
(description "@code{Parsers.jl} is a collection of type parsers and
utilities for Julia.")
(license license:expat)))
+
+(define-public julia-reexport
+ (package
+ (name "julia-reexport")
+ (version "1.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/simonster/Reexport.jl")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1yhhja1zz6dy5f4fd19bdwd6jwgj7q4w3avzgyg1hjhmdl8jrh0s"))))
+ (build-system julia-build-system)
+ (home-page "https://github.com/simonster/Reexport.jl")
+ (synopsis "Re-export modules and symbols")
+ (description "This package provides tools to re-export modules and symbols.")
+ (license license:expat)))
+
+(define-public julia-requires
+ (package
+ (name "julia-requires")
+ (version "1.1.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaPackaging/Requires.jl/")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "03hyfy7c0ma45b0y756j76awi3az2ii4bz4s8cxm3xw9yy1z7b01"))))
+ (build-system julia-build-system)
+ (inputs ;required for test
+ `(("julia-example" ,julia-example)))
+ (propagated-inputs
+ `(("julia-colors" ,julia-colors)))
+ (home-page "https://github.com/JuliaPackaging/Requires.jl/")
+ (synopsis "Faster package loader")
+ (description "This package make loading packages faster, maybe. It
+supports specifying glue code in packages which will load automatically when
+another package is loaded, so that explicit dependencies (and long load times)
+can be avoided.")
+ (license license:expat)))
+
+(define-public julia-richardson
+ (package
+ (name "julia-richardson")
+ (version "1.4.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaMath/Richardson.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "06v9ii3d7hh41fsrfklaa8ap55z5s017f888mrd1c18y4fx9i4nx"))))
+ (build-system julia-build-system)
+ (home-page "https://juliapackages.com/p/richardson")
+ (synopsis "Extrapolate function using Richardson method")
+ (description "This package provides a function extrapolate that
+extrapolates a given function @code{f(x)} to @code{f(x0)}, evaluating @code{f}
+only at a geometric sequence of points @code{> x0} (or optionally @code{<
+x0}). The key algorithm is Richardson extrapolation using a Neville–Aitken
+tableau, which adaptively increases the degree of an extrapolation polynomial
+until convergence is achieved to a desired tolerance (or convergence stalls
+due to e.g. floating-point errors). This allows one to obtain @code{f(x0)} to
+high-order accuracy, assuming that @code{f(x0+h)} has a Taylor series or some
+other power series in @code{h}.")
+ (license license:expat)))
+
+(define-public julia-specialfunctions
+ (package
+ (name "julia-specialfunctions")
+ (version "1.3.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaMath/SpecialFunctions.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1rfhrrkzi3ils7fklbn35ki1yp5x88fi71qknfwqyw4pk8cf8p80"))))
+ (build-system julia-build-system)
+ (inputs
+ `(("julia-chainrulestestutils" ,julia-chainrulestestutils)))
+ (propagated-inputs
+ `(("julia-chainrulescore" ,julia-chainrulescore)
+ ("julia-openspecfun-jll" ,julia-openspecfun-jll)))
+ (home-page "https://github.com/JuliaMath/SpecialFunctions.jl")
+ (synopsis "Special mathematical functions")
+ (description "This package provides special mathematical functions,
+including Bessel, Hankel, Airy, error, Dawson, exponential (or sine and
+cosine) integrals, eta, zeta, digamma, inverse digamma, trigamma, and
+polygamma functions.")
+ (license license:expat)))
+
+(define-public julia-staticarrays
+ (package
+ (name "julia-staticarrays")
+ (version "1.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaArrays/StaticArrays.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "01z8bcqwpfkp8p1h1r36pr5cc3798y76zkas7g3206pcsdhvlkz1"))))
+ (build-system julia-build-system)
+ (inputs
+ `(("julia-benchmarktools" ,julia-benchmarktools)))
+ (home-page "https://github.com/JuliaArrays/StaticArrays.jl")
+ (synopsis "Statically sized arrays")
+ (description "This package provides a framework for implementing
+statically sized arrays in Julia, using the abstract type
+@code{StaticArray{Size,T,N} <: AbstractArray{T,N}}. Subtypes of
+@code{StaticArray} will provide fast implementations of common array and
+linear algebra operations.")
+ (license license:expat)))
+
+(define-public julia-uris
+ (package
+ (name "julia-uris")
+ (version "1.2.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaWeb/URIs.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0fqyagsqks5za7m0czafr34m2xh5501f689k9cn5x3npajdnh2r3"))))
+ (build-system julia-build-system)
+ (arguments
+ '(#:julia-package-name "URIs" ;required to run tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'change-dir
+ ;; Tests must be run from the testdir
+ (lambda* (#:key source outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (chdir
+ (string-append out "/share/julia/packages/URIs/test")))
+ #t)))))
+ ;; required for tests
+ (inputs `(("julia-json" ,julia-json)))
+ (home-page "https://github.com/JuliaWeb/URIs.jl")
+ (synopsis "URI parsing in Julia")
+ (description "@code{URIs.jl} is a Julia package that allows parsing and
+working with @acronym{URIs,Uniform Resource Identifiers}, as defined in RFC
+3986.")
+ (license license:expat)))
+
+(define-public julia-unitful
+ (package
+ (name "julia-unitful")
+ (version "1.6.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/PainterQubits/Unitful.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0g5bhlvay9yk11c5dqwbzmb3q7lzj0cq5zchyk39d59fkvvmxvq3"))))
+ (build-system julia-build-system)
+ (propagated-inputs
+ `(("julia-constructionbase" ,julia-constructionbase)))
+ (home-page "https://painterqubits.github.io/Unitful.jl/stable/")
+ (synopsis "Physical units in Julia")
+ (description "This package supports SI units and also many other unit
+system.")
+ (license license:expat)))
+
+(define-public julia-zygoterules
+ (package
+ (name "julia-zygoterules")
+ (version "0.2.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/FluxML/ZygoteRules.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "07i2mf6rr5b8i6l82qgwl5arsb5pwyyzyfasgnszhdqllk9501bs"))))
+ (build-system julia-build-system)
+ (propagated-inputs
+ `(("julia-macrotools" ,julia-macrotools)))
+ (home-page "https://github.com/FluxML/ZygoteRules.jl")
+ (synopsis "Add minimal custom gradients to Zygote")
+ (description "Minimal package which enables to add custom gradients to
+Zygote, without depending on Zygote itself.")
+ (license license:expat)))
+
+(define-public julia-zygote
+ (package
+ (name "julia-zygote")
+ (version "0.6.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/FluxML/Zygote.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1h2ph0lsisbkh8y4xgwzgw9p5zi243q8zzp5gfh3zw9pzkx6a1rf"))))
+ (build-system julia-build-system)
+ (arguments
+ `(#:tests? #f)) ;require CUDA, not packaged yet
+ (propagated-inputs
+ `(("julia-abstractffs" ,julia-abstractffts)
+ ("julia-chainrules" ,julia-chainrules)
+ ("julia-diffrules" ,julia-diffrules)
+ ("julia-fillarrays" ,julia-fillarrays)
+ ("julia-forwarddiff" ,julia-forwarddiff)
+ ("julia-irtools" ,julia-irtools)
+ ("julia-macrotools" ,julia-macrotools)
+ ("julia-nanmath" ,julia-nanmath)
+ ("julia-requires" ,julia-requires)
+ ("julia-specialfunctions" ,julia-specialfunctions)
+ ("julia-zygote-rules" ,julia-zygoterules)))
+ (home-page "https://fluxml.ai/Zygote.jl")
+ (synopsis "Automatic differentiation in Julia")
+ (description "Zygote provides source-to-source automatic
+differentiation (AD) in Julia, and is the next-generation AD system for the
+Flux differentiable programming framework.")
+ (license license:expat)))