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

* boot-9.scm (scm-style-repl): Print multiple values on successive

lines.
* boot-9.scm (process-define-module): Bugfix: Make sure that
exports are done *after* all used interfaces has been added.
This commit is contained in:
Mikael Djurfeldt 2000-08-11 00:44:49 +00:00
parent be33b1a39c
commit 44484f52b3

View file

@ -497,6 +497,11 @@
(make-record-type "values" (make-record-type "values"
'(values))) '(values)))
;;; These two are needed internally in boot-9.scm.
;;; They shouldn't be visible outside this module.
(define values? (record-predicate *values-rtd*))
(define get-values (record-accessor *values-rtd* 'values))
(define values (define values
(let ((make-values (record-constructor *values-rtd*))) (let ((make-values (record-constructor *values-rtd*)))
(lambda x (lambda x
@ -506,13 +511,11 @@
(make-values x))))) (make-values x)))))
(define call-with-values (define call-with-values
(let ((access-values (record-accessor *values-rtd* 'values)) (lambda (producer consumer)
(values-predicate? (record-predicate *values-rtd*))) (let ((result (producer)))
(lambda (producer consumer) (if (values? result)
(let ((result (producer))) (apply consumer (get-values result))
(if (values-predicate? result) (consumer result)))))
(apply consumer (access-values result))
(consumer result))))))
(provide 'values) (provide 'values)
@ -1780,11 +1783,14 @@
(kws (cdr args))) (kws (cdr args)))
(beautify-user-module! module) (beautify-user-module! module)
(let loop ((kws kws) (let loop ((kws kws)
(reversed-interfaces '())) (reversed-interfaces '())
(exports '()))
(if (null? kws) (if (null? kws)
(for-each (lambda (interface) (begin
(module-use! module interface)) (for-each (lambda (interface)
reversed-interfaces) (module-use! module interface))
reversed-interfaces)
(module-export! module exports))
(let ((keyword (cond ((keyword? (car kws)) (let ((keyword (cond ((keyword? (car kws))
(keyword->symbol (car kws))) (keyword->symbol (car kws)))
((and (symbol? (car kws)) ((and (symbol? (car kws))
@ -1814,7 +1820,8 @@
(module-ref interface (car (last-pair used-name)) (module-ref interface (car (last-pair used-name))
#f))) #f)))
(loop (cddr kws) (loop (cddr kws)
(cons interface reversed-interfaces))))) (cons interface reversed-interfaces)
exports))))
((autoload) ((autoload)
(if (not (and (pair? (cdr kws)) (pair? (cddr kws)))) (if (not (and (pair? (cdr kws)) (pair? (cddr kws))))
(error "unrecognized defmodule argument" kws)) (error "unrecognized defmodule argument" kws))
@ -1822,18 +1829,20 @@
(cons (make-autoload-interface module (cons (make-autoload-interface module
(cadr kws) (cadr kws)
(caddr kws)) (caddr kws))
reversed-interfaces))) reversed-interfaces)
exports))
((no-backtrace) ((no-backtrace)
(set-system-module! module #t) (set-system-module! module #t)
(loop (cdr kws) reversed-interfaces)) (loop (cdr kws) reversed-interfaces exports))
((pure) ((pure)
(purify-module! module) (purify-module! module)
(loop (cdr kws) reversed-interfaces)) (loop (cdr kws) reversed-interfaces exports))
((export) ((export)
(if (not (pair? (cdr kws))) (if (not (pair? (cdr kws)))
(error "unrecognized defmodule argument" kws)) (error "unrecognized defmodule argument" kws))
(module-export! module (cadr kws)) (loop (cddr kws)
(loop (cddr kws) reversed-interfaces)) reversed-interfaces
(append (cadr kws) exports)))
(else (else
(error "unrecognized defmodule argument" kws)))))) (error "unrecognized defmodule argument" kws))))))
module)) module))
@ -2546,17 +2555,21 @@
(repl-report-start-timing) (repl-report-start-timing)
(start-stack 'repl-stack (eval sourc)))) (start-stack 'repl-stack (eval sourc))))
(-print (lambda (result) (-print (let ((maybe-print (lambda (result)
(if (not scm-repl-silent) (if (or scm-repl-print-unspecified
(begin (not (unspecified? result)))
(if (or scm-repl-print-unspecified (begin
(not (unspecified? result))) (write result)
(begin (newline))))))
(write result) (lambda (result)
(newline))) (if (not scm-repl-silent)
(if scm-repl-verbose (begin
(repl-report)) (if (values? result)
(force-output))))) (for-each maybe-print (get-values result))
(maybe-print result))
(if scm-repl-verbose
(repl-report))
(force-output))))))
(-quit (lambda (args) (-quit (lambda (args)
(if scm-repl-verbose (if scm-repl-verbose