unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#41995] [PATCH 1/2] gnu: Add symengine.
@ 2020-06-22  1:01 Vinicius Monego
  2020-06-22  1:01 ` [bug#41996] [PATCH 2/2] gnu: Add python-symengine Vinicius Monego
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Vinicius Monego @ 2020-06-22  1:01 UTC (permalink / raw)
  To: 41995; +Cc: Vinicius Monego

* gnu/packages/algebra.scm (symengine): New variable.
---
 gnu/packages/algebra.scm | 42 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index b78e6ef304..ec381ac708 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -12,6 +12,7 @@
 ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -43,6 +44,7 @@
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages image)
   #:use-module (gnu packages java)
+  #:use-module (gnu packages llvm)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mpi)
   #:use-module (gnu packages multiprecision)
@@ -946,6 +948,46 @@ minimization and curve fitting.  It is mature code, based on decades-old
 algorithms from the FORTRAN library MINPACK.")
     (license license:bsd-2)))
 
+(define-public symengine
+  (package
+    (name "symengine")
+    (version "0.6.0")
+    (source
+     (origin
+      (method git-fetch)
+      (uri (git-reference
+            (url "https://github.com/symengine/symengine.git")
+            (commit (string-append "v" version))))
+      (file-name (git-file-name name version))
+      (sha256
+       (base32 "129iv9maabmb42ylfdv0l0g94mcbf3y4q3np175008rcqdr8z6h1"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:configure-flags
+       '("-DCMAKE_BUILD_TYPE=Release"
+         "-DWITH_GMP=on"
+         "-DWITH_MPFR=on"
+         "-DWITH_MPC=on"
+         "-DINTEGER_CLASS=flint"
+         "-DWITH_LLVM=on"
+         "-DWITH_SYMENGINE_THREAD_SAFE=on"
+         "-DWITH_TCMALLOC=on")))
+    (native-inputs
+     `(("gperftools" ,gperftools)
+       ("llvm" ,llvm)))
+    (inputs
+     `(("flint" ,flint)
+       ("gmp" ,gmp)
+       ("mpc" ,mpc)
+       ("mpfr" ,mpfr)))
+    (home-page "https://github.com/symengine/symengine")
+    (synopsis "Fast symbolic manipulation library")
+    (description "SymEngine is a standalone fast C++ symbolic manipulation
+library.  Optional thin wrappers allow usage of the library from other
+languages.")
+    (license (list license:expat     ;; SymEngine.
+                   license:bsd-3)))) ;; Third party code.
+
 (define-public eigen
   (package
     (name "eigen")
-- 
2.20.1





^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [bug#41996] [PATCH 2/2] gnu: Add python-symengine.
  2020-06-22  1:01 [bug#41995] [PATCH 1/2] gnu: Add symengine Vinicius Monego
@ 2020-06-22  1:01 ` Vinicius Monego
  2020-06-24  6:58   ` Nicolas Goaziou
  2020-06-24  6:57 ` [bug#41995] [PATCH 1/2] gnu: Add symengine Nicolas Goaziou
  2020-06-24 13:16 ` [bug#41995] " Vinicius Monego
  2 siblings, 1 reply; 8+ messages in thread
From: Vinicius Monego @ 2020-06-22  1:01 UTC (permalink / raw)
  To: 41996; +Cc: Vinicius Monego

* gnu/packages/python-xyz.scm (python-symengine): New variable.
---
 gnu/packages/python-xyz.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index e95dec21c2..ceabfc8979 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -81,6 +81,7 @@
 ;;; Copyright © 2020 Josh Holland <josh@inv.alid.pw>
 ;;; Copyright © 2020 Yuval Kogman <nothingmuch@woobling.org>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -106,6 +107,7 @@
   #:use-module (gnu packages backup)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages databases)
@@ -10046,6 +10048,31 @@ document.")
 (define-public python2-jmespath
   (package-with-python2 python-jmespath))
 
+(define-public python-symengine
+  (package
+  (name "python-symengine")
+  (version "0.6.1")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (pypi-uri "symengine" version))
+      (sha256
+        (base32 "1kn1w4dp9mrsq6kzmhf4pjmx3wicxc3dw1mwa924q8g48g77lr4c"))))
+  (build-system python-build-system)
+  (native-inputs
+   `(("cmake" ,cmake)
+     ("python-cython" ,python-cython)))
+  (inputs
+   `(("symengine" ,symengine)))
+  (home-page "https://github.com/symengine/symengine.py")
+  (synopsis "Python library providing wrappers to SymEngine")
+  (description "This library provides a Python wrapper to SymEngine, a fast C++
+symbolic manipulation library.")
+  (license license:expat)))
+
+(define-public python2-symengine
+  (package-with-python2 python-symengine))
+
 (define-public python-botocore
   (package
     (name "python-botocore")
-- 
2.20.1





^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [bug#41995] [PATCH 1/2] gnu: Add symengine.
  2020-06-22  1:01 [bug#41995] [PATCH 1/2] gnu: Add symengine Vinicius Monego
  2020-06-22  1:01 ` [bug#41996] [PATCH 2/2] gnu: Add python-symengine Vinicius Monego
@ 2020-06-24  6:57 ` Nicolas Goaziou
  2020-06-24 13:39   ` Vinicius Monego
  2020-06-24 13:16 ` [bug#41995] " Vinicius Monego
  2 siblings, 1 reply; 8+ messages in thread
From: Nicolas Goaziou @ 2020-06-24  6:57 UTC (permalink / raw)
  To: Vinicius Monego; +Cc: 41995

Hello,

Vinicius Monego <monego@posteo.net> writes:

> * gnu/packages/algebra.scm (symengine): New variable.

Thank you.

I couldn't build it because gperftools currently has a failing test.

> +     '(#:configure-flags
> +       '("-DCMAKE_BUILD_TYPE=Release"
> +         "-DWITH_GMP=on"
> +         "-DWITH_MPFR=on"
> +         "-DWITH_MPC=on"
> +         "-DINTEGER_CLASS=flint"
> +         "-DWITH_LLVM=on"
> +         "-DWITH_SYMENGINE_THREAD_SAFE=on"

IIUC correctly, these are the suggested build options in the README. It
may be worth adding a comment about it since this looks a bit
opinionated.

> +         "-DWITH_TCMALLOC=on")))

This does not belong to the set of suggested build options. Is there
a particular reason to activate it? If so, would it make sense to add
a comment about it?

I also see there is a "BUILD_SHARED_LIBS" flag, off by default. Would it
make sense to activate it?

> +    (license (list license:expat     ;; SymEngine.
> +                   license:bsd-3)))) ;; Third party code.

In both comments, there should be a single semicolon and no full stop.

Could you send an updated patch?

Regards,
-- 
Nicolas Goaziou




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [bug#41996] [PATCH 2/2] gnu: Add python-symengine.
  2020-06-22  1:01 ` [bug#41996] [PATCH 2/2] gnu: Add python-symengine Vinicius Monego
@ 2020-06-24  6:58   ` Nicolas Goaziou
  0 siblings, 0 replies; 8+ messages in thread
From: Nicolas Goaziou @ 2020-06-24  6:58 UTC (permalink / raw)
  To: Vinicius Monego; +Cc: 41996

Hello,

Vinicius Monego <monego@posteo.net> writes:

> * gnu/packages/python-xyz.scm (python-symengine): New variable.

Thank you.

> +(define-public python2-symengine
> +  (package-with-python2 python-symengine))

I don't think we need the Python2 variant. Otherwise, LGTM.

Regards,
-- 
Nicolas Goaziou




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [bug#41995] [PATCH 1/2] gnu: Add symengine.
  2020-06-22  1:01 [bug#41995] [PATCH 1/2] gnu: Add symengine Vinicius Monego
  2020-06-22  1:01 ` [bug#41996] [PATCH 2/2] gnu: Add python-symengine Vinicius Monego
  2020-06-24  6:57 ` [bug#41995] [PATCH 1/2] gnu: Add symengine Nicolas Goaziou
@ 2020-06-24 13:16 ` Vinicius Monego
  2020-06-24 13:16   ` [bug#41995] [PATCH 2/2] gnu: Add python-symengine Vinicius Monego
  2 siblings, 1 reply; 8+ messages in thread
From: Vinicius Monego @ 2020-06-24 13:16 UTC (permalink / raw)
  To: 41995; +Cc: Vinicius Monego

* gnu/packages/algebra.scm (symengine): New variable.
---
Removed TCMalloc and gperftools, build libsymengine, add comments
 gnu/packages/algebra.scm | 42 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index b78e6ef304..34e6d40dbb 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -12,6 +12,7 @@
 ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -43,6 +44,7 @@
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages image)
   #:use-module (gnu packages java)
+  #:use-module (gnu packages llvm)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mpi)
   #:use-module (gnu packages multiprecision)
@@ -946,6 +948,46 @@ minimization and curve fitting.  It is mature code, based on decades-old
 algorithms from the FORTRAN library MINPACK.")
     (license license:bsd-2)))
 
+(define-public symengine
+  (package
+    (name "symengine")
+    (version "0.6.0")
+    (source
+     (origin
+      (method git-fetch)
+      (uri (git-reference
+            (url "https://github.com/symengine/symengine.git")
+            (commit (string-append "v" version))))
+      (file-name (git-file-name name version))
+      (sha256
+       (base32 "129iv9maabmb42ylfdv0l0g94mcbf3y4q3np175008rcqdr8z6h1"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(;; These are the suggested build options in the README.
+       #:configure-flags
+       '("-DCMAKE_BUILD_TYPE=Release"
+         "-DWITH_GMP=on"
+         "-DWITH_MPFR=on"
+         "-DWITH_MPC=on"
+         "-DINTEGER_CLASS=flint"
+         "-DWITH_LLVM=on"
+         "-DWITH_SYMENGINE_THREAD_SAFE=on"
+         "-DBUILD_SHARED_LIBS=on"))) ; also build libsymengine
+    (native-inputs
+     `(("llvm" ,llvm)))
+    (inputs
+     `(("flint" ,flint)
+       ("gmp" ,gmp)
+       ("mpc" ,mpc)
+       ("mpfr" ,mpfr)))
+    (home-page "https://github.com/symengine/symengine")
+    (synopsis "Fast symbolic manipulation library")
+    (description "SymEngine is a standalone fast C++ symbolic manipulation
+library.  Optional thin wrappers allow usage of the library from other
+languages.")
+    (license (list license:expat     ; SymEngine
+                   license:bsd-3)))) ; 3rd party code
+
 (define-public eigen
   (package
     (name "eigen")
-- 
2.20.1





^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [bug#41995] [PATCH 2/2] gnu: Add python-symengine.
  2020-06-24 13:16 ` [bug#41995] " Vinicius Monego
@ 2020-06-24 13:16   ` Vinicius Monego
  0 siblings, 0 replies; 8+ messages in thread
From: Vinicius Monego @ 2020-06-24 13:16 UTC (permalink / raw)
  To: 41995; +Cc: Vinicius Monego

* gnu/packages/python-xyz.scm (python-symengine): New variable.
---
Removed python2 definition

 gnu/packages/python-xyz.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index e95dec21c2..9e350e1688 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -81,6 +81,7 @@
 ;;; Copyright © 2020 Josh Holland <josh@inv.alid.pw>
 ;;; Copyright © 2020 Yuval Kogman <nothingmuch@woobling.org>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -106,6 +107,7 @@
   #:use-module (gnu packages backup)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages databases)
@@ -10046,6 +10048,28 @@ document.")
 (define-public python2-jmespath
   (package-with-python2 python-jmespath))
 
+(define-public python-symengine
+  (package
+  (name "python-symengine")
+  (version "0.6.1")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (pypi-uri "symengine" version))
+      (sha256
+        (base32 "1kn1w4dp9mrsq6kzmhf4pjmx3wicxc3dw1mwa924q8g48g77lr4c"))))
+  (build-system python-build-system)
+  (native-inputs
+   `(("cmake" ,cmake)
+     ("python-cython" ,python-cython)))
+  (inputs
+   `(("symengine" ,symengine)))
+  (home-page "https://github.com/symengine/symengine.py")
+  (synopsis "Python library providing wrappers to SymEngine")
+  (description "This library provides a Python wrapper to SymEngine, a fast C++
+symbolic manipulation library.")
+  (license license:expat)))
+
 (define-public python-botocore
   (package
     (name "python-botocore")
-- 
2.20.1





^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [bug#41995] [PATCH 1/2] gnu: Add symengine.
  2020-06-24  6:57 ` [bug#41995] [PATCH 1/2] gnu: Add symengine Nicolas Goaziou
@ 2020-06-24 13:39   ` Vinicius Monego
  2020-06-24 17:49     ` bug#41995: " Nicolas Goaziou
  0 siblings, 1 reply; 8+ messages in thread
From: Vinicius Monego @ 2020-06-24 13:39 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: 41995

Hello Nicolas,

> +         "-DWITH_TCMALLOC=on")))
> 
> This does not belong to the set of suggested build options. Is there
> a particular reason to activate it? If so, would it make sense to add
> a comment about it?

That was part of the optimized build suggestions. I removed it, since
this feature is provided by gperftools and it's causing trouble.

> I also see there is a "BUILD_SHARED_LIBS" flag, off by default. Would
> it
> make sense to activate it?

The shared library is used by the Julia wrapper. I noticed that we have
a Julia build system, so I enabled this too.

The other suggestions were also applied.





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#41995: [PATCH 1/2] gnu: Add symengine.
  2020-06-24 13:39   ` Vinicius Monego
@ 2020-06-24 17:49     ` Nicolas Goaziou
  0 siblings, 0 replies; 8+ messages in thread
From: Nicolas Goaziou @ 2020-06-24 17:49 UTC (permalink / raw)
  To: Vinicius Monego; +Cc: 41995-done

Hello,

Vinicius Monego <monego@posteo.net> writes:

> The other suggestions were also applied.

I applied both patches. I had to fix indentation. You may want to find
out why it was off.

Thank you!

Regards,
-- 
Nicolas Goaziou




^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2020-06-24 17:50 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-22  1:01 [bug#41995] [PATCH 1/2] gnu: Add symengine Vinicius Monego
2020-06-22  1:01 ` [bug#41996] [PATCH 2/2] gnu: Add python-symengine Vinicius Monego
2020-06-24  6:58   ` Nicolas Goaziou
2020-06-24  6:57 ` [bug#41995] [PATCH 1/2] gnu: Add symengine Nicolas Goaziou
2020-06-24 13:39   ` Vinicius Monego
2020-06-24 17:49     ` bug#41995: " Nicolas Goaziou
2020-06-24 13:16 ` [bug#41995] " Vinicius Monego
2020-06-24 13:16   ` [bug#41995] [PATCH 2/2] gnu: Add python-symengine Vinicius Monego

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).