621 lines
		
	
	
	
		
			20 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			621 lines
		
	
	
	
		
			20 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| .\" $Header$
 | |
| .nr LL 7.5i
 | |
| .nr PD 1v
 | |
| .TL
 | |
| Amsterdam Compiler Kit installation guide
 | |
| .AU
 | |
| Ed Keizer
 | |
| .AI
 | |
| Wiskundig Seminarium
 | |
| Vrije Universiteit
 | |
| Amsterdam
 | |
| .NH
 | |
| Introduction
 | |
| .PP
 | |
| This document
 | |
| describes the process of installing Amsterdam Compiler Kit.
 | |
| It depends on your combination of hard- and software how
 | |
| hard it will be to install the kit.
 | |
| This description is intended for a PDP 11/44 running
 | |
| .UX
 | |
| Version 7.
 | |
| Installation on other PDP 11's should be easy, as long
 | |
| as they have separate instruction and data space.
 | |
| Installation on machine's without this feature, like PDP 11/34,
 | |
| PDP 11/60 requires extensive surgery on some programs and is
 | |
| thought of as impossible.
 | |
| See chapter 6 for installation on other systems.
 | |
| .NH
 | |
| Restoring tree
 | |
| .PP
 | |
| The process of installing Amsterdam Compiler Kit is quite simple.
 | |
| It is important that the original Amsterdam Compiler Kit
 | |
| distribution tree structure is restored.
 | |
| Proceed as follows
 | |
| .IP "  -" 10
 | |
| Create a directory, for example /usr/em, on a device
 | |
| with at least 20000 blocks left.
 | |
| .IP "  -"
 | |
| Change to that directory (cd ...); it will be the working directory.
 | |
| .IP "  -"
 | |
| Extract all files from the distribution medium, for instance
 | |
| magtape:
 | |
| \fBtar x\fP.
 | |
| .IP "  -"
 | |
| Keep a copy of the original distribution to be able to repeat the process
 | |
| of installation in case of disasters.
 | |
| This copy is also useful as a reference point for diff-listings.
 | |
| .LP
 | |
| The directories in the tree contain the following information:
 | |
| .nr PD 1v
 | |
| .IP "lib" 14
 | |
| .br
 | |
| almost all binaries and shell files used by commands and
 | |
| library em_data.a from misc/data
 | |
| .IP "lib/ack"
 | |
| .br
 | |
| The command descriptor files used by the program ack.
 | |
| .nr PD 0
 | |
| .IP "bin"
 | |
| .br
 | |
| the few utilities that knot things together
 | |
| .IP "etc"
 | |
| .br
 | |
| The MAIN description of EM sits here.
 | |
| contains files (e.g. em_table) describing
 | |
| the opcodes and pseudos in use,
 | |
| the operands allowed, effect in stack etc. etc.
 | |
| Make in this directory creates most of the files in h
 | |
| .IP "include"
 | |
| .br
 | |
| More or less system independent include files needed by modules
 | |
| in the C library from lang/cem/libcc.
 | |
| Especially needed for "stdio".
 | |
| .IP "h"
 | |
| .br
 | |
| The #include files for:
 | |
| .nf
 | |
| as_spec.h    Used by EM assembler and interpreters.
 | |
| em_abs.h     Contains trap numbers and address for lin and fil
 | |
| em_flag.h    Definition of bits in array em_flag in lib/em_data.a
 | |
|              Describes parameters effect on flow of instructions
 | |
| em_mes.h     Definition of names for mes pseudo numbers
 | |
| em_mnem.h    instruction => compact mapping.
 | |
| em_pseu.h    pseudo instruction => compact mapping
 | |
| em_ptyp.h    Useful for compact code reading/writing,
 | |
|              defines classes of parameters
 | |
| em_spec.h    Definition of constants used in compact code
 | |
| local.h      Various definitions for local versions
 | |
| pc_err.h     Definitions of error numbers in Pascal
 | |
