Subject: [bug#70065] [PATCH 4/6] gnu: chez-scheme: Update to 10.0.0.

From: Philip McGrath <[email-masked]>
Date: Sun, 31 Mar 2024 16:17:08 -0400

Hi Skyler,

On 3/31/24 11:28, Skyler Ferris wrote:
> Hi again! I stepped away from my desk to do something else and as often
> happens the answer came to me.

Thanks for this analysis!

> 
> The loko.scm file was not recompiled so it searched chez.scm for a
> variable named chez-scheme-for-system, which is now a syntax
> transformer. But compiled files have already completed the expansion
> phase, so this means that a syntax transformer is invalid. This will not
> cause a problem for `guix pull` because guix rebuilds itself from
> scratch when it gets updated.
> 

On 3/31/24 10:35, Skyler Ferris wrote:
 > I haven't worked with define-deprecated before. It's a macro, and I know
 > that the guile compiler misses recompiling macro dependencies sometimes,
 > so maybe it was a problem on my end with having mismatching build
 > artifacts.

Very interesting! I hadn't realized that problem with dependency 
tracking existed: it might explain some issues I've struggled to 
reproduce in the past. It's also given me several surprises about 
Guile's implementation of phases: for one thing, apparently 
(define-syntax x 42) expands to (define x (make-syntax-transformer 'x 
'macro 42)). I wouldn't have expected a macro to create a value that 
would exist at runtime.

Philip