1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-10 14:00:21 +02:00

* 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.
This commit is contained in:
Mikael Djurfeldt 2003-03-12 10:03:25 +00:00
parent 509a787a4c
commit 70a459e3f8
3 changed files with 28 additions and 8 deletions

View file

@ -1,3 +1,16 @@
2003-03-12 Mikael Djurfeldt <djurfeldt@nada.kth.se>
* 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 <mdj@kvast.blakulla.net>
* slib.scm (identity): Removed. (Provided by core.)

View file

@ -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)

View file

@ -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