| pc_file.h    Macro's used in file handling in Pascal
 | |
| em_path.h    Pathnames used by \fIack\fP, intended
 | |
|              for all utilities
 | |
| pc_size.h    Sizes of objects used by Pascal compiler and
 | |
|              run-time system.
 | |
| em_reg.h     Definition of names for register types.
 | |
| .IP "doc"
 | |
| .br
 | |
| Documentation
 | |
| .nf
 | |
| cg.doc          Use and internal specification of the backend.
 | |
| .br
 | |
| regadd.doc      Update for cg.doc concerning register variables
 | |
| .br
 | |
| regadd.doc      Description of steps to add register variables.
 | |
| .br
 | |
| ack.doc         Layout of description files needed for each machine.
 | |
| .br
 | |
| cref.doc        C reference manual, addendum
 | |
| .br
 | |
| install.doc     Ack Installation Guide
 | |
| .br
 | |
| pcref.doc       Pascal reference manual, addendum
 | |
| .br
 | |
| peep.doc        Description of the peephole optimizer
 | |
| .br
 | |
| em.doc          EM reference manual
 | |
| .br
 | |
| toolkit.doc     A general overview of the toolkit
 | |
| .br
 | |
| v7bugs.doc      Bugs in the standard V7 system
 | |
| .br
 | |
| val.doc         Pascal validation suite version 3 report
 | |
| .nf
 | |
| .IP "doc/em.doc"
 | |
| .br
 | |
| The EM-manual IR-81
 | |
| .IP "doc/em.doc/int"
 | |
| .br
 | |
| The EM interpreter written in pascal
 | |
| .IP "mkun"
 | |
| .br
 | |
| The PUBMAC macro package for nroff/troff from the Katholieke Universiteit at
 | |
| Nijmegen.
 | |
| It is used for the EM reference manual,
 | |
| the Makefile installs the macro package in
 | |
| /usr/lib/tmac/tmac.mkun*.
 | |
| This package is in the public domain.
 | |
| .IP "mach"
 | |
| .br
 | |
| just there to group the directories for all machines
 | |
| these directories have sub-directories named:
 | |
| .nf
 | |
|   as      the assembler ( *.s + libraries => a.out )
 | |
|   cg      the new backend   ( *.m => *.s )
 | |
|   lib     the libraries for all run-time systems
 | |
|           these libraries are used by the assembler.
 | |
|   libpc   Used to create Pascal run-time system in 'lib'
 | |
|   libcc   Used to create C run-time system in 'lib'
 | |
|   libem   Sources for EM runtime system, result sits in 'lib'
 | |
|   test    Various tests
 | |
|   dl      Down-load programs
 | |
|   int     Source for an interpreter
 | |
| available are:
 | |
|     PMDS II 68000, wordsize 2, ptrsize 4
 | |
|         mach/m68k2
 | |
|         mach/m68k2/as
 | |
|         mach/m68k2/cg
 | |
|         mach/m68k2/libem
 | |
|         mach/m68k2/lib
 | |
|         mach/m68k2/dl
 | |
|         mach/m68k2/libpc
 | |
|         mach/m68k2/libcc
 | |
|         mach/m68k2/libsys
 | |
|     bare 6809
 | |
|         mach/6809
 | |
|         mach/6809/as
 | |
|     8080, wordsize 2, ptrsize 2
 | |
|         mach/8080
 | |
|         mach/8080/as
 | |
|         mach/8080/test
 | |
|         mach/8080/libcc
 | |
|         mach/8080/lib
 | |
|    bare 8086, wordsize 2, ptrsize 2
 | |
|         mach/i86
 | |
|         mach/i86/as
 | |
|         mach/i86/lib
 | |
|         mach/i86/libcc
 | |
|         mach/i86/dl
 | |
|         mach/i86/libem
 | |
|         mach/i86/libpc
 | |
|         mach/i86/saio  (library for stand-alone EM on 86/12A )
 | |
