[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

KCL



I have a group of patches to KCL which enable me to run PCL, CLX, and a simple
PCL-based window system.
These patches are (nearly) independent of Bill Schelter's KCL patches.  
I have a file created by calling 
diff -c akcl-file changed-file >> diff
for every changed file, which I am willing to distribute.
My mail address is harrisr@turing.cs.rpi.edu

  Rick Harris

A) load-time-eval support (for pcl)
   cmpeval.lsp: c1symbol-fun: reverse checks for (macro-function fname) and (get
fname 'compiler-macro)
   pcl/kcl-low: load-time-eval definition:
    (defmacro load-time-eval (form) `(progn ,form))
    (si:define-compiler-macro load-time-eval (form) `'(si:|#,| . ,form))
B) &environment fix
   defmacro.lsp
   cmplam.lsp
   pcl/defsys: skip kcl-patches
C) describe and inspect of structures and pcl instances
   describe.lsp
D) eval-when handling, symbol interning, #, handling ...
   1) interning of symbols and evaluation of #, at load time is much closer
      to what happens at read time,
   2) top-level package operations do not (and do not need to) get run before
      anything else in the file can be loaded,
   3) the functions MAKE-PACKAGE, IN-PACKAGE, SHADOW, SHADOWING-IMPORT,
      EXPORT, UNEXPORT, USE-PACKAGE, UNUSE-PACKAGE, IMPORT, PROVIDE, REQUIRE,
and PROCLAIM 
      behave as though calls to them were wrapped in (EVAL-WHEN (LOAD COMPILE
EVAL) ...)
      and all other function calls behave as though they were wrapped in
      (EVAL-WHEN (LOAD EVAL) ...)
   4) EVAL-WHEN is useful in macros again, and
   5) the CL macros DEFMACRO, DEFSTRUCT, DEFVAR, DEFPARAMETER, DEFCONSTANT,
DEFTYPE,
      DEFSETF, and DEFINE-SETF-METHOD wrap (EVAL-WHEN (LOAD COMPILE EVAL) ...)
      around the forms they produce.
   cmpaux.c: change set_VV()
   read.d: string_to_object: use standard_read_object_non_recursive instead of
read_object
                             to avoid a problem with #0= (spurious Duplicate
definitions message)
   sfasl.c: use initialize_file() in fasload()
   unixfasl.c: add initialize_file() and use it in fasload()
   defstruct.lsp: use eval-when in CL macros
   evalmacros.lsp: use eval-when in CL macros
   predlib.lsp: use eval-when in CL macros
                typep: (typep v '(array x)) works now (for all v and (legal) x)
   setf.lsp: use eval-when in CL macros
   cmpenv.lsp: vv changes, add-* changes
   cmpmain.lsp: changes to data-file output
                call t1expr-top rather than t1expr
   cmptop.lsp: vv changes,top-level changes,add t1expr-top,change ctop-write,...
   basic_kcl.c: replaces sys_kcl.c (I haven't yet made the necessary changes to
sys_kcl.c)
   makebasic: replaces unixport/makefile (until I fix sys_kcl.c)
E) add (unsigned_byte 8) array-element-type (for clx)
   array.c: add aet_byte support
   gbc.c: add aet_byte support
   number.c: add fixbyte()
   sequence.d: add aet_byte support
   typespec.c: add aet_byte support
   arraylib.lsp: find-subtype macro for use in make-array
   cmptype.lsp: type>= change, ...