~ chicken-core (master) 1320ee4e5715c7760beae4a08ffb0a5415d6a56d


commit 1320ee4e5715c7760beae4a08ffb0a5415d6a56d
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Sat Sep 5 23:11:50 2026 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Sat Sep 5 23:11:50 2026 +0200

    call proper port-class method

diff --git a/library.scm b/library.scm
index a08477ed..52b2c7bd 100644
--- a/library.scm
+++ b/library.scm
@@ -4620,12 +4620,17 @@ EOF
 (set! scheme#char-ready?
   (lambda (#!optional (port ##sys#standard-input))
     (##sys#check-input-port port #t 'char-ready?)
-    ((##sys#slot (##sys#slot port 2) 6) port) )) ; char-ready?
+    (let ((class (##sys#slot port 2)))
+      ;; check size - for backwards compatibility we still allow missing method
+      ((if (fx> (##sys#size class) 9)
+           (##sys#slot class 10)        ; char-ready?
+           (##sys#slot class 6))        ; u8-ready?
+       port))))
     
 (set! scheme#u8-ready? 
   (lambda (#!optional (port ##sys#standard-input))
     (##sys#check-input-port port #t 'u8-ready?)
-    ((##sys#slot (##sys#slot port 2) 6) port) )) ; char-ready?
+    ((##sys#slot (##sys#slot port 2) 6) port) )) ; u8-ready?
 
 (set! scheme#read-char
   (lambda (#!optional (port ##sys#standard-input))
Trap