|     pdp 11, UNIX/V7, wordsize 2, ptrsize 2
 | |
|         mach/pdp
 | |
|         mach/pdp/test
 | |
|         mach/pdp/libem
 | |
|         mach/pdp/lib
 | |
|         mach/pdp/libcc
 | |
|         mach/pdp/libpc
 | |
|         mach/pdp/cg
 | |
|         mach/pdp/int         -PDP 11/44 EM interpreter
 | |
|     vax 780, UNIX V7, wordsize 4, ptrsize 4
 | |
|         mach/vax4
 | |
|         mach/vax4/cg
 | |
|         mach/vax4/lib
 | |
|         mach/vax4/libcc
 | |
|         mach/vax4/libem
 | |
|         mach/vax4/libpc
 | |
|     z80, CP/M, wordsize 2, ptrsize 2
 | |
|         mach/z80
 | |
|         mach/z80/as
 | |
|         mach/z80/libem
 | |
|         mach/z80/lib
 | |
|         mach/z80/libcc
 | |
|         mach/z80/libpc
 | |
|         mach/z80/int         -Z80 EM interpreter
 | |
|     z80, nascom
 | |
|         mach/z80a
 | |
|         mach/z80a/dl
 | |
|     vax 11/780, Berkeley UNIX, wordsize 2, ptrsize 4
 | |
|         mach/vax2
 | |
|         mach/vax2/cg
 | |
|         mach/vax2/lib
 | |
|         mach/vax2/libpc
 | |
|         mach/vax2/libem
 | |
|     bare 6500, wordsize 2, ptrsize 2
 | |
|         mach/6500
 | |
|         mach/6500/as
 | |
|         mach/6500/dl
 | |
|         mach/6500/libem
 | |
|         mach/6500/lib
 | |
|     bare 6800, wordsize 2, ptrsize 2
 | |
|         mach/6800
 | |
|         mach/6800/as
 | |
|     EM virtual machine code, wordsize 2, ptrsize 2
 | |
|         mach/int
 | |
|         mach/int/libcc
 | |
|         mach/int/libpc
 | |
|         mach/int/lib
 | |
|         mach/int/test
 | |
|     The directory proto contains files used by most machines.
 | |
|     e.g. makefiles for libraries for C and Pascal
 | |
|         mach/proto
 | |
|         mach/proto/libg
 | |
| .fi
 | |
| .IP "emtest"
 | |
| .br
 | |
| Contains prototype of em test set.
 | |
| .IP "man"
 | |
| .br
 | |
| Man files for various utilities
 | |
| .IP "lang"
 | |
| .br
 | |
| just there to group the directories for all front-ends
 | |
| .IP "lang/pc"
 | |
| .br
 | |
| Pascal front-end
 | |
| .IP "lang/pc/libpc"
 | |
| .br
 | |
| Source of Pascal run-time system ( in EM or C )
 | |
| .IP "lang/pc/test"
 | |
| .br
 | |
| Some test programs written in Pascal
 | |
| .IP "lang/pc/pem"
 | |
| .br
 | |
| The compiler proper
 | |
| .IP "lang/cem"
 | |
| .br
 | |
| C front-end
 | |
| .IP "lang/cem/libcc"
 | |
| .br
 | |
| Directories with sources of C runtime system, libraries (in EM or C)
 | |
| .IP "lang/cem/libcc/gen"
 | |
| .br
 | |
| Sources for routines in chapter III of UNIX programmers manual,
 | |
| excluding STDIO
 | |
| .IP "lang/cem/libcc/stdio"
 | |
| .br
 | |
| STDIO sources
 | |
| .IP "lang/cem/libcc/mon"
 | |
| .br
 | |
| Sources for routines in chapter II, written in EM
 | |
| .IP "lang/cem/comp"
 | |
| .br
 | |
| The compiler proper
 | |
| .IP "lang/cem/ctest"
 | |
| .br
 | |
| C test set
 | |
