1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-10 22:10:21 +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
(lambda (fn k)
(let ((p (open-input-file fn)))
(let f ((x (read p)))
(let f ((x (read p))
(result '()))
(if (eof-object? x)
(begin (close-input-port p) '())
(cons (datum->syntax k x)
(f (read p))))))))
(begin
(close-input-port p)
(reverse result))
(f (read p)
(cons (datum->syntax k x) result)))))))
(syntax-case x ()
((k filename)
(let ((fn (syntax->datum #'filename)))