67 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			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.
 | 
						|
 |