From: Taylor R Campbell Date: Thu, 10 Dec 2009 23:29:17 +0000 (-0500) Subject: Reduce (<= a b ...) to (and (<= a b) ...) in genio column tracking. X-Git-Tag: 20100708-Gtk~219 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=d79a1d34010b253adc59f1302a5b0dba82368df3;p=mit-scheme.git 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. --- 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)))