What is Mist?

Mist is a project to implement a variant of the Smalltalk programming language. Unlike conventional Smalltalk implementations, Mist is not implemented using a virtual machine. Mist will be self supporting, written almost entirely in itself, without the typical dependency on a VM written in C. The project is open-source (MIT license).


Move to Pharo 4.0: The Mist bootstrap platform is currently Pharo 4.0.

Recent Mist talks: Martin gave talks about aspects of Mist at the ESUG conference in Annecy, France, in September 2013, and at the Smalltalks conference in Rosario, Argentina, in November. Both talks were very well received. The slides and video from the Rosario talk are now available on the talks page. Since then there have been informal talks at Camp Smalltalk events and to small groups.

“Classes in the Mist” talk: Now available on the talks page, this talk given at the STIC conference in Phoenix, June 12 presents some new design information, like the unification of traits and classes into composable classes and the result that class inheritance goes away.

“Objects in the Mist” talk video: This video, and the accompanying slides, from Argentina’s 2012 Smalltalks conference, is now available on the talks page. This is the most complete information about Mist currently available. It’s even better than reading the code, because it has a lot of information about code that hasn’t been written yet.



Mist will compile to an intermediate language called Fog. Fog compiles to x86_64 machine code. Until Mist becomes self-supporting, it is being bootstrapped through the Pharo implementation of Smalltalk.

Code status: Objects are being written (somewhat skeletally at this point) to an executable Mist image, which is written to an ELF executable which runs on x86_64 Linux. Right now, there is only a single method in the image, which is a Fog program. Currently, coding is proceeding on module loading, compiler front-end, and message sending. Once this is done, images with multiple classes and methods will be possible.

Community status: The mailing list is up and running. Documentation of the Mist language remains largely in the form of videos of talks about Mist. There is a document about Mist’s implementation design in the GitHub code repository.


The Mist project was started by Martin McClure, who is still the primary designer and coder. For other contributors, see the current list of approved committers. A project goal is to attract a wider variety of contributors as the project matures.

Mailing list: The primary area for Mist community discussion is the mailing list.

Bugs and feature requests are tracked and discussed in the issues area of the Github Mist repository, and the wiki there also has some information.


The code to be loaded into Pharo 4.0 is in Filetree format, on Github: https://github.com/martinmcclure/mist

Instructions on how to install Mist is on the wiki.

If you want to follow commits and merges, star the repository from your Github account. If you want to contribute to the project, great! See the contributors page for information on the distribution agreement,  and ask for more information on the mailing list.