[PATCH 0/2] 2 Julia packages

  • Done
  • quality assurance status badge
Details
2 participants
  • Efraim Flashner
  • zimoun
Owner
unassigned
Submitted by
Efraim Flashner
Severity
normal
E
E
Efraim Flashner wrote on 31 Jan 2022 11:38
(address . guix-patches@gnu.org)(name . Efraim Flashner)(address . efraim@flashner.co.il)
cover.1643625386.git.efraim@flashner.co.il
Two more julia packages, ready for upstreaming.

Efraim Flashner (2):
gnu: Add julia-linesearches.
gnu: Add julia-optim.

gnu/packages/julia-xyz.scm | 93 +++++++++++++++++++++++++++++++++++++-
1 file changed, 92 insertions(+), 1 deletion(-)


base-commit: 43dd34c7777a212c99a97da7a2c237158faa9a1b
prerequisite-patch-id: 0db9d2565885888d76f51e5e9ab3287fdaa3877a
--
2.34.0
E
E
Efraim Flashner wrote on 31 Jan 2022 11:40
[PATCH 1/2] gnu: Add julia-linesearches.
(address . 53656@debbugs.gnu.org)(name . Efraim Flashner)(address . efraim@flashner.co.il)
9e56fc467f7b56b65422a010a43a5df3f50fcdd8.1643625386.git.efraim@flashner.co.il
* gnu/packages/julia-xyz.scm (julia-linesearches): New variable.
---
gnu/packages/julia-xyz.scm | 45 +++++++++++++++++++++++++++++++++++++-
1 file changed, 44 insertions(+), 1 deletion(-)

