Thursday, February 07, 2008

The Challenge of Scheme on Windows

Free distributions of Lisp and Scheme are typically developed on Linux and work fully under Microsoft Windows only if Cygwin or Msys-mingw are installed to support them. This situation is probably fine for someone who already uses these shells for other free software packages. But not so great if one needs to install one of them for the sake of trying a Scheme or Lisp executable.

The authors and maintainers of Cygwin and Mingw deserve appreciation for providing their software. Nevertheless, this author has been frustrated while trying to use them consistently on different Windows computers. Part of the problem is that Windows is not a friendly environment for Unix-type tool chains.

Gambit-C Scheme offers best performance on Windows when compiled with GCC which in turn need Cygwin or Mingw. This author provides an Openwatcom Makefile for those Scheme enthusiasts who prefer not to use a Unix shell under Windows. Less performance but more convenient workflow.

You first need to obtain a prebuilt version of Gambit. Next, copy wmaker.scm which produces the Makefile when you type "gsi wmaker". Follow the directions on the wiki page for compiling Gambit from source.

Wednesday, January 09, 2008

Gambit-C Reviewed In Linux User

Martin Howse says "Gambit-C pools the low-level power of C with the concise syntax and radical developement model of elegant Scheme". See Linux User and Developer Issue 61

Wednesday, January 02, 2008

Scheme Recursion and Closures

Programmers of static languages such as Java and C++ may not be familiar with the topics of recursion and closures which are very important to Lispy languages. The online book An Introduction to Scheme Implementation is very helpful since it explains the underlying mechanisms in plain English. Other important topics include continuations and macros. These must wait for another day.

Saturday, September 22, 2007

Peter Seibel has written the excellent book Practical Common Lisp which is also available online..

Common Lisp tutorial