| .IP "lang/cem/ctest/cterr"
 | |
| .br
 | |
| Programs developed for pinpointing previous errors
 | |
| .IP "lang/cem/ctest/ct*"
 | |
| .br
 | |
| The test programs.
 | |
| .IP "util"
 | |
| .br
 | |
| Contains directories with various utilities
 | |
| .IP "util/opt"
 | |
| .br
 | |
| EM peephole optimizer (*.k => *.m)
 | |
| .IP "util/misc"
 | |
| .br
 | |
| Decode (*.[km] => *.e) + encode (*.e => *.k)
 | |
| .IP "util/data"
 | |
| .br
 | |
| The C-code for `lib/em_data.a`
 | |
| These sources are created by the Makefile in `etc`
 | |
| .IP "util/ass"
 | |
| .br
 | |
| The EM assembler ( *.[km] + libraries => e.out )
 | |
| .IP "util/arch"
 | |
| .br
 | |
| The archiver to be used for ALL EM utilities
 | |
| .IP "util/cgg"
 | |
| .br
 | |
| A program needed for compiling backends.
 | |
| .IP "util/cpp"
 | |
| .br
 | |
| The V7 C preprocessor.
 | |
| .LP
 | |
| All pathnames mentioned in the text of this document are relative to the
 | |
| working directory, unless they start with '/'.
 | |
| .PP
 | |
| The person doing the installation needs permission to write in the
 | |
| directories of the Amsterdam Compiler Kit distribution tree.
 | |
| Preferably you should log in as sys (uid=3,gid=0).
 | |
| .NH
 | |
| Pathnames
 | |
| .PP
 | |
| Absolute pathnames are concentrated in "h/em_path.h".
 | |
| Only the pascal runtime system and the utility \fIack\fP use
 | |
| absolute pathnames to access files in the kit.
 | |
| The tree is distributed with /usr/em as the working
 | |
| directory.
 | |
| The definition of EM_DIR in em_path.h should be altered to
 | |
| specify the root
 | |
| directory for the Compiler Kit distribution on your system.
 | |
| Em_path.h also specifies which directory should be used for
 | |
| temporary files.
 | |
| Most programs from the kit do indeed use that directory
 | |
| although some remain stubborn and use /tmp or /usr/tmp.
 | |
| .LP
 | |
| The shape of the tree should not be altered lightly because
 | |
| most Makefiles and the
 | |
| utility \fIack\fP know the shape of the ACK tree.
 | |
| All pathnames in all Makefiles are relative, that is do not
 | |
| have "/" as the first character.
 | |
| The knowledge of the utility \fIack\fP about the shape of the tree is
 | |
| concentrated in the files in the directory lib/ack.
 | |
| .NH
 | |
| Commands
 | |
| .PP
 | |
| The kit is distributed with all available commands in the bin
 | |
| directory.
 | |
| The commands distributed are:
 | |
| .IP "\fIack\fP, \fIacc\fP, \fIapc\fP and their links"
 | |
| .br
 | |
| They are used to compile the Pascal, C, etc... programs.
 | |
| .IP \fIarch\fP
 | |
| .br
 | |
| The archiver used for the EM- and universal assembler.
 | |
| .IP "\fIem\fP and \fIeminform\fP"
 | |
| .br
 | |
| The EM interpretator for the PDP-11 and the program to unravel
 | |
| its post-mortem information.
 | |
| .LP
 | |
| We currently make the kit available to our users by telling
 | |
| them that they should include the bin directory of the kit in
 | |
| their PATH shell variable.
 | |
| The programs will still work when moved to a different
 | |
| directory.
 | |
| The copying should preferably be done with tar, since links are
 | |
| heavily used.
 | |
| Renaming of the programs linked to \fIack\fP will not always
 | |
| produce the desired result.
 | |
| This program uses its call name as an argument.
 | |
| Any call name not being \fIcc\fP, \fIacc\fP, \fIpc\fP or \fIapc\fP will be
 | |
