Information for the Slate Distribution -------------------------------------- The reference site for this Distribution is at http://slate.tunes.org/ License ------- Slate is released freely by Lee Salzman and Brian T. Rice for modification and usage under the MIT Public License, as described in license.txt, provided with this Distribution. Release Notes ------------- See the NEWS file in this Distribution. Building Slate -------------- If you have downloaded the Source Distribution, you will need to build Slate using a Common Lisp compiler. ECLS (Embedded Common Lisp: http://ecls.sf.net/), which makes use of GCC dynamically, is required for you to be able to compile code into binary form. The 0.2 Release is targetted for command-shell-style usage with the CLISP bytecoded compiler (see http://clisp.org/), and includes many new features coded specifically for it. To build the binary with ECLS: 1. Download and install ECLS using the traditional GNU toolchain process of "configure ; make ; make install". Currently, there is an issue with ECL that prevents Slate's dynamic compiler from working; the workaround is to perform "export LSPCFLAGS='-I.'" before the build process. 2. Unpack a Slate source Distribution or CVS checkout locally. 3. Start ECL within the Slate directory by typing "ecl". Then load the build script by typing (load "build.lisp") at the prompt. Once that completes, type "(quit)" or hit Ctrl-d to exit. (NOTE: non-standard installation of ECL will require modifying the path entry used at the top of build.lisp) 4. Optionally compile standard libraries using the standard build script in $slate/src/build-libs.slate ; the results of these will be transparently loaded by whatever scripts you use to load the source files. Enter "'src/build-libs.slate' fileIn." 5. Start Slate by typing "./slate" (the binary ECLS makes) in the Slate directory in order to use it. With any other Lisp environment: 1. Unpack a Slate source Distribution or CVS checkout locally. 2. Start Lisp within the Slate directory (by typing, say, "clisp"). Then load the build script by typing (load "build.lisp") at the prompt. Once that completes, type "(quit)" or hit Ctrl-d to exit. 3. Optionally, you can compile standard libraries using the standard build script in $slate/src/build-libs.slate ; the results of these will be transparently loaded by whatever scripts you use to load the source files. Enter "'src/build-libs.slate' fileIn." You can also save the whole image, as described later, which can often be simpler to manage. Starting Slate -------------- Enter the Slate directory, start a Lisp environment and type (load "slate.lisp") to load the interpreted version. Under CLISP and other implementations, a compiled memory image ("slate.mem") will be saved which loads and runs very quickly. This is the preferred packaging for this release. At this point you are in the interpreter's main loop, with no code loaded. To load the standard libraries, you invoke: './src/init.slate' fileIn. which in turn files in the other separate library files in a proper sequence. This may take awhile when using the interpreted implementation of the compiler. Now you can enter some basic expressions, but note that the REPL does not complete as a loop until a stop (".") is entered at the top-level. Consider it equivalent to Smalltalk's bang("!"). There is no online help yet, so we must refer you to the source files (probably best starting with "src/init.slate" and then each of the files loaded in turn) and the included reference manual in HTML or PS/PDF. To exit, enter "exit." or "quit." or an empty line (ctrl-d). At any point, within CLISP, you can save Slate memory contents for quick loading as a whole. This is ideally done once after init.slate loads all the standard libraries, but can also be done for other tasks. Type: "saveImageNamed: 'slate-full'." to create a file named slate-full.mem which can be loaded via "clisp -M slate-full.mem" from the command-line. Guide to the Slate directories ------------------------------ demo/ - Included demonstration code. doc/ - Various guides to the system, and the manual. etc/ - Extra configuration files, and editing modes for Vim and Emacs. site/ - Website sources, included in CVS but not in releases. src/ - Slate's libraries. ui/ - User interface system, primarily graphics-related. mobius/ - Self-hosted implementation. bootstrap/ - Bootstrap code, for the future run-time builds. c/ - Dealings with C-specific compiler backend and types/syntax. syntax/ - Parser and high-level compiler. optimizer/ - Optimization framework. mop/ - Meta-object protocol. smalltalk/ - Smalltalk compatibility framework.