perm filename SAVED.MSG[CMU,AIL] blob sn#295382 filedate 1977-07-15 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00001 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 ENDMK
C⊗;
∂05-OCT-76  1540	JFR  	Compiler bug  
A very long string constant comment (say, 12 pages of text) gets
TOPBYTE out of range at STRNGC, can be continued, but dies soon afterward.

∂05-OCT-76  1542	JFR  	Runtime error handler bug    
Reply of "E" to runtime error handler calls COMPIL in a way which causes an
infinite loop in COMPIL on TOPS-10 systems.

[Should it start SOS in RPG mode instead?  How is file name and place supposed
to be communicated?]	[Maybe Hedrick "fixed" this.]

∂05-OCT-76  1546	JFR  	Untyped item or itemvar ought to be typed   
begin require 10 new!items;
string array itemvar array x[1:2];
preload!with "A"; string array y1[1:10];
x[1]←new(y1);
outstr(datum(x[1])[1]) end

∂03-Nov-76  2021	FTP:PHILIP KARLTON at CMU-10A	Run time errors when code is in the high segment  
Date:  3 Nov 1976 2316-EST
Sender: PK01 at CMU-10A
Subject: Run time errors when code is in the high segment
From: PHILIP KARLTON at CMU-10A
To: JFR at SU-AI
CC: BZM@CMU-10A
Message-ID: [CMU-10A] 85890 PHILIP KARLTON

John,

Bruce tells me that you may be amused by a problem I am having trying
to convert an existing program into a high segment version.  There are
many modules (some small, some medium size) in this thing, and SAIL
and LINK-10 do not complain about any of the code that I have
done.  (By the way, the program is our version of TENEX's MSG.)
The program has never failed with the code in the low segment, and
there is a heavy user community.

I think that something is going wrong in the string space allocator.
Different people get different run time errors depending upon what
the contents of their message files look like.  I looked at my error
in some detail in DDT and as near as I can make out, at one point,
when CAT is putting two strings together, it allows the new string
to overrun the contents of the string stack, totally screwing up
when the CAT returns.  It looks like it is asking itself if there
is enough room to put the two strings together and coming up with the
wrong answer.  The two strings that are being concatenated at the
time are
	1) a constant string ("0")
	2) a string which has been phonied up to point to an array
	with
		memory[location(STR)]←<some legitimate byte pointer>;
		memory[location(STR)-1]←<desired length>;
It could be that this is the problem, but it works just fine in the
low segment version.

I would like to know if you know of any thing that I should be
looking for in particular.  If you, or any of the heavy SAIL hackers,
are curious about poking around in a version with DDT, then after
getting logged in here at CMUA do
	.ru temp:rdh[n810pk01];rdmail[n810pk01]
which will fail in the way specified above.


Philip Karlton at CMU-10A

-------

∂03-Nov-76  2046	JFR  	Sail string problem
To:   pk01 at CMU-10A  
Sorry, but I am in thesis mode.  I suggest you get the source (in STRSER, on
[A7xxSA00] at CMUB or [S,AIL] at SUAI) and step through.
Your message will be added to the Sail mail file.

∂23-Nov-76  0312	JED  	more SAIL bugs
To:   MJC, JED, AIL    
I think I've found another bug in SAIL. The program in BUG2.SAI[1,JED]
blows up. As far as I can tell, it's syntactically and semantically correct.
I'd appreciate any comment on this, or an acknowledgement of this message.

[DRYROT TMPALL. l. 20, at end "setup"]

begin "bug2"

record_class EDGE (string foo; record_pointer (EDGE) bar);

record_pointer (EDGE) temp;

procedure SETUP;
begin "setup"
  record_pointer (EDGE) array ptr[1:10];
  temp ← (if ptr[1]=null_record then
    (ptr[1] ← new_record(EDGE)) else ptr[1]);
end "setup";

end "bug2";

∂23-Nov-76  1915	JFR  	profil   
RECURSIVE RECORD!POINTER(FOO) PROCEDUREs cause
PROFIL to bomb with a message "illegal type".
Works ok on RECORD!POINTER(FOO) PROCEDUREs.
Also works on RECORD!POINTER(FOO) RECURSIVE PROCEDUREs.

