4.4BSD/usr/src/old/lisp/liszt/ChangeLog

Fri Jan 13 15:05:29 1984 by jkf
	the 68k version will now record function argument
	counts for lambdas.  It still doesn't do lexprs (even those
	with &optional and &rest forms).
	
Wed Dec  7 16:13:08 1983 by sklower
	changed profiling code to refer to mcnts instead of
	mcounts so that the C variable could be so renamed
	to make sure that all names are distinguishable
	in the first 6 characters.  This change is invisible
	to users.

Tue Nov 22 08:59:34 1983 by jkf
	added the -W switch.  After compilation (but before assembly)
	it aborts the compilation with an error status if there were
	any warnings.
	(now: version 8.39)
	
Tue Oct 25 14:45:48 1983 by jkf
	fixed it so that if a lisp error occurs when compiling a function,
	the name of the function being compiled will be printed
	(now: version 8.38)
	
Mon Oct 10 07:42:54 1983 by jkf
	fixed bug in liszt (tlev)
	(now: version 8.37)
	
Sat Jul 30 15:37:40 1983 by layer
	open code vset.  Move all vector stuff to vector.l.
	Files: func.l, decl.l, vector.l, and cmake.l
	(now: version 8.33)
	
Mon Jul 25 21:29:54 PDT 1983 by layer
	fixed 'liszt' to mung object file header for the sun
	File: tlev.l
	(now: version 8.32)

Mon Jul 25 07:05:49 1983 by jkf
	fix bug whereby -mr would cause an 'comma not in backquote error'
	because the escape character was / instead of \ when reading
	/usr/lib/lisp/autorun.xxx
	(now: version 8.31)
	
Sat Jun 25 13:28:10 1983 by jkf
	Turn off uctolc converstion before printing bindtab.
	This is useful for liszt in opus 38.65 and greater since it
	will eliminate unnecessary |'s in the bindtab if uctolc
	is need to compile the file
	(now: version 8.29)
	
Thu Jun 16 21:52:59 1983 by jkf
	fixed compilation of &aux for vax version.  Now &aux (foo foo)
	will work if foo is special.
	(now: version 8.28)
	
Wed May  4 18:32:46 1983 by layer
	added sun autorun header to io.l
	(now: version 8.27)

Thu Mar 24 08:24:53 1983 by jkf
	-x file will now be placed in the same place as the output
	file (instead of the input file).
	(now: version 8.25)
	
Sat Mar 19 17:49:18 1983 by jkf
	mixed in the 68k liszt source.
	(now: version 8.24)
	
Mon Mar 14 13:14:26 1983 by jkf
	liszt used to open code 'times' if all operands were fixnums.
	Thus (times 256 256 256 256) would open code to a 0 fixnum.
	This is clearly wrong and liszt will now not convert times, add,
	etc to their fixnum equivalents.  If you want fixnum semantics
	then you must use fixnums.
	Another bug was fixed: d-functyp would return the wrong thing
	give a name bound to a foreign function.  now it returns 'lambda.
	files affected: datab.l decl.l
	(now: version 8.23)
	
Tue Feb 22 08:43:44 1983 by jkf
	force jump to vecindexerr to use 'jmp', since the object
	file might be large and the assembler is stupid
	(now: version 8.22)
	
Thu Feb 10 20:39:42 1983 by jkf
	open coded vectorp and vectorip, vsize-...
	(now: version 8.21)
	
Thu Jan 20 01:57:01 1983 by layer
	Added three features to liszt command line processing:
	-e <expr> evaluates <expr> before compilation.
	-i <filename> loads <filename> before compilation.
	-S -o filename names .s file.
	file: tlev.l
	(now: version 8.20)
	
Mon Jan 17 09:41:12 1983 by jkf
	added arg number checking and open coded &keywords.
	(now: version 8.19)
	
Sun Jan 16 10:05:01 1983 by jkf
	fixed nasty bug in d-exp which would show up if a macro
	returned a recursive call it itself
	(now: version 8.18)
	
Wed Jan 12 10:43:53 1983 by jkf
	added open coding of vref functions
	(now: version 8.17)
	
Wed Oct 27 20:24:47 1982 by jkf
	removed references to sys_ functions, replaced them with
	sys: functions so code will be more portable.
	file: tlev.l
	
