$Id: History,v 1.41 94/06/25 00:39:57 budd Exp $

MAINBOL for Un*x history (and personal SNOBOL history);

*** Second Beta release (tag BETA2)

6/24/94
	Made isnobol4 the default
	Added label RTNL3G so RTNUL3 can be inlined
	Use register pointer to "res" in data_init.c
	Updated load.doc
	Use awk to reverse tsort input (instead of reverse on output)
	Fixed sense of DO_UFCHK!
	Updated ports.doc

6/23/94
	Include both snobol4.c and isnobol4.c in kit
	Use register in data_init.c
	Implemented TRACE_DEPTH
	Ran "prof" profiling
	Inline pair.c!!

6/21/94
	Cleaned up config/ dir.
		Removed all "cc" configs.
	Turned on -finline-functions by default
	Added Makefile2 rules for isnobol4.c
	Added SNOBOL4 variable

6/20/94

	Fixed problem found by Phillip Thomas; Restart "card"
		processing after a semi.  Allows comment and control
		lines after a semi.
	Created scripts for analysis of inlining results.

6/19/94
	Added {generic,posix}-cc.m4 configs
	Use skel.inc in generic configs
	Added AUX_{SRC,OBJ}, PML_OBJ
	Played with inlining

6/17/94
	Dropped compiler CARDSZ down to 132 for sane listings

6/15/94
	Upped compiler CARDSZ and default input size from 80 to 1024.
	Created snolib/{breakx,lcmp,pad,sort,substr}.sno,
			{fork,system,sprintf}.c
	bsd/load.c; use PML before trying real load. use SNOLIB env var.

6/13/94
	Prevent multiple inclusions
	trim include file names (after multiple inclusion test)

6/12/94
	Implemented -INCLUDE/-COPY
	Use RETxxx macros in snolib

6/10/94
	Added RETxxx macros to load.h

6/9/94
	Gave WIPS talk at Boston Usenix
	Created configs for aix, linux, irix, sunos5
		(all just include posix.m4)

6/6/94
	Run timing script in regression test (runs genc)!!
	UFCHK no longer on by default

6/4/94
	Created snolib (DELETE, FILE and RENAME functions)
	Call getredirect() under vms

6/3/94
	Turned off output NUL translation after compiler runs
	Try PML if ld() fails in bsd/load.c

6/2/94
	Created load.h LOAD_PROTO, LA_xxx macros
	Updated load.doc, sqrt.c
	Implemented "Poor Man's LOAD" for linked in functions!!
	Made REPLACE() 8-bit clean
	Fixed padding on input problem

6/1/94
	Started man page
	Made 8-bit clean
	Implemented simple pipe open

5/31/94
	Fixed/improved make tar; include "bugs" dir
	Updated porting.ms
	Added vms/getredirect.c
	Handle errors in genc.sno
	Avoid .h.new (for VMS)
	Updated ports.doc for LINUX
	Started on autoconfig script

5/30/94
	Fixed hp*.m4 include path
	Updated ports.doc for hp710

5/29/94
	Finished &LCASE &UCASE
	Fixed -CASE n

5/28/94
	Updated ports.doc for HP, SGI, IBM
	Implemented -f option
	Added ; and ! as comment chars (per SITBOL)
	Added &LCASE, &UCASE

5/27/94
	Allow external redefinition of HZ in generic/mstime.c
	Invalidate self pointer in lib/bsd/load.c unload()
	Changed types.h to snotypes.h to avoid include confusion on VMS?!

5/26/94
	Supress padding once compliation is over
	Turned off &TRIM by default
	Caught more CASE sensitivities
	Accept either case for S/F gotos
	
5/25/94
	moved Un*x version banner to version.c
	implemented case insensitivity -CASE/&CASE
	implemented DOBOOL() in genc for real

5/24/94
	converted Makefile2, config files to use m4

5/23/94
	cleaned up bsd load.c, for use on bsd44 systems
	added SIGFUNC_T to init.c, made default void

2/18/94
	*** First Beta release (tag BETA1) 
	updated README, late entry in ports.doc
	include tests in tar!
	
1/25/94
	updated README, include TODO.soon in tar

1/24/94
	improved porting.doc
	run regression test from Makefile2
	added "make uu"

1/18/93
	wrote porting.doc, put all doc files under RCS
	added getopt to Makefile2.cpp, generic.h

1/16/93
	set exit code on fatal errors (including when
	execution aborted due to -NOERRORS)

1/8/94
	output UNIXF UNIXF2 at startup
	make 'LEFT' default listing side
	output error name string to stderr
	implemented -b (BANRCL), -s (STATCL)

