README 3.4 KB

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