SR Version 2 Change Log

2.3.2	August 13, 1999
	Add MultiSR configuration for Linux/x86
	Support 1- and 2-dimensional arrays of resources in ccr2sr
	Update sr-mode.el to recognize "procedure" keyword
	Fix memory leak by deallocating classes that are never used
	Honor "sr -T" in do loops as well as fa loops
	Fix parallel/concatenation confusion in srtex and srlatex
	Rework scanning to allow use with flex as well as lex
	Remove symbolic links from source to allow source maintenance by CVS
	Change MultiSR configuration method to avoid symlinks
	Rename "configure" to "azconfig", to avoid confusion with GNU configure
	Revise vsuite/jumble to avoid Linux formatting problem
	Accommodate various Linux library changes that broke SR
	Support new N32 ABI (calling sequence) on SGI Irix
	Other minor portability mods

2.3.1	December 15, 1995
	Fix class merging: optype can come from a different resource
	Fix m2sr signal-and-exit (thx Stephen Turner)
	Properly set VM socket port number on little-endian architectures
	Fix rs6000.s for AIX v4.1
	Incorporate contributed FreeBSD modifications
	Update Configuration notes about Linux configuration
	Conditionalize incompatible Tango calls for ultrix, alpha, hpux
	Include preformatted Gebala/McNamee paper on the SR Implementation

95a	September 29, 1995
	Fix count in error message about too many MultiSR processes
	Fix ref-before-set problem in complex array construction expression
	Fix indexing of multidimensional array of nonconstant-sized strings
	Fix destruction of resources when destroying a VM
	Fix srlatex bug involving output of '@'
	Consistently use caller's bounds for call-by-reference array
	Revise context switch timing program to run for a fixed time period
	Minor context switch improvements for Alpha, M68k, Vax, Tahoe
	Add "quick reference" sections to preprocessor man pages

2.3	October 14, 1994
	Minor portability mods

94f	October 7, 1994
	Redesign array implementation
	Minor portability mods

94e	September 20, 1994
	Incorporate NetBSD patches

94d	September 13, 1994
	Incorporate updated SRanimator, including new examples and .ps file
	Set CUR_RES correctly when creating remote proc
	Fix mips.s for Irix v5 (which requires using r25 for indirect call)

94c	September 6, 1994
	Add support for Intel Paragon

94b	August 9, 1994
	Add %[...] scanf format
	Make default field width 1 char when scanning into a char variable
	Allow absolute path for .o file (etc.) in srl
	Don't wait for nap timeout of killed processes
	Add library directory with SRWin, SRgetopt, SRanimator xtango interface
	Remove srwin directory, change method of configuring out X
	Further minor RS6000 changes; we finally have one for on-site testing!

94a	May 5, 1994
	Adjust to changes in Linux 0.99.15 I/O system
	Work around gratuitous incompatibility in GNU getopt function
	Modify srwin to work on DEC Alpha; adds minor type incompatibility
	Make string-to-bool conversion truly case insensitive
	Make getarg conversion to char consistent with string-to-char
	Fix augmented add/subtract of pointer and int 
	Fix constant folding of cast to bool or char
	Diagnose use of imported capability in unrestricted input stmt
	Rewrite rs6000.s context switch code

2.2.1	December 21, 1993
	Incorporate changes to allow building under Linux
	Reduce volume of spurious warnings generated by clcc

93d	December 14, 1993
	Fix bug that caused serial remote cocalls instead of concurrent calls
	Initialize local class pointer before first use in multi-arm input
	Don't try to fold constants if there were signature errors
	Diagnose recursively defined record
	Use getcwd() instead of getwd()
	Generate legal C code for low(int)
	Use macros for entry point names in i386.s and sparc.s
	Return keysym value in SRWin for keypress events
	Increase default stack size again, to 40K, for gluttonous Sun library

93c	September 30, 1993
	Port to Dec Alpha architecture (64 bit pointers)
	Increase transition limits in srtex/srlatex lex files to satisfy AIX
	Fix null macro arguments in rts/io.c (disallowed by ANSI C)
	Fix process.c to really pass zero on the first call to sr_chg_context
	Fix loss of fourth parameter in csw/rs6000.s
	Make i386.s usable with ANSI cpp, and make it slightly faster

