1  Introduction

The Scheme community doesn't have a simple way to write portable code. Some of the most widely used libraries are not those native to individual implementations, but those written by third parties, such as SSAX, pregexp and htmlprag. Converting these manually is a tedious waste of time, and a maintenance problem when the modified versions become out of sync. Converting these with a preprocessor is still error-prone, introduces an extra step in the development cycle, and separates the source from the code the Scheme works with, breaking source references in error messages. We need to be able write portable Scheme, and with our syntax and macros Scheme is the one language where this should not be a problem.

Common-Scheme provides this. Common-Scheme is comprised of three things:

The name Common-Scheme is, of course, a play on Common-Lisp[Pit96]. This is meant to be tongue-in-cheek. We do not envy or aspire to Common-Lisp, because its modules lack the simplicity we desire, and Common-Lisp itself lacks many of the modules needed in the modern world such as networking and regular expressions.