~ chicken-core (chicken-5) d7150ef1be9a998b507a1230529b472fd1d034d5
commit d7150ef1be9a998b507a1230529b472fd1d034d5
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Wed Nov 8 14:52:15 2023 +0100
Commit: Peter Bex <peter@more-magic.net>
CommitDate: Fri Nov 10 15:10:11 2023 +0100
Warn if processing egg property in wrong context (#1492)
Signed-off-by: Peter Bex <peter@more-magic.net>
diff --git a/NEWS b/NEWS
index f8d0f085..df812c5b 100644
--- a/NEWS
+++ b/NEWS
@@ -54,6 +54,7 @@
- chicken-install now accepts the -location command line option
(short: -l) to specify local directories where to get egg sources
from.
+ - chicken-install now gives a warning on unexpected properties (#1492).
- Syntax expander
- When passing a module as an environment to eval, correctly resolve
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))
Trap