Fri Mar 4 09:09:29 1983 by jkf fixed bug in sassq and sassoc which caused vaxima to have problems (now: version 38.55) Thu Mar 3 16:03:36 1983 by jkf added a 'lispconf' shell script to create h/lconf.h describing a particular environment. Thu Mar 3 12:44:17 1983 by jkf added vector and vectori to 'typep' list in qfuncl.c (now: version 38.54) Thu Feb 24 21:09:49 1983 by jkf fixed bug in listarray (now: version 38.53) Mon Feb 14 20:28:30 1983 by jkf fixed bug in reader causing it to incorrectly print things like 1e-17 (now: version 38.52) Sun Jan 30 11:54:59 1983 by jkf everything changed to rcs instead of sccs (now: version 38.51) Tue Jan 25 20:26:18 1983 by jkf fixed a bug in vector allocation which might leave a zero vector at the end of a page, and thus its type might appear to be the same as the following page's type (now: version 38.50) Sat Jan 22 17:02:45 1983 by jkf fixed bug in Talloc.c vector page counting. made sysat.c zero the dtpr_pages after allocating the namestack. This should insure that gcafter really knows how much space is free after a gc. (now: version 38.49) Mon Jan 17 22:39:39 1983 by layer Changed printr (in io.c) to break if bad data is passed, and (sstatus debugging t). It makes it easier to debug the 68k version. Mon Jan 17 09:41:51 1983 by jkf added wnaerr handler (wrong number of arguments to a compiled function) (now: version 38.48) Mon Jan 12 14:49:15 1983 by jkf setf will now expand all c{ad}+r forms. added environment macro (now: version 38.47) Mon Jan 10 19:49:15 1983 by jkf added random fixes from mit. (now: version 38.46) Mon Jan 10 14:49:15 1983 by jkf fixed showstack so that it works again for compiled code (now: version 38.45) Thu Jan 6 16:59:09 1983 by jkf fixed bug in pp so it prints traced functions correctly Tue Dec 14 23:02:06 1982 by jkf fixed bug in putprop, protecting the newly allocated dtprs. Fri Dec 10 09:45:53 1982 by jkf modified Talloc.c to keep track of the number of items used during sweeping. Previously it just computed that number from the number that were free. This was the wrong thing to do for vectors, which span pages. Thu Dec 9 20:03:44 1982 by jkf uncovered a major bug in the vector sweeper (Talloc.c). (now: version 38.44) Mon Dec 6 05:50:09 1982 by jkf the size field of a vector now stores the number of BYTES in the data segment. Vectors are still allocated in longword chunks, so to determine the size of a vector, you have to round up to the next 4 bytes (use macro VecTotSize). new functions: vsize vsize-word and vsize-byte. call int:vsize. changed new-vector-{byte,word,long} to new-vectori-{byte,word,long} (now: version 38.43) Tue Nov 30 08:51:12 1982 by jkf switched order of args to vset, now it is (vset 'vect 'ind 'value) the same goes for the vseti functions. Added setf descriptions for vref's. (now: version 38.42) Wed Nov 17 14:49:02 1982 by jkf added comments to h/config.h, and added switches BSD4dot1a, GCSTRINGS Sun Nov 14 17:34:02 1982 by jkf added (sys:link oldname newname) Sat Nov 13 19:57:22 1982 by jkf added (status domain) [= ucb here]. added sys:gethostname, uses gethostname() added command-line-args and remq functions (now: version 38.41) Wed Nov 3 15:17:26 1982 by jkf made putprop add new indicators to the front. (now: version 38.40) Sun Oct 31 09:22:39 1982 by jkf If profiling was enabled (by -DPROF in qfuncl.c), then qoneplus and qoneminus would return incorrect results, the typical result being that the compiler would die generating large lists. It has been fixed. Fri Oct 29 09:07:14 1982 by jkf filestat code moved to int:franz-call as fc_stat. Also changed to return a vector. filestat (now in common2.l) tilde-expands. Fixed bug in vector allocation. Also, made the vector allocator put nil in the property field. (now: version 38.39) Thu Oct 28 14:11:46 1982 by jkf fixed bug in macroexpand: it wasn't looking for autoload-macros. (now: version 38.38) Wed Oct 27 19:33:05 1982 by jkf added sys:time and sys:chmod to common2.l and lam9.c also sys:getpid (now: version 38.37) Tue Oct 26 14:00:04 1982 by jkf moved length from common1.l to common0.l so certain defmacros would work in macros.l Mon Oct 25 22:51:58 1982 by jkf added 'if' (and If) macro to macros.l They do both the keyword and non-keyword types of if. (now: version 38.36) Mon Oct 25 10:33:08 1982 by jkf load will print out the last form read if an error occurs while reading. (now: version 38.35) Mon Oct 25 10:04:54 1982 by jkf Summary of new functions and redefined old ones. These are in common2.l tilde-expand new infile redef (old is int:infile) outfile redef (old is int:outfile) fileopen redef (old is int:fileopen) probef redef (C version should be removed) fasl redef (old is int:fasl) cfasl redef (old is int:cfasl) username-to-dir new sys:getpwnam new sys:access new chdir redef (C version should be removed) sys:unlink new Mon Oct 25 08:52:55 1982 by jkf fixed bug in Lpatom, it didn't set the global prinlevel and prinlength variables: plevel and plength, before calling printr. A better solution would be to put that checking in a new routine iprintr(), and have iprintr call printr (which recursively calls printr()); Sun Oct 24 22:37:25 1982 by jkf added tilde-expand function to do what the csh does with ~. If tilde-expansion is t, tilde expansion will be done on filenames by the standard functions (see above). added int:franz-call to lam9.c, leaving it open for expansion. Added new experimental top level (tpl.l) to /usr/lib/lisp. Sun Oct 24 14:04:30 1982 by jkf fixed a bug in Ifuncal in which it poped the actual arguments off the stack even when a debugging frame was stacked, thus throwing away information which evalframe required. Sat Oct 23 23:45:33 1982 by jkf fixed bugs in funcall and apply: they didn't protect interpreted function definitions which they were eval'ing the function. Sat Oct 23 13:01:45 1982 by jkf Added lexpr-funcall to eval.c (cross between funcall and apply). Fri Oct 22 12:29:31 1982 by jkf Our closures have a subset of the features traditional closures have. Thus they have been renamed 'fclosures'. If environment sharing is to be done, it must be done explicitly using fclosure-list. (now: version 38.34) Wed Oct 20 20:45:14 1982 by jkf Added closures (eval.c, io.c, lisp code in /usr/lib/lisp/vector.l) (now: version 38.33) Tue Oct 19 19:44:58 1982 by jkf now the compiler can autoload macros, the toplevel.l has been modified so the undefined function handler looks for macro-autoload. Also, set up macro autoloads for loop and defstruct. Added definition of defcmacro to macros.l Added definition of nth in common2.l Added cmacros for nth and nthcdr in common2.l Added macros push and pop in common2.l: (push value stack) (pop stack) (pop stack tolocation) Add flavors to /usr/lib/lisp (files flavors.l, hash.l, vanilla.l) Add mit-vax's lmhacks to machacks. (now: version 38.32) Tue Oct 12 21:51:21 1982 by jkf add time-string function (now: version 38.31) Sat Oct 9 01:49:54 1982 by jkf fixed bug in fasl (nfasl.c) in which a (fasl 'foo.o) would not print an error message if foo.o didn't exist. Added new functions *process, *process-send and *process-receive. The nlambda process is now written using *process (now: version 38.30) Tue Oct 5 22:24:22 1982 by jkf added argument number checking in Liszt, so added the file /usr/lib/lisp/fcninfo.l to describe the C coded functions. (now: version 38.29) Sun Oct 3 19:44:07 1982 by jkf added a special variable load-most-recent to common1.l affecting the load function. If given a non nil value, then it will tell load to load or fasl the most recently modified of the .o and .l file. Load will only check modification times if it is given a filename without an extension, e.g. (load 'x). (now: version 38.28) Sat Oct 2 14:59:26 1982 by jkf added a special variable top-level-print to toplevel.l. If given a non nil value, its value will be funcall'ed to print out the value in the read-eval-print loop. (now: version 38.27) Sat Sep 25 09:58:23 1982 by jkf increased the size of the profile buffer to 1Mbyte. (lamp.c) Thu Sep 23 23:11:56 1982 by jkf added mon.c to the lisp source used when profiling. mon.c contains the monitor() function which used to be in the C library (and should still be) but which was put in the C startup code in the current Unix distribution. Once monitor is put back in the C library, we can get rid of the file mon.c Tue Sep 14 08:48:02 1982 by jkf 4dxx 4Dxx and 4Exx were read as 4exx. This was fixed (fix l38.6). (now: version 38.26) Mon Sep 13 15:26:57 1982 by jkf +_ is not read as a symbol instead of 0. see fix l38.5 (now: version 38.25) Tue Aug 31 12:29:23 1982 by jkf fixed makereadtable so that it will accept no arguments as advertised in the lisp manual. Numerous other changes were made during this period in order to make franz more portable. (hopefully) none of them were visible to the user. (now: version 38.24) Tue Jul 20 12:03:26 1982 by jkf fixed makhunk in common1.l so that it would correctly allocate a 128 element hunk. Sat Jul 3 19:49:59 1982 by jkf made some mods to array.l so that array access was faster. replaced arrayref by offset-cxr in cases where it was a value array that was being accessed. Fri Jun 25 15:24:37 1982 by jkf fixed csegment so that it incremented the page count. This required adding 'other' as a real type (now: version 38.23) Tue Jun 22 08:39:01 1982 by jkf fixed ../Makefile so lisp can be installed in official distribution (now: version 38.22) Fri Jun 18 13:56:14 1982 by jkf fixed bug in setq which occured when setq was given no arguments Thu Jun 17 15:37:11 1982 by jkf added two low level functions for doing termlib. termcapinit, termcapexe fixed a bug in memory use reporter (now: version 38.21) Wed Jun 9 07:21:03 1982 by jkf added the #x, #X character macro which reads hex. Reads digits 0-9,a-f,A-F and allows a preceeding minus sign. (now: version 38.20) Thu May 27 14:38:15 1982 by jkf fixed bug in the code to reset the translinks after a load or fasl. file affected: common1.l (now: version 38.19) Tue May 25 06:17:51 1982 by jkf fixed the msg macro so that all atoms are evaled and printed (now: version: 38.18) Wed May 12 13:36:20 1982 by jkf fixed bug in fileopen (lam8.c) in which it failed to store the name of the file opened. (now: version 38.17) Wed May 5 20:37:39 1982 by jkf added function hunk-to-list which takes a hunk as an argument and returns a list. The error message which is printed when a too large print name is encountered was improved. (now: version 38.16) Wed May 5 20:20:10 1982 by jkf sped up makhunk in common1.l. Used =& instead of equal (now: version 38.15) Wed Apr 28 09:37:45 1982 by jkf if $ldprint is non-nil, then load will print [load filename] before it does a load of a lisp source file. file affected: common1.l (now: version 38.14) Mon Apr 26 21:29:35 1982 by jkf added the truename function files affected: lam1.c, sysat.c h/funcs.h Sun Apr 25 21:44:21 1982 by jkf improved error message for fixnum interpreted functions. added fixnum functions 1+ and 1- files affected: lam4.c, sysat.c, h/lfuncs.h (now: version 38.13) Sat Apr 24 08:39:01 1982 by jkf Changed 'function' so that it works exactly like 'quote' (in the interpreter). This was necessary to preserve equivalence with liszt which now always returns a symbol for 'function', not a binary object. This also makes the handling of 'function' compatible with Maclisp type lisps. (now: version 38.12) Fri Apr 23 14:03:13 1982 by sklower modified Ifcall to push a frame on the stack to indicate that lisp is calling fortran: F_TO_FORT. Another identifier, F_TO_LISP is pushed when coming from fortran to lisp. The purpose of this is mainly to indicate when the current values of np and lbot should be used. files affected: inits.c, eval2.c and most likely others. Fri Apr 23 12:34:39 1982 by jkf fixed 'signal' so that it tells the operating system to ignore ignored signals, rather than just putting a notation in the sigacts array. This is important if you want waiting processes to ignore signals file affected: lam6.c Wed Apr 21 23:59:41 1982 by jkf write function int:showstack which returns one showstack frame. then wrote showstack and baktrace in lisp. files affected: lam3.c, sysat.c, lfuncs.h, common2.l (now: version 38.11) Wed Apr 21 13:41:25 1982 by jkf the read-in-lisprc function will now act like the liszt. it will search first in . then in $HOME. It will search first for .o then .l then "" (soon to be removed). the name it will look for are .lisprc and lisprc (now: version 38.10) Sun Apr 18 12:51:06 1982 by jkf added functions to access parts of a filestat structure file affected: common2.l (now: version 38.09) Sun Apr 18 12:46:22 1982 by jkf added the function (pp-form 'g_form ['p_port]) which should be used instead of $prpr. $prpr will be removed but for now, it also exists file affected: pp.l Sat Apr 17 14:03:30 1982 by jkf modified tyi in lam6.c so that it will take an optional second argument which is the value to return upon eof. file affected: lam6.c Sat Apr 17 12:53:18 1982 by jkf modified load in common1.l, so that if a fasl is done when the translinks are turned on, the new functions fasl'ed will be linked in. Previously, you would have to explictly relink the tables after fasl'ing in or else the old functions would be used. files affected: common1.l, toplevel.l (autoloading) Tue Apr 13 14:32:11 1982 by jkf added vector and vectori data types. files affected:Talloc.c, lam8.c, io.c, sysat.c, lam1.c data.c, Orderit.s, h/global.h, h/lfuncs.h, h/sigtab.h will describe the new functions once they stabilize Tue Apr 13 09:26:12 1982 by jkf short circuit recursive evaluation of arguments to lambdas if the arguments are bound atoms or int's or strings. file affected: eval.c (now: version 38.08) Tue Apr 13 00:00:08 1982 by jkf if the lisp variable 'displace-macros' is non-nil, then when a macro expansion is done, the resulting expansion replaces the definition. files affected: eval.c, sysat.c, h/sigtab.h (now: version 38.07) Mon Apr 12 10:32:21 1982 by jkf keith made changes to these files in response to kashtan's work to get franz working under vms: <to be filled in> fixed filestat to produce ctime. also modified filestat: fcns. files affected: lam8.c, common2.l (now: version 38.06) Tue Apr 6 13:07:13 1982 by jkf vertical tab was listed as 9. in charmac, it should be 11. (now: version 38.05) Sun Apr 4 12:13:40 1982 by jkf qfuncl.c: preserved r0 across call to Undeff. This caused a obscure error after a call to an autoloaded function from compiled code. (fix l38.3) eval.c: modified function Undeff to insure that it only returned a symbol. Otherwise qlinker would do the wrong thing. (fix l38.3) toplevel.l: made a better error message if autoloading a file didn't work correctly. Not important enough to send out a fix. (now version: 38.04) Thu Apr 1 11:09:37 1982 by jkf fixed bug in append2args (fix l38.2) added filestat:* functions to common2.l to access filestat info. They should probably be macros. modified C coded filestat to return all the stat information (now: version 38.03) Wed Mar 31 08:13:45 1982 by jkf In order to keep track of which version has which fixes in it, I've added a file version.l to /usr/lib/lisp. This sets two variables: franz-minor-version-number: reflects the particular edit this-lisp-version-built: ctime string set when lisp loaded (now: version 38.02) Tue Mar 30 08:43:01 1982 by jkf fixed bug in qfuncl.c (address of port_name). Fixed distribution source. (now: version 38.01) Fri Mar 19 11:17:12 1982 by jkf make distribution. (now: version 38.00) Fri Mar 19 11:16:33 1982 by jkf fix bug in makeenv. it wasn't protecting a dtpr from gc while building the environment. Tue Mar 16 10:55:47 1982 by jkf backquote will now correctly handle `(a \, b) resulting in the list (a |,| b) Mon Mar 15 21:40:23 1982 by jkf add Ibindvars and Iunbindvars to permit progv to be open compiled. Functions are in lam7.c, and nfasl.c is modified to put those entry points in the symbol table. Mon Mar 15 21:39:56 1982 by jkf Allow concat to generate full size strings Sun Mar 14 15:58:50 1982 by jkf added setting of initial values for Standard-Input, Standard-Output and Standard-Error. These symbols should be considered read-only by the user. Originally they were set in the lisp code, but because the standard input was changed while the lisp code was fasled in, Standard-Input was never set correctly. Tue Feb 23 10:26:56 1982 by jkf fixed bug in allocator (next_one in Talloc.c). If a symbol was allocated and there were non left, next_one incorrectly assumed that symbols were not gc'ed and thus failed to trigger a gc. Tue Feb 16 11:34:56 1982 by jkf In order to use the new reader, the setsyntax function was written in lisp to use symbolic character types. the getsyntax function was also written in lisp and it uses the new int:getsyntax function written in C. Tue Feb 16 11:32:34 1982 by sklower the reader was modified to look at the bits of the character code independently. Infix splicing and non splicing macros were added. Other readtable functions were changed: explode, print. Tue Feb 16 11:03:22 1982 by jkf changed to opus 38 Fri Feb 12 16:06:03 1982 by jkf fixed bug in eval. if a function was interpreted, its definition was not stacked, the code assuming that the function would not redefine itself. this is a poor assumption, so the code was changed to stack the function definiton Tue Feb 9 22:37:48 1982 by jkf fixed bug in bignum division, routine calqhat (in assembler). Problem was an incorrect rendering of step D3 of knuths bignum division algorithm. It would fail very rarely. Sun Feb 7 13:16:26 1982 by jkf fixed bug in fasl (file nfasl.c), whereby if more than 500 functions were defined, it would scribble in memory, usually causing a 'bad format for fasl file' error. The limit is now 2000 and if that is exceeded, an error message will be produced. Fri Dec 25 21:46:20 1981 by jkf fixed bug in macrox, whereby if a macro function did a read from another port, that port would be used when the macro returned Fri Dec 25 18:57:13 1981 by jkf fixed bug in readlist so that even if an error occurs during the readlist, the file descriptor will be de-allocated. Also fixed a bug which caused the mkstFI function fail to realize where were no more file descriptors left. file affected: lam6.c Fri Dec 25 18:53:04 1981 by jkf modified the sharp sign macro in /usr/lib/lisp/backquote.l so that users can add there own handlers to the sharp sign macro. There are many examples of the defsharp macro in backquote.l and documentation as well. Fri Dec 25 18:49:58 1981 by jkf when allocating a large amount of space, now only MAXCLEAR is cleared at once with blzero. This limit exists due to the limitations of the vax hardware (and the movc5 instruction) file affected: Talloc.c Sun Dec 13 17:47:46 1981 by jkf converted qfuncl.s to be pre-processable by the C preprocessor. It is now named qfuncl.c and it has been re-entered into SCCS. The old file: qfuncl.s is still sccs get'able. qfuncl.c, if compiled with -DPROF, will put in profiling code for the common functions. Sun Dec 6 19:50:32 1981 by jkf made the error messages for reading a right paren or period be reasonable. Sat Nov 21 00:30:10 1981 by jkf now load will not disable garbage collection during the loading process (it will not bind gcdisable to t). This was done because it was causing problems: for example, if a dumplisp were done during a load, gcdisable would be 'permanently' set to t. Thu Nov 19 20:33:34 1981 by jkf some people didn't like the fact that the compiler purcopies its literals. Thus there is now a lisp symbol $purcopylits which when true tells fasl to purcopy the literals. It defaults to true. Files affected in the change: h/sigtab.h, sysat.c, nfasl.c, Talloc.c Sat Nov 7 08:53:44 1981 by jkf more unwind-protect bugs: if a non throw was intercepted by a unwind-protect, it would be saved and restarted as if it were a throw. This was fixed by having the value returned by a *catch of ER%uwpt have its 'car' be the number of the class of non local goto which was caught by the unwind-protect. modified: frame.c and lam8.c Tue Nov 3 09:49:42 1981 by jkf two bugs discoverd in franz's error handlers. Lerr: the call to errorh was done incorrectly (lam6.c) Lctcherr: handy was never given a value (lam8.c) both of these are being sent out as fix l36.? Sat Oct 24 16:56:36 1981 by jkf in auxfns0.l: rewrote lambdacvt from scratch. Now it will do things a bit more intelligently: making a lambda instead of a lexpr if only &aux variables are given. Thu Oct 22 10:18:14 1981 by jkf added functions (actually equivalences) <&,=& and >& to be the fixnum only equivlants of lessp,equal and greaterp. file affected: auxfns0.l Thu Oct 22 10:16:40 1981 by jkf fixed bug in Ndo (fex2.c) whereby whenever a go was caught inside a do, the end test was evaluated next. This was saved as bug fix l36.4 since even though we are on Opus 37, this bug exists in 36 as well. Wed Oct 14 10:46:08 1981 by jkf fixed Lsyscall so it would return an inewint instead of a newint, thus preventing small not eq fixnums from entering the environment. file: lam4.c Sat Oct 10 13:53:43 1981 by jkf Fixed Ltyi to return numbers in range 0 to 255 or -1 for EOF. The key is that getc returns in integer which is either -1 (for eof) or a number between 0 and 255 (0 and 127 if in cooked mode). [file: lam6.c]