2.2	August 30, 1993
	Add MultiSR for Solaris 2.2
	Minor changes to MultiSR interface; simplifies Solaris and Irix ports
	Minor RTS changes (e.g. renaming local errno) for Solaris port
	Revise procedure prologue to eliminate some redundant calculations
	Increase default stack size; needed for Solaris 2.2
	Fix i386.s when initial stack is below allocated memory
	Simplify sparc.s by using function args; needed for MultiSR
	Add SRWin functions WinSetForegroundByPixel and WinSetBackgroundByPixel
	Correct initialization bug in decentralized dining philosophers example

93b	June 11, 1993
	Add input/receive/P using capability
	Add dynamic operations
	Add SetDrawOp, FontAscent, FontDescent to SRWin
	Include PostScript file of SRWin tech report
	Make srm handle SRWin programs
	Fix rare process list manipulation bug in rts/iop.c
	Fix scanf problem with certain chars following width-limited fields
	Fix file descriptor reuse problem after destroying virtual machine
	Clean up mutex handling in make/kill_inops
	Simplify reply block allocation in rts/remote.c
	Don't use same sequence number for every op/resource/co
	Minor portability fixes for Solaris cc, ESIX, SVR4
	Enhance context switch test to check all four passed parameters
	Dumb-down sparc.s to live with various systems and C preprocessors
	Redo csw/svr4.c to fix memory leak and work around Solaris 2.1 bugs
	Update runtime documentation for 2.1 and 2.2 mods

2.1	March 22, 1993
	Use -e in srwin Makefile when using new SR to build srwin
	Don't recurse nearly so deeply when comparing signatures
	Handle interrupted system call while reading packet
	Minor fixes for RS6000 / AIX 3.2
	Minor code cleanup and vsuite changes

93a	February 26, 1993
	Incorporate SRWin X-windows library by Alex Zhao
	Incorporate srlatex formatter by David Mosberger
	Give source line number on blocked process diagnostics
	Change old SR_TRACE environment parameter to SR_DEBUG
	Add operation tracing facility using SR_TRACE; remove srl -T
	Incorporate simple srprof utility for summarizing trace output
	Allow double-subscript op[a,b] form in receive, P, and in
	Reschedule processes on nap(0) call
	Handle priorities correctly when awakening blocked jobs
	Fix inability to use separate global bodies 
	Fix receive of ref parameter
	Fix wrong opt of call to proc having an array[N] (vs. [*]) parameter
	Fix segmentation fault on forward of co-called invocation
	Fix segm fault from importing rec of cap of resource exporting an optype
	Fix bad free after allocation inside in...by or in...st
	Fix destroy of expression, e.g. "destroy create r()"
	Fix intermittent "Bad file number" for distributed Iris MultiSR progs
	Fix segmentation fault on Iris when aborting because SR_PARALLEL too big
	Correctly cast trailing min/max arguments beyond 3
	Diagnose assignment of resource to cap
	Diagnose ref param to resource when combined with illegal capability
	Apply simple sanity checks to opcaps; change null/noop to unlikely vals
	Init allocated memory nonzero to catch errors
	Generate simpler and faster array access code when bounds are constant
	Generate simple call to sr_receive when possible (the test was wrong)
	Reduce memory needed to kill a semaphore
	Rework idle loop to block instead of spinning when possible
	Set O_APPEND mode on stdout & stderr before forking virtual machines
	Simplify sr_create_resource interface
	Simplify maintenance of current proc/resource name at runtime
	Improve accuracy of line number values in parse tree
	Pass names of imported-but-not-compiled resources from sr to srl
	Pass .o, .a, and -l files from sr to srl
	Don't ignore "srl -A"
	Don't delete old a.out file in srl, just overwrite
	Don't preclude user final code in csp2sr
	Fix hostname use in vsuite under SysV
	Print more environmental info in srv: hostname, start/stop times
	Simplify srv options, don't "ls -l" every last file
	Install sr-mode.el in $SRLIB instead of elsewhere
	Port to Sun Solaris 2.1
	Minor tweaks to allow build under AIX (IBM RS/6000)
	Check for -Y during build of runtime system for Dynix MultiSR
	Remove conditional code no longer needed on Encore
	Lots of vsuite changes

