68 lines
3.4 KiB
Plaintext
68 lines
3.4 KiB
Plaintext
The ALGOL 68S System
|
|
********************
|
|
|
|
1. See a68s.1 in -man format for the goodies on offer.
|
|
|
|
2. This system is presently exceeding slow (but correct). The reason is that
|
|
it calls run-time routines to do absolutely everything. It is known that
|
|
significant improvement can easily be made in this state of affairs, but not
|
|
in this release.
|
|
|
|
3. Other developments expected for the future are facilities for separate and
|
|
mixed-language compilation (a student will tackle this next year), and a
|
|
non-checking run time option which will run faster (but with less security)
|
|
(but no student available for this yet).
|
|
|
|
4. The system should run on any 44 or 24 system, but not on a 22 system as yet
|
|
(that is another development in the waiting). It has actually been tested on
|
|
sun3, moon3 and vax4.
|
|
|
|
5. The system was originally delevoped for CDC machines, and then for PERQs
|
|
running under PNX. Thus its method of compilation is not particularly suited
|
|
to the ACK way of thinking (a compiler designed with ACK in mind from the
|
|
start would have been very different). The CDC origin explains why all the
|
|
sources are in upper case, and with numbered lines (however, I like numbered
|
|
lines, so I have kept them, and a68s will even accept them still).
|
|
|
|
6. Version control is by a program /util/tailor, which selectively exposes or
|
|
hides commented out sections of the sources according to a recipe. See the
|
|
start of aem/a68sdec.p for what all the tailoring parameters mean. Every
|
|
source text is passed through tailor before being compiled.
|
|
|
|
7. The system is written in a bastardized version of PASCAL called cpem (see
|
|
README in the directory of that name). {This also provides an "improved" method
|
|
of separate compilation which might be of benefit in pem.}
|
|
|
|
8. The directories aem and liba68s have their own private versions of 'make'
|
|
(therefore, '.' must precede '/bin' in your PATH). These prepare the tailoring
|
|
recipes according to the system given in ack_sys (set environment variable
|
|
MACH to override this). Unlike pem, separate versions of the compiler must
|
|
exist to generate 44 and 24 (and eventually 22) code. To avoid keeping too
|
|
many .o files around, the Makefile will do a clean before changing from a 44
|
|
system to a 24 one, etc.
|
|
|
|
9. Although a runtime library can be made using 'make' in liba68s, this is
|
|
really intended for debugging libraries. A more usual system would be to use
|
|
the 'compmodule' system in the liba68s directory of the appropriate mach.
|
|
However, it is recommended that this be not included automatically in the
|
|
'action' of each mach, because compiling an ALGOL 68S library takes over a
|
|
hour on a microvax, and to do it for all of the 'mach's provided would use up
|
|
a lot of time.
|
|
|
|
10. To build the complete system requires
|
|
make install in util
|
|
make all in cpem
|
|
make install in aem
|
|
make install in EM/mach/???/liba68s
|
|
|
|
11. The programs test/test.8 and test/tp8.8 are the main confidence-checkers.
|
|
test.8 produces lots of numbers, with clear error messages interspersed if
|
|
anything goes wrong. Its last few lines should contain 5 '.'s, followed by
|
|
4'.'s and so on down to 0. There is one test needs commenting out if floating
|
|
point is not available. tp8.8 is the transput test. It should print out a long
|
|
string in vertical columns spread over two pages. After that, if it says "FYLA
|
|
read back OK" it should be all right. tp9.8 is the same thing for systems
|
|
without floating point. The other programs in the test directory are just
|
|
interesting examples, which should work.
|
|
|