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

(use-srfis, top-repl): Use process-use-modules, to

correctly handle duplicates between the core and other modules, in
particular srfi-17 which should replace `car' etc (but didn't).
This commit is contained in:
Kevin Ryde 2006-12-12 21:41:20 +00:00
parent 6ee5aca35c
commit a59432a2ed

View file

@ -3313,13 +3313,11 @@
;; numbers, which are the numbers of the SRFIs to be loaded on startup.
;;
(define (use-srfis srfis)
(let lp ((s srfis))
(if (pair? s)
(let* ((srfi (string->symbol
(string-append "srfi-" (number->string (car s)))))
(mod-i (resolve-interface (list 'srfi srfi))))
(module-use! (current-module) mod-i)
(lp (cdr s))))))
(process-use-modules
(map (lambda (num)
(list (list 'srfi (string->symbol
(string-append "srfi-" (number->string num))))))
srfis)))
@ -3387,19 +3385,23 @@
;; Use some convenient modules (in reverse order)
(if (provided? 'regex)
(module-use! guile-user-module (resolve-interface '(ice-9 regex))))
(if (provided? 'threads)
(module-use! guile-user-module (resolve-interface '(ice-9 threads))))
(set-current-module guile-user-module)
(process-use-modules
(append
'(((ice-9 r5rs))
((ice-9 session))
((ice-9 debug)))
(if (provided? 'regex)
'(((ice-9 regex)))
'())
(if (provided? 'threads)
'(((ice-9 threads)))
'())))
;; load debugger on demand
(module-use! guile-user-module
(make-autoload-interface guile-user-module
'(ice-9 debugger) '(debug)))
(module-use! guile-user-module (resolve-interface '(ice-9 session)))
(module-use! guile-user-module (resolve-interface '(ice-9 debug)))
(module-use! guile-user-module (resolve-interface '(ice-9 r5rs)))
(set-current-module guile-user-module)
(let ((old-handlers #f)
(signals (if (provided? 'posix)