~ 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