Hi, This is roughly a followup to: http://thread.gmane.org/gmane.lisp.guile.devel/6549/focus=6613 The attached patch adds an `scm_std_read ()' call, which is to read(2) what `scm_std_select ()' is to select(2). It changes `fport_fill_input' to use it, which removes the call to select(2) that precedes each read(2) call (!). Using the same "I/O benchmark" as in my previous message, and compared to Guile with the inlined `scm_getc' patch, it yields an additional 5% speedup when reading by 4096-octet blocks, and a negligible improvement when using smaller buffer sizes. OK to apply? Thanks, Ludovic.