bartlett@DECWRL.DEC.COM (01/14/89)
I got a number of questions from people who saw my announcement (thank you for your interest) which suggests that I should supply a little more information about the Scheme->C compiler. Licensing mechanics. License and software distribution is via paper mail so I will need your postal address. I'm going to have to defer replying to requests from outside U.S.A. and Canada for a couple of weeks until we figure out U.S. export restrictions. There is a distribution fee of $100 (U.S.) for the software. Software is distributed on a tar tape in source form. Like any other research software, it's on an "as is" basis. If your organization is unwilling to sign the license and you still want the software, we'll have to discuss it. Computer systems licensed. Currently the system runs on top of ULTRIX. It has also been run on 4.2 BSD UNIX. A VMS version has not been made, but it can probably run under Eunice. While the software was designed to be portable and has been ported to three different processors, the terms of the license restrict the software to Digital VAX and DECstation 3100 computers. Is it really Scheme? The system supports the essentials of Revised**3 and many of the optionals. Extensions include "expansion passing style" macros and a foreign function call capability. The system does provide call-with-current-continuation. Numbers are represented internally as 29-bit integers, or 64-bit floating point values. Sorry, no X window support. The system is oriented towards block compilation to generate code which can run in standalone programs which may include code from other languages. While debugging is typically done using the interpreter, it will never be considered a "Scheme environment". The one "wart" in the system is that the compiler cannot compile all tail calls correctly. This follows from some of the design tradeoffs made when mapping Scheme to C. A forthcoming technical report discusses this in some detail, please defer flames until then. Greatest strength --> Scheme->C is not a <-- Greatest weakness Scheme environment. Misc. Technical details The compiler is written in Scheme. Most of the runtime system (including an interpreter) is written in Scheme. The garbage collector and a few other things are written in C. There is a small (< 100) amount of assembly code. A technical report (I'll post a msg on the Scheme list when it's available) will provide details about the design. It will include some sample code, benchmark data etc. Keep on schemeing, jfb