Welcome to Strand88. This readme file contains information about this release of Strand88. Introduction Strand88 is a declarative language for programming distributed and parallel machines. It is just about the flattest of the parallel logic languages which makes it an extreme point in the spectrum of concurrent logic languages. It's closest relatives are Parlog and FGHC. Unlike most languages of this type it was developed in a commercial environment as a commercial venture. It was developed by Artificial Intelligence Ltd., and all rights assigned to Strand Software Technologies in 1991, who still own the implementation. Also unlike some concurrent logic languages, Strand has always been truly parallel and placing the annotation '@' on any clause will cause that clause to be evaluated on the designated machine. This release This is a full release of the last complete stable build of Strand88. Some further work was done after the date of this release but it not included for reasons of lack of stability. The source code consists of both 'C' and Strand source. The abstract machine is written in 'C' and the compiler and environment written in Strand. This release contains a set of binaries for SunOS 4.1.X that will allow a strand system to run across an enumerated set of sun workstations. System files are included for many other systems, mainly parallel machines. Recipients are encouraged to port to new machines and we are always interested in any successes (or even failures). Important legal stuff This is NOT freeware and is not placed in the Public Domain by this release. The Strand88 source code is and remains the Copyright of Strand Software Technologies Limited (SSTL). Users of this source code release are hereby granted a Free of Charge License to use this source for evaluation, personal study or research. The source, in whole or in part, may not be used in any product or other commercial offering without the express written approval of SSTL nor may it be used for any commercial operation. SSTL make no warranty, implicit or explicit, of the suitability, fitness for purpose, reliability or performance of any aspect of the software. You use this software at your own risk. Limited support is available only via e-mail (support@strand.co.uk) and we only commit to reading your mail sympathetically. If you would like to use Strand outside of the terms of this Free of Charge License please contact us. Documentation is available. Manuals are 25 pounds (UK Sterling) each and copies of the Strand Book(*) are available at 30 pounds (UK Sterling). We only have small quantities of each.. Payment (regretably) must be in pounds sterling (yes we know this is a drag but negotiating small amounts of foreign currency is not worth it) and payment should accompany any order. Email prior to written order will check a copy is available and reserve a copy for you. (*) Strand: New Concepts in Parallel Programming; Ian Foster & Stephen Taylor; Prentice Hall, ISBN 0-13-850587-X. Doing something with the release. The release consists of a gzipped tar file. This will untar into a directory called strand88. In this directory you should find the following sub-directories: compiler - compiler sources env - environment sources info - nothing useful library - standard library and am (a concurrent debugger) release - a ready to run release for SunOS. (see install script) sam - common source for the abstract machine scripts - various scripts - probably not much use. System - contains sub-directories of the system dependent files for various ports and makefiles. Each source directory contains an SCCS sub-directory with the actual source files. To run on your particular system you need to make a Strand Abstract Machine (sam). All Strand source is compiled to sam instructions and is therefore generic. Once made the abstract machine can be started. There are different startup strategies for different platforms. For a single node one just needs to start an instance of the abstract machine. This will attempt to load the boot file for the environment (boot.sam or nodeboot.sam if its not the root node) and then load the rest of the run-time strand environment. When successful you should get a prompt. To check if its running ok try typing: display("hello")@all You should get one hello from each node thats running! We have a web page with this release available and (perhaps various other things). We have some demonstration programs that I would like to get on to the web page at some point - so check it out: http://www.ftech.net/~moleskin/sstl Martin Gittins 23rd May 1996 martin@strand.co.uk