∂05-Dec-76  0205	JED  	SAIL bug 
The program in BUG3.SAI[1,JED] produces a strange reaction from SAIL - it
generates the message
   ATTEMPT TO MARK INVALID RECORD POINTER
The problem seems to involve record allocation -- the statement which
causes the problem works for several times, then bombs out. As far as
I can tell, the controlling factor seems to be the number of records
assocated.
  Thanks.

∂04-Jan-77  1449	JFR  	SAIL typo?    
To:   low at SUMEX-AIM 
TOTAL/10P/31L at INXSTF-2 has a  TRNN SBITS,INDXED  but INDXED is a left-half
bit.  Could this matter?

∂05-Jan-77  1310	FTP:NEVATIA at USC-ECL	SAIL   
Date:  5 JAN 1977 1302-PST
From: NEVATIA at USC-ECL
Subject: SAIL
To:   jfr at SAIL

There is a bug in ATAN2 routine for tenex sail (I have the 8-29-76
version from sumex). ATAN2(1.0,0.0) returns PI/4 rather than PI/2.
However Stanford version works correctly. Try ATAN2.SAI[1,RKN]
for a test. Should I gripe to someone at Sumex (whom?)?
Would appreciate your looking into it. Thanks.
Ram Nevatia (messages to rkn at sail).
[forwarded to daniels %sumex 1-5-77]
-------

∂23-Jan-77  1444	JFR  	Array with constant bounds gets allocated   
begin "test3"
procedure foo; begin
integer array c[1:4]; end;
end "test3"

∂24-Jan-77  0315	MJC  	BAIL
I keep getting ill mem refs by doing αS at the beginning and end of procedures.

∂26-Jan-77  1001	FTP:Agin at SRI-AI	F40 troubles    
Date: 26 Jan 1977 0956-PST
From: Agin at SRI-AI
Subject: F40 troubles
To:   EJG at SU-AI
cc:   JFR at SU-AI, AGIN

Thanks for your help earlier on fixing the F40 compiler to come up
to what SAIL expects of it for passing arguments by indirection.  
In spite of my earlier message that I wasn't going to pursue it
any further, I got the sources from Sweer@Sumex and fixed them to
agree with LCLMOD.DOC.  The new compiler passes on arguments OK,
but here's a new wrinkle.  The following subroutine:
	SUBROUTINE FTEST(A)
	DIMENSION A(10)
	DO 1 I=1,10
1	A(I)=0
	RETURN
	END
generates the following F40 code:
	MOVEI 15,1
	MOVEM 15,I
3M:	MOVE 2,15
	ADD 2,A			; Should be ADDI 2,@A
	SETZM -1(2)
	CAIGE 15,12
	AOJA 15,3M

Please let me know when a fix is found so I can fix our own compiler.
We have several users of SAIL/F40 who have been forced to add an extra
level of subroutine calling to get around this problem.  (Thanks for
your response on passing of indirect arguments--without that we would
be without that temporary fix.)


			--Jerry Agin
-------

∂02-Feb-77  1015	100  : HEDRICK@CMU-10A via NTS	SAIL
SOME USERS HERE HAVE SUGGESTED THAT THE SAIL COMPILER SHOULD COMPLAIN
IF THERE IS EXTRA GARBAGE AT THE END OF A PROGRAM.  IF THERE IS AN
EXTRA END IN A PROGRAM, IT DOESN'T COMPLAIN, SINCE EVERYTHING AFTER
THE END THAT TERMINATES THE PROGRAM IS IGNORED.  I HAVE RECOMMENDED
THAT USERS PUT BLOCK NAMES ON THE OUTER BEGIN-END, WHICH EFFECIVELY
SOLVES THIS PROBLEM, BUT I AGREE WITH THEM THAT IDEALLY SAIL SHOULD
NOT ALLOW GARBAGE AT THE END.

[JFR: ho hum]