2.0	August 28, 1992
	First nonpreliminary release of SR Version 2
	Merge separate MultiSR documents into porting and installation documents
	Add new runtime document and remove old obsolete notes
	Minor RTS code changes motivated by review of runtime document
	Use left recursive grammar rule for enums (& others) to avoid overflow
	Reorganize book examples in vsuite

2.E	July 14, 1992
	Include preprocessors ccr2sr, m2sr, csp2sr
	Use predeclared (vs dynamic) param block for direct calls when possible
	Allow non-integer subscripts for arrays of ops
	Fix csloop timing test for updated context switch interface
	Update csw/precision.s for HP-UX version 8; now works on Snake
	Use bigger stacks for idle procs etc; HP (at least) was stomping memory
	Remove unused & ANSI-conflicting decls from sr.h
	Declare fmod() as double in gen.h -- it's not in Sequent math.h
	Don't use pointer from freed memory when destroying resource
	srm: properly terminate allocated string
	Use standard C compiler -- not "cc -cckr" -- on Iris
	srv: give meaningful message when .std file is missing for compare
	Add more diagnostic checks to vsuite
	Move old vsuite examples into vsuite/other
	Incorporate examples from book as vsuite/chap*/*
	Incorporate timing suite as vsuite/timings
	Miscellaneous coding, documentation, Makefile, and vsuite changes

2.D	May 20, 1992
	Implement MultiSR on Silicon Graphics Iris systems
	Use #ifndef to protect decl of external that might really be macro
	Correctly cast final argument of min/max call
	Allow meaningless but legal "noop;" stmt without malfunction
	Diagnose attempt to dereference a "ptr any"
	Don't malfunction if import name in inner scope dups name from outer
	Miscellaneous coding, documentation, and vsuite changes

2.C	May 12, 1992
	Allow slicing in any index position
	Allow "cap sem", meaning "cap () {send}"
	Implement dynamic array allocation (e.g. "new([8]real)")
	Allow swapping of files, resource caps, and vm caps
	Handle rep count of 0 in array constructor: don't eval & store expr
	Diagnose negative count in array constructor (instead of "bad bounds")
	Diagnose optype name used where a type is required
	Diagnose passing of slice expression to ref parameter
	Fix malfunction or wrong maxlength on untyped var initialized by string
	Fix segmentation fault from assignment of zero-sized 2-dimensional array
	Fix error message when ignoring SR_PARALLEL in UniSR
	Give line number reference on bounds error during array creation
	Write RTS error messages atomically so VM outputs aren't interleaved
	Ensure that "stop" from global isn't interrupted by its own finalization
	Fix hypothetical bug in termination checking on SHARED_FILE MultiSR
	srvi: don't "chmod g+s" the new directory
	Document SR_SPIN_COUNT and SR_NAP_INTERVAL tuning parameters
	Remove unused ibp->pr and ibp->seqn fields
	Miscellaneous coding and vsuite changes

2.B	April 14, 1992
	Add automatic detection of distributed termination
	Simplify termination handling and messages; exit with status 0
	Avoid starving I/O or nap process: reset count only in loop_resched
	Diagnose "var self: ptr self" properly instead of malfunctioning
	Fix slicing of arrays of records (didn't work at all)
	Don't lose reply from remote VM
	Clean up runtime debugging a little
	Change misleading -DNOMULTI_SR in RTS Makefile to use -DSRX
	Fix Makefile dependencies for -DSRX versions of runtime files
	srm: don't generate \\\n before empty line
	srm: gen correct dependencies for a global even if import is seen first
	srvi: don't ask resource names; run sr without the -c option
	Miscellaneous vsuite and documentation changes

2.A	March 20, 1992
	Preliminary external release of SR V2
	Tested on Sun4, Sun3, SGI, Decstation, HP /800 & /300, NeXT, Sequent
	MultiSR supported on Sequent
