Attached is a patch to address #1492.

felix
From 37b8de2f956c36a311c5162dbdbc8af631a9bc59 Mon Sep 17 00:00:00 2001
From: felix <fe...@call-with-current-continuation.org>
Date: Wed, 8 Nov 2023 14:52:15 +0100
Subject: [PATCH] Warn if processing egg property in wrong context (#1492)

---
 egg-compile.scm | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/egg-compile.scm b/egg-compile.scm
index c9a5565e..dd7c429e 100644
--- a/egg-compile.scm
+++ b/egg-compile.scm
@@ -379,7 +379,7 @@
                             link-objects: lobjs
                             eggfile: eggfile)
                      prgs)))))
-        (else (compile-common info compile-component))))
+        (else (compile-common info compile-component 'component))))
     (define (compile-extension/program info)
       (case (car info)
         ((linkage) 
@@ -416,8 +416,8 @@
          (set! cdeps (append cdeps (map ->dep (cdr info)))))
         ((source-dependencies)
          (set! sdeps (append sdeps (map ->dep (cdr info)))))
-        (else (compile-common info compile-extension/program))))
-    (define (compile-common info walk)
+        (else (compile-common info compile-extension/program 
'extension/program))))
+    (define (compile-common info walk context)
       (case (car info)
         ((target)
          (when (eq? mode 'target)
@@ -428,14 +428,16 @@
         ((error)
          (apply error (cdr info)))
         ((cond-expand)
-         (compile-cond-expand info walk))))
+         (compile-cond-expand info walk))
+        (else
+          (fprintf (current-error-port) "\nWarning (~a): property `~a' invalid 
or in wrong context (~a)\n\n" eggfile (car info) context))))
     (define (compile-data/include info)
       (case (car info)
         ((destination)
          (set! dest (->string (arg info 1 name?))))
         ((files) 
          (set! files (append files (map ->string (cdr info)))))
-        (else (compile-common info compile-data/include))))
+        (else (compile-common info compile-data/include 'data/include))))
     (define (compile-options info)
       (case (car info)
         ((csc-options) (set! opts (append opts (cdr info))))
@@ -457,10 +459,13 @@
           (error "invalid dependency" x)))
     (define (compile info)
       (case (car info)
+        ((synopsis dependencies test-dependencies category version author 
maintainer
+                   license build-dependencies foreign-dependencies platform
+                   distribution-files) #f)
         ((components) (for-each compile-component (cdr info)))
         ((component-options)
          (for-each compile-options (cdr info)))
-        (else (compile-common info compile))))
+        (else (compile-common info compile 'toplevel))))
     (define (arg info n #!optional (pred (constantly #t)))
       (when (< (length info) n)
         (error "missing argument" info n))
-- 
2.40.0

Reply via email to