Toggle diff (65 lines)
diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index e30cf39dc9..7de0c32113 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
;;; Copyright © 2021, 2022 Simon Tournier <zimon.toutoune@gmail.com>
-;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2021 jgart <jgart@dismail.de>
;;;
@@ -3104,6 +3104,49 @@ (define-public julia-lazyarrays
implementation of matrix-free methods for iterative solvers.")
(license license:expat)))
+(define-public julia-linesearches
+ (package
+ (name "julia-linesearches")
+ (version "7.1.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaNLSolvers/LineSearches.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1qc4la07w6s1xhcyd0hvbnpr31zc1a2ssgyybc8biv5m00g0dnr0"))))
+ (build-system julia-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'link-depot 'skip-optim-tests
+ (lambda _
+ (substitute* "test/examples.jl"
+ ;; Prevent a cycle with Optim.jl.
+ (("^ SKIPFILE.*") "")
+ (("^ #SKIPFILE") " SKIPFILE"))))
+ (add-after 'link-depot 'skip-doublefloats-tests
+ (lambda _
+ (substitute* "test/runtests.jl"
+ (("using DoubleFloats.*") "")
+ ((".*arbitrary_precision\\.jl.*") "")))))))
+ (propagated-inputs
+ (list julia-nlsolversbase
+ julia-nanmath
+ julia-parameters))
+ (native-inputs
+ ;; DoubleFloats.jl transitively depends on TimeZones.jl, which is currently
+ ;; unpackageable due to its oversized Artifacts.toml.
+ (list ;julia-doublefloats
+ julia-optimtestproblems))
+ (home-page "https://github.com/JuliaNLSolvers/LineSearches.jl")
+ (synopsis "Line search methods for optimization and root-finding")
+ (description "This package provides an interface to line search algorithms
+implemented in Julia.")
+ (license license:expat)))
+
(define-public julia-logexpfunctions
(package
(name "julia-logexpfunctions")
--
2.34.0
E
E
Efraim Flashner wrote on 31 Jan 2022 11:40
[PATCH 2/2] gnu: Add julia-optim.
(address . 53656@debbugs.gnu.org)(name . Efraim Flashner)(address . efraim@flashner.co.il)
93a51e504cd30094511b1eac3957e10ff800cdf0.1643625386.git.efraim@flashner.co.il
* gnu/packages/julia-xyz.scm (julia-optim): New variable.
---
gnu/packages/julia-xyz.scm | 48 ++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)

Toggle diff (68 lines)
diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index 7de0c32113..2fcc4cf83e 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -23,6 +23,7 @@
(define-module (gnu packages julia-xyz)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
+ #:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix git-download)
@@ -3650,6 +3651,53 @@ (define-public julia-nnlib
doesn't provide any other \"high-level\" functionality like layers or AD.")
(license license:expat)))
+(define-public julia-optim
+ (package
+ (name "julia-optim")
+ (version "1.6.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaNLSolvers/Optim.jl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0nvl3xp9c6r80y9n7fic4zyq2443apfmbcpnx0wvgkv4vsy08x5j"))))
+ (build-system julia-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'adjust-tests
+ (lambda _
+ ;; TODO: Figure out why this test fails.
+ (substitute* "test/runtests.jl"
+ ((".*l_bfgs.*") "")))))))
+ (propagated-inputs
+ (list julia-compat
+ julia-fillarrays
+ julia-forwarddiff
+ julia-linesearches
+ julia-nanmath
+ julia-nlsolversbase
+ julia-parameters
+ julia-positivefactorizations
+ julia-statsbase))
+ (native-inputs
+ (list julia-linesearches
+ julia-measurements
+ julia-nlsolversbase
+ julia-optimtestproblems
+ julia-positivefactorizations
+ julia-recursivearraytools
+ julia-stablerngs))
+ (home-page "https://github.com/JuliaNLSolvers/Optim.jl")
+ (synopsis "Optimization functions for Julia")
+ (description "@code{Optim.jl} is a package for univariate and multivariate
+optimization of functions.")
+ (license license:expat)))
+
(define-public julia-optimtestproblems
(package
(name "julia-optimtestproblems")
--
2.34.0
Z
Z
zimoun wrote on 10 Feb 2022 17:22
Re: bug#53656: [PATCH 0/2] 2 Julia packages
(name . Efraim Flashner)(address . efraim@flashner.co.il)(address . 53656@debbugs.gnu.org)
87r18a8zee.fsf_-_@gmail.com
Hi Efraim,

Both patches look good to me.


I notice this warning:

Toggle snippet (8 lines)
? Warning: Package OptimTestProblems does not have LinearAlgebra in its dependencies:
? - If you have OptimTestProblems checked out for development and have
? added LinearAlgebra as a dependency but haven't updated your primary
? environment's manifest file, try `Pkg.resolve()`.
? - Otherwise you may need to report an issue with OptimTestProblems
? Loading LinearAlgebra into OptimTestProblems from project dependency, future warnings for OptimTestProblems are suppressed.

and...


On Mon, 31 Jan 2022 at 12:40, Efraim Flashner <efraim@flashner.co.il> wrote:

Toggle quote (2 lines)
> * gnu/packages/julia-xyz.scm (julia-optim): New variable.

[...]

Toggle quote (2 lines)
> + #:use-module (guix gexp)

[...]

Toggle quote (8 lines)
> + #:phases
> + #~(modify-phases %standard-phases
> + (add-after 'unpack 'adjust-tests
> + (lambda _
> + ;; TODO: Figure out why this test fails.
> + (substitute* "test/runtests.jl"
> + ((".*l_bfgs.*") "")))))))

...I am thinking loudly if this gexp is required. There are other many
similar patter without a gexp. Therefore, for consistency with the
rest, I would be in favor to switch to regular modification of phases.
Or let me know if this is becoming the new patter and I would adapt for
the others.


