Subject: [bug#70065] [PATCH 2/6] gnu: racket: Update to 8.12.

From: Philip McGrath <[email-masked]>
Date: Sat, 30 Mar 2024 18:10:24 -0400

Hi Skyler,

On 3/30/24 10:35, Skyler Ferris wrote:
> On 3/28/24 22:18, Philip McGrath wrote:
>> +(define chez-configure
>> +  ;; The custom Chez 'configure' script doesn't allow unrecognized flags, such
>> +  ;; as those automatically added by `gnu-build-system`. This replacement
>> +  ;; phase uses only the explicitly provided `#:configure-flags`.
>> +  #~(lambda* (#:key inputs (configure-flags '()) out-of-source?
>> +              #:allow-other-keys)
>> +      (let* ((abs-srcdir (getcwd))
>> +             (srcdir (if out-of-source?
>> +                         (string-append "../" (basename abs-srcdir))
>> +                         ".")))
>> +        (format #t "source directory: ~s (relative from build: ~s)~%"
>> +                abs-srcdir srcdir)
>> +        (when out-of-source?
>> +            (begin
>> +              (mkdir "../build")
>> +              (chdir "../build")))
>> +        (format #t "build directory: ~s~%" (getcwd))
>> +        (format #t "configure flags: ~s~%" configure-flags)
>> +        (apply invoke
>> +               (string-append srcdir "/configure")
>> +               configure-flags))))
>> +
> Are the format statements supposed to be here or are they left over from
> debugging?

Yes, the format statements are supposed to be there: (@ (guix build 
gnu-build-system) configure) prints the same messages. The code is 
unchanged from the chez-scheme configure phase, just factored out 
because we will also need it for cross-compiling 
chez-scheme-for-racket-bootstrap-bootfiles (because there's now a 
supported way to do that, and the experimental script we'd been using 
had bit-rotted) and for chez-scheme-bootstrap-bootfiles (native and 
cross) once we start bootstrapping it.

>> +          ;; Building the documentation requires stex and a running scheme.
>> +          ;; TODO: improve cross support upstream.
> I believe this comment should be associated with the build-docs phase,
> not the install-docs phase, correct?
> 

I had intended to put it here, but your comment prompted me to rethink 
it. For context, the build-docs phase is new in this commit: previously, 
I relied on the fact that the install-docs target depends on build-docs. 
I now think I should move the first line of the comment to build-docs 
and add a comment to install-docs pointing that out, because its part of 
the issue with cross-compilation. (Currently, the build scripts try to 
use the cross-compiled scheme to build the docs, which obviously doesn't 
work. The Right Thing would be to build the docs using the native scheme 
while using the sources from the cross-built scheme.)

Thanks,
Philip