INDEED, WHAT WOULD BE EVEN NICER IS IF SAIL WOULD REINITIALIZE
ITSELF AFTER THE TERMINATING END, SO THAT ONE COULD INCLUDE SEVERAL
PROGRAMS IN ONE FILE.  THIS WOULD ALLOW ONE TO PUT A LIBRARY IN
ONE SOURCE FILE, GENERATING SEVERAL MODULES AT ONCE.  CURRENTLY
ONE CAN ONLY GENERATE ONE MODULE PER FILE.  (THIS HAS CAUSED ONE
USER TO WRITE SOMETHING LIKE SCISS FOR SAIL PROGRAM LIBRARIES,
A LESS THAN IDEAL SOLUTION IN MY OPINION.)

[JFR: A bad idea.]

THANKS,
CHUCK HEDRICK
UNIVERSITY OF ILLINOIS
HEDRICK@CMU-10A OR CMU-10B OR ILL-NTS
(PREFERABLY CMU-10A IF IT IS UP)

Heavy Sail Users
(personal recollection of JFR, 2-18-77)

Catastrophe would strike these installations if Sail were not maintained:
	Stanford University Artificial Intelligence Laboratory
	Carnegie-Mellon University Computer Science Department
	SUMEX
	IMSSS
	University of Illinois Coordinated Science Laboratory
	National Institutes of Health
	Federal Judicial Center, Washington, D.C.
	Univeristy of Rochester Computer Science Department, Dept. of Medicine

Others heavily dependent on Sail
	SRI
	College of Medicine & Computer Science Dept., Rutgers University
	TYMSHARE, Inc.
	Stanford University LOTS
	USC-ECL, USC-ISI
	National Radio Astronomy Lab, New Mexico
	Rapidata

Non-trivial use
	XEROX-PARC
	University of Arizona
	Univeristy of Pittsburgh
	many other universities
∂AIL 16 February 1977$COPY-N-MAIL, c/o DECUS↓146 Main Street (PK3-1/E55)
↓Maynard, Mass. 01754$$Sail Maintenance$SAIL.MSG∞
.begin ref;
[1]  John Reiser (ed.), "SAIL", Stanford Artificial Intelligence Lab Memo AIM-289,
178 pages, $6.70/copy, August 1976.

[2]  Nancy W. Smith, "SAIL Tutorial", Stanford Artificial Intelligence Lab
Memo AIM-290, 54 pages, $3.30/copy, November 1976.

[3] Marvin Shapiro, "A Beginner's Guide to SAIL", National
Institutes of Health, Bethesda, Maryand, 134 pages,
no charge for single copies, July 1976.
.end

This note summarizes the state of the Sail programming language,
discusses future maintenance alternatives, and solicits feedback
from users.

SAIL is a dialect of ALGOL 60 that runs under all known operating systems
of DECsystems 10 and 20 (TOPS-10, TOPS-20, TENEX, ITS, and SALTS).
In addition to conventional Algol features, it has
internal representations of sets, lists, and record structures, as well as
macros and conditional compilation, coroutines, events, and backtracking.
In the last month, double precision reals have been added.
A new edition of the manual [1] and a tutorial [2]
can be ordered at the exhorbitant costs listed above from:
Patte Wood, Stanford Artificial Intelligence Lab., Stanford, California 94305.
Another tutorial aimed at reforming Fortran programmers (but containing
a number of bugs) is available free from NIH [3].

SAIL has been under development for about 10 years, but has now stabilized
(I think) and seems to have rather few troublesome bugs.  The last graduate
student who has been involved in its development is now about to receive his
Ph.D. and vanish, so the relatively free maintenance we have enjoyed for so
long is about to end.  Since we and a number of other facilities are heavily
dependent on Sail, we would like to find some way to maintain it.
The salient alternatives appear to be:
.begin preface 0; indent 4,10;nojust
(1) find another student who wishes to work on it,

(2) convince DEC that they should maintain it,

(3) find one or more government agencies that are willing to support maintenance
and hire someone here or elsewhere to do it,

(4) organize a consortium of users who are willing to pay enough to support
maintainence and find a software house that would like to maintain it as a
commercial venture,

