From patchwork Wed Apr 26 13:17:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: zamfofex X-Patchwork-Id: 49529 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id C2DCB27BBE9; Wed, 26 Apr 2023 14:19:30 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-3.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 901C327BBE2 for ; Wed, 26 Apr 2023 14:19:28 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1prf31-0006A9-MG; Wed, 26 Apr 2023 09:19:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1prf30-00069L-2T for guix-patches@gnu.org; Wed, 26 Apr 2023 09:19:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1prf2z-0002OF-Qq for guix-patches@gnu.org; Wed, 26 Apr 2023 09:19:01 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1prf2z-0002pn-MF for guix-patches@gnu.org; Wed, 26 Apr 2023 09:19:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#63088] [PATCH 1/3] gnu: Add ISPC. * gnu/packages/c.scm (ispc): New variable. Resent-From: zamfofex Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 26 Apr 2023 13:19:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63088 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 63088@debbugs.gnu.org Cc: zamfofex Received: via spool by 63088-submit@debbugs.gnu.org id=B63088.168251508410803 (code B ref 63088); Wed, 26 Apr 2023 13:19:01 +0000 Received: (at 63088) by debbugs.gnu.org; 26 Apr 2023 13:18:04 +0000 Received: from localhost ([127.0.0.1]:54589 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1prf23-0002oB-RR for submit@debbugs.gnu.org; Wed, 26 Apr 2023 09:18:04 -0400 Received: from mta-10-3.privateemail.com ([198.54.127.62]:13206) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1prf20-0002nb-55 for 63088@debbugs.gnu.org; Wed, 26 Apr 2023 09:18:02 -0400 Received: from mta-10.privateemail.com (localhost [127.0.0.1]) by mta-10.privateemail.com (Postfix) with ESMTP id 424DF18000A7; Wed, 26 Apr 2023 09:17:54 -0400 (EDT) Received: from localhost.localdomain (unknown [187.66.116.196]) by mta-10.privateemail.com (Postfix) with ESMTPA id 5F6FA18000A1; Wed, 26 Apr 2023 09:17:52 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=twdb.moe; s=default; t=1682515074; bh=6wZNPgMdOFJvFyyDeoucBEQnMDClA6WO0xKmhiMHcHQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GtTe3ic5ei3+mTmzp/pGWPVa3Fzi8kot+wX4R0heG7D/FxHpkPDnU7idQrCtBrh/8 6z10NmaAcj4dkClgl6doODAzvnZb1chZhwqGodz6D/LR+UPvAjyFrSzsV1GxFTt/TY osxVANszl6gxdtph/+cmoG/BCbdJ1qy9ZtfFBf5w0i748oAtGYr+Mpd+hs1Lz6Q1VC QCU2JISKeOB3pKoMuw0t/k9NRVWydRN4RaqxAX88z2+aL2nLQXnuthuSpx2ziCtz6L 5JrHasDvU2X+TCuSnDpZshfJpQhqbWeMj18h4gU+/dvhm3h/O4LaXxeiTCTHURV6pm un27sw8PfiP/A== From: zamfofex Date: Wed, 26 Apr 2023 10:17:37 -0300 Message-Id: <7ad5f28721fe957a4863500b29e31a1191166041.1682514072.git.zamfofex@twdb.moe> X-Mailer: git-send-email 2.39.2 In-Reply-To: References: MIME-Version: 1.0 X-Virus-Scanned: ClamAV using ClamSMTP X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches --- gnu/packages/c.scm | 63 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index b2f16613dd..28438f56c8 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2022 Artyom V. Poptsov ;;; Copyright © 2022 Ekaitz Zarraga ;;; Copyright © 2022 ( +;;; Copyright © 2023 zamfofex ;;; ;;; This file is part of GNU Guix. ;;; @@ -57,7 +58,9 @@ (define-module (gnu packages c) #:use-module (gnu packages guile) #:use-module (gnu packages llvm) #:use-module (gnu packages lua) + #:use-module (gnu packages m4) #:use-module (gnu packages multiprecision) + #:use-module (gnu packages ncurses) #:use-module (gnu packages pcre) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) @@ -1375,3 +1378,63 @@ (define-public utest-h (description "This package provides a header-only unit testing library for C/C++.") (license license:unlicense)))) + +(define-public ispc + (package + (name "ispc") + (version "1.19.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ispc/ispc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0yhcgyzjlrgs920lm0l6kygj2skanfb6qkxbdgm69r8c2xkzkaa3")))) + (inputs (list ncurses)) + (native-inputs (list bison clang flex m4 python)) + (build-system cmake-build-system) + (supported-systems '("x86_64-linux" "i686-linux" "aarch64-linux" "armhf-linux")) + (arguments `(#:tests? #f + #:configure-flags + `(,,(string-append "-DCMAKE_C_COMPILER=" (cc-for-target)) + ,,(string-append "-DCMAKE_CXX_COMPILER=" (cxx-for-target)) + ,(string-append "-DCLANG_EXECUTABLE=" + (assoc-ref %build-inputs "clang") + "/bin/clang") + ,(string-append "-DCLANGPP_EXECUTABLE=" + (assoc-ref %build-inputs "clang") + "/bin/clang++")) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'patch-curses-requirement + (lambda _ + (substitute* "CMakeLists.txt" + (("\\bCURSES_CURSES_LIBRARY\\b") + "CURSES_LIBRARY")))) + ; Note: This works around the following issue: + ; + ; Because GCC in Guix does not have multilib support. + (add-before 'configure 'patch-target-archs + (lambda _ + (substitute* "cmake/GenerateBuiltins.cmake" + (("\\bforeach \\(bit 32 64\\)") + ,(if (target-64bit?) + "foreach (bit 64)" + "foreach (bit 32)")) + (("\\bforeach \\(arch .*?\\)") + ,(if (target-x86?) + "foreach (arch \"x86\")" + "foreach (arch \"arm\")")) + (("\\bforeach \\(os_name \"windows\" .*?\\)") + "foreach (os_name \"linux\")"))))))) + (synopsis "Implicit SPMD Program Compiler") + (description + "ISPC is a compiler for a variant of the C programming language, with +extensions for single program, multiple data programming. Under the SPMD +model, the programmer writes a program that generally appears to be a regular +serial program, though the execution model is actually that a number of program +instances execute in parallel on the hardware.") + (home-page "https://github.com/ispc/ispc") + (license license:bsd-3)))