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