Cheers,
simom
E
E
Efraim Flashner wrote on 13 Feb 2022 11:23
(name . zimoun)(address . zimon.toutoune@gmail.com)(address . 53656-done@debbugs.gnu.org)
YgjcF2phHg5KUsng@3900XT
On Thu, Feb 10, 2022 at 05:22:33PM +0100, zimoun wrote:
Toggle quote (16 lines)
> Hi Efraim,
>
> Both patches look good to me.
>
>
> I notice this warning:
>
> --8<---------------cut here---------------start------------->8---
> ? Warning: Package OptimTestProblems does not have LinearAlgebra in its dependencies:
> ? - If you have OptimTestProblems checked out for development and have
> ? added LinearAlgebra as a dependency but haven't updated your primary
> ? environment's manifest file, try `Pkg.resolve()`.
> ? - Otherwise you may need to report an issue with OptimTestProblems
> ? Loading LinearAlgebra into OptimTestProblems from project dependency, future warnings for OptimTestProblems are suppressed.
> --8<---------------cut here---------------end--------------->8---

It ends up not being a problem, but I'm left wondering if we should
extend the #:julia-package-foo arguments to add more fields or if we
should just add a custom phase to build a Package.toml that includes all
the fields needed.

Toggle quote (27 lines)
> and...
>
>
> On Mon, 31 Jan 2022 at 12:40, Efraim Flashner <efraim@flashner.co.il> wrote:
>
> > * gnu/packages/julia-xyz.scm (julia-optim): New variable.
>
> [...]
>
> > + #:use-module (guix gexp)
>
> [...]
>
> > + #:phases
> > + #~(modify-phases %standard-phases
> > + (add-after 'unpack 'adjust-tests
> > + (lambda _
> > + ;; TODO: Figure out why this test fails.
> > + (substitute* "test/runtests.jl"
> > + ((".*l_bfgs.*") "")))))))
>
> ...I am thinking loudly if this gexp is required. There are other many
> similar patter without a gexp. Therefore, for consistency with the
> rest, I would be in favor to switch to regular modification of phases.
> Or let me know if this is becoming the new patter and I would adapt for
> the others.

It's definitely the new pattern we're using now. I suppose it's not
really necessary here, but having more instances of it throughout the
codebase also makes it easier to search for examples when others are
looking to use or modify gexps.

--
Efraim Flashner <efraim@flashner.co.il> ????? ?????
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAmII3BQACgkQQarn3Mo9
g1FiFhAArFpb+nlSp5h37UOgAu/iuK7v0wXIQ3Q66RSe7kssjSG/PqN4eVc7DDZS
6gwiOCCNIZrZYL/dmPs7a2DxjDMg9X9TW4d2VS5cU/3YVbQoS5AdLrFoBYeTTGX5
K+MzUROAz5TZhtsNObXwUWB4lcEjBK/xHAa16IXAvJss2bKOkQ5BXfh6Qor1lwSk
odeIeqm/2hEXvKZ/ee6QYXsEoaEZDTLNIwhoOJdBIqIKTpcRIGfTLZdbKeZWyIcc
HQDfDc231rWUeJUty+BCHXtaeWl+9uCTDhCVcTFgkDSsN8RJEcAvz8kyvdaQebfO
j9yC4KnfZy9kWv6zWchzMZE0GWnHHSgIjZ6HFgR5mmDW1Ovm+OlwTlrxktK9oX3N
OHJCcZhP2lERAdKu9ep9U/ex+1vgi5yM2RJJfE0wALj9fU14eIK6B7O2wBgiKa3j
JYyVF+vL9XnhCoj9jakf6As7cS8TWLSw0lOKmYBr/gaq6ftt3sQU1gUl0DGj3/rJ
IXKI2Q8qru7OBL4UJTwFdj6h0mMmeMDPv9yKtTFh46tXNgF4ZTvMyqVugu/iSonb
dQAEAbL2Lv8jfFWl1zUQmvh5tgLOk9gSjaTE/dTjtURNqftNwtTj79a7khzYvXtn
uTSJvhMP6fJiztzo7lU900fG5+7tyYExeesrbrhh3zeibtRSgCA=
=Lfbu
-----END PGP SIGNATURE-----


Closed
?