summaryrefslogtreecommitdiff
path: root/guix/build-system/julia.scm
AgeCommit message (Collapse)Author
2023-03-13guix: Strip #:use-module lists.Ludovic Courtès
This was obtained by setting up this environment: guix shell -D guix --with-input=guile@3.0.9=guile-next \ --with-commit=guile-next=e2ed33ef0445c867fe56c247054aa67e834861f2 -- make -j5 then adding 'unused-module' to (@@ (guix build compiler) %warnings), building, and checking all the "unused module" warnings and removing those that were definitely unused.
2022-02-24build: julia: Add 'julia-package-dependencies' as keyword.Efraim Flashner
* guix/build-system/julia.scm (link-depot): Accept julia-package-dependencies keyword and use it for 'julia-create-package-toml' function. (julia-create-package-toml): Use pattern matching. (julia-build): Add 'julia-pacakge-dependencies'. * guix/build/julia-build-system.scm (julia-build): Add '#:julia-package-dependencies' keyword. Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2021-11-25build: julia-build-system: Add support for parallel tests.zimoun
The tests are defined by the script 'test/runtests.jl' from packages and the parallelism depends on the implementation of this script. Therefore, 'julia' is launched using local worker processes accordingly with 'parallel?'. * guix/build/julia-build-system.scm (check): Set the JULIA_CPU_THREADS environment variable and invoke julia with the '--procs' option. * guix/build-system/julia.scm (julia-build)[parallel-tests?]: New argument. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2021-11-17Merge branch 'master' into core-updates-frozenLudovic Courtès
2021-11-16build-system/julia: Enable Julia Pkg to find installed packages.Jean-Baptiste Volatier
Julia's built-in package manager (Pkg) looks for packages in JULIA_DEPOT_PATH/packages/PACKAGENAME/XXXX, where XXXX is a string encoding package UUID and SHA1 of files. The link-depot phase creates a link at the correct location to allow Pkg to find packages that were already installed by Guix. * guix/build/julia-build-system.scm (link-depot): New phase. (%package-path): Modified package path from packages/ to loadpath/. (project.toml->uuid): New procedure, retrive package uuid from TOML file. (precompile, check): Adjust to the change in paths. (%standard-phases): Add link-depot phase. (julia-build): Add julia-package-uuid keyword. * guix/build-system/julia.scm (julia-build): Also use the julia-package-uuid keyword. * gnu/packages/julia-jll.scm (julia-bzip2-jll, julia-cairo-jll, julia-compilersupportlibraries-jll, julia-expat-jll, julia-ffmpeg-jll, julia-fontconfig-jll, julia-freetype2-jll, julia-fribidi-jll, julia-gettext-jll, julia-glib-jll, julia-gr-jll, julia-gumbo-jll, julia-imagemagick-jll, julia-jllwrappers-jll, julia-jpegturbo-jll, julia-lame-jll, julia-libass-jll, julia-libfdk-aac-jll, julia-libffi-jll, julia-libgcrypt-jll, julia-libglvnd-jll, julia-libgpg-error-jll, juli-libiconv-jll, julia-libmount-jll, julia-libpng-jll, julia-libsass-jll, julia-libtiff-jll, julia-libuuid-jll, julia-libvorbis-jll, julia-lzo-jll, julia-mbedtls-jll, julia-ogg-jll, julia-openspecfun-jll, julia-openssl-jll, julia-opus-jll, julia-pcre-jll, julia-pixman-jll, julia-qt5base-jll, julia-wayland-jll, julia-wayland-protocols-jll, julia-x264-jll, julia-x265-jll, julia-xkbcommon-jll, julia-xml2-jll, julia-xorg-libpthread-stubs-jll, julia-xorg-libx11-jll, julia-xorg-libxau-jll, julia-xorg-libxcb-jll, julia-xorg-libxcursor-jll, julia-xorg-libxdmcp-jll, julia-xorg-libxext-jll, julia-xorg-libxfixes-jll, julia-xorg-libxi-jll, julia-xorg-libxinerama-jll, julia-xorg-libxkbfile-jll, julia-xorg-libxrandr-jll, julia-xorg-libxrender-jll, julia-xorg-xcb-util-jll, julia-xorg-xcb-util-keysyms-jll, julia-xorg-xcb-util-renderutil-jll, julia-xorg-xcb-util-wm-jll, julia-xorg-xkbcomp-jll, julia-xorg-xkeyboard-config-jll, julia-xorg-xtrans-jll, julia-xslt-jll, julia-zlib-jll, julia-zstd-jll) [argument]: Adjust the order of the phases to the change in the julia-build-system. * gnu/packages/julia-xyz.scm (julia-bufferedstreams, julia-calculus, julia-dataframes, julia-datavalues, julia-distances, julia-documenter, julia-dualnumbers, julia-ellipsisnotation, julia-expronicon, julia-fileio, julia-fixedpointnumbers, julia-functionwrappers, julia-fuzzycompletions, julia-genericlinearalgebra, julia-genericschur, julia-geometrybasics, julia-imagemagick, julia-infinity, julia-matrixfactorizations, julia-media, julia-missings, julia-nnlib, julia-optimtestproblems, julia-orderedcollections, julia-prettytables, julia-pycall, julia-quadmath, julia-safetests, julia-stackviews) [arguments]: Correct paths to reflect change of %package-path modify order of phases as link-depot needs to run on an unmodified src directory add package-name-uuid keyword argument to packages without Project.toml file. * gnu/packages/julia.scm (julia)[native-search-paths]: Correct paths to reflect change of %package-path modify order of phases as link-depot needs to run on an unmodified src directory. Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2021-03-30build-system: Use 'sexp->gexp' for plain sexps.Ludovic Courtès
This reduces memory allocations and list traversals during 'gexp->sexp', 'gexp-inputs', etc. * guix/build-system/cargo.scm (cargo-build): Use 'sexp->gexp' for sexps known to not contain file-like objects. Change default #:phases to a symbol. * guix/build-system/cmake.scm (cmake-build, cmake-cross-build): Likewise. * guix/build-system/copy.scm (copy-build): Likewise. * guix/build-system/font.scm (font-build): Likewise. * guix/build-system/glib-or-gtk.scm (glib-or-gtk-build): Likewise. * guix/build-system/gnu.scm (%strip-flags, %strip-directories): New variables. (gnu-build): Use them. Use 'sexp->gexp' where appropriate. (gnu-cross-build): Likewise. * guix/build-system/meson.scm (meson-build): Likewise. * guix/build-system/perl.scm (perl-build): Likewise. * guix/build-system/python.scm (python-build): Likewise. * guix/build-system/ruby.scm (ruby-build): Likewise. * guix/build-system/scons.scm (scons-build): Likewise. * guix/build-system/texlive.scm (texlive-build): Likewise. * guix/build-system/trivial.scm (trivial-build): Likewise. * guix/build-system/waf.scm (waf-build): Likewise. * guix/build-system/android-ndk.scm (android-ndk-build): Likewise. * guix/build-system/ant.scm (ant-build): Likewise. * guix/build-system/asdf.scm (asdf-build/source, asdf-build): Likewise. * guix/build-system/chicken.scm (chicken-build): Likewise. * guix/build-system/clojure.scm (clojure-build): Likewise. (source->output-path, maybe-guile->guile): Remove. * guix/build-system/dub.scm (dub-build): Likewise. * guix/build-system/emacs.scm (emacs-build): Likewise. * guix/build-system/go.scm (go-build): Likewise. * guix/build-system/haskell.scm (haskell-build): Likewise. * guix/build-system/julia.scm (julia-build): Likewise. * guix/build-system/linux-module.scm (linux-module-build) (linux-module-build-cross): Likewise. * guix/build-system/maven.scm (maven-build): Likewise. * guix/build-system/minify.scm (minify-build): Likewise. * guix/build-system/node.scm (node-build): Likewise. * guix/build-system/qt.scm (qt-build, qt-cross-build): Likewise. * guix/build-system/r.scm (r-build): Likewise. * guix/build-system/rakudo.scm (rakudo-build): Likewise. * guix/build-system/renpy.scm (renpy-build): Likewise. * guix/packages.scm (patch-and-repack): Use 'sexp->gexp' when SNIPPET is a pair. * guix/svn-download.scm (svn-multi-fetch): Use 'sexp->gexp' for 'svn-multi-reference-locations'.
2021-03-30build-system: Rewrite using gexps.Ludovic Courtès
* guix/packages.scm (expand-input): Remove 'store', 'system', and 'cross-system' parameters; add #:native?. Rewrite to return name/gexp-input tuples. (bag->derivation): Adjust accordingly. Lower (bag-build bag). (bag->cross-derivation): Ditto. Instead of #:native-drvs and #:target-drvs, pass #:build-inputs, #:host-inputs, and #:target-inputs. (%derivation-cache): Remove. * gnu/packages/bootstrap.scm (raw-build): Turn into a monadic procedure. * gnu/packages/commencement.scm (glibc-final)[arguments]: Use 'gexp-input' for the #:allowed-references argument. * guix/build-system/cmake.scm (cmake-build): Remove 'store' parameter. Switch to the use of gexps and 'gexp->derivation'. (lower): Remove #:source from 'private-keywords'. * guix/build-system/glib-or-gtk.scm (glib-or-gtk-build, lower): Likewise. * guix/build-system/font.scm (font-build): Likewise. * guix/build-system/gnu.scm (gnu-build): Likewise, and remove 'canonicalize-reference'. (gnu-cross-build): Likewise, and expect #:build-inputs, #:host-inputs, and #:target-inputs instead of #:native-drvs and #:target-drvs. (lower): Likewise. * guix/build-system/perl.scm (perl-build, lower): Likewise. * guix/build-system/python.scm (python-build, lower): Likewise. * guix/build-system/ruby.scm (ruby-build, lower): Likewise. * guix/build-system/waf.scm (waf-build, lower): Likewise. * guix/build-system/trivial.scm (guile-for-build): Remove. (trivial-build): Remove 'store' parameter, change to gexps. (trivial-cross-build): Ditto, and change to #:build-inputs & co. * guix/build-system/cargo.scm (cargo-build): Change to 'gexp->derivation'. * guix/build-system/copy.scm (copy-build): Likewise. * guix/build-system/dune.scm (dune-build): Likewise. * guix/build-system/guile.scm (guile-build, guile-cross-build): Likewise. * guix/build-system/meson.scm (meson-build): Likewise. * guix/build-system/ocaml.scm (ocaml-build): Likewise. * guix/build-system/scons.scm (scons-build): Likewise. * guix/build-system/texlive.scm (texlive-build): Likewise. * guix/build-system/android-ndk.scm (android-ndk-build): Likewise. * guix/build-system/ant.scm (ant-build): Likewise. * guix/build-system/asdf.scm (asdf-build/source, asdf-build): Likewise. * guix/build-system/chicken.scm (chicken-build): Likewise. * guix/build-system/clojure.scm (clojure-build): Likewise. (source->output-path, maybe-guile->guile): Remove. * guix/build-system/dub.scm (dub-build): Likewise. * guix/build-system/emacs.scm (emacs-build): Likewise. * guix/build-system/go.scm (go-build): Likewise. * guix/build-system/haskell.scm (haskell-build): Likewise. * guix/build-system/julia.scm (julia-build): Likewise. * guix/build-system/linux-module.scm (linux-module-build) (linux-module-build-cross): Likewise. * guix/build-system/maven.scm (maven-build): Likewise. * guix/build-system/minify.scm (minify-build): Likewise. * guix/build-system/node.scm (node-build): Likewise. * guix/build-system/qt.scm (qt-build, qt-cross-build): Likewise. * guix/build-system/r.scm (r-build): Likewise. * guix/build-system/rakudo.scm (rakudo-build): Likewise. * guix/build-system/renpy.scm (renpy-build): Likewise. * tests/builders.scm ("gnu-build"): Call 'store-lower' on 'gnu-build'. Pass #:source parameter. * tests/packages.scm ("search paths"): Use 'abort-to-prompt' instead of a normal return from the 'build' method. ("package->bag, sensitivity to %current-target-system"): Change 'build' to match the new build system signature. squash! build-system: Rewrite using gexps. squash! build-system: Rewrite using gexps.
2021-01-30build-system/julia: Don't rely on file name to set module name.nixo
* guix/build/julia-build-system.scm (project.toml->name): New procedure. (precompile, check, julia-build): Accept new key argument #:julia-package-name. * guix/build-system/julia.scm (julia-build): ... add it. * doc/guix.texi (julia-build-system): Update julia-package-name accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-01-30build-system/julia: Enable tests.nixo
* guix/build-system/julia.scm (julia-build): Set tests? default to #t. * guix/build/julia-build-system.scm (check): Respect tests? and fix julia invocation. (%standard-phases): Add check phase after install. * doc/guix.texi (julia-build-system): Update accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2019-09-05build-system/julia: Avoid module cycles.Marius Bakke
* guix/build-system/julia.scm: Remove unused imports. (lower)[julia]: Default to (DEFAULT-JULIA).
2019-09-04build-system/julia: Fix syntax error.Ricardo Wurmus
* guix/build-system/julia.scm: Fix invalid module reference.
2019-09-04build: Add julia-build-system.nixo
* guix/build/julia-build-system.scm: New file. * guix/build-system/julia.scm: New file. * Makefile.am (MODULES): Add them. * doc/guix.texi (Build Systems): Document julia-build-system. Signed-off-by: Julien Lepiller <julien@lepiller.eu>