# Copyright 1993-2006, by the Cecil Project # Department of Computer Science and Engineering, University of Washington # See the $VORTEX_HOME/notes/LICENSE file for license information. This directory contains notes for the UW Cecil/Vortex distribution. See the INSTALL file in this directory for installation directions. See the QUICK-START-CECIL file for information on how to use the simple Cecil read-eval-print interpreter. See the QUICK-START-VORTEX file for information on how to compile a simple Cecil program using Vortex. See thingsWeAreNotProudOf.txt and bugs.txt for a list of limitations and bugs in our implementation. See our web page for more information, or email us if you have feedback or questions not answered here: http://www.cs.washington.edu/research/projects/cecil chambers@cs.washington.edu CONTENTS A guide to the vortex tree Available documentation A list of third party software used by Vortex ****************************************************************************** ** A guide to the vortex tree ****************************************************************************** Notation -------- $VORTEX_BASELINE, $VORTEX_HOME The top-level directory. $VORTEX_BASELINE refers to the location where the Vortex distribution is unpacked. $VORTEX_HOME refers to the current user's copy of the Vortex distribution, or just $VORTEX_BASELINE if there is only one copy of the Vortex distribution. (These variables are set by $VORTEX_HOME/bin/shell/vortex.cshrc) $VORTEX_ARCH The name used to denote the architecture/OS combination on the machine where Vortex is being installed or run (it is part of the name of the tar file that you download, and is also printed by $VORTEX_HOME/bin/shell/vortex-arch; this variable is set by $VORTEX_HOME/bin/shell/vortex.cshrc) $VORTEX_MAKE The name of the GNU make program on your system (set in $VORTEX_HOME/bin/shell/vortex.cshrc) The name of a certain front-end (Cecil, Diesel, Java, etc.), or Vortex (denotes the common components of the distribution) Main parts of the vortex tree ----------------------------- $VORTEX_HOME top-level directory $VORTEX_HOME/notes various notes, including this file, INSTALL, LICENSE, etc., primarily for users who are interested in installing or developing Vortex (see "Available documentation" below) $VORTEX_HOME/doc comprehensive manuals on using Vortex (see "Available documentation" below) $VORTEX_HOME/bin contains the vortex executable plus a number of tools/scripts invoked by Vortex or used for program development or experimentation $VORTEX_HOME/runtime source and object files for the vortex runtime system and various supporting libraries $VORTEX_HOME/Cecil Cecil front-end: sources/scripts/support/documentation for Cecil programs, and sources for Vortex (see below for details) $VORTEX_HOME/Diesel Diesel front-end: sources/scripts/support/documentation for Diesel programs, and sources for Whirlwind (see below for details) $VORTEX_HOME/Java Java front-end: sources/scripts/support for Java programs, and the Javelin Java-bytecode-to-Vortex-RTL-code translator $VORTEX_HOME/...other language names... other front-ends; include sources of sample programs and/or front-end executabes, support scripts and front-end binaries See the $VORTEX_HOME/{Java,...}/README files for more info on using the non-Cecil/Diesel front-ends for Vortex (these README files come with their respective front-ends). $VORTEX_HOME/SETUP..$VORTEX_ARCH.done These files are generated by the SETUP script Structure of the Cecil front-end -------------------------------- $VORTEX_HOME/Cecil/bin tools and scripts for manipulating Cecil programs, plus the cecil interpreter executable $VORTEX_HOME/Cecil/doc Cecil documentation $VORTEX_HOME/Cecil/src Cecil source code $VORTEX_HOME/Cecil/src/{stdlib,compiler} Cecil source code for the Cecil standard library, the Vortex compiler (vortex.cecil), and the Cecil interpreter (cecil.cecil). $VORTEX_HOME/Cecil/src/links Symbolic links to all the Cecil source files in ../src/{stdlib,compiler}, flattening out the directory structure. Structure of the Diesel front-end -------------------------------- $VORTEX_HOME/Diesel/bin tools and scripts for manipulating Diesel programs, plus the diesel interpreter executable $VORTEX_HOME/Diesel/doc Diesel documentation $VORTEX_HOME/Diesel/src Diesel source code $VORTEX_HOME/Diesel/src/{stdlib,whirlwind} Diesel source code for the Diesel standard library, the Whirlwind compiler (whirlwind.diesel, still under construction), and the Diesel interpreter (diesel.diesel). $VORTEX_HOME/Diesel/src/links Symbolic links to all the Diesel source files in ../src/{stdlib,whirlwind}, flattening out the directory structure. ****************************************************************************** ** Available documentation ****************************************************************************** Here are the places to look for information: $VORTEX_HOME/{notes,doc} discussed below $VORTEX_HOME/{Java,...}/README information on using the non-Cecil front-ends for Vortex (these come with their respective front-ends) http://www.cs.washington.edu/research/projects/cecil our web page with documentation, papers, project members, sources of our support, and more Here are files in $VORTEX_HOME/notes, included with the distribution: README this file LICENSE licensing information INSTALL installation instructions FAQ some frequently asked questions and tips CECIL-FEATURES a summary of features of the Cecil language VORTEX-FEATURES a summary of features of the Vortex compiler QUICK-START-CECIL how to use Cecil read-eval-print interpreter QUICK-START-VORTEX how to compile sample Cecil program with Vortex compiler-intro.txt an overview of the Vortex compiler source code gc.txt some GC documentation thingsWeAreNotProudOf.txt limitations of our implementation bugs.txt outright bugs we are aware of SETUP..sample-output sample output of running the SETUP script Here are manuals in $VORTEX_HOME/doc: vortex.ps Vortex compiler user's guide vortex-benchmarking.ps Hints on benchmarking Vortex-compiled apps. Here are manuals in $VORTEX_HOME/Cecil/doc: cecil-spec.ps Cecil language specification cecil-stdlib.ps Cecil standard library reference manual (also available from the release web page:) Textual Vortex RTL specification Pragmas currently understood by Vortex ****************************************************************************** ** Included third party software -- thanks!!! ****************************************************************************** The Cecil/Vortex distribution utilizes several third party software packages and tools; whenever possible we have included the full source of these packages in our distribution. We use and have included the following tools and libraries: ** The Boehm-Weiser conservative garbage collector from Xerox. For more information see $VORTEX_HOME/runtime/gc/conservative-gc/src. ** The UMass accurate garbage collection toolkit. For more information see $VORTEX_HOME/runtime/gc/accurate-gc. ** The NJ machine code toolkit. For more information see $VORTEX_HOME/runtime/njtoolkit/src. ** Vortex's threading library was derived from Quick Threads by David Keppel. ** Our Java front-end is derived from the javap disassembler provided in the Sun JDK1.0. ** Vortex can utilize the dot program from AT&T Labs to visually display control flow graphs and class hierarchies. You can download dot for free from http://www.research.att.com/sw/tools/graphviz/. To enable dot, simply edit $VORTEX_HOME/bin/shell/display-dot to refer to your local dot installation. ** Rhodium uses the Simplify automatic theorem prover, originally developed at DEC SRC, for its soundness verification.