specialized-io is a collection of unsafe, fast procedures for I/O. USAGE ----- specialized-io is actually very simple. specialized-io-error: this procedure will be called when anything goes wrong. By default, it's boud to Chicken's "error" procedure, but you can bind it to something else: (set! specialized-io-error my-error-procedure) (read-TYPE port) will read an object of type TYPE from port. (write-TYPE value port) will write value to port. NO verifications on objects or ports are performed! TYPE can be: fixnum flonum complex one-char ("one-char" was used so as to avoid procedure names conflicting with R5RS; one-char is just a character.) Example: (let ((v (read-flonum my-input-port))) (write-flonum (fp* 2.5 v) my-output-port)) Note that you can use fp* with a value returned from read-flonum (it's guaranteed to be a flonum). CAVEATS ------- specialized-io is unsafe in order to be fast, and trying to write to something that is not a port will crash the program. TESTS ----- There is a "tests/" directory. Load the file "run.scm" there. BENCHMARKS ---------- There is a "benchmarks/" directory. Load the file "run.scm" there.