perm filename FEATS[S,AIL]20 blob sn#144375
filedate 1975-02-12 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00004 PAGES
C REC PAGE DESCRIPTION
C00002 00002 FILE OF NEW FEATURES ADDED TO SAIL. I.E. CHANGES NOT BUGS
C00012 00003 B-SERIES FEATURES
C00018 00004 C SERIES
FILE OF NEW FEATURES ADDED TO SAIL. I.E. CHANGES NOT BUGS
%AA% New sort of declaration:
SPROUT_DEFAULTS <integer constant>;
Semantics: Whenever the procedure in which this occurs is
sprouted, the appropriate fields of the <integer
constant> will be used to specify the p-stack,
sp-stack, quantum, and priority of the sprouted process.
(but only if nothing is explicitly stated in the
options to the sprout for the particular field in question).
[GEN,HEL,NWORLD] RHT 8-31-73 OK RHT
%AB% Extension to capabilites of RELEASE
RELEASE now takes a second (defaultible) argument, the CLOSE
inhibit bits (See RELEAS description in UUO manual)
These are defaulted to zero when not specified so old programs
which did not specify them will work as before.
[FOO2,IOSER] JRL mid JULY 73
%AC% Remove global declaration option to error recovery.
Now the compiler doesn't ask whether one wants their
undeclared identifiers declared globally, it merely
declares them locally.
[GEN] KVL 9/27/73
%AD% Arrange for Alloc? (on reentry) to know about lower case.
[GOGOL] RHT 10/6/73
%AE% Arrange things so that you can pass a typed itemvar to
an untyped itemvar formal.
[STATS] RHT 10/18/73
%AF% Have separate routines for set and list membership booleans
[LEAP,LEPRUN] JRL 10/24/73
%AG% Implement Item Overlap capabilities for separately compiled procedures.
some other changes to leap initialization code to start
the one and two-word list spaces as very small amounts
[LEAP,LEPRUN,GEN] JRL 10/24/73
%AF% Made suspend an itemvar procedure, so that the effect
of x←suspend(myproc) is to allow this process to be restarted
via a co-routine call.
[FOO2] RHT 10/24/73
%AG% Arrange for caller(newly sprouted process) to be the sprouting
process. (i.e. initialize rsmr←daddy).
[NWORLD] RHT 10/28/73
%AH% fix things so that can type ree before starting a sail program.
[GOGOL] RHT 10/29/73
%AI% insert stuff so that one may log their error messages. I forgot to
put in feature numbers in HEAD, PARSE, HEL, & GEN, but remembered
in COMSER, GOGOL, & STRSER.
[HEAD, PARSE, HEL, GEN, COMSER, GOGOL, STRSER] KVL 11/10/73
%AJ% Reorganize HEAD by transfering from HEAD to SAIL those
macros (such as QSTACKs) that are only useful in the compiler.
Also, incorporate the file that used to be FILSPC into HEAD.
The effect of this is to get all the switch settings more together.
[HEAD,SAIL,FILSPC,command files] RHT 11/18/73
%AK% Replace exponentiation code in GOGOL to make it somewhat better;
put together a set of user-callable trig routines that will work
with APR interrupts on. Also change error handler to make it
reentrant; user can stuff address of an error routine in .ERRP.;
it is called as rout(uuo addr,"error string","usererr response str")
%AL% Make outer block look more like a procedure by having it treat
RF right on exit.
[SAIL,GEN,GOGOL,TOTAL] RHT 11/24/73
%AM% New syntax for required initializations:
REQUIRE procid INITIALIZATION [phase#];
If [phase] is left out user phase 1 is assumed. Otherwise,
the specified (user) phase number will be used.
[HEL,GEN] RHT 11/24/73
%AN% ALLOW REQUIRES TO HAVE CONSTANT EXPRESSIONS AS WELL AS STRAIGHT
CONSTANTS. AS BEFORE IF NO EXPRESSION IS GIVEN THE VALUE 0 WILL
[HEL,GEN,PROCES] JRL 11-25-73
%AO% Do a SETPR2 if REMAP loses. I'm actually not too happy about it,
but may as well try.
[GOGOL,SAIL] RHT 11-25-73
%AQ% EVALREDEFINE implemented which bearsthe same relationship to REDEFINE
EVALDEFINE does to DEFINE.
[HEL,GEN,PARSE,SAIL] HJS 11-30-73
%AR% CVPS converts a macro actual parameter to a string. Very much like
a combination of ASSIGNC and CFMS.
[HEL,GEN,PARSE,SAIL] HJS 11-30-73
%AS% Conditional compilation is now compatible with listing files.
The format is as follows: The condional compilation reserved
words do not get listed. Similarly for the condition (i.e.
IFC, IFCR, and WHILEC). In other words only the code which
will be translated into executable code is shown on the listing.
[HEL,SYM,GEN] HJS 11-30-73
%AT% A left arrow following a macro name upon its definition or
redefinition is legal (equal sign still works).
[HEL] HJS 11-30-73
%AU% Allow FAIL, SUCCEED to be itemvar functions. They will perform
the same as RESUME when the matching procedure is sprouted by the
user. If the matching procedure is sprouted by the FOREACH interpreter
they will return the item ANY (CVI(0)).
[HEL,LEAP] JRL 12-1-73
%AV% X←CHNCDB(CHANNEL) returns pointer to 3 word block used in open.
Useful for interfacing assembly language routines with i/o in
%AW% ARRCLR routine added. If BUF is any arithmetic or itemvar array,
(including string arrays), ARRCLR(BUF) will zero out the entire
[FOO2,ARYSER) RLS 12-1-73
%AX% SETPL routine added. SETPL(channel,@linnum,@pagnum,@sosnum)
allows linnum, pagnum, and sosnum to keep track of the string
input from CHANNEL. Whenever a '12 is encountered, LINNUM is
incremented. Whenever a '14 is encountered, PAGNUM is incremented,
and LINNUM is zeroed. Whenever a stopgap line no. is encountered, it
is placed into SOSNUM. When fully implemented, this will work on
the INPUT, INTIN, REALIN functions. (The code has not been added to
those functions yet, since there are some problems with INPUT that
should be fixed first.)
[GOGOL,IOSER] rls 12-1-73
looked at some code for INPUT, but not entirely happy yet about any of
this mess. The inner loop is getting longer & longer, thus screwing
normal case losers in return for some convenience to others. Perhaps
should find a "filter" test that detects the absence of any "special"
funnyness & then do some decoding. Alternatively, provide a "fast form"
inner loop. May not be worth it for 2-3 instructions/char though.
Put in a very "dumb" addition that adds one more instruction to the
loop. Fix it soon, though!!!
[IOSER] rht 3-26-74
%AY% make SAIL compiler call intmap runtime routine
%AZ% see DCS
%BA% SEE DCS
%BB% SEE DCS
%BC% Add Bail symbol outputing routines to SAIL and GEN
under the new BAIL switch. The switch, of course, is
turned off. Needs to be put in now to avoid merger
[HEAD,GEN,SAIL] KVL 1-6-74
%BD% Add facility to have FOREACH statement without binding list
for matching procedure fanciers.
[HEL,LEAP] JRL 1-7-74
%BE% make minor fixes to allow GLOBAL events.
[NWORLD] RHT 1-8-74
%BF% (Actually, a gross moby hack) Add XX table entry which
can point to longer error string buffer. The "right" fix
is probably to rework the error handling or else to
add a longer string buffer, although an alternative would be
to allow this to stand "as is", with a runtime routine
ERMSBF(#chars want to allow) provided to allow the loser
to diddle things. This is what I will do, with ERMSBF(0)
causing you to revert to using the compiled-in buffer.
[GOGOL,FOO2] RHT 2-16-74
%BG% (CMU =A1=) Add breakset mode "F", which undoes "K".
[IOSER/25] RHT 2-22-74
%BH% add a list connstruct:
which works roughly like:
except that all the items are marked so that APPLY deletes them.
[HEL,LEAP,ARYSER] RHT 2-24-74
%BI% Adding records to the language. This entails many additions.
First additions are to the runtime system.
%BJ% Added a routine $PRINT(string,ctl). See ioser for details
%BK% A small improvement put in at the request of the pub hackers
Munched SCAN so it only copies strings when it has to.
Added a user table entry BRKOMT, which includes a bit (rh)
turned on whenever the corresponding break table has an omit char.
%BL% A new feature for uuo dispatching. Instead of giving an error
right away for ILLUUO, instead look first at cell .UUOCN. If
it is non-zero, then execute the instruction found there & return.
%BM% Garbage collection for records. many edits
%BN% Put out a pointer to a string constant containing the class id
right before put out the class descriptor. (For convenience,
make sure the string is also an ASCIZ.)
%BO% (CMU =C3=) For CMU, turn underbar into excl,not equal into hash
[GOGOL,PARSE] RHT 8-31-74
%BP% (CMU =C4=) ALLOW NULL PPNS & NULL CHARS IN PPNS
[IOSER/(6:7)] RHT 9-7-74
%BQ% MAKE CLOSE TAKE THE CLOSE-INHIBIT FLAGS AS A SECOND (OPTIONAL)
[IOSER/26] RHT 10-11-74
%BR% removed the various HACKS, getting ready for SAISG8
[<many>] RHT 10-9-74
%BS% There are now 72 break tables for SCAN, INPUT, etc. A user
normally sees only 1 to 54. The others are -17 to 0, which
can be accessed by setting BRKPRV non-zero in the user table.
Break tables are now CORGET blocks, with pointers to groups
of 18. Also, new functions GETBREAK and RELBREAK, to reserve
and release breaktables.
%BT% Add an XX variable .CORIN -- Will eventually be used for a CORGET
trapper of some sort. (put in at the behest of CMU)
%BU% Add an xx variable .LEPIN -- put in at the behest of CMU for
LEAP trapper of some sort to be written by LDE.
%BV% CMU only -- change RUN call to CALLI -22 for LDE.
%BT% Make outer block PD look more like others.
[SAIL/33,GEN] RHT 10-19-74
%BV% Make the Spc Alloc Blk point at outer block PD
%BW% CV6STR The correct sixbit to string routine
[STRSER/17] BH 11-7-74
%BX% Make SPROUT enqueue processes FIFO rathe than LIFO.
[NWORLD/8] rht 11-12-74
%BY% Make RENAME correct for date75 lossage. Do this by preventing
the loser from setting the date. Add a new function ERENAME
(extended rename) to do the whole works.
[IOSER/28] rht 12-16-74
%BZ% random other fixes for DATE 75.
[SAIL] RHT 12-16-74
%BA% NEW RUNTIME CVASTR. LIKE CVSTR BUT STOPS ON NULLS
[STRSER]/16 RHT 2-12-74