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

Make `include' tail-recursive.

* module/ice-9/psyntax.scm (include)[read-file]: Make tail-recursive.

* module/ice-9/psyntax-pp.scm: Regenerate.
This commit is contained in:
Ludovic Courtès 2010-03-19 15:42:20 +01:00
parent 165a8643ae
commit df0f529585
2 changed files with 7771 additions and 7781 deletions

File diff suppressed because it is too large Load diff

View file

@ -2749,11 +2749,14 @@
(define read-file (define read-file
(lambda (fn k) (lambda (fn k)
(let ((p (open-input-file fn))) (let ((p (open-input-file fn)))
(let f ((x (read p))) (let f ((x (read p))
(result '()))
(if (eof-object? x) (if (eof-object? x)
(begin (close-input-port p) '()) (begin
(cons (datum->syntax k x) (close-input-port p)
(f (read p)))))))) (reverse result))
(f (read p)
(cons (datum->syntax k x) result)))))))
(syntax-case x () (syntax-case x ()
((k filename) ((k filename)
(let ((fn (syntax->datum #'filename))) (let ((fn (syntax->datum #'filename)))