views:

1988

answers:

6

With the thousands of implementations of LISP and Scheme available I'm having a very hard time finding just the right one to use for Windows development. I learned these languages in school and found them to be very elegant, however, I don't seem to be able to find an implementation that would be suitable for developing code other than in an academic setting.

What is a Scheme or LISP implementation with the following requirements?

Compiles to native code, rather than compiling to C.

Supports multithreading on multiple processors (ie. multiple threads can run simultaneously).

Produces 64-bit code.

Can be used in Windows without requiring Cygwin.

Thank you.

+2  A: 

The big commercial Common Lisp implementations should meet all your criteria:

LispWorks and Allegro CL.

A fairly complete, usable and free Scheme implementation is PLT Scheme.

The free Clozure CL might also suit your needs.

rincewind
A: 

This is an excellen description how to install Lisp with Emacs and Slime on Windows XP:

http://www.pchristensen.com/blog/articles/installing-sbcl-emacs-and-slime-on-windows-xp/

+4  A: 

I'm very fond of Clozure. MIT Scheme will run under Windows, and it's a good choice for beginners because it's going to match The Book best.

Charlie Martin
+11  A: 

Corman Lisp could be interesting, but does not support 64bit code (AFAIK).

Clozure CL is just being ported to Windows, so it is probably not very mature and lacks a few things.

LispWorks and Allegro CL are great, though they don't support multiple concurrent Lisp threads. Currently LispWorks 6 is under development, which will support multiple concurrent Lisp threads. Note though, that for example LispWorks currently can run a single Lisp thread at any one time, but multiple foreign threads.

Dan Weinreb has a survey of Common Lisp implementations.

Rainer Joswig
+1  A: 

Seems like ECL is missing. It is really nice CL implementation that worke on Windows, Linux and Mac, supports native threads on all platforms and allows creating binary files.

Dev er dev
+2  A: 

Clozure CL is being ported for its 1.3 release onto 32 and 64 bit windows.

That 1.3 release is at RC1 as I type this.

There is a supplied example that uses native Win32 API calls via the FFI to display a traditional Win32 window, complete with message loop etc.

The Hunchentoot webserver works on the current builds.

It supports Unicode, so interfacing with the 'W' Win32 APis should be straightforward.

It compiles to native code, supports native threads and does not require cygwin.

John McAleely
Unfortunatelly, it requires SSE2 without fallback, so it doesn't work on all hardware.
Dev er dev