~ chicken-core (chicken-5) a1a0ab93968ac26fb112c864398de73c2264b494


commit a1a0ab93968ac26fb112c864398de73c2264b494
Author:     Peter Bex <peter@more-magic.net>
AuthorDate: Wed Nov 18 19:28:21 2015 +0100
Commit:     Evan Hanson <evhan@foldling.org>
CommitDate: Sun Dec 20 18:12:07 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 27c3d285..9be436a4 100644
--- a/library.scm
+++ b/library.scm
@@ -3042,7 +3042,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