(5) abandon maintenance and hope that the environment doesn't change too much.
.end continue
The trouble with (1) is that no one has appeared yet.  As for (2), DEC
seems to have immense inertial resistance to such ideas even when it is in
their own best interest, as I think this would be.  (3) is a possibility
but requires some effort to bring off.  (4) might work well if we could find
the right group and if there is enough support.  (5) is the default and might
work for awhile.

Since the compiler and related programs have been
distributed through DECUS for a number of years, we have
lost track of how many facilities use it.  At the end of this note is a
list of contacts at sites that we are aware of.
To assist in evaluating alternatives, I would appreciate hearing from
anyone having information related to the following questions:
.begin indent 4,10; preface 0;nojust
(1)  Do you know of any facilities using Sail other than those listed below?

(2)  Do you think your organization would be willing to pay $1,000 per year for Sail
maintenance?

(3)  Do you have any other suggestions on how to handle SAIL maintenance?
.end continue
Please send responses to me at the address in the letterhead or via Arpanet
to LES @SU-AI.
.sgn
.if ¬xcribl then start
.  skip; cb Sail Site Contacts;
.  nofill
. end else start 
. every heading(,%3Sail Site Contacts);
. area sites lines 3 to bottom char 1 to 80 in 3  columns 1 apart;
. place sites;
. nojust crbreak; preface 0; indent 0,5;
. BEFORE PAGE ⊂ IF !HF THEN STANDARD TITLES ;; ⊃
. defont(ngr25); select ngr25;
. at null ⊂skip⊃;
. next page
. end
Jo Hanna
ARPA Research Center
Unit 1
Moffett Field, Calif. 94035
415 966-5744  MJH @SU-AI

James T. Mickol
Systems Programmer
Bentley College
Beaver and Forest Streets
Walthan, MA 02154
617 891-2000

Richard Wolfson
Bolt Beranek and Newman Inc.
50 Moulton Street
Cambridge, Mass. 02138

W. Colter
British Columbia Telephone Co.
600 West 7th Ave.
Vancouver, British Columbia
Canada V5Z 1B5

P.E. Brownswood
Senior Systems Analyst
British Columbia Telephone Co.
768 Seymour St.
Vancouver, British Columbia
Canada VV6B 3K9

Lee Erman
Computer Science Dept.
Carnegie-Mellon University
Pittsburgh, Pennsylvania 15213
412 621-2600, ext. 146;  Erman @CMU-10B

Ed Mulrean
Catholic University of America
620 Michigan Ave.
Washington, D.C. 20064

David J. Slater
Computer Science
Colgate University
Hamilton, NY 13346
315 824-4184

Erich Knobil
Cornell University
Laboratory of Nuclear Studies
Wilson Synchrotron
Ithaca, New York 14853
.skip 200
Sandy Libman, Ted Hess
Digital Equipment Corporation
200 Forest Street
Marlboro, MA 01752

Robert Scott Butler
Central Research Department
Experimental Station
E.I. duPont
Wilmington, Delaware 19898

Rick Fennell
Federal Judicial Center
Dolley Madison House
1520 H Street
Washington, DC 20005

Kevin Casey
Computing Center
Gallaudet College
7th and Florida Ave., N.W.
Washington, D.C. 20002

J. Ralph Bender
Assistant Director
Information Systems Division
Gederal Home Loan Bank Board
320 First St., N.W.
Washington, D.C. 20552

Gerald Johns
Computer Systems Lab
George Washington Univ.
724 So. Euclid
St. Louis, Missouri 63110

Brian Harvey
IRCAM
35, Bd. di Sebastopol
75001 Paris, France
	BH @SU-AI

John Wedell
M/S 198-136
Jet Propulsion Lab
4800 Oak Grove Drive
Pasadena, CA 91103

Solis James
Director, University Computing Center
Garland Hall
Johns Hopkins University
Baltimore, Maryland 21218
.skip 200
Winfried Smith
Lockheed
Sunnyvale, Calif.

Tom Knight
MIT Artificial Intelligence Lab
545 Technology Square
Cambridge, Mass. 03139
617 253-6765  TK @MIT-AI

