News

August 8, 2004
We are fully bootstrapped! The much-anticipated release 0.3 is out, featuring a tiny VM buildable with C-toolchain and many simple optimizations, and kernel images from which work can be done. Again, many bugs were fixed and libraries enhanced. See downloads area and announcement for details.
May 1, 2004
Lee Salzman has replaced his short paper on PMD with a full thesis, to complete his graduation requirements, with many corrections, clarifications and experience reports added. Also there is a wonderful slide presentation explaining the benefits of PMD in laymen's terms. See also the recommended reading area of the wiki.
March 27, 2004
Hey, folks, we've been Slashdotted. This is not our doing, and we are not at a stage where we're offering a real tutorial or a representative release configuration. So don't believe your first impressions.
January 4, 2004
Release 0.2.1 is out, in the usual place. This is a maintenance update, consisting of many bug-fixes and polishing of the libraries, as well as new work which is not yet complete towards 0.3. See downloads area and announcement for details.
December 5, 2003
Release 0.2 is official. See the downloads area for details. Source is provided, but no binaries. This release is the last major point release for Slate under Lisp. Full details are provided in the mailing list announcement.
July 29, 2003
Release 0.1 is official. We will provide it in the downloads area initially as a source-based archive. The latest snapshots will be available separately.
July 20, 2003
The Programmer's Manual is now web-browsable.
July 16, 2003
Slate was presented at the Smalltalk Solutions 2003 conference. It was received fairly well. We are hosting a web-formatted version of the slides. A short report is available from the mailing list.
June 1, 2003
A Swiki has been set up for documentation and tutorials and anything else related to Slate.
May 28, 2003
Slate bootstrapping is in progress. Also, an Emacs editing and interaction mode is available in the distribution.

Overview

The Language

Slate is a prototype-based object-oriented programming language based on Self, CLOS, and Smalltalk. Slate syntax is intended to be as familiar as possible to a Smalltalker, rather than engaging in divergent experiments in that respect. Unlike the Smalltalk family, within Slate, methods can be assigned to a signature of objects, instead of being installed on one favored receiver. Slate has also many further expansions of the semantics which interest advanced users. For example:

Prototype-based Objects
Instance-specific methods, data, and multiple inheritance. Also, objects are their own templates.
Multiple Dispatching
Methods may be specialized for each argument, not just an "owner"; object behavior is cooperative.
Optional Type Declarations
The ability to annotate the intended type of a slot, argument, or expression, with latent typing and type-inference in the background.
Syntactic Abstractions
The ability to annotate and manipulate expression trees dynamically and abstractly with language support.
Optional Keywords
The ability to pass along any optional local bindings to a method-invocation.
Subjective Dispatch
The ability to conditionalize a method's implementation on elements of the context.

Particular attention is being paid to the design of a fuller and more useful set of libraries than even the usual Smalltalk set, for collections, streams, meta-level protocols, concurrency, and exception-handling, among others. Our prime inspirations are the libraries of Strongtalk, Common Lisp, and Dylan.

The Environment

Slate is also a "living" environment, and is intended to support the full services that one would expect from an Operating System, including a graphical interface. There are many new designs and ideas that will be implemented for the language, including a modification of the Morphic user interface to support the notions in the CLIM user interface architecture.

We plan to fully bootstrap Slate using similar optimization methods as its predecessor Self used, as well as some more recent advances. We believe, however, that a properly self-hosted implementation of these ideas will support better integration and extension, and in the end result in a much lighter-weight system.

Documentation

The Programmer's Manual

The Slate Programmer's Reference Manual is the main document of the Slate language and environment design. It is also available in Postscript or PDF format, or as an archived copy of the web version.

Other Manuals

Manuals for Mobius, the implementation of Slate, and a preview of the user interface architecture, are available alongside the programmer's manual at http://slate.tunes.org/doc/.

The Swiki

Notes, requests, and other information about Slate can be posted and maintained on our Squeak Swiki-powered bulletin board.

Tutorials and Summaries

Downloads

All official Slate release files will be posted to http://slate.tunes.org/downloads/. A current-working-set of VM sources plus images are maintained at http://slate.tunes.org/downloads/alpha/ in order to provide a common stable reference from which bleeding-edge development can proceed.

Recent Releases

VersionDateNewsDownloads (size)
0.3August 8, 2004 NEWS Just sources (1016Kb)
0.2.1January 4, 2004 NEWS Just sources (788Kb)
0.2December 5, 2003 NEWS Just sources (690Kb)
0.1July 29, 2003 NEWS Linux/x86 binaries for GLIBC 2.1 (2.2MB)
Linux/x86 binaries for GLIBC 2.3 (2.2MB)
Just sources (540Kb)

Slate major version releases can be tracked via freshmeat.net.

Latest

The latest packaged source releases are available at http://slate.tunes.org/downloads/slate-current.tar.gz. This is a semi-automatically compiled snapshot of CVS contents. It will not receive updates from CVS, and will often contain bugs, but will generally represent stable points in the bleeding-edge developments.

CVS / Development Access

Slate is currently developed and managed within a CVS repository, viewable through a web interface. A current-working-set of VM sources plus images are maintained at http://slate.tunes.org/downloads/alpha/ in order to provide a common stable reference from which bleeding-edge development can proceed. This keeps everyone up to date on bootstrap-related issues.

Anonymous checkout access to Slate's CVS repository can be made in the same manner as on the Tunes site, but setting your CVSROOT environment variable to :pserver:anonymous@cvs.tunes.org:/var/lib/cvs/slate; the password is "anonymous". This will create a slate directory and unpack the files into it. Instructions for its use will be in the file README for the time being.

Collaboration

Web

Slate's bulletin board is a Squeak Swiki.

E-Mail

Slate has a mailing list. The list is open to all to join or simply browse.

Chat

Slate users enjoy free discussion (almost) daily on the Freenode (formerly known as Open Projects Net) IRC network on channel #slate. Logs of #slate are available in "pretty" form and "raw" form.

Contributions

Donating:


Back to the top of the page