Subject: Re: [bug#69552] [PATCH vREVISION 1/2] gnu: Add cyclone-bootstrap.

From: Christopher Baines <[email-masked]>
Date: Wed, 13 Mar 2024 12:12:42 +0000

tags 69552 + moreinfo
user guix
usertag 69552 - reviewed-looks-good
quit

TakeV via Guix-patches via <[email-masked]> writes:

> * gnu/packages/scheme.scm (cyclone-bootstrap): New variable.
>
> Change-Id: I85d37ebc48882d4b830ef34851ae6d37ecf2e6e5
> ---
>  gnu/packages/scheme.scm | 41 +++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 41 insertions(+)
>
> diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
> index ad06d7db06..e0151e954c 100644
> --- a/gnu/packages/scheme.scm
> +++ b/gnu/packages/scheme.scm
> @@ -23,6 +23,7 @@
>  ;;; Copyright © 2023 Andrew Whatson <[email-masked]>
>  ;;; Copyright © 2023 Juliana Sims <[email-masked]>
>  ;;; Copyright © 2023 Maxim Cournoyer <[email-masked]>
> +;;; Copyright © 2024 TakeV <[email-masked]>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -59,6 +60,7 @@ (define-module (gnu packages scheme)
>    #:use-module (gnu packages base)
>    #:use-module (gnu packages bash)
>    #:use-module (gnu packages bdw-gc)
> +  #:use-module (gnu packages c)
>    #:use-module (gnu packages compression)
>    #:use-module (gnu packages databases)
>    #:use-module (gnu packages emacs)
> @@ -1276,3 +1278,42 @@ (define-public stklos
>  Machine.  STklos can also be compiled as a library and embedded in an
>  application.")
>      (license gpl2+)))
> +
> +;; Cyclone is self-hosted. To build it, we require the bootstrap compiler.
> +(define cyclone-bootstrap
> +  (package
> +    (name "cyclone-bootstrap")
> +    (version "0.36.0")
> +    ;; TODO Use system's libtommath after
> +    ;; https://github.com/justinethier/cyclone/issues/458 is resolved
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://github.com/justinethier/cyclone-bootstrap.git")
> +             (commit (string-append "v" version))))
> +       (file-name (git-file-name name version))
> +       (sha256
> +        (base32 "0fv0mnrn5shbx77383f4mbkvc4i9yyj1bjm3dfyhipnaqapbhqpi"))))

I've had a look at this and I'm concerned about the bootstrapping
approach. If you look at cyclone.c, I'm pretty sure that's not the
preferred form for editing and it doesn't look like that from the
commits.

Maybe there are things already in Guix that are similarly bad, but I
don't think that alone is sufficient to include more.