Avoid informal usage of 'you'

This commit is contained in:
ceriel 1991-11-19 17:25:02 +00:00
parent 8f0ef636ab
commit ca72abbf26

View file

@ -16,7 +16,7 @@ Introduction
.PP
This document
describes the process of installing the Amsterdam Compiler Kit (ACK).
It depends on your combination of hard- and software how
It depends on the combination of hard- and software how
hard it will be to install the Kit.
This description is intended for a Sun-3 or SPARC workstation.
Installation on VAXen running Berkeley
@ -31,8 +31,7 @@ See section 8 for installation on other systems.
.NH
The ACK installation process
.PP
Before starting the installation, you need to know some things about the
installation process. In this process, three directory trees are used:
In the ACK installation process, three directory trees are used:
.IP "-"
the ACK source tree. This is the tree on the ACK distribution medium.
For the rest of this document, we will refer to this directory
@ -88,14 +87,9 @@ contains the file "ip_spec.t" needed for EM interpreters and EM documentation.
.IP "config"
contains two include files:
.TS
l lw(4.5i).
em_path.h T{
path names used by \fIack\fP, intended
for all utilities
T}
local.h T{
various definitions for local versions
T}
l l.
em_path.h path names used by \fIack\fP, intended for all utilities
local.h various definitions for local versions
.TE
These include files are specific for the current machine, so they
are in a separate directory.
@ -115,90 +109,37 @@ in the library lang/cem/libcc/mon.
.IP "h"
the #include files for:
.TS
l lw(4.5i).
arch.h T{
definition of the ACK archive format
T}
as_spec.h T{
used by EM assembler and interpreters
T}
bc_io.h T{
used by the Basic run-time system
T}
bc_string.h T{
used by the Basic run-time system
T}
cg_pattern.h T{
used by the backend program "cg" and its bootstrap
T}
cgg_cg.h T{
used by the backend program "ncg" and its bootstrap
T}
em_abs.h T{
contains trap numbers and address for lin and fil
T}
em_ego.h T{
definition of names for some global optimizer messages
T}
em_flag.h T{
definition of bits in array em_flag in $TARGET_HOME/lib.bin/em_data.a.
Describes parameters effect on flow of instructions
T}
em_mes.h T{
definition of names for mes pseudo numbers
T}
em_mnem.h T{
instruction => compact mapping.
T}
em_pseu.h T{
pseudo instruction => compact mapping
T}
em_ptyp.h T{
useful for compact code reading/writing,
defines classes of parameters
T}
em_reg.h T{
definition of mnemonics indicating register type
T}
em_spec.h T{
definition of constants used in compact code
T}
ip_spec.h T{
used by programs that read e.out files
T}
m2_traps.h T{
used by the Modula-2 run-time system
T}
ocm_chan.h T{
used by the occam run-time system
T}
ocm_parco.h T{
used by the occam run-time system
T}
ocm_proc.h T{
used by the occam run-time system
T}
out.h T{
defines the ACK a.out format
T}
pc_err.h T{
definitions of error numbers in Pascal
T}
pc_file.h T{
macro's used in file handling in Pascal
T}
pc_size.h T{
sizes of objects used by Pascal compiler and run-time system
T}
pc_math.h T{
used by the Pascal runtime system
T}
ranlib.h T{
defines symbol table format for archives
T}
stb.h T{
defines debugger symbol table types
T}
l l.
arch.h definition of the ACK archive format
as_spec.h used by EM assembler and interpreters
bc_io.h used by the Basic run-time system
bc_string.h used by the Basic run-time system
cg_pattern.h used by the backend program "cg" and its bootstrap
cgg_cg.h used by the backend program "ncg" and its bootstrap
em_abs.h contains trap numbers and address for lin and fil
em_ego.h definition of names for some global optimizer
messages
em_flag.h definition of bits in array em_flag in
$TARGET_HOME/lib.bin/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_reg.h definition of mnemonics indicating register type
em_spec.h definition of constants used in compact code
ip_spec.h used by programs that read e.out files
m2_traps.h used by the Modula-2 run-time system
ocm_chan.h used by the occam run-time system
ocm_parco.h used by the occam run-time system
ocm_proc.h used by the occam run-time system
out.h defines the ACK a.out format
pc_err.h definitions of error numbers in Pascal
pc_file.h macro's used in file handling in Pascal
pc_math.h used by the Pascal runtime system
ranlib.h defines symbol table format for archives
stb.h defines debugger symbol table types
.TE
.IP "modules"
root of a tree containing modules for compiler writers.
@ -221,22 +162,25 @@ the EM interpreter written in Pascal.
man files for various utilities.
.if n .nr PD 1v
.LP
If you have a shared file system and want to install ACK on several types
of machines, it may be useful to know that the "doc", "etc", "h",
When installing ACK on several types of machines with a shared file system,
it may be useful to know that the "doc", "etc", "h",
"include", "lib" and "man" sub-directories do not depend on this
particular installation. They do not contain binaries or path-dependent
information. These directories can therefore be shared between the
ACK installations. This can be accomplished by creating the tree and
suitable symbolic links before starting the installation process.
.LP
For instance, let us say you have a file-system that is accessible from
the different machines as "/usr/share/local". You can then create a
directory "/usr/share/local/ack", and give it subdirectories "doc", "etc", "h",
"include", "lib" and "man". Also, let us assume that you want the
ack binary tree in "/usr/local/ack". You can create this directory and
For instance, let us say there is a file-system that is accessible from
the different machines as "/usr/share/local", and the ACK binary tree
must be installed in "/usr/local/ack". In this case, proceed as follows:
.IP \-
create a directory "/usr/share/local/ack", with subdirectories
"doc", "etc", "h", "include", "lib" and "man".
.IP \-
create a directory "/usr/local/ack" and
then create symbolic links "doc" to "/usr/share/local/ack/doc", etc.
.LP
If you do this on all machines on which ACK will be installed, the
If this is done on all machines on which ACK will be installed, the
machine-independent part only has to be installed once, preferably
on the fastest processor (it takes a long time to install all libraries).
.LP
@ -267,77 +211,33 @@ are used for which systems.
These directories have subdirectories named:
.in +3n
.TS
l lw(4i).
cg T{
the backend (*.m => *.s)
T}
ncg T{
the new backend (*.m => *.s)
T}
as T{
the assembler (*.s => *.o) or
assembler/linker (*.s + libraries => a.out)
T}
cv T{
conversion programs for a.out files
T}
dl T{
down-load programs
T}
top T{
the target optimizer
T}
int T{
source for an interpreter
T}
l l.
cg the backend (*.m => *.s)
ncg the new backend (*.m => *.s)
as the assembler (*.s => *.o) or
assembler/linker (*.s + libraries => a.out)
cv conversion programs for a.out files
dl down-load programs
top the target optimizer
int source for an interpreter
libbc T{
used to create Basic run-time system and libraries
T}
libcc T{
used to create C run-time system and libraries
T}
libcc.ansi T{
used to create ANSI C run-time system and libraries
T}
libpc T{
used to create Pascal run-time system and libraries
T}
libf77 T{
used to create Fortran run-time system and libraries
T}
libm2 T{
used to create Modula-2 run-time system and libraries
T}
liboc T{
used to create occam run-time system and libraries
T}
libem T{
sources for EM runtime system, only depending on CPU type
T}
libend T{
sources of library defining end, edata, etext
T}
libfp T{
used to create floating point library
T}
libdb T{
used to create debugger support library
T}
libsys T{
sources for system-dependent EM library
T}
libce T{
sources for fast cc-compatible C compiler library support
T}
libbc to create Basic run-time system and libraries
libcc to create C run-time system and libraries
libcc.ansi to create ANSI C run-time system and libraries
libpc to create Pascal run-time system and libraries
libf77 to create Fortran run-time system and libraries
libm2 to create Modula-2 run-time system and libraries
liboc to create occam run-time system and libraries
libem EM runtime system, only depending on CPU type
libend library defining end, edata, etext
libfp to create floating point library
libdb to create debugger support library
libsys system-dependent EM library
libce fast cc-compatible C compiler library support
ce T{
code expander (fast back-end producing either .s or .o files)
T}
ce code expander (fast back-end)
test T{
various tests
T}
test various tests
.TE
.in -3n
Actually, some of these directories will only appear in the configuration tree.
@ -462,7 +362,7 @@ a part of ACK, but is included because it adds another language.
The Fortran system carries the following copyright notice:
.IP ""
.nf
/****************************************************************
/**************************************************************
Copyright 1990, 1991 by AT&T Bell Laboratories and Bellcore.
Permission to use, copy, modify, and distribute this software
@ -483,7 +383,7 @@ whatsoever resulting from loss of use, data or profits, whether
in an action of contract, negligence or other tortious action,
arising out of or in connection with the use or performance of
this software.
****************************************************************/
**************************************************************/
.fi
.IP "lang/fortran/comp"
.br
@ -602,14 +502,14 @@ 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.
.NH
Adapting ACK to your system
Adapting ACK to the local system
.PP
Before compiling the sources in the Kit some installation dependent
actions have to be taken.
Most of these are performed by an interactive shell script in the file
.I $SRC_HOME/first/first.
If you don't want to write in the $SRC_HOME tree you can call this
script from another directory, for instance an empty directory which will later
Calling this script should be done
from another directory, for instance an empty directory which will later
become $CONFIG.
.LP
The actions of the
@ -618,11 +518,11 @@ script are:
.if n .sp 1
.if n .nr PD 0
.IP \-
Asking you for the path names of the ACK source directory ($SRC_HOME), the
Asking for the path names of the ACK source directory ($SRC_HOME), the
configuration directory ($CONFIG), and the ACK users directory ($TARGET_HOME).
You will need about 5M for the configuration tree. The disk space needed
for the ACK users tree depends on which front-ends and back-ends you want
to install.
About 5M are needed for the configuration tree. The disk space needed
for the ACK users tree depends on which front-ends and back-ends are to be
installed.
For instance, on our SPARC systems
we have installed all languages and 6 back-ends, including the
system-independent part. This amounts to about 16M.
@ -633,45 +533,25 @@ We also have the fast ACK compilers
installed on the SUN-3's.
The total amount of disk-space used is less than 8M.
.IP \-
Asking you for the type of system you have
Asking for what type of system the binary tree must be produced for
and creating the shell script "ack_sys" in the Kit's bin directory.
Several utilities make use of "ack_sys" to determine the type of
system you have.
system.
The current choice is between:
.TS
c cw(3i) c
l lw(3i) l.
c c c
l l l.
answer system type default machine
vax_bsd4_1a T{
VAX11 with BSD4.1a
T} vax4
vax_bsd4_2 T{
VAX11 with BSD4.2
T} vax4
vax_sysV_2 T{
VAX11 with System V.2
T} vax4
i386 T{
Intel 80386 system running Xenix System V
T} i386
sun3 T{
Sun-3 Motorola 68020 workstation
T} sun3
sun2 T{
Sun-2 Motorola 68010 workstation
T} sun2
m68_sysV_0 T{
68000 with Uniplus UNIX System V.0
T} mantra
m68020 T{
Motorola M68020 VME131 running Unix System V/68 R2V2.1
T} m68020
sparc T{
Sun-4 or SPARC workstation
T} sparc
ANY T{
Neither of the above
T} ???
vax_bsd4_1a VAX11 + BSD4.1a vax4
vax_bsd4_2 VAX11 + BSD4.2 vax4
vax_sysV_2 VAX11 + System V.2 vax4
i386 Intel 80386 system + Xenix System V i386
sun3 Sun-3 Motorola 68020 workstation sun3
sun2 Sun-2 Motorola 68010 workstation sun2
m68_sysV_0 68000 + Uniplus System V.0 mantra
m68020 Motorola 68020 VME131 + System V/68 R2V2.1 m68020
sparc Sun-4 or SPARC workstation sparc
ANY Neither of the above ???
.TE
For some of these, the installation procedure has not been tested, as
we don't have them.
@ -679,19 +559,19 @@ For others, the installation procedure has only been tested with earlier
distributions, as we don't have those systems anymore.
However, the sun3 and sparc systems are known to behave reasonably.
The Sun systems should run SunOs Release 3.0 or newer.
If your system is not on this list, choose one that comes close.
If the target system is not on this list, choose one that comes close.
If none of them come close, use the "ANY" choice.
For ANY you can use any name you fancy,
but the Kit will not be able to compile programs for your system.
If you want to do that you have to read the section about "compilation
For ANY, any name can be used,
but the Kit will not be able to compile programs for the target system.
See the section about "compilation
on a different machine".
.IP \-
Setting the default machine for which code is
produced to your own type of system according to the table above.
produced to the local type of system according to the table above.
This in done in the file "$TARGET_HOME/config/local.h".
See also the section 9.1.
See also section 9.1.
.IP \-
Asking you for things that you may not want to install.
Asking for things that don't have to be installed.
.IP \-
Producing a shell script called "INSTALL" that will take care of the
ACK installation process.
@ -703,7 +583,7 @@ Some actions still have to be done by hand:
.if n .nr PD 0
.IP \-
The installation of the PUBMAC macro package is not done
automatically because you need super-user privileges to do
automatically because super-user privileges are needed to do
that on most systems.
This macro package is used with several of the documents
provided in the Kit.
@ -744,14 +624,14 @@ The Makefiles adhere to a standard which is described in the
section 9.
.IP \-
Copy "Action" files to the configuration tree and editing them to
reflect your choices concerning the parts of ACK that you want
to install. "Action" files are described below.
reflect the choices concerning the parts of ACK that have to be
installed. "Action" files are described below.
.IP \-
Copy part of the source tree to the ACK users tree (include files,
manual pages, documentation, et cetera).
.IP \-
Calling the "TakeAction" script.
You do not have to start all the Makefiles separately.
All these Makefiles do not have to be called separately.
We wrote a shell script calling the make's needed to install
the whole Kit.
This script consists of the file $SRC_HOME/TakeAction
@ -762,29 +642,28 @@ The default action is to start "make install && make clean".
The output of each make is diverted to a file called "Out"
in the same directory as the make was started in.
If the make was successful (return code 0) the Out file is removed
and the script TakeAction produces a small message telling you
and the script TakeAction produces a small message indicating
that it succeeded in fulfilling its goal.
If the make was not successful (any other return code) the Out file
is left alone for further examination and a small message telling you
to look at that file is produced by TakeAction.
is left alone for further examination and the script TakeAction
produces a small message indicating that it failed.
.br
For some programs the scripts already know they can't be
installed on your type of system.
installed on the local type of system.
In that case they produce a message "Sorry, ....." and
happily proceed with further installation commands.
.if n .sp 1
.if n .nr PD 1v
.LP
Compilation of the whole Kit might take anything from a few
hours to more than a day, depending on the speed of your machine and
your choices.
Installation of the Kit might take anything from a few
hours to more than a day, depending on the speed of the local machine and
what must be installed.
.LP
If this compilation went reasonably successful you should be able
to use the Kit.
If the installation succeeded, the Kit is ready to be used.
Read section 6 and the manuals provided
with the Kit (in the $TARGET_HOME/man directory) on how to use it.
.NH 2
Problems you may meet
Problems
.NH 3
on Unisoft m68000 systems.
.PP
@ -850,13 +729,13 @@ An example output of TakeAction.
.sp 1
.fi
.LP
The lines starting with "Sorry, " tell you that certain programs cannot
be translated on your machine.
The lines starting with "Failed for" tell
you that certain programs/libraries were expected to,
The lines starting with "Sorry, " indicate that certain programs cannot
be translated on the local machine.
The lines starting with "Failed for" indicate
that certain programs/libraries were expected to,
but did not compile.
In this example, the installation of LINT failed.
If you want to repeat a certain part of the installation, look in
To repeat a certain part of the installation, look in
the Action file, which resides in the root of the configuration tree,
for the directory in which that part is to be found.
If that directory contains an Action file issue the command
@ -885,9 +764,9 @@ the EM interpretator for the PDP-11.
.IP \fILLgen\fP
the LL(1) parser generator.
.IP \fIack_sys\fP
a shell script producing an identification of your system.
a shell script producing an identification of the target system.
Used by some utilities to determine what is, and what is
not feasible on your system.
not feasible on the target system.
.IP \fImarch\fP
a shell script used while compiling libraries.
.IP "\fIasize\fP, \fIanm\fP, \fIastrip\fP"
@ -931,13 +810,13 @@ Any call name not being \fIcc\fP, \fIacc\fP, \fIabc\fP, \fIpc\fP, \fIf2c\fP,
interpreted as the name of a 'machine description' and the
program will try to find a description file with that name.
The installation process will only touch the utilities in the $TARGET_HOME/bin
directory, not your own copies.
directory, not copies of these utilities.
.NH
Machines
.PP
Underneath you will find a table with entries for all commands in
Below is a table with entries for all commands in
the bin directory used to (cross)compile for a particular machine.
The name in the first column give the name in the bin directory.
The name in the first column gives the name in the bin directory.
The column headed dir indicates which subdirectories of
$TARGET_HOME/lib and/or $TARGET_HOME/lib.bin are needed for compilation.
The column head i/p contains the integer and pointer size used in units of
@ -971,47 +850,47 @@ sparc Sun-4 4/4 C * sparc
Modula-2
Fortran
m68k2 M68000/Unisoft 2/4 C + m68k2
Pascal
m68k2 M68000/ 2/4 C + m68k2
Unisoft Pascal
Basic
occam
Modula-2
m68k4 M68000/Unisoft 4/4 C + m68k4
Pascal m68k2
m68k4 M68000/ 4/4 C + m68k4
Unisoft Pascal m68k2
Basic
occam
Modula-2
Fortran
pmds M68000/PMDS 2/4 C + pmds Philips Micro
Pascal m68k2 Devel. System
pmds M68000/ 2/4 C + pmds Philips Micro
PMDS Pascal m68k2 Devel. System
Basic
occam
Modula-2
pmds4 M68000/PMDS 4/4 C + pmds4 Philips Micro
Pascal m68k2 Devel. System
pmds4 M68000/ 4/4 C + pmds4 Philips Micro
PMDS Pascal m68k2 Devel. System
Basic m68k4
occam
Modula-2
Fortran
mantra M68000/SysV.0 4/4 C + mantra
Pascal m68k2
mantra M68000/ 4/4 C + mantra
Sys V.0 Pascal m68k2
Basic m68k4
occam
Modula-2
Fortran
m68020 M68020/V/68 4/4 C + m68020
R2V2.1 Pascal
m68020 M68020/ 4/4 C + m68020
Sys V/68 R2V2.1 Pascal
Basic
occam
Modula-2
Fortran
sun3 Sun-3 R3.0 4/4 C + sun3
sun3 Sun-3 R4.1 4/4 C + sun3
Pascal m68020
Basic
occam
@ -1031,14 +910,14 @@ i86 IBM PC/IX 2/2 C + i86 IBM PC with PC/IX
occam
Modula-2
xenix3 Microsoft Xenix V3 2/2 C + xenix3 IBM AT with Xenix
Pascal i86
xenix3 Microsoft 2/2 C + xenix3 IBM AT with Xenix
Xenix V3 Pascal i86
Basic
occam
Modula-2
i386 SCO Xenix System V 4/4 C + i386 Intel 80386
Pascal Xenix System V
i386 SCO Xenix 4/4 C + i386 Intel 80386
System V Pascal Xenix System V
Basic
occam
Modula-2
@ -1058,7 +937,7 @@ minixST ST Minix 2/4 C + minixST Atari ST running Minix
z8000 Zilog 8000 2/2 C z8000 Central Data
Pascal CPU board
Basic Uses assembler/loader
Basic Assembler/loader
occam
Modula-2
@ -1081,7 +960,7 @@ em44 EM machine 4/4 C * em44 Needs interpreter
Modula-2
Fortran
6500 6502/BBC 2/2 C 6500 Uses assembler/loader
6500 6502/BBC 2/2 C 6500 Assembler/loader
Pascal
Basic
occam
@ -1112,10 +991,10 @@ z80 Hermac/z80 2/2 C z80 \fIi80\fP is faster
occam
Modula-2
s2650 Signetics 2650 s2650 Assembler only
s2650 Signetics s2650 Assembler only
arm Acorn Archimedes 4/4 C * arm Uses assembler/loader
Pascal
arm Acorn 4/4 C * arm Assembler/loader
Archimedes Pascal
Basic
occam
Modula-2
@ -1148,17 +1027,17 @@ machine.
The presence of most
.UX
utilities is essential for compilation.
A few of the programs you certainly need are: C-compiler, sed,
A few of the programs certainly needed are: C-compiler, sed,
make, and awk.
.NH 2
Backend
.PP
The existence of a backend with a system call library
for your system is essential
if you wish to produce executable files for that system.
for the target system is essential
for producing executable files for that system.
Rewriting the system call library if the one supplied does
not work on your system is fairly straightforward.
If no backend exists for your CPU type you have to write one yourself
not work on the target system is fairly straightforward.
If no backend exists for the target CPU type, a new backend has to be written
which is a major undertaking.
.NH 2
Universal assembler/loader, link editor
@ -1192,9 +1071,9 @@ The machine name used for default is determined by the
definition of ACKM in $TARGET_HOME/config/local.h.
The Kit is distributed with "sun3" as the default machine,
but the shell script "first" in the directory "first" alters this
to suit your own system.
to suit the target system.
There is nothing against using the Kit as a cross-compiler
and by default produce code that can't run on your own system.
and by default produce code that can't run on the local system.
.NH 2
Pathnames
.PP
@ -1205,7 +1084,7 @@ 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 ($SRC_HOME).
directory for the Compiler Kit binaries on the local system ($TARGET_HOME).
This is done automatically by the shell script "first" in the
directory "first".
Em_path.h also specifies which directory should be used for
@ -1234,8 +1113,7 @@ recompile and install all binaries and libraries.
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.
Whenever such a message appears in the output it can be ignored.
.IP "cmp"
recompile all binaries and libraries and compare them to the
ones already installed.
@ -1249,7 +1127,7 @@ 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 $TARGET_HOME/bin or
one of the directories in your PATH.
one of the directories in the PATH environment variable.
.IP clean
remove all files not needed for day-to-day use,
that is binaries not in $TARGET_HOME/bin or $TARGET_HOME/lib.bin, object files etc.
@ -1287,8 +1165,8 @@ identification of these errors.
We also tested Pascal with the Validation Suite.
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
We are not allowed to distribute it, but a copy may
be requested from
.DS
Richard J. Cichelli
A.N.P.A.
@ -1300,7 +1178,7 @@ USA
.IP C
the sub-directories in $SRC_HOME/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.
if there is 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