~ chicken-core (chicken-5) 6b33edffd9ecac963466afda388a7c49ffba0108
commit 6b33edffd9ecac963466afda388a7c49ffba0108
Author: Peter Bex <peter@more-magic.net>
AuthorDate: Wed Nov 18 19:14:16 2015 +0100
Commit: Evan Hanson <evhan@foldling.org>
CommitDate: Sun Dec 20 17:38:51 2015 +1300
Avoid CPS call in read-char to read-char/port
This should improve performance somewhat for those cases where the
procedure is called indirectly, or with zero arguments.
This fixes the remaining part of #1219.
Signed-off-by: Evan Hanson <evhan@foldling.org>
diff --git a/library.scm b/library.scm
index 1502b6c3..4ef566c0 100644
--- a/library.scm
+++ b/library.scm
@@ -2278,7 +2278,8 @@ EOF
((##sys#slot (##sys#slot port 2) 6) port) ) ; char-ready?
(define (read-char #!optional (port ##sys#standard-input))
- (##sys#read-char/port port) )
+ (##sys#check-input-port port #t 'read-char)
+ (##sys#read-char-0 port))
(define (##sys#read-char-0 p)
(let ([c (if (##sys#slot p 6)
Trap