Patchwork Add Vc

login
register
mail settings
Submitter Leo Famulari
Date Oct. 1, 2016, 10:24 p.m.
Message ID <20161001222412.GA6848@jasmine>
Download mbox | patch
Permalink /patch/16172/
State New
Headers show

Comments

Leo Famulari - Oct. 1, 2016, 10:24 p.m.
This is a depend of Krita.
From 808b47b3b7a9d769f3a6a873d19a0051f64720f7 Mon Sep 17 00:00:00 2001
From: Leo Famulari <leo@famulari.name>
Date: Fri, 30 Sep 2016 13:38:20 -0400
Subject: [PATCH] gnu: Add Vc.

* gnu/packages/maths.scm (vc): New variable.
---
 gnu/packages/maths.scm | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)
Leo Famulari - Oct. 1, 2016, 10:30 p.m.
On Sat, Oct 01, 2016 at 06:24:12PM -0400, Leo Famulari wrote:
> This is a depend of Krita.

... dependency

> From 808b47b3b7a9d769f3a6a873d19a0051f64720f7 Mon Sep 17 00:00:00 2001
> From: Leo Famulari <leo@famulari.name>
> Date: Fri, 30 Sep 2016 13:38:20 -0400
> Subject: [PATCH] gnu: Add Vc.
> 
> * gnu/packages/maths.scm (vc): New variable.

> +    (arguments
> +     '(#:configure-flags
> +       '("-DBUILD_TESTING=ON"))) ; Is this the test suite we want?

I didn't mean to leave this comment in the patch. I do think this is the
right way to run the tests.
Ricardo Wurmus - Oct. 3, 2016, 8:45 a.m.
Leo Famulari <leo@famulari.name> writes:

> This is a depend of Krita.

> From 808b47b3b7a9d769f3a6a873d19a0051f64720f7 Mon Sep 17 00:00:00 2001
> From: Leo Famulari <leo@famulari.name>
> Date: Fri, 30 Sep 2016 13:38:20 -0400
> Subject: [PATCH] gnu: Add Vc.

> * gnu/packages/maths.scm (vc): New variable.
> ---
>  gnu/packages/maths.scm | 34 ++++++++++++++++++++++++++++++++++
>  1 file changed, 34 insertions(+)

> diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
> index 0401cd3..c033123 100644
> --- a/gnu/packages/maths.scm
> +++ b/gnu/packages/maths.scm
> @@ -2629,3 +2629,37 @@ the same amount of space as the original point representation.  This is useful
>  when using the Gilbert curve as a space filling curve through a
>  high-dimensional space where not all demensions have the same cardinality.")
>      (license license:lgpl2.1+)))
> +
> +(define-public vc
> +  (package
> +    (name "vc")
> +    (version "1.2.0")
> +    (source
> +      (origin (method url-fetch)
> +              (uri (string-append "https://github.com/VcDevel/Vc/releases/"
> +                                  "download/" version "/Vc-" version ".tar.gz"))
> +              (sha256
> +               (base32
> +                "1rh6dhqar3y07n4xqyml0sa0v48qv3ch9dc3yc2in855hlh4vnqi"))))
> +    (build-system cmake-build-system)
> +    (arguments
> +     '(#:configure-flags
> +       '("-DBUILD_TESTING=ON"))) ; Is this the test suite we want?
> +    (synopsis "SIMD Vector Classes for C++ ")

There’s a trailing space here.  Also, “Vector Classes” probably should
be lowercase.

> +    (description "Vc provides portable, zero-overhead C++ types for explicitly
> +data-parallel programming.  It is a library designed to ease explicit
> +vectorization of C++ code.  Its types enable explicitly stating data-parallel
> +operations on multiple values. The parallelism is therefore added via the type
> +system.  Vc has an intuitive API and provides portability between different
> +compilers and compiler versions as well as portability between different vector
> +instruction sets. Thus, an application written with Vc can be
> compiled for:

Before “Thus” you need an additional space.

> +@enumerate
> +@item AVX and AVX2
> +@item SSE2 upto SSE4.2 or SSE4a
> +@item Scalar
> +@item MIC
> +@item NEON (in development)
> +@item NVIDIA GPUs / CUDA (in development)
> +@end enumerate\n")
> +    (home-page "https://github.com/VcDevel")

Shouldn’t this be https://github.com/VcDevel/Vc ?

> +    (license license:bsd-3)))

The rest looks good to me!  Thanks!

~~ Ricardo
Leo Famulari - Oct. 5, 2016, 8:26 p.m.
On Mon, Oct 03, 2016 at 10:45:15AM +0200, Ricardo Wurmus wrote:
> The rest looks good to me!  Thanks!

Thanks for the review. Pushed with your suggestions :)
Ricardo Wurmus - Oct. 7, 2016, 7:24 a.m.
Hi Leo,

> On Mon, Oct 03, 2016 at 10:45:15AM +0200, Ricardo Wurmus wrote:
>> The rest looks good to me!  Thanks!
>
> Thanks for the review. Pushed with your suggestions :)

Vc fails its tests on armhf, i686, and x86_64.  Could you please take a
look at this?

~~ Ricardo

Patch

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 0401cd3..c033123 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -2629,3 +2629,37 @@  the same amount of space as the original point representation.  This is useful
 when using the Gilbert curve as a space filling curve through a
 high-dimensional space where not all demensions have the same cardinality.")
     (license license:lgpl2.1+)))
+
+(define-public vc
+  (package
+    (name "vc")
+    (version "1.2.0")
+    (source
+      (origin (method url-fetch)
+              (uri (string-append "https://github.com/VcDevel/Vc/releases/"
+                                  "download/" version "/Vc-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1rh6dhqar3y07n4xqyml0sa0v48qv3ch9dc3yc2in855hlh4vnqi"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:configure-flags
+       '("-DBUILD_TESTING=ON"))) ; Is this the test suite we want?
+    (synopsis "SIMD Vector Classes for C++ ")
+    (description "Vc provides portable, zero-overhead C++ types for explicitly
+data-parallel programming.  It is a library designed to ease explicit
+vectorization of C++ code.  Its types enable explicitly stating data-parallel
+operations on multiple values. The parallelism is therefore added via the type
+system.  Vc has an intuitive API and provides portability between different
+compilers and compiler versions as well as portability between different vector
+instruction sets. Thus, an application written with Vc can be compiled for:
+@enumerate
+@item AVX and AVX2
+@item SSE2 upto SSE4.2 or SSE4a
+@item Scalar
+@item MIC
+@item NEON (in development)
+@item NVIDIA GPUs / CUDA (in development)
+@end enumerate\n")
+    (home-page "https://github.com/VcDevel")
+    (license license:bsd-3)))