1/7/94
	cleaned up config/ files. added bsd43, sony_news, posix
	checked in changes from 1/3
	added standards info to various lib files
	updated README (was README.alpha) for beta test
	split intspc.c realst.c from convert.c
	caseified formats, converted to printf() style
	caseified misc strings

1/3/94
	Brought up on Sony News 800 (68020) sqrt.sno works (no changes)!
	Tested on hp9000s800 (added posix/mstime.c)
	Brought up on Mt. Xinu hp300 4.3 BSD and IBM RT ACIS 4.3
		added generic/vfprintf.c, generic/convert.c
		use mktemp() in load.c

12/30/93
	cleaned up gensyn.sno output
	made format.c strings const
	did compiler timings (tried gcc -O2)
	did profiling. do DCMP() inline!!
		do LOCAPV inline? (called 6.7 million times by genc.sno)!!
	Created Makefile2, lib subdirs (generic, bsd, dummy)
		Flushed lib/Makefile

12/29/93
	cleaned up gendata.sno output, output formats
	cleaned up include file Id lines

12/28/93
	created (empty) mlink.h, mdata.h
	renamed headers.h to parms.h
	created dynamic.c
	include charset.c into init.c
	types.h cleanup;
		flushed flags.h
		created VFLD/FFLD macros
		made f field char, v field a 24 bit bitfield!
		(no time penalty on sparc!?)

12/27/93
	Announced alpha dist (finally got a place to put it)!
	Have gendata.sno (was data.sno) generate data.h, data.c, init.h
	Created init.c

	Compiled and ran on HP 9000/8xx (PA RISC) machine!

12/9/93
	*** First Alpha release (tag ALPHA1)
	Updated usage message, README.alpha, Make tar
	put this (and other files) under RCS

12/4/93
	Implemented -NOERRORS/-ERRORS control cards (default -NOERRORS)
	to supress/allow exeution of programs with compile errors.
	Implemented -k command line switch (like -ERRORS)

12/3/93
	output compilation error messages to stderr as well as listing
	accept '#' and '|' as start of line comments
	(can now use '#!' magic number for scripts!)

11/27/93
	revised README.alpha
	wrote LOAD.doc sqrt.c sqrt.c

11/26/93
	re-implemented io.c (file lists, no more io_unit struct)
	take file names on command line! implement -r flag
	changed -D to -d; default now 25000 now that GC works!

