From 70a459e3f81b8862438e2aafb2af3012b7215854 Mon Sep 17 00:00:00 2001 From: Mikael Djurfeldt Date: Wed, 12 Mar 2003 10:03:25 +0000 Subject: [PATCH] * slib.scm (*features*): Set the core variable instead of defining a local version. (provide, provided?): Mark as replacements. * boot-9.scm (beautify-user-module!): Don't install the duplicates handler here. (default-duplicate-binding-handler): Renamed from default-module-duplicates-handler; Removed converter. (process-duplicates): Lookup default duplicates handler dynamically. (default-duplicate-binding-procedures): New parameter. --- ice-9/ChangeLog | 13 +++++++++++++ ice-9/boot-9.scm | 20 +++++++++++++------- ice-9/slib.scm | 3 ++- 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/ice-9/ChangeLog b/ice-9/ChangeLog index b9dfe1488..ffebfa332 100644 --- a/ice-9/ChangeLog +++ b/ice-9/ChangeLog @@ -1,3 +1,16 @@ +2003-03-12 Mikael Djurfeldt + + * slib.scm (*features*): Set the core variable instead of defining + a local version. + (provide, provided?): Mark as replacements. + + * boot-9.scm (beautify-user-module!): Don't install the duplicates + handler here. + (default-duplicate-binding-handler): Renamed from + default-module-duplicates-handler; Removed converter. + (process-duplicates): Lookup default duplicates handler dynamically. + (default-duplicate-binding-procedures): New parameter. + 2003-03-12 Mikael Djurfeldt * slib.scm (identity): Removed. (Provided by core.) diff --git a/ice-9/boot-9.scm b/ice-9/boot-9.scm index 50095a4ee..666c4caf9 100644 --- a/ice-9/boot-9.scm +++ b/ice-9/boot-9.scm @@ -1457,7 +1457,8 @@ ;; (define (module-use-interfaces! module interfaces) (let* ((duplicates-info (module-duplicates-info module)) - (duplicates-handlers? (car duplicates-info)) + (duplicates-handlers? (or (car duplicates-info) + (default-duplicate-binding-procedures))) (uses (module-uses module))) ;; remove duplicates-interface (set! uses (delq! (cdr duplicates-info) uses)) @@ -1609,9 +1610,7 @@ (set-module-name! interface (module-name module)) (set-module-kind! interface 'interface) (set-module-public-interface! module interface) - (set-module-duplicates-info! - module - (cons (default-module-duplicates-handler) #f))))) + (set-module-duplicates-info! module (cons #f #f))))) (if (and (not (memq the-scm-module (module-uses module))) (not (eq? module the-root-module))) (set-module-uses! module @@ -2873,9 +2872,15 @@ handler-names (list handler-names))))) -(define default-module-duplicates-handler +(define default-duplicate-binding-procedures + (make-mutable-parameter #f)) + +(define default-duplicate-binding-handler (make-mutable-parameter '(replace warn-override-core check) - lookup-duplicates-handlers)) + (lambda (handler-names) + (default-duplicate-binding-procedures + (lookup-duplicates-handlers handler-names)) + handler-names))) (define (make-duplicates-interface) (let ((m (make-module))) @@ -2885,7 +2890,8 @@ (define (process-duplicates module interface) (let* ((duplicates-info (module-duplicates-info module)) - (duplicates-handlers (car duplicates-info)) + (duplicates-handlers (or (car duplicates-info) + (default-duplicate-binding-procedures))) (duplicates-interface (cdr duplicates-info))) (module-for-each (lambda (name var) diff --git a/ice-9/slib.scm b/ice-9/slib.scm index fe936a9fb..f028f80dc 100644 --- a/ice-9/slib.scm +++ b/ice-9/slib.scm @@ -54,6 +54,7 @@ logical:bit-extract logical:integer-expt logical:ipow-by-squaring slib:eval-load slib:tab slib:form-feed difftime offset-time software-type) + :replace (provide provided?) :no-backtrace) @@ -98,7 +99,7 @@ ;;; *FEATURES* should be set to a list of symbols describing features ;;; of this implementation. Suggestions for features are: -(define *features* +(set! *features* (append '( source ;can load scheme source files -- 2.20.1