| interpreted as the name of a 'machine description' and the
 | |
| program will try to find a description file with that name.
 | |
| All recompilations will only touch the utilities in the bin
 | |
| directory, not your own copies.
 | |
| .NH
 | |
| Options
 | |
| .PP
 | |
| There is one important option in h/local.h.
 | |
| The utility \fIack\fP uses a default machine name when called
 | |
| as \fIacc\fP, \fIcc\fP, \fIapc\fP, \fIpc\fP or \fIack\fP.
 | |
| The machine name used for default is determined by the
 | |
| definition of ACKM in h/local.h.
 | |
| The current definition is \fIpdp\fP.
 | |
| .PP
 | |
| The distribution is tailored to one specific opreating system per CPU type.
 | |
| For some of these  CPU's it is possible to tailor the distribution to another
 | |
| operating system.
 | |
| The steps to be taken are described in READ_ME (or README) files in the
 | |
| subdirectories of the directory in EM_DIR/mach for that particular machine.
 | |
| For example: The vax2 distribution is tailoerd to BSD4.1, but has #define's
 | |
| for BSD4.1c and BSD4.2.
 | |
| For the names and places of these define's look in EM_DIR/mach/vax2/cg and
 | |
| EM_DIR/mach/vax2/libem.
 | |
| .NH
 | |
| Recompilation
 | |
| .PP
 | |
| The kit comes with binaries in the directories \fBbin\fP and
 | |
| \fBlib\fP.
 | |
