Package: guix-patches;
Reported by: Ashvith Shetty <ashvithshetty10 <at> gmail.com>
Date: Tue, 6 Aug 2024 11:03:01 UTC
Severity: normal
Tags: patch
To reply to this bug, email your comments to 72494 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
, guix-patches <at> gnu.org
:bug#72494
; Package guix-patches
.
(Tue, 06 Aug 2024 11:03:02 GMT) Full text and rfc822 format available.Ashvith Shetty <ashvithshetty10 <at> gmail.com>
:, guix-patches <at> gnu.org
.
(Tue, 06 Aug 2024 11:03:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Ashvith Shetty <ashvithshetty10 <at> gmail.com> To: guix-patches <at> gnu.org Cc: Ashvith Shetty <ashvithshetty10 <at> gmail.com> Subject: [PATCH 0/1] Add C3 Date: Tue, 6 Aug 2024 16:32:20 +0530
This patch series adds C3, which is a programming language that builds on the syntax and semantics of the C language, with the goal of evolving it while still retaining familiarity for C programmers. Tests have been disabled, as I was not able to figure out on how to make it work, but I would appreciate it, if anyone is willing to improve this patch series. Ashvith Shetty (1): gnu: Add C3 1.6.1. gnu/packages/c3.scm | 59 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 gnu/packages/c3.scm base-commit: b20956651a53a8f23828fdeb6945e1a31e6997a8 -- 2.45.2
guix-patches <at> gnu.org
:bug#72494
; Package guix-patches
.
(Tue, 06 Aug 2024 11:07:01 GMT) Full text and rfc822 format available.Message #8 received at 72494 <at> debbugs.gnu.org (full text, mbox):
From: Ashvith Shetty <ashvithshetty10 <at> gmail.com> To: 72494 <at> debbugs.gnu.org Cc: Ashvith Shetty <ashvithshetty10 <at> gmail.com> Subject: [PATCH 1/1] gnu: Add C3 1.6.1. Date: Tue, 6 Aug 2024 16:34:21 +0530
* gnu/packages/c3.scm (c3c-bootstrap): New variable. Change-Id: Ib87f17f9178307af669bb6213403ddf1efd09386 --- gnu/packages/c3.scm | 59 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 gnu/packages/c3.scm diff --git a/gnu/packages/c3.scm b/gnu/packages/c3.scm new file mode 100644 index 0000000000..431b1c0aa4 --- /dev/null +++ b/gnu/packages/c3.scm @@ -0,0 +1,59 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2024 Ashvith Shetty <ashvithshetty10 <at> gmail.com> +;;; +;;; 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 (at +;;; 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 <http://www.gnu.org/licenses/>. + +(define-module (gnu packages c3) + #:use-module (gnu packages curl) + #:use-module (gnu packages libffi) + #:use-module (gnu packages llvm) + #:use-module (guix build-system cmake) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix licenses) + #:use-module (guix packages)) + +(define-public c3c-bootstrap + (package + (name "c3c") + (version "0.6.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/c3lang/c3c") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xjl3yghyqmqv9118nhcix3xywlpdirqc0dlmdaghdkja0wr19rw")) + (snippet #~(begin + (use-modules (guix build utils)) + (substitute* "CMakeLists.txt" + (("\\$\\{LLVM_LIBRARY_DIRS\\}") + (string-append #$lld-18 "/lib/ " + #$llvm-18 "/lib/"))))))) + (build-system cmake-build-system) + (arguments + '(#:configure-flags '("-DCMAKE_INSTALL_LIBDIR=lib") + ;; TODO: Fix test + #:tests? #f)) + (inputs (list curl libffi llvm-18 lld-18)) + (synopsis "Compiler for the C3 language") + (description + "C3 is a programming language that builds on the syntax and semantics of the C language, with the goal of evolving it while still retaining familiarity for C programmers.") + (home-page "https://c3-lang.org/") + (supported-systems '("x86_64-linux" "aarch64-linux" "riscv64-linux")) + (license (list lgpl3 expat)))) -- 2.45.2
guix-patches <at> gnu.org
:bug#72494
; Package guix-patches
.
(Tue, 06 Aug 2024 11:11:02 GMT) Full text and rfc822 format available.guix-patches <at> gnu.org
:bug#72494
; Package guix-patches
.
(Tue, 06 Aug 2024 15:09:02 GMT) Full text and rfc822 format available.Message #14 received at 72494 <at> debbugs.gnu.org (full text, mbox):
From: Adam Faiz <adam.faiz <at> disroot.org> To: 72494 <at> debbugs.gnu.org Cc: ashvithshetty10 <at> gmail.com Subject: Re: [PATCH 0/1] Add C3 Date: Tue, 06 Aug 2024 15:07:07 +0000
Hello Ashvith, I'd like to give my feedback on this patch series. I'll send an updated patch series using the suggestions below if I have the time. > +(define-public c3c-bootstrap > + (package > + (name "c3c") > + (version "0.6.1") > + (source > + (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://github.com/c3lang/c3c") > + (commit (string-append "v" version)))) > + (file-name (git-file-name name version)) > + (sha256 > + (base32 "0xjl3yghyqmqv9118nhcix3xywlpdirqc0dlmdaghdkja0wr19rw")) > + (snippet #~(begin > + (use-modules (guix build utils)) > + (substitute* "CMakeLists.txt" > + (("\\$\\{LLVM_LIBRARY_DIRS\\}") > + (string-append #$lld-18 "/lib/ " > + #$llvm-18 "/lib/"))))))) > + (build-system cmake-build-system) > + (arguments > + '(#:configure-flags '("-DCMAKE_INSTALL_LIBDIR=lib") > + ;; TODO: Fix test > + #:tests? #f)) According to its README, the unit tests are run using the built c3c with its compile-test subcommand: `c3c compile-test test/unit`. The `check` build phase needs to be replaced to run this command. A patch sent upstream to add a proper `check` target would be good, and the test/ subdirectory would probably also need to be specified as part of the out-of-tree build. > + (inputs (list curl libffi llvm-18 lld-18)) The curl dependency should be removed, since c3c's optional dependency downloading functionality isn't needed in Guix.
guix-patches <at> gnu.org
:bug#72494
; Package guix-patches
.
(Tue, 06 Aug 2024 19:35:01 GMT) Full text and rfc822 format available.Message #17 received at 72494 <at> debbugs.gnu.org (full text, mbox):
From: Ashvith Shetty <ashvithshetty10 <at> gmail.com> To: 72494 <at> debbugs.gnu.org Cc: Ashvith Shetty <ashvithshetty10 <at> gmail.com> Subject: [PATCH v1] gnu: Add C3 1.6.1. Date: Wed, 7 Aug 2024 01:02:28 +0530
* gnu/packages/c3.scm (c3c-bootstrap): New variable. Change-Id: Ib87f17f9178307af669bb6213403ddf1efd09386 --- gnu/packages/c3.scm | 58 +++++++++++++++++++ outgoing/0000-cover-letter.patch | 22 ++++++++ outgoing/0001-gnu-Add-C3-1.6.1.patch | 84 ++++++++++++++++++++++++++++ 3 files changed, 164 insertions(+) create mode 100644 gnu/packages/c3.scm create mode 100644 outgoing/0000-cover-letter.patch create mode 100644 outgoing/0001-gnu-Add-C3-1.6.1.patch diff --git a/gnu/packages/c3.scm b/gnu/packages/c3.scm new file mode 100644 index 0000000000..bd8bf89b17 --- /dev/null +++ b/gnu/packages/c3.scm @@ -0,0 +1,58 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2024 Ashvith Shetty <ashvithshetty10 <at> gmail.com> +;;; +;;; 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 (at +;;; 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 <http://www.gnu.org/licenses/>. + +(define-module (gnu packages c3) + #:use-module (gnu packages libffi) + #:use-module (gnu packages llvm) + #:use-module (guix build-system cmake) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix licenses) + #:use-module (guix packages)) + +(define-public c3c-bootstrap + (package + (name "c3c") + (version "0.6.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/c3lang/c3c") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xjl3yghyqmqv9118nhcix3xywlpdirqc0dlmdaghdkja0wr19rw")) + (snippet #~(begin + (use-modules (guix build utils)) + (substitute* "CMakeLists.txt" + (("\\$\\{LLVM_LIBRARY_DIRS\\}") + (string-append #$lld-18 "/lib/ " + #$llvm-18 "/lib/"))))))) + (build-system cmake-build-system) + (arguments + '(#:configure-flags '("-DCMAKE_INSTALL_LIBDIR=lib") + ;; TODO: Fix test + #:tests? #f)) + (inputs (list libffi llvm-18 lld-18)) + (synopsis "Compiler for the C3 language") + (description + "C3 is a programming language that builds on the syntax and semantics of the C language, with the goal of evolving it while still retaining familiarity for C programmers.") + (home-page "https://c3-lang.org/") + (supported-systems '("x86_64-linux" "aarch64-linux" "riscv64-linux")) + (license (list lgpl3 expat)))) diff --git a/outgoing/0000-cover-letter.patch b/outgoing/0000-cover-letter.patch new file mode 100644 index 0000000000..6fe6a1dbc7 --- /dev/null +++ b/outgoing/0000-cover-letter.patch @@ -0,0 +1,22 @@ +From 35f4ae97ed57fff79575fa8acd83d8c1077acd4c Mon Sep 17 00:00:00 2001 +Message-ID: <cover.1722933384.git.ashvithshetty10 <at> gmail.com> +From: Ashvith Shetty <ashvithshetty10 <at> gmail.com> +Date: Tue, 6 Aug 2024 14:06:24 +0530 +Subject: [PATCH 0/1] Add C3 + +This patch series adds C3, which is a programming language that builds on the syntax and semantics of the C language, with the goal of evolving it while still retaining familiarity for C programmers. + +Tests have been disabled, as I was not able to figure out on how to make it work, but I would appreciate it, if anyone is willing to improve this patch series. + +Ashvith Shetty (1): + gnu: Add C3 1.6.1. + + gnu/packages/c3.scm | 59 +++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 59 insertions(+) + create mode 100644 gnu/packages/c3.scm + + +base-commit: b20956651a53a8f23828fdeb6945e1a31e6997a8 +-- +2.45.2 + diff --git a/outgoing/0001-gnu-Add-C3-1.6.1.patch b/outgoing/0001-gnu-Add-C3-1.6.1.patch new file mode 100644 index 0000000000..93fcedbb28 --- /dev/null +++ b/outgoing/0001-gnu-Add-C3-1.6.1.patch @@ -0,0 +1,84 @@ +From 35f4ae97ed57fff79575fa8acd83d8c1077acd4c Mon Sep 17 00:00:00 2001 +Message-ID: <35f4ae97ed57fff79575fa8acd83d8c1077acd4c.1722933384.git.ashvithshetty10 <at> gmail.com> +In-Reply-To: <cover.1722933384.git.ashvithshetty10 <at> gmail.com> +References: <cover.1722933384.git.ashvithshetty10 <at> gmail.com> +From: Ashvith Shetty <ashvithshetty10 <at> gmail.com> +Date: Tue, 6 Aug 2024 12:19:24 +0530 +Subject: [PATCH 1/1] gnu: Add C3 1.6.1. + +* gnu/packages/c3.scm (c3c-bootstrap): New variable. + +Change-Id: Ib87f17f9178307af669bb6213403ddf1efd09386 +--- + gnu/packages/c3.scm | 59 +++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 59 insertions(+) + create mode 100644 gnu/packages/c3.scm + +diff --git a/gnu/packages/c3.scm b/gnu/packages/c3.scm +new file mode 100644 +index 0000000000..431b1c0aa4 +--- /dev/null ++++ b/gnu/packages/c3.scm +@@ -0,0 +1,59 @@ ++;;; GNU Guix --- Functional package management for GNU ++;;; Copyright © 2024 Ashvith Shetty <ashvithshetty10 <at> gmail.com> ++;;; ++;;; 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 (at ++;;; 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 <http://www.gnu.org/licenses/>. ++ ++(define-module (gnu packages c3) ++ #:use-module (gnu packages curl) ++ #:use-module (gnu packages libffi) ++ #:use-module (gnu packages llvm) ++ #:use-module (guix build-system cmake) ++ #:use-module (guix gexp) ++ #:use-module (guix git-download) ++ #:use-module (guix licenses) ++ #:use-module (guix packages)) ++ ++(define-public c3c-bootstrap ++ (package ++ (name "c3c") ++ (version "0.6.1") ++ (source ++ (origin ++ (method git-fetch) ++ (uri (git-reference ++ (url "https://github.com/c3lang/c3c") ++ (commit (string-append "v" version)))) ++ (file-name (git-file-name name version)) ++ (sha256 ++ (base32 "0xjl3yghyqmqv9118nhcix3xywlpdirqc0dlmdaghdkja0wr19rw")) ++ (snippet #~(begin ++ (use-modules (guix build utils)) ++ (substitute* "CMakeLists.txt" ++ (("\\$\\{LLVM_LIBRARY_DIRS\\}") ++ (string-append #$lld-18 "/lib/ " ++ #$llvm-18 "/lib/"))))))) ++ (build-system cmake-build-system) ++ (arguments ++ '(#:configure-flags '("-DCMAKE_INSTALL_LIBDIR=lib") ++ ;; TODO: Fix test ++ #:tests? #f)) ++ (inputs (list curl libffi llvm-18 lld-18)) ++ (synopsis "Compiler for the C3 language") ++ (description ++ "C3 is a programming language that builds on the syntax and semantics of the C language, with the goal of evolving it while still retaining familiarity for C programmers.") ++ (home-page "https://c3-lang.org/") ++ (supported-systems '("x86_64-linux" "aarch64-linux" "riscv64-linux")) ++ (license (list lgpl3 expat)))) +-- +2.45.2 + -- 2.45.2
guix-patches <at> gnu.org
:bug#72494
; Package guix-patches
.
(Tue, 06 Aug 2024 19:40:02 GMT) Full text and rfc822 format available.Message #20 received at 72494 <at> debbugs.gnu.org (full text, mbox):
From: Ashvith Shetty <ashvithshetty10 <at> gmail.com> To: 72494 <at> debbugs.gnu.org Cc: Ashvith Shetty <ashvithshetty10 <at> gmail.com> Subject: [PATCH v2] gnu: Add C3 1.6.1. Date: Wed, 7 Aug 2024 01:07:35 +0530
* gnu/packages/c3.scm (c3c-bootstrap): New variable. Change-Id: I4523c9c4e2fa613f1aecc5ad1214722618fa3ab8 --- gnu/packages/c3.scm | 58 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 gnu/packages/c3.scm diff --git a/gnu/packages/c3.scm b/gnu/packages/c3.scm new file mode 100644 index 0000000000..bd8bf89b17 --- /dev/null +++ b/gnu/packages/c3.scm @@ -0,0 +1,58 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2024 Ashvith Shetty <ashvithshetty10 <at> gmail.com> +;;; +;;; 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 (at +;;; 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 <http://www.gnu.org/licenses/>. + +(define-module (gnu packages c3) + #:use-module (gnu packages libffi) + #:use-module (gnu packages llvm) + #:use-module (guix build-system cmake) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix licenses) + #:use-module (guix packages)) + +(define-public c3c-bootstrap + (package + (name "c3c") + (version "0.6.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/c3lang/c3c") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xjl3yghyqmqv9118nhcix3xywlpdirqc0dlmdaghdkja0wr19rw")) + (snippet #~(begin + (use-modules (guix build utils)) + (substitute* "CMakeLists.txt" + (("\\$\\{LLVM_LIBRARY_DIRS\\}") + (string-append #$lld-18 "/lib/ " + #$llvm-18 "/lib/"))))))) + (build-system cmake-build-system) + (arguments + '(#:configure-flags '("-DCMAKE_INSTALL_LIBDIR=lib") + ;; TODO: Fix test + #:tests? #f)) + (inputs (list libffi llvm-18 lld-18)) + (synopsis "Compiler for the C3 language") + (description + "C3 is a programming language that builds on the syntax and semantics of the C language, with the goal of evolving it while still retaining familiarity for C programmers.") + (home-page "https://c3-lang.org/") + (supported-systems '("x86_64-linux" "aarch64-linux" "riscv64-linux")) + (license (list lgpl3 expat)))) -- 2.45.2
guix-patches <at> gnu.org
:bug#72494
; Package guix-patches
.
(Wed, 07 Aug 2024 06:38:01 GMT) Full text and rfc822 format available.Message #23 received at 72494 <at> debbugs.gnu.org (full text, mbox):
From: Adam Faiz <adam.faiz <at> disroot.org> To: 72494 <at> debbugs.gnu.org Cc: ashvithshetty10 <at> gmail.com Subject: [PATCH v3] gnu: Add c3c-bootstrap. Date: Wed, 7 Aug 2024 14:36:48 +0800
From 3f9768c8fe5cc965170a74e5c018887793cb3ac0 Mon Sep 17 00:00:00 2001 Message-ID: <3f9768c8fe5cc965170a74e5c018887793cb3ac0.1723012269.git.adam.faiz <at> disroot.org> From: AwesomeAdam54321 <adam.faiz <at> disroot.org> Date: Wed, 7 Aug 2024 12:18:23 +0800 Subject: [PATCH v3] gnu: Add c3c-bootstrap. This patch was co-authored with Ashvith Shetty. * gnu/packages/c3.scm: New file. * gnu/packages/c3.scm (c3c-bootstrap): New variable. --- gnu/packages/c3.scm | 92 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 gnu/packages/c3.scm diff --git a/gnu/packages/c3.scm b/gnu/packages/c3.scm new file mode 100644 index 0000000000..2c5924807f --- /dev/null +++ b/gnu/packages/c3.scm @@ -0,0 +1,92 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2024 Ashvith Shetty <ashvithshetty10 <at> gmail.com> +;;; Copyright © 2024 Adam Faiz <adam.faiz <at> disroot.org> +;;; +;;; 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 (at +;;; 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 <http://www.gnu.org/licenses/>. + +(define-module (gnu packages c3) + #:use-module (gnu packages compression) + #:use-module (gnu packages curl) + #:use-module (gnu packages libffi) + #:use-module (gnu packages llvm) + #:use-module (gnu packages python) + #:use-module (guix build-system cmake) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix utils)) + +(define-public c3c-bootstrap + (package + (name "c3c") + (version "0.6.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/c3lang/c3c") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xjl3yghyqmqv9118nhcix3xywlpdirqc0dlmdaghdkja0wr19rw")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Unbundle miniz. + (delete-file-recursively "dependencies") + ;; Swap out miniz for zlib. + (substitute* "CMakeLists.txt" + (("add_library\\(miniz.*\\)\n$") + "find_package(ZLIB REQUIRED)") + (("target_include_directories\\(miniz PUBLIC") "") + (("...*/dependencies/miniz/..") "") + (("miniz") "z")) + (substitute* "src/utils/unzipper.c" + (("miniz\\.h") "zlib.h")))))) + (build-system cmake-build-system) + (arguments + (list + #:configure-flags + #~(list "-DCMAKE_INSTALL_LIBDIR=lib") + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'fix-build + (lambda _ + (substitute* "CMakeLists.txt" + (("\\$\\{LLVM_LIBRARY_DIRS\\}") + (string-append #$lld-18 "/lib/ " + #$llvm-18 "/lib/"))))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (with-directory-excursion "../source/resources/testproject" + (invoke "../../../build/c3c" + "--cc" #$(cc-for-target) "build")) + (invoke "python3" "../source/test/src/tester.py" + "./c3c" "../source/test/test_suite") + (invoke "./c3c" "--cc" #$(cc-for-target) + "compile-test" "../source/test/unit"))))))) + (native-inputs (list python)) + (inputs (list libffi lld-18 llvm-18 zlib)) + (synopsis "Compiler for the C3 language") + (description + "C3 is a programming language that builds on the syntax and semantics +of the C language, with the goal of evolving it while still retaining +familiarity for C programmers.") + (home-page "https://c3-lang.org/") + (supported-systems '("x86_64-linux" "aarch64-linux" "riscv64-linux")) + (license (list license:lgpl3 license:expat)))) base-commit: b20956651a53a8f23828fdeb6945e1a31e6997a8 -- 2.41.0
guix-patches <at> gnu.org
:bug#72494
; Package guix-patches
.
(Sat, 10 Aug 2024 18:01:01 GMT) Full text and rfc822 format available.Message #26 received at 72494 <at> debbugs.gnu.org (full text, mbox):
From: Ashvith Shetty <ashvithshetty10 <at> gmail.com> To: 72494 <at> debbugs.gnu.org Cc: adam.faiz <at> disroot.org Subject: Re: [PATCH v3] gnu: Add c3c-bootstrap. Date: Sat, 10 Aug 2024 17:59:04 +0000
Hi Adam, I've tried building from your patch, and it seems to me that the compiler isn't working, and requires that the flag `-cc` be passed, pointing to `gcc` or `clang`. Since `cc` is a symlink to `gcc`, wouldn't it be better to substitute `cc` to `gcc`? Or is it possible to create a symlink `cc` unique to, and isolated inside the package expression? On Wed, Aug 7, 2024 at 6:37 AM Adam Faiz <adam.faiz <at> disroot.org> wrote: > > From 3f9768c8fe5cc965170a74e5c018887793cb3ac0 Mon Sep 17 00:00:00 2001 > Message-ID: <3f9768c8fe5cc965170a74e5c018887793cb3ac0.1723012269.git.adam.faiz <at> disroot.org> > From: AwesomeAdam54321 <adam.faiz <at> disroot.org> > Date: Wed, 7 Aug 2024 12:18:23 +0800 > Subject: [PATCH v3] gnu: Add c3c-bootstrap. > > This patch was co-authored with Ashvith Shetty. > > * gnu/packages/c3.scm: New file. > * gnu/packages/c3.scm (c3c-bootstrap): New variable. > --- > gnu/packages/c3.scm | 92 +++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 92 insertions(+) > create mode 100644 gnu/packages/c3.scm > > diff --git a/gnu/packages/c3.scm b/gnu/packages/c3.scm > new file mode 100644 > index 0000000000..2c5924807f > --- /dev/null > +++ b/gnu/packages/c3.scm > @@ -0,0 +1,92 @@ > +;;; GNU Guix --- Functional package management for GNU > +;;; Copyright © 2024 Ashvith Shetty <ashvithshetty10 <at> gmail.com> > +;;; Copyright © 2024 Adam Faiz <adam.faiz <at> disroot.org> > +;;; > +;;; 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 (at > +;;; 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 <http://www.gnu.org/licenses/>. > + > +(define-module (gnu packages c3) > + #:use-module (gnu packages compression) > + #:use-module (gnu packages curl) > + #:use-module (gnu packages libffi) > + #:use-module (gnu packages llvm) > + #:use-module (gnu packages python) > + #:use-module (guix build-system cmake) > + #:use-module (guix gexp) > + #:use-module (guix git-download) > + #:use-module ((guix licenses) #:prefix license:) > + #:use-module (guix packages) > + #:use-module (guix utils)) > + > +(define-public c3c-bootstrap > + (package > + (name "c3c") > + (version "0.6.1") > + (source > + (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://github.com/c3lang/c3c") > + (commit (string-append "v" version)))) > + (file-name (git-file-name name version)) > + (sha256 > + (base32 "0xjl3yghyqmqv9118nhcix3xywlpdirqc0dlmdaghdkja0wr19rw")) > + (modules '((guix build utils))) > + (snippet > + #~(begin > + ;; Unbundle miniz. > + (delete-file-recursively "dependencies") > + ;; Swap out miniz for zlib. > + (substitute* "CMakeLists.txt" > + (("add_library\\(miniz.*\\)\n$") > + "find_package(ZLIB REQUIRED)") > + (("target_include_directories\\(miniz PUBLIC") "") > + (("...*/dependencies/miniz/..") "") > + (("miniz") "z")) > + (substitute* "src/utils/unzipper.c" > + (("miniz\\.h") "zlib.h")))))) > + (build-system cmake-build-system) > + (arguments > + (list > + #:configure-flags > + #~(list "-DCMAKE_INSTALL_LIBDIR=lib") > + #:phases > + #~(modify-phases %standard-phases > + (add-before 'configure 'fix-build > + (lambda _ > + (substitute* "CMakeLists.txt" > + (("\\$\\{LLVM_LIBRARY_DIRS\\}") > + (string-append #$lld-18 "/lib/ " > + #$llvm-18 "/lib/"))))) > + (replace 'check > + (lambda* (#:key tests? #:allow-other-keys) > + (when tests? > + (with-directory-excursion "../source/resources/testproject" > + (invoke "../../../build/c3c" > + "--cc" #$(cc-for-target) "build")) > + (invoke "python3" "../source/test/src/tester.py" > + "./c3c" "../source/test/test_suite") > + (invoke "./c3c" "--cc" #$(cc-for-target) > + "compile-test" "../source/test/unit"))))))) > + (native-inputs (list python)) > + (inputs (list libffi lld-18 llvm-18 zlib)) > + (synopsis "Compiler for the C3 language") > + (description > + "C3 is a programming language that builds on the syntax and semantics > +of the C language, with the goal of evolving it while still retaining > +familiarity for C programmers.") > + (home-page "https://c3-lang.org/") > + (supported-systems '("x86_64-linux" "aarch64-linux" "riscv64-linux")) > + (license (list license:lgpl3 license:expat)))) > > base-commit: b20956651a53a8f23828fdeb6945e1a31e6997a8 > -- > 2.41.0
guix-patches <at> gnu.org
:bug#72494
; Package guix-patches
.
(Sun, 11 Aug 2024 14:49:01 GMT) Full text and rfc822 format available.Message #29 received at 72494 <at> debbugs.gnu.org (full text, mbox):
From: Adam Faiz <adam.faiz <at> disroot.org> To: Ashvith Shetty <ashvithshetty10 <at> gmail.com>, 72494 <at> debbugs.gnu.org Subject: Re: [PATCH v3] gnu: Add c3c-bootstrap. Date: Sun, 11 Aug 2024 22:47:36 +0800
On 8/11/24 01:59, Ashvith Shetty wrote: > Hi Adam, > > I've tried building from your patch, and it seems to me that the > compiler isn't working, and requires that the flag `-cc` be passed, > pointing to `gcc` or `clang`. Since `cc` is a symlink to `gcc`, > wouldn't it be better to substitute `cc` to `gcc`? Or is it possible > to create a symlink `cc` unique to, and isolated inside the package > expression? Yes, it's better to just substitute `cc` with #$(cc-for-target). I've updated the patch to do this.
guix-patches <at> gnu.org
:bug#72494
; Package guix-patches
.
(Sun, 11 Aug 2024 14:59:01 GMT) Full text and rfc822 format available.Message #32 received at 72494 <at> debbugs.gnu.org (full text, mbox):
From: Adam Faiz <adam.faiz <at> disroot.org> To: 72494 <at> debbugs.gnu.org Cc: Ashvith Shetty <ashvithshetty10 <at> gmail.com> Subject: [PATCH v4] gnu: Add c3c-bootstrap. Date: Sun, 11 Aug 2024 22:57:52 +0800
From 8b6035ad6587d44a9d65575b0f307820e42a402e Mon Sep 17 00:00:00 2001 Message-ID: <8b6035ad6587d44a9d65575b0f307820e42a402e.1723388041.git.adam.faiz <at> disroot.org> From: AwesomeAdam54321 <adam.faiz <at> disroot.org> Date: Wed, 7 Aug 2024 12:18:23 +0800 Subject: [PATCH v4] gnu: Add c3c-bootstrap. This patch was co-authored with Ashvith Shetty. * gnu/packages/c3.scm: New file. * gnu/packages/c3.scm (c3c-bootstrap): New variable. --- gnu/packages/c3.scm | 94 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 gnu/packages/c3.scm diff --git a/gnu/packages/c3.scm b/gnu/packages/c3.scm new file mode 100644 index 0000000000..d179a30356 --- /dev/null +++ b/gnu/packages/c3.scm @@ -0,0 +1,94 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2024 Ashvith Shetty <ashvithshetty10 <at> gmail.com> +;;; Copyright © 2024 Adam Faiz <adam.faiz <at> disroot.org> +;;; +;;; 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 (at +;;; 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 <http://www.gnu.org/licenses/>. + +(define-module (gnu packages c3) + #:use-module (gnu packages compression) + #:use-module (gnu packages libffi) + #:use-module (gnu packages llvm) + #:use-module (gnu packages python) + #:use-module (guix build-system cmake) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix utils)) + +(define-public c3c-bootstrap + (package + (name "c3c") + (version "0.6.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/c3lang/c3c") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xjl3yghyqmqv9118nhcix3xywlpdirqc0dlmdaghdkja0wr19rw")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Unbundle miniz. + (delete-file-recursively "dependencies") + ;; Swap out miniz for zlib. + (substitute* "CMakeLists.txt" + (("add_library\\(miniz.*\\)\n$") + "find_package(ZLIB REQUIRED)\n") + (("target_include_directories\\(miniz PUBLIC") "") + (("...*/dependencies/miniz/..") "") + (("miniz") "z")) + (substitute* "src/utils/unzipper.c" + (("miniz\\.h") "zlib.h")))))) + (build-system cmake-build-system) + (arguments + (list + #:configure-flags + #~(list "-DCMAKE_INSTALL_LIBDIR=lib") + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'fix-build + (lambda _ + (substitute* "CMakeLists.txt" + (("\\$\\{LLVM_LIBRARY_DIRS\\}") + (string-append #$lld-18 "/lib/ " + #$llvm-18 "/lib/"))) + (substitute* '("src/compiler/target.c" + "src/compiler/linker.c") + (("\"cc\"") (string-append "\"" #$(cc-for-target) "\""))) + (substitute* "resources/testproject/project.json" + (("\"cc\" : \"cc\",") "")))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (with-directory-excursion "../source/resources/testproject" + (invoke "../../../build/c3c" "build")) + (invoke "python3" "../source/test/src/tester.py" + "./c3c" "../source/test/test_suite") + (invoke "./c3c" "compile-test" "../source/test/unit"))))))) + (native-inputs (list python)) + (inputs (list libffi lld-18 llvm-18 zlib)) + (synopsis "Compiler for the C3 language") + (description + "C3 is a programming language that builds on the syntax and semantics +of the C language, with the goal of evolving it while still retaining +familiarity for C programmers.") + (home-page "https://c3-lang.org/") + (supported-systems '("x86_64-linux" "aarch64-linux" "riscv64-linux")) + (license (list license:lgpl3 license:expat)))) base-commit: b20956651a53a8f23828fdeb6945e1a31e6997a8 -- 2.41.0
guix-patches <at> gnu.org
:bug#72494
; Package guix-patches
.
(Mon, 12 Aug 2024 18:41:01 GMT) Full text and rfc822 format available.Message #35 received at 72494 <at> debbugs.gnu.org (full text, mbox):
From: Ashvith Shetty <ashvithshetty10 <at> gmail.com> To: Adam Faiz <adam.faiz <at> disroot.org> Cc: 72494 <at> debbugs.gnu.org Subject: Re: [PATCH v4] gnu: Add c3c-bootstrap. Date: Mon, 12 Aug 2024 18:38:42 +0000
[Message part 1 (text/plain, inline)]
Hi Adam, I've actually got my own patch ready with similar substitution and complete set of tests, which I've not submitted yet. The reason for this is that I've talked to the maintainer of the project, and according to them, this substitution is a bad idea. Another reason is that it does not work in a pure, ephemeral environment, unless `gcc` and `ld` is provided as either a propagated input, or a side-by package. And there's also the issue with using an alternative compiler and linker, which isn't working well.
[Message part 2 (text/html, inline)]
guix-patches <at> gnu.org
:bug#72494
; Package guix-patches
.
(Thu, 06 Mar 2025 08:23:02 GMT) Full text and rfc822 format available.Message #38 received at 72494 <at> debbugs.gnu.org (full text, mbox):
From: Ashvith Shetty <ashvithshetty0010 <at> zohomail.in> To: "72494" <72494 <at> debbugs.gnu.org> Cc: Simon Tournier <zimon.toutoune <at> gmail.com>, Mathieu Othacehe <othacehe <at> gnu.org>, "Ludovic Courtès" <ludo <at> gnu.org>, Tobias Geerinckx-Rice <me <at> tobias.gr>, jgart <jgart <at> dismail.de>, Christopher Baines <guix <at> cbaines.net> Subject: Help with packaging c3c-lang Date: Thu, 06 Mar 2025 13:52:20 +0530
Hello, This is my second attempt at packaging c3-lang (https://github.com/c3lang/c3c). I am planning to refer zig to build all the way from 0.5.1 to the lastest version. In the earlier patches, miniz was unbundled and replaced with the input-provided zlib - however, this time was able to make it work with the input-provided miniz (patch not provided). 1) In the earlier patch I have worked on, I just noticed that I had to substitute ${LLVM_LIBRARY_DIRS}: --8<---------------cut here---------------start------------->8--- + (snippet #~(begin + (use-modules (guix build utils)) + (substitute* "CMakeLists.txt" + (("\\$\\{LLVM_LIBRARY_DIRS\\}") + (string-append #$lld-18 "/lib/ " + #$llvm-18 "/lib/"))))))) --8<---------------cut here---------------start------------->8--- However, this seems to me like an improper way to deal with it. I have a limited understanding of CMake, so please bear with me: Variable ${LLVM_LIBRARY_DIRS} (which I am assuming is a combination of variables including, but not limited to ${LLVM_DIR} and ${LLD_DIR}) seems to include only /gnu/store/z0abzsad781af8qp2wzqq8icwwyxb4ms-llvm-18.1.8/lib/ (${LLVM_DIR}?), but not /gnu/store/62jn91571kx31hqza7c9jzsc3sinkxjr-lld-18.1.8/lib/ (${LLD_DIR}?). When I try printing ${LLD_DIR} in CMakeLists.txt (patch not provided), it appears to be an empty string. Is there anything wrong with the way CMake is configured in c3c? 2) c3c assumes that there exists a compiler or an alias `cc`, but there isn't any such variable in Guix (at least to my knowledge). How do I deal with this issue? Because if not resolved, it also causes the tests to fail. Do I patch cc to gcc/clang/#$(cc-for-target)? --8<---------------cut here---------------start------------->8--- + (substitute* '("src/compiler/target.c" + "src/compiler/linker.c") + (("\"cc\"") (string-append "\"" #$(cc-for-target) "\""))) + (substitute* "resources/testproject/project.json" + (("\"cc\" : \"cc\",") "")))) --8<---------------cut here---------------start------------->8--- Or is there a better way to deal with this? By the way, commit 297a6c9 (https://github.com/c3lang/c3c/commit/297a6c93481e2f3b62bf0250750e20549108129d) in v0.6.3 includes support for C3C_LIB and C3C_CC - can this be re-used for earlier patches? 3) Tests in C3C don't run (or maybe I am doing something wrong), so I had to add this instead (this is specific to v0.6.1): --8<---------------cut here---------------start------------->8--- (replace 'check (lambda* (#:key tests? #:allow-other-keys) (when tests? ;; Compile and run some examples (display "# Compile and run some examples #\n") (with-directory-excursion "../source/resources" (for-each (lambda (file) (invoke "../../build/c3c" "compile" file)) '("examples/base64.c3" "examples/binarydigits.c3" "examples/brainfk.c3" "examples/factorial_macro.c3" "examples/fasta.c3" "examples/gameoflife.c3" "examples/hash.c3" "examples/levenshtein.c3" "examples/load_world.c3" "examples/map.c3" "examples/mandelbrot.c3" "examples/plus_minus.c3" "examples/nbodies.c3" "examples/spectralnorm.c3" "examples/swap.c3" "examples/contextfree/boolerr.c3" "examples/contextfree/dynscope.c3" "examples/contextfree/guess_number.c3" "examples/contextfree/multi.c3" "examples/contextfree/cleanup.c3")) (for-each (lambda (file) (invoke "../../build/c3c" "compile-run" file)) '("examples/hello_world_many.c3" "examples/time.c3" "examples/fannkuch-redux.c3" "examples/contextfree/boolerr.c3" "examples/load_world.c3" "examples/process.c3" "examples/ls.c3" "linux_stack.c3")) (invoke "../../build/c3c" "compile-run" "--linker=builtin" "linux_stack.c3")) ;; Compile run unit tests (display "# Compile run unit tests #\n") (invoke "./c3c" "compile-test" "../source/test/unit") (with-directory-excursion "../source/resources/testproject" ;; Build testproject (display "# Build testproject #\n") (invoke "../../../build/c3c" "build" "--debug-log") ;; Build testproject direct linker (display "# Build testproject direct linker #\n") (invoke "../../../build/c3c" "build" "--debug-log" "--linker=builtin")) ;; Run compiler tests (display "# Run compiler tests #\n") (invoke "python3" "../source/test/src/tester.py" "./c3c" "../source/test/test_suite"))))))) --8<---------------cut here---------------start------------->8--- These tests come from `.github/workflows/main.yml`. I feel like there has to be a better way to do this. Regards, Ashvith
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.