11/25/93
	fixed RSETFI; genc runs with 25K descrs (with 69 GC's)!!

11/24/93
	wrote dump.c

11/23/93
	fixed lvalue: comment.sno works
	atn.sno produces same SIZED (chars/lines) output as spitbol

11/22/93
	fixed linkor: alt1/2.sno work
	found problem in atn.sno (comment.sno)
	atn.sno gets pattern stack overflow (runs with SPDLSZ of 5000)
	atn.sno dies after table to array conversion (convert.sno)
	fixed MOVDIC: convert.sno works
	atn.sno runs to completion (sans comment problem)
		but output differs from spitbol?!
	w/ 200K descrs genc dies in last few lines (after 2 GCs)
		runs to completion with "only" 250K descrs (1 GC)

11/19/93
	implemented expint() exreal()
	found smallest proram with atn.sno bug (alt2.sno)
	create/use LEXEQ() macro!
	worked on README.alpha, DESIGN
	genstg.sno now creates equ.h, stgtyp.c, stg.h
		(flushed equ.awk, stgtyp.h stgh.awk)

11/18/93
	isolated match problem with atn.sno

11/17/93
	fixed MNREAL/MNSINT F/V output
	created IND_ARR, INDENTX, UNINDENT in genc.sno

11/16/93
	fixed locap{v,t} F/V output

11/15/93
	ran genstg under mainbol (w/ -D1M) after consolodating patterns

11/13/93
	ran genstg under mainbol (w/ -D2M)

11/10/93
	implemented filename support ala Catspaw (Vanilla) SNOBOL4(+)!!
		added XOPENI, XOPENO, XECOMP
	send all completion messages to stderr (PUNCH)
	ran gensyn under mainbol

11/9/93
	wrote, debugged load() and link()
	added CLR_S_UNUSED() to no avail

11/8/93
	clear V&F in DATE, MSTIME, SETAV, INTSP, REALSP, MULTC
	GC generally runs, but leaves bad pointers

11/6/93
	fixed lengths in MOVBLK and ZERBLK
	genc ran for the first time (generated code until LOCA1) died in GCM
	runs to completion with -D1000000

11/5/93
	implemented GETLTH by the book
	collect.sno runs (nothing to collect)

11/4/93
	fixed order of spec members, GC marking pass now runs
	upped number of user defined functions from 10 to 50
	upped OCASIZ from 1500 to 15000!
	implemented command line options

11/3/93
	diff.sno runs
	added junk PUSH() to SAVSTK() -- GC expects RCALL to use stack!!

11/2/93
	immed value assignment working (fixed assignment order in MAKNOD)
	cond value assignment working (output PUTSPC!!)
	put v311.sil, syntax.tbl under RCS
	got rid of IDENT columns!!!
	cleaned up genc, now parsed by mainbol!!
	worked on POUND_LINE
	match replacement working (fixed SPUSH/SPOP again!!)
	implemented rplace() library routine

11/1/93
	have gensyn process comments
	last SIL ops (ADJUST, ORDVST, RPLACE) handled in genc
	function args working (fixed PSTACK *PUSH, *POP)
	implemented getbal library routine

10/29/93
	complex patterns working (fixed CPYPAT)

10/28/93
	simple patterns working (but not pattern concatenation)
	implemented
		CLERTB, PLUGTB, DATE, LINK, MOVBLK, REMSP, LOAD, UNLOAD

10/27/93
	implemented;
		misc I/O (BKSPCE ENFILE REWIND)
		code tree ops (ADDSIB ADDSON INSERT)
		pattern ops (MAKNOD LINKOR
		value pair ops (LOCAPT LOCAPV)
		others;
			ADDLG BKSIZE CHKVAL EXPINT EXREAL LCOMP LVALUE
			MOVDIC PUTSPC SUBSP TOP TRIMSP
	runs simple programs (loops.sno runs ~15 x slower than SPITBOL)!!

10/25/93
	recieved S4D58 report
	implemented SETVA

10/24/93
	implemented INTSPC, REALST, SHORTN, SPCINT, SPREAL
	END recognized!

10/20/93
	implemented FSHRTN
	"END" not recognized

10/19/93
	implemented input and output ops (STPRNT, STREAD)
	implemented STREAM!

10/18/93
	implemented APDSP, LOCSP, PUTVC
	initialization code starts to run

10/17/93
	implemeted SETVC, VCMPIC

10/15/93
	implemented ENDEX, LEXCMP, VARID

10/14/93
	implemented GETSP, LEQLC

10/13?/93
	implemented ZERBLK

10/8/93
	implemented GETLG, SETSP

10/5/93 - 10/7/93
	implemented INIT, MSTIME, PUTLG, PUTSPC, GETSPC
		MOVDIC, GETLTH, PSTACK

8/92
	46 ops remaining (on 522 lines of SIL)


7/24/92
	implemented:
		PUTAC, GETAC, SETFI, RSETFI, DIVIDE, BRANIC, INCRV
		MNSINT, RLINT, ADREAL, SBREAL, MPREAL, ADREAL, DVREAL

7/22/92
	implemented:
		int math: SUM, SUBTRT, MULT, MULTC
		SETAV, SETVC, SETLC, SPEC, TESTFI, MOVA, MNREAL

to 7/21/92
	71 ops remaining

5/92
	C pattern matching working (see 3/90)

3/91
	Started genc.sno using Catspaw SPARC SPITBOL

11/90
	Found out about Catspaw SPARC SPITBOL from a Catspaw mailing.

7/90
	Started work at Shiva Corp.

3/90
	Started on C implementation of SNOBOL patterns using
	Gimpel's CACM article (and Orange book).

12/89 thru 3/90
	Worked on C versions of syn, genc using "traditional" tools
	awk/lex/yacc

11/89
	Got report on old/new naming conventions from Dr. Griswold
	began studying SIL source in earnest.

10/89
	Got (a rare) copy of "The Macro Implementation of SNOBOL4" book
	from Catspaw.

late 1988?
	Found Vanilla SNOBOL4 (including Catspaw book order form)
	and SIL sources on cs.arizona.edu

Fall 1987
	Tried using OS/360 MAINBOL to run questionnare analyzer

Fall 1986
	BUCS20 unplugged, lost access to SITBOL for first time in 7 yrs

Fall 1985
	Started work at BU full time.

Spring 1985
	Used SITBOL to analyze questionnaires from
		Psychology directed study on computer mediated communication.

Fall 1983
	Returned to school full time at BU, helped manage BUCS20 (2060)

Fall 1981
	Started at DEC/LCG FORTRAN-10/20 group (which used SITBOL
	to perform FORTRAN regression tests)

Fall 1979
	Learned SNOBOL4 using SITBOL freshman year at Stevens Tech
	Used to find errors (typos, mismatched commons) in FORTRAN programs
