Message ID | 20220626043902.3076-1-antero@mailbox.org |
---|---|
State | Accepted |
Headers | show |
Series | [bug#55606,1/2] gnu: Add harec. | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/issue | success | View issue |
Hi, added the others back to CC; don't forget to set those when using guix send-email. Am Sonntag, dem 26.06.2022 um 00:39 -0400 schrieb Antero Mejr: > * gnu/packages/hare.scm (harec): New variable. > --- > gnu/packages/hare.scm | 66 > +++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 66 insertions(+) > create mode 100644 gnu/packages/hare.scm > > diff --git a/gnu/packages/hare.scm b/gnu/packages/hare.scm > new file mode 100644 > index 0000000000..a1149499d5 > --- /dev/null > +++ b/gnu/packages/hare.scm > @@ -0,0 +1,66 @@ > +;;; GNU Guix --- Functional package management for GNU > +;;; Copyright © 2022 (unmatched parenthesis <paren@disroot.org> > +;;; Copyright © 2022 Antero Mejr <antero@mailbox.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 hare) > + #:use-module (gnu packages base) > + #:use-module (gnu packages c) > + #:use-module (gnu packages man) > + #:use-module (guix build-system gnu) > + #:use-module (guix download) > + #:use-module ((guix licenses) #:prefix license:) > + #:use-module (guix gexp) > + #:use-module (guix git-download) > + #:use-module (guix packages) > + #:use-module (guix platform) > + #:use-module (guix utils)) > + > +(define-public harec > + (let ((commit "bbabe09bddf74bd699f8ad2224fdd6e2eefbd35e") > (revision "0")) Despite what (guix style) may tell you, revision goes to an extra line. > + (package > + (name "harec") > + (version (git-version "0.0.0" revision commit)) > + (source (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://git.sr.ht/~sircmpwn/harec") > + (commit commit))) > + (file-name (git-file-name name version)) > + (sha256 > + (base32 > + > "0sa8rjj5w01n55svql8drv761ks6i1bl9q4gj1yzr31dixaf6xvr")))) > + (build-system gnu-build-system) > + (arguments > + (list #:configure-flags #~(list (string-append "--prefix=" > #$output)) > + #:phases #~(modify-phases %standard-phases > + (replace 'configure > + (lambda* (#:key outputs > + (configure-flags '()) #:allow- > other-keys) > + (setenv "AR" #$(ar-for-target)) > + (setenv "AS" #$(as-for-target)) > + (setenv "CC" #$(cc-for-target)) > + (setenv "LD" #$(ld-for-target)) > + (setenv "QBE" (string-append #$qbe > "/bin/qbe")) Should be (which "qbe"), or some elaborate search-input-file. Also qbe should be a native input. I do wonder if some of those get embedded into the compiler or how they're supposed to be used (outside of build time); if you find a place where harec invokes qbe, you'd need to patch that in the source. > + (apply invoke "./configure" configure- > flags)))))) > + (inputs (list qbe)) > + (home-page "https://harelang.org") > + (synopsis "Hare bootstrap compiler in C") > + (description "This package provides @code{harec}, the Hare > language's > +bootstrap written in C. Currently, the self-hosting @code{harec} > rewrite is > +incomplete, so this is used as the default compiler in the build > driver.") I don't see why it's necessary to state that harec can't self-host yet. We would need to bootstrap it from C anyways, so having this architecture in place actually makes things simpler. > + (license license:gpl3)))) Cheers
diff --git a/gnu/packages/hare.scm b/gnu/packages/hare.scm new file mode 100644 index 0000000000..a1149499d5 --- /dev/null +++ b/gnu/packages/hare.scm @@ -0,0 +1,66 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2022 (unmatched parenthesis <paren@disroot.org> +;;; Copyright © 2022 Antero Mejr <antero@mailbox.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 hare) + #:use-module (gnu packages base) + #:use-module (gnu packages c) + #:use-module (gnu packages man) + #:use-module (guix build-system gnu) + #:use-module (guix download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (guix platform) + #:use-module (guix utils)) + +(define-public harec + (let ((commit "bbabe09bddf74bd699f8ad2224fdd6e2eefbd35e") (revision "0")) + (package + (name "harec") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~sircmpwn/harec") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0sa8rjj5w01n55svql8drv761ks6i1bl9q4gj1yzr31dixaf6xvr")))) + (build-system gnu-build-system) + (arguments + (list #:configure-flags #~(list (string-append "--prefix=" #$output)) + #:phases #~(modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs + (configure-flags '()) #:allow-other-keys) + (setenv "AR" #$(ar-for-target)) + (setenv "AS" #$(as-for-target)) + (setenv "CC" #$(cc-for-target)) + (setenv "LD" #$(ld-for-target)) + (setenv "QBE" (string-append #$qbe "/bin/qbe")) + (apply invoke "./configure" configure-flags)))))) + (inputs (list qbe)) + (home-page "https://harelang.org") + (synopsis "Hare bootstrap compiler in C") + (description "This package provides @code{harec}, the Hare language's +bootstrap written in C. Currently, the self-hosting @code{harec} rewrite is +incomplete, so this is used as the default compiler in the build driver.") + (license license:gpl3))))