Wed Oct 27 08:15:14 1982 by jkf
	discovered that making 'declare' a function is a bad idea because
	if the compiler executes an interpreted function with local
	declarations, those local declarations will seem like declarations
	for the function begin compiled.   Thus declare is no longer a
	special function in the compiler: it must be seen by the compiler
	to have an effect.  Added the user callable function liszt-declare
	which will have an effect just like declare used to: the compiler
	will recognize it when compiling and it can be evaluated by a
	user function.
	(now: version 8.16)
	
Mon Oct 25 22:55:37 1982 by jkf
	removed If macro definition from cmacros.l . It is now in
	the default franz.
	
Mon Oct 25 09:15:18 1982 by jkf
	catch the sigterm signal and die after removing the /tmp file.
	(now: version 8.15)
	
Tue Oct 19 15:56:07 1982 by jkf
	fixed bugin cc-arg wherein a (arg (foo)) would be compiled
	incorrectly (it was calling zerop on a non number).
	Added checks for cmacro and macro-autoload properties.
	When doing macro expansion, had it stop if the same car
	was returned.
	(now: version 8.14)
	
Mon Oct 18 23:27:14 1982 by layer
	Fixed bug in function cc-quote.  Parens in an If statement
	were messed up.
	
Sat Oct  9 04:35:23 PDT 1982 by layer
	Np-reg, Lbot-reg, oLbot-reg are now constants.  Changes
	made to expr.l and io.l.

Thu Oct  7 01:02:26 1982 by jkf
	fixed bug in the compiler.  The compiler had neglected to enforce
	the rule that 'macros' not be defined as local functions.
	Now that is checked (modification to tlev.l).
	
Wed Oct  6 22:53:36 1982 by jkf
	added check to make sure that a file doesn't declare a function
	to be local that has already had a compiled call made to it.
	This is done by placing a t under indicator g-stdref for all
	symbols called in the 'standard' way.
	(now: version 8.13)
	
Wed Oct  6 13:29:27 PDT 1982 by layer
	put the loading of chead.l (in array.l datab.l decl.l expr.l
	fixnum.l funa.l funb.l func.l io.l tlev.l util.l) under
	include-if control.  Also changed chead.l.

Tue Oct  5 23:36:09 PDT 1982 by layer
	removed function d-call from expr.l, since it isn't
	used anymore.

Tue Oct  5 23:00:09 PDT 1982 by layer
	added sccs'ed file scmake.l, so that an all interp'd
	version of the compiler can be made without deleting
	all the .o files.  Changes were also make to the Makefile.
	snliszt (formerly slownliszt) now depends on source
	files (like nliszt depends on .o files).

Tue Oct  5 22:22:59 1982 by jkf
	added argument checking.  This involved mods to expr.l to
	do the checking and to tlev.l to save argument number
	info while compiling.  The file /usr/lib/lisp/fcninfo.l
	contains a description of what is known about C functions.
	(now: version 8.12)
	
Mon Oct  4 14:23:29 1982 by jkf
	turn off [load ...] message when loading in lisztrc file
	
Tue Sep 28 09:30:36 1982 by jkf
	change tmp file name back to jkfnnnnn
	(now: version 8.11)
	
Wed Jul 21 13:43:56 PDT 1982 by layer
	function "liszt" in tlev.l now returns the true assembler exit
	status (if the compile goes that far).

Sat Jul  3 18:01:25 1982 by jkf
	open code  getaux and getaccess
	(now: version 8.10)
	
Wed Jun 30 18:58:32 1982 by jkf
	look for liszt rc files without extensions.  now we look in 
	12 places for the lisp init file:
	  { . , $HOME } { .lisztrc , lisztrc } { .o , .l , }
	(now: version 8.09)
	
Thu May 27 08:19:00 1982 by jkf
	fixed bug in d-fixnump which caused liszt to assume too often that
	arguments are all fixnums
	(now: version 8.08)
	
