MTB 257
MTB-257 MTB-257
User Manual: MTB-257
Open the PDF directly: View PDF .
Page Count: 4
Download | |
Open PDF In Browser | View 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 : 4EXIF Metadata provided by EXIF.tools