Glenn Ricart
National Institutes of Health
Building 12A, Room 1039
Bethesda, Maryland 20014
	DGR @SU-AI

Lewis Lipkin
National Institutes of Health
Bldg. 36, Room 3009
Bethesda, Maryland 20014

Gary Knott
National Institutes of Health
Bldg. 12A, Room 3049
Bethesda, Maryland 20014

Bob Pariseau
National Radio Astronomy Observatory
P.O. Box O
Socorro, New Mexico 87801

Aaron Engel
C433
National Security Agency
Fort George G. Meade
Maryland

John H. Wolfe
Code 9304
Naval Personnel & Training Research Lab
San Diego, Calif. 92152

Mike Pedelty
Nova University
Ft. Lauderdale, Florida  33314

David Glaser
Computer Center
Pan American University
Edinburg, TX 78539
.skip 200
Norbert J. Kubilus
Rapidata
20 New Dutch Lane
Fairfield, New Jersey 07006

Robert Smith
Department of Computer Science
Rutgers University
New Brunswick, N. J. 
201 932-3626  RSMITH @RUTGERS-10

Carlyle Reeder
Scope Electronics
1860 Michael Faraday Drive
Reston, VA 22090

R.R. Rodriguez
Supervisor of Academic Computer Lab
Southwest Texas State U.
San Marcos, TX 78666

Gerald Agin
SRI
323 Ravenswood Avenue
Menlo Park, Calif. 94025

Les Earnest
Artificial Intelligence Lab.
Stanford University
Stanford, California 94305
415 497-4202  LES @SU-AI

Rainer Schultz
IMSSS
Ventura Hall
Stanford University
Stanford, California

Ralph Gorin
Low Overhead Timesharing System
Stanford University
Stanford, Calif. 94305
415 497-1360  REG @SU-AI

Tom Rindfleisch, Clark Wilcox
Sumex
Department of Genetics
Stanford University
Stanford, California 94305
415 497-5569  @SUMEX
.skip 200
A. W. Kundred, Jane Middlebrooks
The Brookings Institution
1775 Massachusetts Ave., N.W.
Washington, D.C. 20036

Bill Weiher, Gary Morganthaler
Tymshare, Inc.
Technical Division
10231 Bubb Road
Cupertino, Calif. 95014
408 446-6391, 6392

Barry C. Howard
National CTR Computer Center
Lawrence Livermore Laboratory
University of California
P.O. Box 808
Livermore, CA 94550
415 447-100

Dr. B. Neumann
Institut fur Informatik
Universitat Hamburg
Schluterstraβe 66-72
2 Hamburg 13
Germany

Tom Burtnett, Charles Hedrick
Coordinated Science Lab
University of Illinois
Champaign, Illinois 61801
217 333-2511

Bruce Dawson
Computer & Systems Bldg.
Belknap Campus
University of Louisville
Louisville, Kentucky 40208
502 588-6123

Hanan Samet
University of Maryland
College Park, Maryland
	HJS @SU-AI

Peter K. Chiu
Assistant Director for Systems and Operations
University of Mississippi
University, MS 38677
.skip 200
C.M. Reyburn
Department of Biology
Univeristy of Oregon
Eugene, OR 97403

Jerry Feldman, Jim Low
Computer Science Dept.
University of Rochester
Rochester, New York 14627
716 275-5671  LOW @SUMEX

Ram Nevatia
Image Processing Institute
University of Southern California
Los Angeles, Calif. 90007

Dale S. Russell
Information Sciences Institute
University of Southern California
4676 Admiralty Way
Marina del Rey, Calif. 90291
213 822-1511  Dale @ISIB

Ms. Patricia Caroom
Computation Center
University of Texas
Austin, Texas 78712
512 471-7242

T. Stallknecht
Department of Information Science
Victoria University of Wellington
Wellington, New Zealand

Lawrence Johnson
Western Electric
Dept. 7619
4513 Western Ave.
Chicago, IL 60532

