From d79a1d34010b253adc59f1302a5b0dba82368df3 Mon Sep 17 00:00:00 2001 From: Taylor R Campbell Date: Thu, 10 Dec 2009 18:29:17 -0500 Subject: [PATCH] Reduce (<= a b ...) to (and (<= a b) ...) in genio column tracking. Neither SF nor LIAR currently performs that reduction, so every character written to a generic I/O port was causing a rest list to be consed up and control to go through a generic microcode primitive trampoline to do the reduction at run-time. Also use FIX:<= rather than <=, since the numbers in question are all fixnums. --- src/runtime/genio.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/runtime/genio.scm b/src/runtime/genio.scm index 7d8e3e2eb..a9dda4085 100644 --- a/src/runtime/genio.scm +++ b/src/runtime/genio.scm @@ -1031,7 +1031,8 @@ USA. ob (cond ((char=? char #\tab) (fix:+ column (fix:- 8 (fix:remainder column 8)))) - ((<= #x20 (char->integer char) #x7E) + ((and (fix:<= #x20 (char->integer char)) + (fix:<= (char->integer char) #x7E)) (fix:+ column 1)) (else #f)))))) #t))) -- 2.25.1