
The Logix system version 2.0 release 7
Subject: The Logix system version 2.0 release 7
Version 2.0 of the Logix system, release 7, is available. Licensed
users can obtain the new release by sending a 1/2" tape or a 1/4" cartridge to:
Mr Yossef Dabby
Dept. of Applied Math and Computer Science
The Weizmann Institute of Science
Rehovot 76100
Israel
Please include a letter explaining that you are a licensed Logix user and
wish to get an updated release.
Unlicensed users can send to that address a request for a copy of
the license agreement, or send e-mail to me for an electronic copy.
There is a $250 handling fee for new licensees. Logix is available
for Sun2, Sun3, and for VAX and CCI computers running BSD/4.2 and up.
Logix is a single-user multi-tasking concurrent logic programming
environment, developed as a group effort at the Weizmann Institute of
Science. It runs as a single Unix process. Its low-end (abstract
machine, about 7000 lines of source code) is written in C; its
high-end (everything else, more than 10,000 lines of source code) is
written in Flat Concurrent Prolog (FCP). The model of computation of
FCP is based on dynamic light-weight (some say feather-weight)
nondeterministic processes, communicating by binding logical
variables, and synchronizing by waiting for such bindings. Normal
computations generate thousands of concurrent processes; Logix, when idle,
consists of about 1000 suspended processes.
Logix has been heavily used at the Weizmann Institute and other places
for the past two years for various applications, including its own
development, compiler development, parallel and distributed algorithm
development, embedded-language implementation, hardware simulation,
etc. An account of its applications can be found in ``Concurrent
Prolog: Collected Papers'', E. Shapiro (ed.), MIT Press, 1987.
Since Logix's first release, the following improvements and enhancements
were made:
1. Embedded languages
The system supports various embedded languages, including:
- FCP(|,:,?), a superset of Oc and of Flat GHC (and hence supports
also Flat GHC).
- Typed FCP, a typed variant of FCP, with an accompanying type checker.
- The implicit variables (also called framed logic programs)
notation.
2. System support
- Hierarchical module system, integrated with the Unix hierarchical
file system.
- Concurrent interactive de{*filter*} (not an algorithmic one yet,
though one is under development).
- Support for syntax extension and user-defined embedded languages
- Support for meta-programming
- Multiple execution modes: trust, failsafe, interrupt,
interpret.
- Support for multiple virtual machines (to be of real use only
in future multiprocessor versions of Logix).
- Nested, interactive computation control.
- `lint' like analysis of common errors.
3. Emulator support
- Foreign kernels/ C interface/ Unix interface/ Native code interface
- Double-precision floating point arithmetic.
- Freeze/melt primitives.
- Speed has almost doubled since first release. On a Sun 3/50 it
runs the standard concurrent naive reverse benchnmark at 5K process
reductions per second. It creates processes at a peak rate of
1500 a second, and can maintain up to 50,000 (fifty
thousand) concurrent processes in a 4MB heap.
There is also an unsupported implementation of FCP for the iPSC/I Hypercube,
which does not include the Logix development environment.
If you want more info on FCP for the iPSC/I let me know.
-- Ehud Shapiro
May 30, 1988