Dan Swinehart, Bob Sproull
Xerox Corporation
3333 Coyote Hill Road
Palo Alto, California 94305
415 494-4424, 4417  @XEROX-MAXC
∂18-Feb-77  1253	FTP:GOLDBERG at RUTGERS-10	MEMORY construct in SAIL    
Date: 18 Feb 1977 (Friday) 1552-Est
From: GOLDBERG at RUTGERS-10
Subject: MEMORY construct in SAIL
To:   jfr at SU-AI, ail at SU-AI

Consider the following SAIL statement:

	MEMORY[1]←'10;

SAIL generates code something like:

	HRRZ	2,ONE
	MOVEI	3,10
	MOVEM	3,0(2)

when in fact all that is needed is:

	MOVEI	1,10

The fact that additional code using unneeded AC's
is generated makes life harder for people who want to use
the MEMORY array to manipulate contents of AC's, and it is also
not optimal.  That was the point of my previous 2
messages.

				Sincerely,
				Bob

[JFR -  Sail has never made any claims about generating optimal code.
Besides, if you want to fiddle the acs then you had better have a good
bow (START!CODE).]
∂18-Feb-77  1327	FTP:GOLDBERG at RUTGERS-10	ENTER is SAIL
Date: 18 Feb 1977 (Friday) 1627-Est
From: GOLDBERG at RUTGERS-10
Subject: ENTER is SAIL
To:   ail at SU-AI

The SAIL file I/O runtimes do not allow you to create a new  file  on
disk  with  a given protection.  Instead, SAIL always puts a 0 in the
protection field of the block it creates before doing the ENTER  UUO.
This  causes  TOPS-10 to assume the standard protection for the newly
created file.  However, I would like to create files that do not have
the standard protection.

One way to get around the deficiency is to do an ENTER (to create the
file) followed by a RENAME with  the  desired  protection.   However,
this  only  works if the file was created in one's own directory.  If
the file was created on another directory then the  RENAME  UUO  will
usually  fail, leaving you in the funny situation of having created a
file that you cannot RENAME, supercede, or delete.

I suggest that one of the following be done:

1.	Have a global integer !prot! (or some other name)
	which I  can  declare  external  and  then  set  to  whatever
	protection I like.  Then, whenever ENTER builds a block,
	it can stash the value in the right-most 9 bits of !prot!
	into the protection field.  This seems fairly simple
	to implement and is compatible with old programs.

2.	Add a fourth VALUE INTEGER parameter to ENTER, with
	a default value of 0.  Then I can create a file with
	any desired protection by saying, for example,

		ENTER(chan,filename,err,'222);

	This would be less tricky than method 1., and would avoid
	problems when various procedures change the value of
	!prot!.  It also seems fairly simple to implement and
	is compatible with old programs.
[JFR--consider doing this when segment goes to SAISG9.]


3.	Have ENTER scan the string containing the filename
	for the protection enclosed in pointy brackets, e.g.

		ENTER(chan,"FOO.FOO[77,77]<222>",err);

	The protection field in the ENTER block would be set to
	'222 before doing the ENTER UUO.  This would be harder
	to implement since CVFIL and possibly others would have
	to know about the new convention, but it is the most
	appealing solution from the standpoint of generality.
	This change would also be compatible with old 
	programs.
[JFR--this syntax is bletcherous; enough to cause one to puke over the
confusion with TENEX and T20 directory names should some pseudo
compatibility ever be attempted.  However, if PIP (COPY) will let you do this
in a command string, then I suppose ...]

I would be happy to see any of these modifications.

				Sincerely,
				Bob Goldberg

∂21-Feb-77  1409	FTP:GOLDBERG at RUTGERS-10	Difference between BAIL and SAIL expressions    
Date: 21 Feb 1977 (Monday) 1709-Est
From: GOLDBERG at RUTGERS-10
Subject: Difference between BAIL and SAIL expressions
To:   ail at SU-AI

I have noticed that while BAIL apparently returns the
correct value for an expression such as (-6<-5<-4), namely -1 or
TRUE, if you give it the expression (-6<-5<-4<-3) it will return 0
or FALSE.  On the other hand, if you code the latter expression into
a SAIL program, SAIL will evaluate it to TRUE.

This is a minor problem at most, but perhaps some mention of
it should be made in the BAIL documentation.

			Sincerely,
			Bob Goldberg, Rutgers-10

∂22-Feb-77  1044	100  : jqjohnson via AMET	SAIL bug∪}}s_ 
The following program bombs, though according to p. 98 of the SAIL manual
it should work.  I'm at LOTS (<jqjohnson>) -- would appreciate a reply
if a fix is ever made.

