[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
KCL
- To: commonloops.pa@Xerox.COM
- Subject: KCL
- From: harrisr@turing.cs.rpi.edu (Richard Harris)
- Date: Wed, 27 Jul 88 22:11:51 EDT
- Redistributed: commonloops.pa
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, ...