| Some directories among mach/*/lib contain archives with object files,
 | |
| notably mach/pdp/lib.
 | |
| The binaries and object files are for a PDP 11/44 with floating
 | |
| point running UNIX V7.
 | |
| .PP
 | |
| Almost all directories contain a "Makefile" or a shell command file called
 | |
| "make".
 | |
| Apart from commands applying to that specific directory these
 | |
| files all recognize a few special commands.
 | |
| When called with one of these they will apply the command to
 | |
| their own directory and all subdirectories.
 | |
| The special commands are:
 | |
| .IP "install" 20
 | |
| recompile and install all binaries and libraries.
 | |
| .br
 | |
| Some Makefiles allow errors to occur in the programs they call.
 | |
| They ignore such errors and notify the user with the message
 | |
| "~....... error code n: ignored".
 | |
| Whenever such a message appears in the output you can ignore it
 | |
| too.
 | |
| .br
 | |
| The installation of the PUBMAC macro package is not done
 | |
| automatically from the higher level directory.
 | |
| .IP "cmp"
 | |
| recompile all binaries and libraries and compare them to the
 | |
| ones already installed.
 | |
| .IP pr
 | |
| print the sources and documentation on the standard output.
 | |
| .IP opr
 | |
| make pr | opr
 | |
| .br
 | |
| Opr should be an off-line printer daemon.
 | |
| On some systems it exists under another name e.g. lpr.
 | |
| The easiest way to call such a spooler is using a shell script
 | |
| with the name opr that calls lpr.
 | |
| This script should be placed in /usr/bin or EM_DIR/bin or
 | |
| one of the directories in your PATH.
 | |
| .IP clean
 | |
| remove all files not needed for day-to-day use,
 | |
| that is binaries not in bin or lib, object files etc.
 | |
| .LP
 | |
| Example:
 | |
| .nf
 | |
| .sp 1
 | |
|         make install
 | |
| .sp 1
 | |
| .fi
 | |
| given as command in the home directory will cause
 | |
| recompilation of all programs in the kit.
 | |
| .LP
 | |
| Recompilation of the complete kit lasts about 9 hours an a PDP
 | |
| 11/44.
 | |
| .NH 2
 | |
| Recompilation on a different machine.
 | |
| .PP
 | |
| Installation on other systems will often require recompilation
 | |
| of all programs.
 | |
| The presence of a C compiler is essential for recompilation.
 | |
| Except the Pascal compiler proper all programs are written in C.
 | |
| Some modules are derived from \fIyacc\fP sources.
 | |
| Retranslating these programs from that yacc source is not
 | |
| necessary, although it might improve performance.
 | |
| Some versions of \fIyacc\fP 'know' that the resulting C programs will
 | |
| run on a 32-bit int machine.
 | |
| C modules produced by such a \fIyacc\fP are not portable and
 | |
| should not be used to (cross)compile programs for 16-bit machines.
 | |
| We assume a version UNIX which, apart from the C-compiler,
 | |
| contains most normal utilities, like ed, sed, grep, make, the
 | |
| Bourne shell etc.
 | |
| All Makefiles use the system C-compiler.
 | |
| The existence of a backend for your system is of course essential
 | |
| if you wish to produce executable files for that system.
 | |
| When the backend exists it is also possible to boot the Pascal
 | |
| Compiler,
 | |
| that is written in Pascal itself.
 | |
| The kit contains the compact code files for the 2/2 and 2/4
 | |
| versions of the Pascal compiler.
 | |
| The current version of this compiler can only be used on machines
 | |
| with a 16-bit word size and 16- or 32-bit pointers.
 | |
| The Makefile automatically tries to boot the Pascal compiler
 | |
| from one of these compact code files, if the compiler proves
 | |
| unable to compile itself.
 | |
| .PP
 | |
| The native assemblers and loaders are used on PDP-11 and VAX.
 | |
| The description files in lib/ack for other systems use our
 | |
| universal assembler.
 | |
| The load file produced by this assembler is not directly
 | |
| usable in any system known to us,
 | |
| but has to be converted before it can be put to use.
 | |
| The \fIdl\fP programs present for some machines unravel
 | |
| these load files and transmit commands to load memory
 | |
| to a microprocessor over a serial line.
 | |
| The PDP-11 version of our universal assembler is supplied
 | |
| with a conversion program.
 | |
| The file man/a.out.5 contains a description of the format of
 | |
| the universal assembler load file,
 | |
| it might be useful to those who wish or need to write their
 | |
| own conversion programs.
 | |
| .br
 | |
| Berkeley UNIX for the VAX'en has (at least) three different
 | |
| versions, BSD4.1a, BSD4.1c and BSD4.2. The READ_ME files in the
 | |
| directories mach/vax2/cg, mach/vax2/libem, mach/vax4/cg and
 | |
| mach/vax4/libem tell you how to adapt the vax2 and vax4 backend
 | |
| to these versions.
 | |
| .NH 2
 | |
| Recompiling libraries
 | |
| .PP
 | |
| The kit contains sources for part II and III of the C-library, except
 | |
| the math functions, they are grabbed from our V7 system and sometimes
 | |
| altered in a EM dependent way or replaced altogether when the original
 | |
| was in assembly.
 | |
| These files can be used to make libraries for the Ack C-compiler.
 | |
| The recompilation process uses a few include files.
 | |
| The include directory in the EM home directory contains a few more
 | |
| or less system independent include files.
 | |
| The system dependent include files are fetched from /usr/include
 | |
| on the system you use to recompile.
 | |
| This may lead to several problems.
 | |
| Sometimes the system differs so much from V7 that certain manifest constants
 | |
| do not exist any more.
 | |
| At other times these include files were written for a compiler without
 | |
| a restriction on name length.
 | |
| In that case - I've seen it happen - people tend to use differing
 | |
| identifiers that are identical in the first eight characters.
 | |
| All these problems you have to solve yourself,
 | |
| the libraries are only included as an extra and too much system
 | |
| dependent to give any guarantees.
 | |
| .NH
 | |
| Fixes to the UNIX V7 system
 | |
| .PP
 | |
| UNIX System V7 has a few bugs that prevent a part of or the whole kit
 | |
| from working properly.
 | |
| To be honest, we do not know which of the following changes are
 | |
| essential to the functioning of our kit.
 | |
| .PP
 | |
| The file "doc/v7bugs.doc" gives for each of the following bugs
 | |
| a small test program and a diff listing of the source files that have to be
 | |
| modified.
 | |
| .IP 1
 | |
| Bug in the C optimizer for unsigned comparison
 | |
| .nr PD 0
 | |
| .IP 2
 | |
| The loader 'ld' fails for large data and text portions
 | |
| .IP 3
 | |
| Floating point registers are not saved if more memory is needed.
 | |
| .IP 4
 | |
| Floating point registers are not copied to child in fork().
 | |
| .nr PD 1v
 | |
| .LP
 | |
| Use the test programs to see if the errors are present in your system
 | |
| and to check if the modifications are effective.
 | |
| .NH
 | |
| Testing
 | |
| .PP
 | |
| Test sets are available in Pascal, C and EM assembly.
 | |
| .IP em 8
 | |
| .br
 | |
| The directory emtest contains a few EM test programs.
 | |
| The EM assembly files in these tests must be transformed into
 | |
| load files, thereby avoiding use of the EM optimizer.
 | |
| These tests use the LIN and NOP instructions to mark the passing of each
 | |
| test.
 | |
| The NOP instruction prints the current line number during the
 | |
| test phase.
 | |
| Each test notifies its correctness by calling LIN with a unique
 | |
| number followed by a NOP which prints this line number.
 | |
| The test finishes normally with 0 as the last number printed
 | |
| In all other cases a bug showed its
 | |
| existence.
 | |
| .IP Pascal
 | |
| .br
 | |
| The directory lang/pc/test contains a few pascal test programs.
 | |
| All these programs print the number of errors found and a
 | |
| identification of these errors.
 | |
| .IP C
 | |
| .br
 | |
| The sub-directories in lang/cem/ctest contain C test programs.
 | |
| The idea behind these tests is:
 | |
| when you have a program called xx.c, compile it into xx.cem.
 | |
| Run it with standard output to xx.cem.r, compare this file to
 | |
| xx.cem.g, a file containing the 'ideal' output.
 | |
| Any differences will point to implementation differences or
 | |
| bugs.
 | |
| Giving the command "run gen" or plain "run" starts this
 | |
| process.
 | |
| The differences will be presented on standard output.
 | |
| The contents of the result files depend on the wordsize,
 | |
| the xx.cem.g files on the distribution are intended for a
 | |
| 16-bit machine.
 | |
| .NH
 | |
| Documentation
 | |
| .PP
 | |
| Manual pages for Amsterdam Compiler Kit can be copied
 | |
| to "/usr/man/man?" by the
 | |
| following commands:
 | |
| .DS
 | |
| cd man
 | |
| make install
 | |
| .DE
 | |
| .LP
 | |
| Several documents are provided:
 | |
| .DS
 | |
| doc/toolkit.doc: a general overview
 | |
| doc/pcref.doc: the Pascal-frontend reference manual
 | |
| doc/val.doc: the results of running the Pascal Validation Suite
 | |
| doc/cref.doc: the C-frontend manual
 | |
| doc/em.doc: a description of the EM machine architecture
 | |
| doc/peep.doc: internal documentation for the peephole optimizer
 | |
| doc/cg.doc: documentation for backend writers and maintainers
 | |
| doc/regadd.doc: addendum to previous document describing register variables
 | |
| doc/install.doc: this document
 | |
| .DE
 | |
| .LP
 | |
| The Validation Suite is a collection of more than 200 Pascal programs,
 | |
| designed by Brian Wichmann and Arthur Sale to test Pascal compilers.
 | |
| We are not allowed to distribute it, but you may
 | |
| request a copy from
 | |
| .DS
 | |
| Richard J. Cichelli
 | |
| A.N.P.A.
 | |
| 1350 Sullivan Trail
 | |
| P.O. Box 598
 | |
| Easton, Pennsylvania 18042
 | |
| USA
 | |
| .DE
 | |
| .LP
 | |
| Good luck.
 |