Trailing-Edge
-
PDP-10 Archives
-
BB-J941C-BB_A19
-
bliss.hlp
There are 8 other files named bliss.hlp in the archive. Click here to see a list.
BLISS.HLP--Help file for BLISS-36 Version 3 Feb-82 [4 pages]
1.0 INTRODUCTION
BLISS-36 is a BLISS language compiler that runs under TOPS-10 and
generates code for KA, KI, KS, and KL processors. The BLISS system
consists of the BLISS-36 compiler and a collection of BLISS oriented
utilities and documentation.
The BLISS language is designed for the implementation of system
software. It combines the simplicity, transportability and clarity of
high-level languages, with the precision and flexibility of assembly
languages. Special care has been taken so that the BLISS language is
transportable. Compilers are currently available for
DECsystem-10/DECSYSTEM-20 (BLISS-36), VAX (BLISS-32) and PDP-11
(BLISS-16). Each compiler includes machine specific extensions that
may be used as required. The BLISS-36 compiler optimizes greatly and,
generally, resultant programs are comparable in size and speed to
those coded in assembly language.
This summary, as well as other BLISS documents, assumes that the BLISS
compiler and its object time libraries are installed on SYS:; help
files are installed on HLP:; other documentation is installed on DOC:
and all other files are installed on BLI:.
The file DOC:BLISS.DOC, distributed with this release contains:
o Detailed description of the differences between version 3
(this version) and version 2.1 of BLISS-36
o A list of known bugs in this release
o "Pointers" to other sources of information about BLISS-36 and
its associated utilities
o A list of the major components of the BLISS-36 system
2.0 COMMAND LINE
BLISS uses SCAN to parse the command line, and so its command line is
similar to most other TOPS-10 command lines. Invoke the compiler by
running BLISS. The compiler responds with a prompt (*). The basic
form of the command line is:
*objfil,lstfil=srcfil/switches
or
*@indfil
Default commands can be placed in a SWITCH.INI file, under the name
BLISS.
3.0 SWITCHES
A listing of the available switches is given below. Defaults are
marked with an asterisk(*). The options for the /LIST switch are
described below.
SWITCH DESCRIPTION
/C(ODE)* Generate object code.
/D(EBUG) Generate symbols for debugging, emit debug
linkages, and disable certain optimizations
which might mislead the debugger.
/ERRL(IM):n* Number of compilation errors permitted before
compilation will be automatically terminated.
Default value for "n" is 30 errors.
/ERRS* Report errors to the terminal.
/H(EADER)* Produce a heading on the top of each page of
the listing file including configuration
information.
/KA(10)* Assume generated code is to be executed on a
KA-10.
/KI(10) Assume generated code is to be executed on a
KI-10.
/KS(10) Assume generated code is to be executed on a
KS-10. (Synonymous with /KL10).
/KL(10) Assume generated code is to be executed on a
KL-10 or KL-20.
/LIB(RARY):fs Interpret the source file(s) as a library
source file. The resultant object file is
the precompiled library file that can be
requested from a source program with a
library-declaration. The default file-spec
(fs) name is the same as the source file name
and the default extension is ".L36". Library
files compiled with version 1B or older
compilers must be recompiled using the
current version.
/LIS(T):options Specify certain options to control the format
of the listing file (see below).
/NOxxx Invert the meaning of switch /xxx.
/OPTI(MIZE)* Perform full flow analysis. (Invert meaning
by /OPTIMIZE:NO)
/OPTL(EVEL):n Specify the degree of optimization. N must
be in the range 0 to 3. Request 3 for
maximum optimization. Default is 2.
/P(AGSIZ):n Specify the number of lines printed on each
page of the listing file. N must be greater
than 20. Default is 52.
/Q(UICK) Requests a "quick" compilation, possibly at
the expense of some optimization.
/SA(FE)* Specifies that the source program is coded in
a "safe" manner, i.e. values of named
variables are changed only by explicit
assignment to the named variable. If /NOSAFE
is specified, the compiler assumes that
indirect assignments invalidate a larger
class of variables.
/ST(ATISTICS) Print routine names on the terminal as they
are compiled.
/TOPS1(0)* Produce code to run under TOPS-10.
/TOPS2(0) Produce code to run under TOPS-20.
/U(NAMES) Produce unique names for own variables and
non-global routine names in the listing file
when it is to be assembled.
/V(ARIANT):n Assign n to be the value of the lexical
function %VARIANT. If not present (default),
zero is assumed. If present and no value is
given, 1 is assumed.
/Z(IP) Optimized for time over space if there is a
choice to be made.
The following are the options that can be given with the /LIST switch.
The form of the /LIST switch is given by:
/LIST:option
or
/LIST:(option,option, ...)
A(SSEMBLY) Produce a listing file that can be assembled.
(Some modification may be necessary.)
B(INARY)* Include in the listing file the octal
representation of the binary code generated.
C(OMMENTARY)* Include in the listing file commentary on the
operands of each instruction. Currently,
this consists of a source line number.
E(XPAND) Include the expansion of each macro
invocation. See also the TRACE option.
L(IBRARY) Include a trace identifying the library
accessed by each library-declaration and the
first use of each name whose definition is
obtained from a library file.
NOxxx Invert the meaning of option xxx.
O(BJECT)* List the compiled code. The ASSEMBLY,
SYMBOLIC, BINARY, and COMMENTARY options
determine the format of the compiled code.
R(EQUIRE) Do not modify the listing control counter
(see the SOURCE option) when opening or
closing files specified in a REQUIRE
declaration. In the default case, this
results in not listing each REQUIRE file.
SO(URCE)* Increments the listing control counter. The
initial value of the counter is 1. When the
counter is greater than 0, source is listed.
Require-declarations automatically decrement
the counter for the length of the require
file unless the REQUIRE option is used.
SY(MBOLIC)* List the instructions generated, using as
many program symbols as possible.
T(RACE) Trace macro expansion. This includes the
resulting stream of lexemes produced by
EXPAND.
4.0 ENVIRONMENTS
The BLISS compiler can generate code for a number of different
environments. That is, it can generate code which takes advantage of
special features of a variety of processors (KA10, KI10, KS10 and
KL10) and for either TOPS-10 or TOPS-20. Furthermore, BLISS allows
the user to specify a large variety of routine linkages. Any of these
environmental changes may cause a need for another OTS (operating time
system) or high-level debugger (SIX12). However, in almost all cases,
BLISS will do the right thing automatically. For unusual specialized
situations BLISS requires some help (See DOC:BLISS.DOC for more
details).
[end of BLISS.HLP]