Wraith Scheme (64-bit version):
Wraith Scheme is part of my family of implementations of the Scheme programming language for the Apple Macintosh™. (Scheme is a dialect of the Lisp programming language.) In addition, there is a 64-bit version that runs only on 64-bit Intel Macintoshes using MacOS 10.6 (“Snow Leopard”) or later, and a 32-bit version that runs on both PowerPC Macintoshes and on all Intel Macintoshes (both 32-bit and 64-bit), using MacOS 10.4 (“Tiger”) or later. The 64-bit version of Wraith Scheme is available open source under the GNU General Public License, but the 32-bit version is not.
Wraith Scheme 64-bit – Detailed Documentation:
Just to have it all in one place on the page, here are links to on-line documentation for the 64-bit version of Wraith Scheme, that you can read in your web browser. These files are also available from within Wraith Scheme itself, via its “Help” menu. (The files so provided are part of the application: You will not need Internet connectivity to read them when you are using Wraith Scheme.) You can also read them by downloading the source distribution and finding them inside it. The documentation files for the 64-bit version of Wraith Scheme are different from those for the 32-bit version.
Wraith Scheme 64-bit – Overview:
To run Wraith Scheme 2.29, you need a Macintosh running at least macOS 11.6 (Big Sur). Wraith Scheme 2.28 will probably also run on versions of macOS as old as 10.14 (”Mojave”), but I do not have much ability to test earlier versions of software, so I cannot be sure it will run.
Wraith Scheme 2.29 is an “R5” Scheme, with “R5” referring to the Revised5 Report on the Algorithmic Language Scheme (1998), edited by Richard Kelsey, William Clinger and Jonathan Rees. That is, this version of Wraith Scheme contains all of the required features of R5 Scheme, plus many of the optional ones, plus some enhancements. The most noticeable enhancement, for parallel processing, is described in more detail a few paragraphs down.
The present release comprises the Wraith Scheme 2.29 application, a README file, and the executable and associated world file of a derivative program, Weasel Scheme, which runs on a Raspberry Pi 400 microcomputer. There is a great deal of documentation within the application, accessible via the help menu. Source code for the application is also available, in a separate download, described here.
The reduced-size screen shot above shows a recent version of Wraith Scheme shortly after opening. At the top of the pale yellow main window is the “banner” that appears when Wraith Scheme starts running. The extra panel — Apple calls it a “drawer” — at the side of the main window has buttons for the most important Wraith Scheme commands. The drawer at the bottom is an instrument panel that shows what Wraith Scheme is doing and how some of its internal parameters are set. The square colored areas at the right side of this panel emulate the flashing status lights that were common on early computers.
Wraith Scheme has major enhancements for parallel processing, by which I mean many separate Wraith Scheme processes running at the same time, sharing Scheme memory. One privileged process — the “MomCat” — supervises a handful of less privileged processes — “kittens”. There are low-level primitives for interprocess communication and for locking shared data structures. Below is a reduced-size screen shot showing several parallel Wraith Scheme processes, each with its own separate and differently-colored window and with its own separate and differently-colored icon.
For a link to the portion of the web-browsable Wraith Scheme Help file that discusses parallel processing, click this link: Wraith Scheme parallel processing.
Wraith Scheme has a history: In the late 1980s, I developed an implementation of Scheme that ran on early versions of the Apple Macintosh. It was called “Pixie Scheme”, was available as shareware, and actually saw modest use here and there. An Internet search for it will turn up a few links. I shelved the Pixie Scheme project in 1991, but in 2006 and 2007 I dusted it off and got an upgraded version to run in a Unix shell (a window of the “Terminal” application) on my new Macbook. Then I built a full Macintosh application around the heart of the code for the Unix-shell implementation. The changes seemed big enough to warrant a new name: Wraith Scheme.
Wraith Scheme 1.00 was pretty much a straight port of Pixie Scheme, and was not quite an “R4” Scheme. Wraith Scheme 1.10 was R4, 1.20 was R5, and 1.30 added support for parallel processing. At version 2.00, Wraith Scheme became a 64-bit application. Version 2.10 brought a generational garbage collector, a class system, and a foreign-function interface. Version 2.20 brought substantial internal changes and complex numbers. Interim versions were bug-fixers or modest enhancements, or both.
Wraith and Pixie were much-loved pet cats, now deceased. The icons for these two programs are stylized representations of what they looked like.
I wrote Pixie Scheme and Wraith Scheme mainly because I wanted a Scheme implementation whose workings I knew well enough so that I could go in and mess with it to suit myself. My motivation for wrapping these programs up as shareware releases was about equal parts the fun of addressing the technical challenges of doing so, the desire to perform a public service, and the wish to see who might find them useful or interesting.
Wraith Scheme 2.29 is the eighteenth release of Wraith Scheme as a 64-bit application; for details, see the “What’s New” section in the Wraith Scheme Help file.
Known serious bugs in Wraith Scheme 2.29: None known at present. If you should find any, by all means send me EMail.
If you have any other questions or problems, send me EMail.