From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: Re: [PATCH] gnu: Add Threading Building Blocks Date: Tue, 27 Jan 2015 17:58:20 +0100 Message-ID: References: <87k309grqw.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:46920) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YG9TJ-00029R-Gi for guix-devel@gnu.org; Tue, 27 Jan 2015 11:58:38 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YG9TD-0000bG-CM for guix-devel@gnu.org; Tue, 27 Jan 2015 11:58:37 -0500 In-Reply-To: <87k309grqw.fsf@gnu.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: guix-devel@gnu.org --=-=-= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Ludovic Court=C3=A8s writes: >> - should the examples be included per default or should they go into a >> separate "doc" output together with the /doc directory? Together th= ey >> take up about 10MB. > > I would put them in =E2=80=9Cdoc=E2=80=9D. Okay. There's now a "doc" output for /doc/ and /doc/examples/. >> + (alist-cons-before >> + 'build 'set-build-path >> + (lambda _ >> + (substitute* "build/common.inc" >> + (("export tbb_build_prefix.+$") >> + "export tbb_build_prefix?=3Dguix\n"))) > > Rather put this in =E2=80=98snippet=E2=80=99 (I think Mark made this co= mment on IRC.) Done. >> + (synopsis "The Threading Building Blocks library abstracts low-le= vel >> +threading details") > > What about =E2=80=9CC++ library for parallel programming=E2=80=9D inste= ad? Sounds good. Changed. >> + (description >> + "Threading Building Blocks (TBB) is a C++ runtime library that a= bstracts >> +the low-level threading details necessary for optimal multi-core perf= ormance. >> +It uses common C++ templates and coding style to eliminate tedious th= reading >> +implementation work. >> + >> +TBB requires fewer lines of code to achieve parallelism than other th= reading >> +models. The applications you write are portable across platforms. S= ince the >> +library is also inherently scalable, no code maintenance is required = as more >> +processor cores become available.") > > I would indeed remove the 2nd paragraph, and perhaps add something like > =E2=80=9CIt provides parallel loop constructs, asynchronous tasks, > synchronization primitives, atomic operations, and more.=E2=80=9D Done. >> + ;; GPL2 with exceptions > > Rather: =E2=80=9CGPLv2 with run-time exception: > =E2= =80=9D. Done. Attached is the updated patch. ~~ Ricardo --=-=-= Content-Type: text/x-patch; charset="utf-8" Content-Disposition: attachment; filename="0001-gnu-Add-Threading-Building-Blocks.patch" Content-Transfer-Encoding: quoted-printable >From 8acd14a15924cf23a0a4ba7582d66c26b2245799 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 26 Jan 2015 16:12:31 +0100 Subject: [PATCH] gnu: Add Threading Building Blocks. * gnu/packages/tbb.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/packages/tbb.scm | 83 ++++++++++++++++++++++++++++++++++++++++++++++= ++++++ 2 files changed, 84 insertions(+) create mode 100644 gnu/packages/tbb.scm diff --git a/gnu-system.am b/gnu-system.am index ea03c79..6e6e221 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -254,6 +254,7 @@ GNU_SYSTEM_MODULES =3D \ gnu/packages/stalonetray.scm \ gnu/packages/swig.scm \ gnu/packages/synergy.scm \ + gnu/packages/tbb.scm \ gnu/packages/tcl.scm \ gnu/packages/tcsh.scm \ gnu/packages/telephony.scm \ diff --git a/gnu/packages/tbb.scm b/gnu/packages/tbb.scm new file mode 100644 index 0000000..42670d7 --- /dev/null +++ b/gnu/packages/tbb.scm @@ -0,0 +1,83 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright =C2=A9 2015 Ricardo Wurmus +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (a= t +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages tbb) + #:use-module (guix packages) + #:use-module (guix licenses) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu) + #:use-module (gnu packages)) + +(define-public tbb + (package + (name "tbb") + (version "4.3.2") + (source (origin + (method url-fetch) + (uri (string-append + "https://www.threadingbuildingblocks.org/sites/defau= lt" + "/files/software_releases/source/" + "tbb43_20141204oss_src.tgz")) + (sha256 + (base32 + "0jsczl99jfgj47kj7c4sd4fk7v3rbaiax1ng9ypykz1hh0lrrsws")) + (modules '((guix build utils))) + (snippet + '(substitute* "build/common.inc" + (("export tbb_build_prefix.+$") + "export tbb_build_prefix?=3Dguix\n"))))) + (outputs '("out" "doc")) + (build-system gnu-build-system) + (arguments + `(#:test-target "test" + #:phases (alist-delete + 'configure + (alist-replace + 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((doc (string-append + (assoc-ref outputs "doc") "/doc")) + (examples (string-append doc "/examples")) + (lib (string-append + (assoc-ref outputs "out") "/lib")) + (include (string-append + (assoc-ref outputs "out") "/includ= e"))) + (mkdir-p lib) + (for-each + (lambda (f) + (copy-file f + (string-append lib "/" + (basename f)))) + (find-files "build/guix_release" "\\.so")) + (copy-recursively "doc" doc) + (copy-recursively "examples" examples) + (copy-recursively "include" include) + #t)) + %standard-phases)))) + (home-page "https://www.threadingbuildingblocks.org") + (synopsis "C++ library for parallel programming") + (description + "Threading Building Blocks (TBB) is a C++ runtime library that abst= racts +the low-level threading details necessary for optimal multi-core perform= ance. +It uses common C++ templates and coding style to eliminate tedious threa= ding +implementation work. It provides parallel loop constructs, asynchronous +tasks, synchronization primitives, atomic operations, and more.") + ;; GPLv2 with run-time exception: + ;; + (license gpl2))) --=20 1.9.3 --=-=-=--