[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
MacScheme+Toolsmith Version 1.0
Apology: While this amounts to a commercial announcement, I believe its
technical content should be of great interest to the Scheme and Lisp
MacScheme+Toolsmith Version 1.0 is being introduced this week at the
MacWorld Expo in Boston. One feature of this product is particularly
significant: The Application Builder is a selective linker that makes
it easy to construct standard, double-clickable Macintosh applications
that are practically indistinguishable from applications written in
mainstream programming languages such as Pascal and C. While applications
written in Scheme tend to be larger than if they were written in Pascal
or C, they are not so large as to be outrageous. The smallest complete
applications occupy less than 100K bytes on disk.
By a selective linker I mean that the Application Builder automatically
removes unused code and data from the Scheme library as it builds the
application. Selective linking is made possible by the clean design of
Scheme, which maintains a rigorous distinction between program and data.
It is impossible to write a reliable and effective selective linker for
other dialects of Lisp, because they do not maintain this distinction.
The Application Builder does permit the use of EVAL and LOAD in an
application, but their use defeats selective linking in most cases.
MacScheme+Toolsmith Version 1.0 also includes a native code compiler
that is almost decent. That is, it is several times faster than previous
Lisp compilers for the Macintosh, and is able to bear comparison with the
best microcomputer Lisp compilers available.
Other notable features of MacScheme+Toolsmith include support for the
Macintosh Toolbox traps, a programmable interrupt system, and multitasking.
As an author of this system, I am quite proud of it. Since it was made
possible by the high quality of the Scheme language itself, it seems only
fair that the Scheme community at large should be able to share my joy.
Peace, William Clinger