begin       require 1000 new!items;
  integer array aray[1:5];
  integer array itemvar tempvar;
  print("Done with declarations");
  tempvar ← new(aray);    comment  this bombs with an "ITEM SPACE EXHAUSTED
	                            message, but it certainly shouldn't;
  print("   tempvar assigned")
end

∂22-Feb-77  2327	JFR  	Files and stuff    
To:   LES    
SAIL.DO[S,AIL], EXPORT.DO[X,AIL], and FILES[X,AIL] are the principal
indirect addresses for maintaining Sail.  There are various listings
and emergency backup tapes in the room of DD57.  The directories
DSK:[*,AIL] contain 1500K of Sail-related files.  There is also
some (now purely historical) backup on the UDP with pack label SYS.

Listings of LINK-10 and PUB are also found in the room of DD57.
The sources for LINK-10 (SYS:LINK.DMP) are on the UDP with pack
label SYS, area [LNK,JFR].

9-28-76	Files RECIN.SAI, RECOUT.SAI on distribution tape refer to
	PROLOG.HDR[SYS,PDQ] and LIB.HDR[SYS,PDQ], which are not on the tape
	and which in turn require libraries that no longer exist.
	Maybe do something about it.  Thanks to GJM for info.

∂08-Mar-77  0319	MJC  
begin
record!class foo(integer y;record!pointer(foo) p);
record!pointer(foo) p1,p2;
p1←new!record(foo);		p2←new!record(foo);
foo:y[p1]←1;			foo:y[p2]←2;
foo:p[p1]←new!record(foo);	foo:p[p2]←new!record(foo);
foo:y[p1]↔foo:y[p2];
COMMENT The next statement doesn't compile.  All I want to do is swap ptrs;
foo:p[p1]↔foo:p[p2];
end;

∂11-Apr-77  2345	FTP:GOLDBERG at RUTGERS-10	Dynamic arrays in SAIL 
Date: 12 Apr 1977 (Tuesday) 0245-Est
From: GOLDBERG at RUTGERS-10
Subject: Dynamic arrays in SAIL
To:   sail at SU-AI

For various applications, it is convenient to be able to dynamically
expand an ARRAY during the course of execution of a program without
leaving the block in which the array was declared and reentering.  I have
tried LEAP arrays, but there are problems with checkerboarding memory,
especially if the array grows very large.  Several packages are floating
around which proport to provide a dynamic array ability in SAIL.  I have
tried several with STRING arrays and found that they generally don't
work well (e.g. the string-GC doesn't know about the pointers from the
dynamic array into string space, so it zaps the strings).

Would it be possible to provide a working package (or a description
of how to build one CORRECTLY) for dynamic STRING arrays?  The SAIL
manual does not have enough information on how garbage collection is
done for me to see what the problem is in the existing packages.  I
believe that there is a general need for a dynamic string array package
among the SAIL user community, so the time to implement it
would be justified.

				Bob Goldberg

P.S.  See DYNARY.SAI[a710sa00] @ CMU-10A for an example of a
	nice package that, unfortunately, does not work for string arrays.

∂24-Apr-77  1725	JFR   via RTGT	future optimization 
in /w mode, kep track$in /w mode, keep track of the address of the last %ALSTO symbol to
avoid issuing multiple symbols for the same address.

∂12-May-77  0621	FTP: Ives at RADC-Multics	 Message Clarification  
From:  Ives at RADC-Multics
Date:  05/12/77 0919-edt
Subject:  Message Clarification
To:  SAIL at SAIL

Two messages cued to Ives at radc came through blanked out.
If they held any content please repeat.
They were sent from Network host SAIL (NETML.NetAdmin)
on 05/11/77 at 0417.0 edt and 0420.6 edt.