MTB 257

MTB-257 MTB-257

User Manual: MTB-257

Open the PDF directly: View PDF PDF.
Page Count: 4

DownloadMTB-257
Open PDF In BrowserView PDF
Multics Technical Bulletin
To:

Distribution

From:

Steve Webber

Subject:

Proposed new form of Link

va t e :

1 / 1 9/ 76

l'·jTB- 257

lhis MTB proposes adding a new form of link, called a
*system link, to the system and that this link be used for (at
least) PL/I external variables with no embedded dollar signs and
FORTRAN common blocks. The new links would reference a single
component name (i.e., no dollar signs and in particular, no
reference name) and the system linker would know how to resolve
the link. In conjunction with this proposal, it is also proposed
that type 6 (create if not found) links be treated the same as
type 4 links, i.e. complain if not found. This latter proposal
is incompatible and must be modified slightly for a smoother
transition. In particular, the type 6 links that specify "stat_It
as the reference name will be mapped into #system links and the
type 6'links that have a reference name enolng in ".com" will
also be mapped into ~system links. (This mapping will be done
only by the system linker, not by the binder.)
There are two other (possibly common) uses of type
that must be considered. These are:

6

links

1. use of PL/I external variables of the form a$b, and
2. use of common blocks with a dollar sign in the name.
One reason for wanting PL/I external variables of the form
a$b to be created dynamically is that stat_ is not large enough
to handle more than 256K worth of variables. This restriction
would be removed with *system links and hence this reason
for
type 6 links goes away. Another reason for wanting PL/I external
variables of the form a$b is to partition such variables into
classes via the reference names. That is, a user may put a class
of variables in the a$ pool, another class in the foo$ pool, etc.
This can now be done (albeit incompatibly) with something of the
form "a_" or "foo_" as a prefix to the variable name.
The use of common blocks with a dollar sign in the name
allows users to have permanent common blocks. This will continue
to work although, as I understand it, this is nonstandard
fUhlHAN.

Nultics Project internal working documentation. Not
reproduced or di~tributed outside the Multics Project.

to

be

HTb-

Ppge 2
lJetails
The ~system link would
(wl+exp,m) link with a
classes are:

o

1
2
3
4

relative to
relative to
relative to

relative to

type
5
be implemented as a
new class. The currently defined

text
link
symbol
static

It is proposed that 5 be defined as relative to the outside
world, the system.
The linker would keep a table of all 
names found in *system links and would allocate the storage for
the variables in system storage (the combined linkage regions).
This provides for the possibility of a more efficient search
mechanism than the current walk of a linear list of definitions.
It also uses many fewer segments in that FORTRAN common blocks
will in general require a (as opposed to today's 2) segments.
Further, it makes it possible for PL/I programs to easily
reference FORTHAN common blocks and vice-versa. This is because
the new FURlhAN compiler would not add the ".com" suffix to
common block names.
There are some other points to be noted. First, the *system
links will not be able to have a trap-before-link option. This is
because the the trap field (see below) will be used to hold
initialization information for the storage associated with the
link. Another note is that F0RTRA~ blank common, currently
specitied via a link of the form lO, must be special
cased. This is because the size of blank common can not be known
(in Multics) when blank common is first referenced. Hence, the
linker will allocate an entire segment for links of this form.
The use 01 ~system links gives the system a useful check on
the allocation and use of fL/I external variables. That is, the
size ot' the PL/I variables can be checked (when the links are
snapped) against the allocated size. This is not possible with
today's type 6 links because the size is not retained.
Since the linker will have its own manager of *system links,
it will be an easy task to write a program that lists the
locations (and possibly values) of all *system variables. This
would be convenient for debugging.

Page 3

f"lTB-

Ivlappings
The following compatibility mappings are proposed:

OLD
 I Lany-name]
IO
IO
The attached diagram
proposed new links.

NE.W

-systeml[any-name]
*systeml[any-name]
·systemlspecial-for-blank-common
shows

the

actual

format

for

the

Link
(46)8

expression_relp

Linkage
Section

Expression Word

± expression

Definition
Section

Type Pair

type
G-1!ass

=
:c

5
5

offsetname_relp

Init Structure
nwords
action code
image

Figure 1-2.

Str~cture

of a Link

system only



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.3
Linearized                      : No
XMP Toolkit                     : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37
Producer                        : Adobe Acrobat 9.55 Paper Capture Plug-in
Modify Date                     : 2014:11:14 09:38:14-08:00
Create Date                     : 2014:11:14 09:38:14-08:00
Metadata Date                   : 2014:11:14 09:38:14-08:00
Format                          : application/pdf
Document ID                     : uuid:f58a97a9-aede-4345-aa74-1cda5b97c1a0
Instance ID                     : uuid:862c6134-0dd0-7c4f-a8d0-70f66033133e
Page Layout                     : SinglePage
Page Mode                       : UseNone
Page Count                      : 4
EXIF Metadata provided by EXIF.tools

Navigation menu