Wed May 12 13:46:03 1982 by jkf
	new declaration scheme died when the object being declared
	was a list. e.g (declare (fixnum (foo fixnum flonum)).
	Fixed declare-handler so that cases like this are ignored.
	(now: version 8.07)

Fri May  7 19:28:04 1982 by jkf
	allow (function (nlambda ()...)) and (function (lambda () ..))
	(now: version 8.06)

Thu May  6 15:03:50 1982 by jkf
	support local declarations.  They are stacked on g-decls.
	localf and macarray don't fit in too well, they should
	be fixed.  
	fixnum declarations now have meaning.  They will allow the
	compiler to convert from functions like 'add1' to 1+.
	'declare' is now a function in the compiler so declarations
	may be fasl'ed in. [this was removed Oct 27, 1982]

Thu Apr 22 20:48:25 1982 by jkf
	#' returns a symbol now, instead of the getd of the symbol.
	This was required for maclisp compatibility.
	(now: version 8.05)

Wed Apr 21 07:50:41 1982 by jkf
	load in init file before compiling.  look in . first, then $HOME.
	look for .liszt.o, .lisztrc.l, lisztrc.o, lisztrc.l
	
	Upon interrupt, remove temp file and exit
	(now: version 8.04)

Mon Apr 12 23:22:37 1982 by jkf
	open code 'function'.  Now it will cause another function to be
	  generated and compiled and the function call returns the
	  bcd header for the newly created function
	liszt-process-forms may be filled with forms to compile while 
	  compiling a form.  Unlike liszt-eof-forms, liszt-process-forms
	  are compiled at the next opportunity.
	(now: version 8.03)
	
Wed Mar 31 08:47:46 1982 by jkf
	fixed bug in which (> (or nil 9) 0) would return true. cc-eq
	now rebinds g-trueop and g-falseop. (now: version 8.02)
	
Wed Mar 31 08:24:27 1982 by jkf
	added a new file to liszt: lversion.l   It is not sccsed and it 
	just contains the version number.  This will allow the version
    	number to be changed with ease whenever a modification is made.
	start it at 8.01  (now: version 8.01)

Fri Mar 19 11:17:12 1982 by jkf
	did distribution. (now: version 8.00)

Fri Feb 19 09:56:50 1982 by jkf
	fixed e-docomment so that newlines in the comment will not
	cause assembler problems [io.l]

Wed Feb 17 12:46:24 1982 by jkf
	to version 8.0 (to correspond with Opus 38)
	
Wed Feb 10 21:28:41 1982 by jkf
	fixed a bug in the return function and a possible bug in go.
	both bugs have to do with returning or going through a
	catch or errset, which is a pretty strange thing to do anyway.
	The fix was to keep track of the number of catches and errsets
	before the prog to be returned from or gone into.
	I modified d-pushframe to always push 3 args, so we can know
	how long each frame we pop will be.
Sat Dec  5 11:58:36 1981 by jkf
	open coded boole (mods to decl.l and funa.l).  used the open
	coding capability of fixnums.
	Added three internal functions fixnum-BitXor, fixnum-BitAndNot
	fixnum-BitOr, which are the three functions which the vax
	can do.
Mon Oct 26 21:15:36 1981 by jkf
	fixed bug in d-supercxr (funa.l) which made this function
	(cond ((setq y (cxr n zip)) (print 'hi))
	      (t (print 'lo)))
	always prints 'hi'.  The problem was that only jump on true was
	checked if the value of a cxr was stored somewhere.  In the case
	above we want to jump on nil.
	
Sat Oct 24 16:41:03 1981 by jkf
	-*- to version 7.1 -*-
	Added the 'a' option to liszt, which if set will cause a 
	special form to be output after a function is defined. that special
	form will put a 'fcn-info' property on the function's property 
	list.  the form of the fcn-info property is
	 (argdesc compileinfo)
	argdesc may be nil or (x . y), the later meaning that there are a 
	minumum of x args required and a maximum of y.  Currently lexprs
	just put 'nil' there, but soon I will introduce a way to declare
	min and max args for lexprs via a declare.  The compileinfo
	is a string saying what file this came from and when it was
	compiled.
	
Wed Oct 21 20:19:53 1981 by jkf
	added functions <&, =&, and >& which are fixnum only
	versions of <,= and >.  
	
Tue Oct 20 22:14:41 1981 by jkf
	fix < and > compiling so that they are only open coded if
	we can be sure that both operands are fixnums.  For now this
	amounts to checking that one of the operands is a fixnum.
	We should augment to this check also for type declarations.
	
Sat Oct 17 11:47:50 1981 by jkf
	since most fixnums are in the range 0 to 1023 we can probably
	win by doing inline checking in that range.  Thus I've added
	the function d-fixnumbox which does an inline reboxing if
	the number is between 0 and 1023 and otherwise calls qnewint.
	The file changed was fixnum.l
	
Thu Oct  8 23:35:34 1981 by jkf
	added cc-= to open code = if possible.  It looks for a fixnum
	as one of the arguments and converts the = expression to 
	(eq (cdr ..) (cdr ..)) which should do the trick.