From patchwork Tue Oct 5 16:37:56 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Attila Lendvai X-Patchwork-Id: 33626 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 6389727BBE3; Tue, 5 Oct 2021 19:11:10 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 2536A27BBE1 for ; Tue, 5 Oct 2021 19:11:10 +0100 (BST) Received: from localhost ([::1]:60268 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mXouD-0003VZ-89 for patchwork@mira.cbaines.net; Tue, 05 Oct 2021 14:11:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45938) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mXnao-00032K-IJ for guix-patches@gnu.org; Tue, 05 Oct 2021 12:47:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:58425) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mXnao-0005to-A9 for guix-patches@gnu.org; Tue, 05 Oct 2021 12:47:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mXnao-0001wy-9U for guix-patches@gnu.org; Tue, 05 Oct 2021 12:47:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#49607] [PATCH 1/3] gnu: ghc-cheapskate: Update to 0.1.1.2 References: In-Reply-To: Resent-From: Attila Lendvai Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 05 Oct 2021 16:47:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 49607 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 49607@debbugs.gnu.org Cc: Attila Lendvai Received: via spool by 49607-submit@debbugs.gnu.org id=B49607.16334524117478 (code B ref 49607); Tue, 05 Oct 2021 16:47:02 +0000 Received: (at 49607) by debbugs.gnu.org; 5 Oct 2021 16:46:51 +0000 Received: from localhost ([127.0.0.1]:41738 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mXnad-0001wY-Je for submit@debbugs.gnu.org; Tue, 05 Oct 2021 12:46:51 -0400 Received: from mail-ed1-f50.google.com ([209.85.208.50]:41854) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mXnac-0001wL-Jp for 49607@debbugs.gnu.org; Tue, 05 Oct 2021 12:46:50 -0400 Received: by mail-ed1-f50.google.com with SMTP id z1so1201620edb.8 for <49607@debbugs.gnu.org>; Tue, 05 Oct 2021 09:46:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=1I5BaeTqHvYeDiG6IdLQWke8UtWz86e+BvGeVIoTFAQ=; b=lLwP7H8VDcC1iVjwsBpEK/btd8zBLBW2+WfqrcRhUI2j7Ovg402eNQWuvHLJLmnE3V qP0t9FCIfyaK7J9nL1v0ke4ts4H3Jxt9peKqYmhZrELdWqUeVs36jjgl2qRtLnGSIOfd y9VOJEu5zZSGkMx6manuM7Fn21XujQiE4NH/SirxHaMd8u+6p7IQxyEHj36Oov9lG49h 1OjdSKlE0v55rcgRL33BMN8qRqqR+Iuw0dwTXZ6gvI8flQm0kY6mzjN60uWxvdHG28TG AqYJ/oEaSkq41CMhQdXSTXiQe+4XcZ3139EKH4XtLVqIE/wN01sxLZS4NtV9L5TI/BW2 1+/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :mime-version:content-transfer-encoding; bh=1I5BaeTqHvYeDiG6IdLQWke8UtWz86e+BvGeVIoTFAQ=; b=40/H3S8OtyAbj1LtYneXUSsiUGg9PknEm2GqYR3A95kRoR2H6Tk1jE4VGaJ+vl9xti TxD2oIEjcCsw9Js4KC18p5hcPzKs7OisxeyuMgpdvLVeCPSVUJ0fD2s7xJ736C+pJU58 qckcgkPU39SWQqaCT2TrU1CC5446hADm2Uaz1JcpTVDx4gmeN7yjtTYWTqAs7GQj31Pe N1KmaDGorjFXvUZXpLeKMlmMMHS/epRhHFiH55Dih88Ed+LjfDegxElm7SOSslqjkPp5 +GuQtN7duGM3hksjyNM+m+dqyjsyGH401y9YzohENQ6Ue5/Oto+vKJSks1K+tXKXuP4E xFVg== X-Gm-Message-State: AOAM531QR1mGxB6E3kC3YQlKANPLWmtrz1irCN0IyboKJfQd/hjFLyZ/ Bt6v7ZYljcBt5AJydvBUIltMYjWydDQ= X-Google-Smtp-Source: ABdhPJyHCOkx7Q0IvDJA71ToAuXrwL3bulKdObPVzt/l0jy9KP6/scL637uSfgTjB50Cc6HhzN+kig== X-Received: by 2002:a17:906:f2cd:: with SMTP id gz13mr18290827ejb.278.1633452404534; Tue, 05 Oct 2021 09:46:44 -0700 (PDT) Received: from lelap.lan (catv-213-222-131-28.catv.broadband.hu. [213.222.131.28]) by smtp.gmail.com with ESMTPSA id n6sm8999335eds.10.2021.10.05.09.46.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Oct 2021 09:46:43 -0700 (PDT) From: Attila Lendvai Date: Tue, 5 Oct 2021 18:37:56 +0200 Message-Id: <20211005163757.29637-1-attila@lendvai.name> X-Mailer: git-send-email 2.33.0 MIME-Version: 1.0 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" X-getmail-retrieved-from-mailbox: Patches * gnu/packages/haskell-xyz.scm (ghc-cheapskate): Update to 0.1.1.2 * gnu/packages/idris.scm (idris-1.3.3): Delete now unnecessary substitute --- i have many plans for further changes, but i thought i'll send this meanwhile, so that everyone can have a fresh idris on their guix. this doesn't build/install the docs. may add it later. gnu/packages/haskell-xyz.scm | 4 ++-- gnu/packages/idris.scm | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index f421458e15..87ebe4f3b6 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -1966,7 +1966,7 @@ Partial and Infinite Values\"}.") (define-public ghc-cheapskate (package (name "ghc-cheapskate") - (version "0.1.1.1") + (version "0.1.1.2") (source (origin (method url-fetch) @@ -1976,7 +1976,7 @@ Partial and Infinite Values\"}.") ".tar.gz")) (sha256 (base32 - "0qnyd8bni2rby6b02ff4bvfdhm1hwc8vzpmnms84jgrlg1lly3fm")))) + "17n6laihqrjn62l8qw4565nf77zkvrl68bjmc3vzr4ckqfblhdzd")))) (build-system haskell-build-system) (inputs `(("ghc-blaze-html" ,ghc-blaze-html) diff --git a/gnu/packages/idris.scm b/gnu/packages/idris.scm index ca2772b904..058d679c1f 100644 --- a/gnu/packages/idris.scm +++ b/gnu/packages/idris.scm @@ -100,8 +100,8 @@ (add-after 'unpack 'update-constraints (lambda _ (substitute* "idris.cabal" - (("ansi-terminal < 0\\.9") "ansi-terminal < 0.10") - (("cheapskate >= 0\\.1\\.1\\.2 && < 0\\.2") "cheapskate >= 0.1.1.1 && < 0.2")) + ;; This is only needed for v1.3.3, later it got relaxed upstream + (("ansi-terminal < 0\\.9") "ansi-terminal < 0.10")) #t)) (add-before 'configure 'set-cc-command (lambda _ From patchwork Tue Oct 5 16:37:57 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Attila Lendvai X-Patchwork-Id: 33625 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 1FEFA27BBE3; Tue, 5 Oct 2021 18:30:27 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 880BA27BBE1 for ; Tue, 5 Oct 2021 18:30:26 +0100 (BST) Received: from localhost ([::1]:51512 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mXoGn-0005pk-EO for patchwork@mira.cbaines.net; Tue, 05 Oct 2021 13:30:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46234) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mXnbm-0005I0-4X for guix-patches@gnu.org; Tue, 05 Oct 2021 12:48:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:58432) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mXnbl-0006VD-Nq for guix-patches@gnu.org; Tue, 05 Oct 2021 12:48:01 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mXnbl-00020q-Mo for guix-patches@gnu.org; Tue, 05 Oct 2021 12:48:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#49607] [PATCH 2/3] gnu: idris: Use wrap-program to define IDRIS_CC Resent-From: Attila Lendvai Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 05 Oct 2021 16:48:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 49607 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 49607@debbugs.gnu.org Cc: Attila Lendvai Received: via spool by 49607-submit@debbugs.gnu.org id=B49607.16334524737709 (code B ref 49607); Tue, 05 Oct 2021 16:48:01 +0000 Received: (at 49607) by debbugs.gnu.org; 5 Oct 2021 16:47:53 +0000 Received: from localhost ([127.0.0.1]:41743 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mXnbc-00020G-Uh for submit@debbugs.gnu.org; Tue, 05 Oct 2021 12:47:53 -0400 Received: from mail-ed1-f47.google.com ([209.85.208.47]:45794) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mXnbb-0001zr-I1 for 49607@debbugs.gnu.org; Tue, 05 Oct 2021 12:47:52 -0400 Received: by mail-ed1-f47.google.com with SMTP id r18so1254904edv.12 for <49607@debbugs.gnu.org>; Tue, 05 Oct 2021 09:47:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9lmrrjRr9ey1wAA35cKXdhVsPUKS0uzBnApt5UnZsxo=; b=PkqqmKcg3qWsJPl7H7L8WD83i2giK5Y6Tbvpiv53deUdkm66GgK0CMD4PyaHaKnJ/i cFdz9oLyQ0XOnWqil5hyf8Ibudi+RTqKu+ezIOrm4o8ACxpIVycrBQggUTo+U7RnDSo4 mRqwsOxiNeHnn+StYF8ZRLsrLHIntf0DFE6fvUBUB4nEjagZCzuoBdDaf/RAEiD0Om/b 0PF+P1uZjzz3LGZOtt9MVLjmkjK8ZTgYLKRu1MqH9I2bYZcFTiqT5G2wz3ybz7oDKdEG z82ds9x8tUxcY5yI/XALw5GsqeyQ3ikNBf7cWvEpVYS0oM18evnvhH+2dah66S8aI0oD bMNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=9lmrrjRr9ey1wAA35cKXdhVsPUKS0uzBnApt5UnZsxo=; b=JRsCPlVgxzgYtgd3AaoFfWTbtqqeLtCbHAmKVnhE1b20fBNTbGRTKyNgYeoq5e1J+8 PTPgoiCkoLbqdtC+Wqn2/v2S04FPlj9xHISdOQnCfKXjU39W35bpRyUWglIBsZbb7LSx GZcdefYUIB7uNTPP5dHsIjkcYd+YVIGcVqOZQX2ohi0yeJALRvHqOEabGSracs+4XXv4 6dsLRStDb1U6b8fanEGitTog+a36IxJSCkGObBDYd/FUYFoXXZ9qzc81g26G1W1dPOXP tFgVsIwoxhgDVPjFij74LJkSFVUgtCUDadotndDhy8UI2jfJldYOhri4975gxNI2WCfT kPZw== X-Gm-Message-State: AOAM531Z5TYuTgJx7zJG6eHpeQfWCyl5ttS2ldUg2Nl3jC0wqT/F0acR 22uo2hOG8Oz9UTz8YnQA53NeRo+txyo= X-Google-Smtp-Source: ABdhPJzD+lEKLY53ykCLiwEZHHH512+rSbbBBlPVj/an8yX1PZ+AQQRzkXF98NzuMwA0+Ut0jZMYLw== X-Received: by 2002:a05:6402:3088:: with SMTP id de8mr27731733edb.76.1633452465842; Tue, 05 Oct 2021 09:47:45 -0700 (PDT) Received: from lelap.lan (catv-213-222-131-28.catv.broadband.hu. [213.222.131.28]) by smtp.gmail.com with ESMTPSA id n6sm8999335eds.10.2021.10.05.09.47.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Oct 2021 09:47:45 -0700 (PDT) From: Attila Lendvai Date: Tue, 5 Oct 2021 18:37:57 +0200 Message-Id: <20211005163757.29637-2-attila@lendvai.name> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20211005163757.29637-1-attila@lendvai.name> References: <20211005163757.29637-1-attila@lendvai.name> MIME-Version: 1.0 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" X-getmail-retrieved-from-mailbox: Patches Idris requires a C compiler at runtime to generate executables. * gnu/packages/idris.scm (idris): Rename the scheme variable to idris-1.3.3 to prepare for adding different versions later on. [inputs]: Add Clang, and bash-minimal (for wrap-program). [phases]: use (cc-for-target). --- gnu/packages/idris.scm | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/gnu/packages/idris.scm b/gnu/packages/idris.scm index 058d679c1f..1f6e984a90 100644 --- a/gnu/packages/idris.scm +++ b/gnu/packages/idris.scm @@ -21,10 +21,12 @@ (define-module (gnu packages idris) #:use-module (gnu packages) + #:use-module (gnu packages bash) #:use-module (gnu packages haskell-check) #:use-module (gnu packages haskell-web) #:use-module (gnu packages haskell-xyz) #:use-module (gnu packages libffi) + #:use-module (gnu packages llvm) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) @@ -33,9 +35,10 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix packages)) + #:use-module (guix packages) + #:use-module (guix utils)) -(define-public idris +(define-public idris-1.3.3 (package (name "idris") (version "1.3.3") @@ -51,12 +54,15 @@ (build-system haskell-build-system) (native-inputs ;For tests `(("perl" ,perl) + ("clang" ,clang) ; the tests want to generate exeutables ("ghc-cheapskate" ,ghc-cheapskate) ("ghc-tasty" ,ghc-tasty) ("ghc-tasty-golden" ,ghc-tasty-golden) ("ghc-tasty-rerun" ,ghc-tasty-rerun))) (inputs - `(("gmp" ,gmp) + `(("bash" ,bash-minimal) + ("clang" ,clang) ; FIXME clang compiles faster than gcc, but (cc-for-target) ignores it + ("gmp" ,gmp) ("ncurses" ,ncurses) ("ghc-aeson" ,ghc-aeson) ("ghc-annotated-wl-pprint" ,ghc-annotated-wl-pprint) @@ -105,7 +111,7 @@ #t)) (add-before 'configure 'set-cc-command (lambda _ - (setenv "CC" "gcc") + (setenv "CC" ,(cc-for-target)) #t)) (add-after 'install 'fix-libs-install-location (lambda* (#:key outputs #:allow-other-keys) @@ -116,14 +122,14 @@ (lambda (module) (symlink (string-append modules "/" module) (string-append lib "/" module))) - '("prelude" "base" "contrib" "effects" "pruviloj"))))) + '("prelude" "base" "contrib" "effects" "pruviloj"))) + #t)) (delete 'check) ;Run check later (add-after 'install 'check (lambda* (#:key outputs #:allow-other-keys #:rest args) (let ((out (assoc-ref outputs "out"))) (chmod "test/scripts/timeout" #o755) ;must be executable (setenv "TASTY_NUM_THREADS" (number->string (parallel-job-count))) - (setenv "IDRIS_CC" "gcc") ;Needed for creating executables (setenv "PATH" (string-append out "/bin:" (getenv "PATH"))) (apply (assoc-ref %standard-phases 'check) args)))) (add-before 'check 'restore-libidris_rts @@ -135,8 +141,15 @@ (static (assoc-ref outputs "static")) (filename "/lib/idris/rts/libidris_rts.a")) (rename-file (string-append static filename) - (string-append out filename)) - #t)))))) + (string-append out filename))) + #t)) + (add-before 'check 'wrap-program + (lambda* (#:key outputs inputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (exe (string-append out "/bin/idris"))) + (wrap-program exe + `("IDRIS_CC" = (,',(cc-for-target))))) + #true))))) (native-search-paths (list (search-path-specification (variable "IDRIS_LIBRARY_PATH") @@ -150,6 +163,8 @@ can be specified precisely in the type. The language is closely related to Epigram and Agda.") (license license:bsd-3))) +(define-public idris idris-1.3.3) + ;; Idris modules use the gnu-build-system so that the IDRIS_LIBRARY_PATH is set. (define (idris-default-arguments name) `(#:modules ((guix build gnu-build-system) From patchwork Tue Oct 5 16:37:58 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Attila Lendvai X-Patchwork-Id: 33627 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 E712E27BBE3; Tue, 5 Oct 2021 19:23:02 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,T_DKIM_INVALID, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 2F3F127BBE1 for ; Tue, 5 Oct 2021 19:23:02 +0100 (BST) Received: from localhost ([::1]:52638 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mXp5h-0001Wi-7Z for patchwork@mira.cbaines.net; Tue, 05 Oct 2021 14:23:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46236) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mXnbm-0005IJ-Tq for guix-patches@gnu.org; Tue, 05 Oct 2021 12:48:06 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:58433) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mXnbm-0006VK-4D for guix-patches@gnu.org; Tue, 05 Oct 2021 12:48:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mXnbm-00020x-38 for guix-patches@gnu.org; Tue, 05 Oct 2021 12:48:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#49607] [PATCH 3/3] gnu: idris: Add idris2 0.5.1, and 1.3.3-1.5545986. Resent-From: Attila Lendvai Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 05 Oct 2021 16:48:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 49607 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 49607@debbugs.gnu.org Cc: Attila Lendvai Received: via spool by 49607-submit@debbugs.gnu.org id=B49607.16334524797726 (code B ref 49607); Tue, 05 Oct 2021 16:48:02 +0000 Received: (at 49607) by debbugs.gnu.org; 5 Oct 2021 16:47:59 +0000 Received: from localhost ([127.0.0.1]:41745 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mXnbi-00020X-E1 for submit@debbugs.gnu.org; Tue, 05 Oct 2021 12:47:58 -0400 Received: from mail-ed1-f46.google.com ([209.85.208.46]:35378) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mXnbc-0001zx-Cb for 49607@debbugs.gnu.org; Tue, 05 Oct 2021 12:47:56 -0400 Received: by mail-ed1-f46.google.com with SMTP id b8so1259276edk.2 for <49607@debbugs.gnu.org>; Tue, 05 Oct 2021 09:47:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=3iHNUeVDPh33Vb+Y9J04Uen/qwU4czBRZ9FMfloTa50=; b=bIc+xH2plV/N7wwJPBgC88HUUzOBHOl2+mhnclwunhTSNXPpopGuZdI739xKvda0pi CKcyUuJfGVlaF5KUDW7zfeQ6R65ehN5+A/B2esPnuAeW1Qj7XjScKVWB0x8geZnz2t4k ihgJTOWC5QZsfwJ6M+rEELK+dL6fFoTDr/evo37MkpecJZjQzZ67+pNRk8uA41h7DvoD +JjbDn+pEwj15ifYawtO6/baVNVmO6fPSdzUa2Ol1rXAMdgIaxQ0xhZZlX/M+8cDXBo7 poxcBBMdQ+hcPYTshGiK2dQwD8vhUT5jHAmwIuuG2nXXf0OU+le1TJpiPSoXVqug+Cm2 SXjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=3iHNUeVDPh33Vb+Y9J04Uen/qwU4czBRZ9FMfloTa50=; b=XZh+fD2nZX16dbDlLFC79Fy2d24mAv6R1sk1hVd+m926G30FIYxIUK1DYHHOUgEXt9 SmlahbREQiMM0n0Qf8mP7lc/HXULfrt9zT4JQNI6VyluKSApprSCJ9xXFzsN3m6SnvlM YeqRvUas5/YYQgXwk/X0EMphR1Uft/TAFZLpHzMeJgJKPYUGYT96wo7DopDtNlPMPBHF 3KnNR6Jcsk5sPHiDLXIyX2zT00gdeGOZpX76XZGijEcIOQi5hpaooT87hudIT3q/TVLQ 7UVW+2XX+U2EtmHCEzS27SLza2dkTOsL+Vr5tJocpI/OHQvlp5aIM/g6jrT/CJutlE+N tjkg== X-Gm-Message-State: AOAM533BknAKPI6bAnpbPWA0JwbWz7qqIJPo5yT0IBsVtJKzQD7sdaR3 7Urqh/eYL8vmz4qljCcnIUJ92ssIav8= X-Google-Smtp-Source: ABdhPJzjqIxrEzi49YptjrbxDCDhFcVxKGmoQx0T0Pvoo982tGfi1BzKlYiqiqcnlp1gUGeiOPy+Ug== X-Received: by 2002:a17:907:9604:: with SMTP id gb4mr26423866ejc.142.1633452466496; Tue, 05 Oct 2021 09:47:46 -0700 (PDT) Received: from lelap.lan (catv-213-222-131-28.catv.broadband.hu. [213.222.131.28]) by smtp.gmail.com with ESMTPSA id n6sm8999335eds.10.2021.10.05.09.47.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Oct 2021 09:47:46 -0700 (PDT) From: Attila Lendvai Date: Tue, 5 Oct 2021 18:37:58 +0200 Message-Id: <20211005163757.29637-3-attila@lendvai.name> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20211005163757.29637-1-attila@lendvai.name> References: <20211005163757.29637-1-attila@lendvai.name> MIME-Version: 1.0 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" X-getmail-retrieved-from-mailbox: Patches This generality is there because with this it is possible to bootstrap Idris HEAD all the way down from GHC. It requires patching past releases, which requires importing them into separate git branches. This has not been merged into upstream yet, therefore this commit only contains a single use of MAKE-IDRIS-PACKAGE, but that will change in the future. Add a symlink to a versioned binary; e.g. add a `bin/idris-1.3.3`. * gnu/packages/idris.scm (idris-1.3.3-1): New variable, the latest git commit from the v1.x line of Idris. (make-idris-package): New function to instantiate a package of Idris2. (idris2-0.5.1): New variable. --- gnu/packages/idris.scm | 182 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 179 insertions(+), 3 deletions(-) diff --git a/gnu/packages/idris.scm b/gnu/packages/idris.scm index 1f6e984a90..4ef18c6da4 100644 --- a/gnu/packages/idris.scm +++ b/gnu/packages/idris.scm @@ -19,9 +19,22 @@ ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . +;;; TODO +;;; +;;; - Idris has multiple backends, but we only register Chez as an +;;; input. Decide how to make backends optional, and/or which ones to package +;;; by default. +;;; +;;; - Set RUNPATH instead of using LD_LIBRARY_PATH. See +;;; http://blog.tremily.us/posts/rpath/ This needs patching Idris so that it +;;; stops using a wrapper script and finds its libidris_support.so +;;; e.g. relative to the executable. + (define-module (gnu packages idris) #:use-module (gnu packages) + #:use-module (gnu packages base) #:use-module (gnu packages bash) + #:use-module (gnu packages chez) #:use-module (gnu packages haskell-check) #:use-module (gnu packages haskell-web) #:use-module (gnu packages haskell-xyz) @@ -29,14 +42,21 @@ #:use-module (gnu packages llvm) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) + #:use-module (gnu packages node) #:use-module (gnu packages perl) + #:use-module (gnu packages racket) + #:use-module (gnu packages version-control) #:use-module (guix build-system gnu) #:use-module (guix build-system haskell) #:use-module (guix download) + #:use-module (guix git) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) - #:use-module (guix utils)) + #:use-module (guix utils) + #:use-module (ice-9 match) + #:use-module (ice-9 regex) + #:export (make-idris-package)) (define-public idris-1.3.3 (package @@ -148,8 +168,10 @@ (let* ((out (assoc-ref outputs "out")) (exe (string-append out "/bin/idris"))) (wrap-program exe - `("IDRIS_CC" = (,',(cc-for-target))))) - #true))))) + `("IDRIS_CC" = (,',(cc-for-target)))) + (with-directory-excursion (string-append out "/bin/") + (symlink ,name (string-append ,name "-" ,version)))) + #t))))) (native-search-paths (list (search-path-specification (variable "IDRIS_LIBRARY_PATH") @@ -165,6 +187,160 @@ Epigram and Agda.") (define-public idris idris-1.3.3) +(define-public idris-1.3.3-1 + ;; This is the current latest from the v1.x branch. + (let ((commit "55459867fc3f1ac34527a5dd998c37e72b15d488") + (revision "1")) + (package + (inherit idris-1.3.3) + (version (git-version "1.3.3" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/attila-lendvai/Idris2") + (commit commit))) + (sha256 + (base32 + "0qsn1953jy74pgppwkax8yrlswb3v46x541ahbl95rshf666nsj6")) + (file-name (git-file-name "idris" version)))) + (inputs + (append (package-inputs idris-1.3.3) + `(("ghc-haskeline-0.8" ,ghc-haskeline-0.8))))))) + +(define* (make-idris-package source version + #:key bootstrap-idris + (ignore-test-failures? #false) + (unwrap? #true) + (tests? #true) + (files-to-patch-for-shell + '("src/Compiler/Scheme/Chez.idr" + "src/Compiler/Scheme/Racket.idr" + "src/Compiler/Scheme/Gambit.idr" + "src/Compiler/ES/Node.idr" + "bootstrap/idris2_app/idris2.rkt" + "bootstrap/idris2_app/idris2.ss")) + (with-bootstrap-shortcut? #true)) + (package + (name "idris2") + (version version) + (source (match source + ((commit hash . url) + (origin + (method git-fetch) + (uri (git-reference + (url (if (null? url) + "https://github.com/idris-lang/Idris2.git" + (car url))) + (commit commit))) + (sha256 (base32 hash)) + (file-name (git-file-name name version)))) + ((? git-checkout?) + source))) + (build-system gnu-build-system) + (native-inputs + `(,@(if with-bootstrap-shortcut? + `(("chez-scheme" ,chez-scheme)) + `(("bootstrap-idris" ,bootstrap-idris))) + ("cc" ,clang-toolchain-12) ; clang or older clang-toolchain's don't have a bin/cc + ("coreutils" ,coreutils) + ("git" ,git) + ("node" ,node) ; only for the tests + ("racket" ,racket) ; only for the tests + ("sed" ,sed))) + (inputs + `(("bash" ,bash-minimal) + ("chez-scheme" ,chez-scheme) + ("gmp" ,gmp))) + (arguments + `(#:tests? ,tests? + #:make-flags + (list (string-append "CC=" ,(cc-for-target)) + ,@(if with-bootstrap-shortcut? + '((string-append "SCHEME=" + (assoc-ref %build-inputs "chez-scheme") + "/bin/scheme")) + `((string-append "BOOTSTRAP_IDRIS=" + (assoc-ref %build-inputs "bootstrap-idris") + "/bin/" ,(package-name bootstrap-idris)))) + (string-append "PREFIX=" (assoc-ref %outputs "out")) + "-j1") + #:phases + (modify-phases %standard-phases + (delete 'bootstrap) + (delete 'configure) + (delete 'check) ; check must happen after install and wrap-program + (add-after 'unpack 'patch-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* ',files-to-patch-for-shell + ((,(regexp-quote "#!/bin/sh")) + (string-append "#!" (assoc-ref inputs "bash") "/bin/sh")) + (("/usr/bin/env") + (string-append (assoc-ref inputs "coreutils") "/bin/env"))) + #true)) + ,@(if unwrap? + `((add-after 'install 'unwrap + (lambda* (#:key outputs #:allow-other-keys) + ;; The bin/idris2 calls bin/idris2_app/idris2.so which is + ;; the real executable, but it sets LD_LIBRARY_PATH + ;; incorrectly. Remove bin/idris2 and replace it with + ;; bin/idris2_app/idris2.so instead. + (let ((out (assoc-ref outputs "out"))) + (delete-file (string-append out "/bin/idris2")) + (rename-file (string-append out "/bin/idris2_app/idris2.so") + (string-append out "/bin/idris2")) + (delete-file-recursively (string-append out "/bin/idris2_app")) + (delete-file-recursively (string-append out "/lib"))) + #true))) + '()) + ,@(if with-bootstrap-shortcut? + `((replace 'build + (lambda* (#:key make-flags #:allow-other-keys) + ;; i.e. do not build it using the previous version of + ;; Idris, but rather compile the comitted compiler + ;; output. + (apply invoke "make" "bootstrap" make-flags)))) + '()) + (add-after 'unwrap 'wrap-program + (lambda* (#:key outputs inputs #:allow-other-keys) + (let* ((chez (string-append (assoc-ref inputs "chez-scheme") + "/bin/scheme")) + (out (assoc-ref outputs "out")) + (exe (string-append out "/bin/" ,name)) + (version ,version)) + (wrap-program exe + `("IDRIS2_PREFIX" = (,out)) + `("LD_LIBRARY_PATH" prefix (,(string-append out "/idris2-" version "/lib"))) + `("CC" = (,',(cc-for-target))) + `("CHEZ" = (,chez))) + (with-directory-excursion (string-append out "/bin/") + (symlink ,name (string-append ,name "-" ,version)))) + #true)) + (add-after 'wrap-program 'check + (lambda* (#:key outputs make-flags #:allow-other-keys) + (,(if ignore-test-failures? + 'false-if-exception + 'begin) + (apply invoke "make" + "INTERACTIVE=" + (string-append "IDRIS2=" + (assoc-ref outputs "out") + "/bin/" ,name) + "test" make-flags)) + #true))))) + (home-page "https://www.idris-lang.org") + (synopsis "General purpose language with full dependent types") + (description "Idris is a general purpose language with full dependent +types. It is compiled, with eager evaluation. Dependent types allow types to +be predicated on values, meaning that some aspects of a program's behaviour +can be specified precisely in the type. The language is closely related to +Epigram and Agda.") + (license license:bsd-3))) + +(define-public idris2-0.5.1 + (make-idris-package '("v0.5.1" + "09k5fxnplp6fv3877ynz1lwq9zapxcxbvfvkn6g68yb0ivrff978") + "0.5.1")) + ;; Idris modules use the gnu-build-system so that the IDRIS_LIBRARY_PATH is set. (define (idris-default-arguments name) `(#:modules ((guix build gnu-build-system)