(address . guix-patches@gnu.org)(name . zimoun)(address . zimon.toutoune@gmail.com)
Hi,
This adds all the packages required to build Zygote, the source-to-source
automatic differentiation in Julia.
It is the first brick to have Flux, the Julia machine learning framework.
Noting that (at least 3) large pieces are still missing: Juno, Documenter and
CUDA.
Speaking about the Julia package CUDA, it is required by the test suite of
Zygote, that's why the #:tests? is #f. However, we manually check the package
by running the small examples, e.g.,
Toggle snippet (31 lines)
$ ./pre-inst-env guix environment -C --ad-hoc julia julia-zygote -- julia
julia> using Zygote
[ Info: Precompiling Zygote [e88e6eb3-aa80-5325-afca-941959d7151f]
julia> f(x) = 5x + 3
f (generic function with 1 method)
julia> f(10), f'(10)
(53, 5)
julia> @code_llvm f'(10)
; @ /gnu/store/5m6676w77bbz44prbfxhxmk88srgxy81-profile/share/julia/packages/Zygote/src/compiler/interface.jl:62 within `#43'
define i64 @"julia_#43_2036"(i64) {
top:
ret i64 5
}
julia> W, b = rand(2, 3), rand(2);
julia> predict(x) = W*x .+ b;
julia> g = gradient(Params([W, b])) do
sum(predict([1,2,3]))
end
Grads(...)
julia> g[W], g[b]
([1.0 2.0 3.0; 1.0 2.0 3.0], 2-element Fill{Float64}: entries equal to 1.0)
All the packages are not archived because of the rate limit. They should be soon.
Toggle snippet (30 lines)
for n in $(git log -30 --format="%s" --reverse | cut -d'-' -f2 | sed 's/\.//');
do
./pre-inst-env guix lint -c archival julia-${n} ;
done
gnu/packages/julia-xyz.scm:397:7: julia-constructionbase@1.1.0: scheduled Software Heritage archival
gnu/packages/julia-xyz.scm:817:5: julia-macrotools@0.5.6: scheduled Software Heritage archival
gnu/packages/julia-xyz.scm:1040:5: julia-reexport@1.0.0: scheduled Software Heritage archival
gnu/packages/julia-xyz.scm:723:5: julia-irtools@0.4.2: scheduled Software Heritage archival
gnu/packages/julia-xyz.scm:283:5: julia-colortypes@0.10.12: scheduled Software Heritage archival
gnu/packages/julia-xyz.scm:1059:5: julia-requires@1.1.3: scheduled Software Heritage archival
gnu/packages/julia-xyz.scm:1085:5: julia-richardson@1.4.0: scheduled Software Heritage archival
gnu/packages/julia-xyz.scm:552:5: julia-finitedifferences@0.12.2: Software Heritage rate limit reached; try again later
gnu/packages/julia-xyz.scm:211:5: julia-chainrulestestutils@0.6.4: archival rate limit exceeded; try again later
gnu/packages/julia-xyz.scm:528:5: julia-fillarrays@0.11.7: archival rate limit exceeded; try again later
gnu/packages/julia-xyz.scm:309:5: julia-commonsubexpressions@0.3.0: archival rate limit exceeded; try again later
gnu/packages/julia-xyz.scm:131:5: julia-calculus@0.5.1: archival rate limit exceeded; try again later
gnu/packages/julia-xyz.scm:441:5: julia-diffresults@1.0.3: archival rate limit exceeded; try again later
gnu/packages/julia-xyz.scm:488:5: julia-difftests@0.1.1: archival rate limit exceeded; try again later
guix lint: error: julia-compilersupportlibraries: unknown package
guix lint: error: julia-openspecfun: unknown package
gnu/packages/julia-xyz.scm:1112:5: julia-specialfunctions@1.3.0: archival rate limit exceeded; try again later
gnu/packages/julia-xyz.scm:155:5: julia-chainrules@0.7.54: archival rate limit exceeded; try again later
gnu/packages/julia-xyz.scm:613:5: julia-forwarddiff@0.10.17: archival rate limit exceeded; try again later
gnu/packages/julia-xyz.scm:1221:5: julia-zygoterules@0.2.1: archival rate limit exceeded; try again later
gnu/packages/julia-xyz.scm:1243:5: julia-zygote@0.6.4: archival rate limit exceeded; try again later
Last, well, I feel motivated to implement an (recursive) importer, even
inaccurate, it will greatly help.
All the best,
simon
zimoun (29):
gnu: Add julia-constructionbase.
gnu: Add julia-macrotools.
gnu: Add julia-nanmath.
gnu: Add julia-reexport.
gnu: Add julia-irtools.
gnu: Add julia-staticarrays.
gnu: Add julia-unitful.
gnu: Add julia-abstractffts.
gnu: Add julia-colortypes.
gnu: Add julia-colors.
gnu: Add julia-example.
gnu: Add julia-requires.
gnu: Add julia-chainrulescore.
gnu: Add julia-richardson.
gnu: Add julia-finitedifferences.
gnu: Add julia-chainrulestestutils.
gnu: Add julia-fillarrays.
gnu: Add julia-commonsubexpressions.
gnu: Add julia-calculus.
gnu: Add julia-diffresults.
gnu: Add julia-difftests.
gnu: Add julia-compilersupportlibraries-jll.
gnu: Add julia-openspecfun-jll.
gnu: Add julia-specialfunctions.
gnu: Add julia-diffrules.
gnu: Add julia-chainrules.
gnu: Add julia-forwarddiff.
gnu: Add julia-zygoterules.
gnu: Add julia-zygote.
gnu/packages/julia-xyz.scm | 777 +++++++++++++++++++++++++++++++++++++
1 file changed, 777 insertions(+)
base-commit: a2f3a456bec357394fe550d927c26bbbdaa7ba6e
--
2.28.0