[net.lang] Info about Mainsail

ganesh@sbcs.UUCP (Ganesh Gopalakrishnan) (11/12/83)

I wish to know more about the Programming language called "Mainsail"
developed at Stanford University. Information on publications and
availability are most welcome. I thank you in advance.

                   Ganesh
		   suny, stony brook

preece@uicsl.UUCP (11/16/83)

#R:sbcs:-52400:uicsl:6200001:000:2273
uicsl!preece    Nov 15 09:33:00 1983

Mainsail is available from:

	Xidak, Inc.
	530 Oak Grove Ave., Suite 101
	Menlo Park, CA   94025

	(415) 324-8745

It is derived from, but differs significantly from, the SAIL language
from Stanford. It has lost the AI-oriented (LEAP) components of SAIL.
Some other differences include: somewhat different data types and
conversions; slightly stronger typing (bitwise logic, for instance, not
applicable to integers); different syntax for FOR statement (no STEP
or TO); explicit allocation of arrays; new syntax for records, but
similar use; procedure name overloading is available for generic
procedures; no nested procedures; change in way procedure parameters are
specified as reference or value; neater MODULE capabilities; totally
changed I/O statements, but similar capabilities (including break table
input); very limited macro capabilities; support for partial compilation;
the DEC-10 byte operators are gone.
Mainsail is available on a fair variety of machines including the Vax
(VMS or Unix), IBM VM/CMS systems, DEC-10 and 20, and some MC68000
systems. Educational licenses are available (not including source code,
however).
On Vax-Unix Mainsail provides a mechanism for reaching Unix system calls.
The compiler, however, is interactive and can't conveniently be used
with make. Xidak sells an editor of their own which allows easy back and
forth between editing, compiling, and debugging -- using Mainsail with
Emacs or Vi is much less convenient.
Moving SAIL programs to Mainsail requires some effort, though less than
moving them to C or Pascal. The transformation is not a simple, mechanical
process.
Most of the bugs we found in using it have supposedly been fixed in
more recent releases, though the configurator was generating unassemblable
code with the latest version we have.
We generally liked the language and would have used it more if the
package worked better with Unix (basically, a Unix compiler ought to
be invoked in the same way as the C compiler and should produce the
same kind of messages, otherwise it doesn't work with Unix development
tools). Do be warned that the garbage collection process underlying
their string capabilities can take substantial amounts of time at
unpredictable intervals.

scott preece
ihnp4!uiucdcs!uicsl!preece