[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Two difficulties in running PCL on AKCL
- To: email@example.com
- Subject: Two difficulties in running PCL on AKCL
- From: firstname.lastname@example.org
- Date: Mon 29 Aug 1988 17:23 CDT
- >to: /addr=att!rascal.ics.utexas.edu!kcl
- Email-version: 2
- Message-version: 2
- Posted-date: Mon 29 Aug 1988 17:23 CDT
- Ua-message-id: <post.lgm.Mon 29 Aug 1988 17:00 CDT>
I am now running a very recent version (this month's, in fact)
of Austin KCL. I'm trying to compile and run the latest PCL
(August 28) on top of it. I've run into two problems,
illustrated in the examples below.
1) Consider the file
(defvar symb 'func)
(defun func nil t)
This file is accepted without incident if loaded interpretively;
but if compiled, a fresh AKCL refuses to load the .o, claiming
that symb is not bound. Surrounding the forms with
(eval (compile load eval)
The "pkg" file in PCL contains a construct like this.
2) Consider the file
(defmacro mac (arg) `(progn t (car ,arg)))
(defsetf mac (arg) (val) `(setf (car ,arg) ,val))
After loading this file, any attempt to use setf with mac -
that is, a form like
(setf (mac stuff) item)
fails. Apparently setf does not look for a setf-form for mac ,
but rather immediately macro-expands (mac stuff) . It then
fails to find a setf-form for progn , and complains.
CLtL says that the so-called "access function" in defsetf
can indeed be a macro. A construct like this is used in PCL's
I have inserted workarounds in these cases, but I'd still like
to know: Do these constructs work for other people?
Shouldn't they work?
Lawrence G. Mayka
AT&T Bell Laboratories
Subject: Bypassing the Super User
Two problems that can be encountered when installing and using KCL
that apparently require super-user privileges to fix are (a)
installing /usr/lib/cmpinclude.h and (b) not having enough space in
/tmp for compiling large files. Bill Schelter has produced solutions
in AKCL not requiring super-user privilges for both of these problems.
The solutions work in the Sun/BSD/cc case, but not may work, for
example in System V. However, similar patches for other system
To use to use the connected directory instead of /tmp for the
temporary files involved in compilation, one can do
(setq compiler::*cc* (concatenate 'string compiler::*cc* "-temp=. ")),
at least for the Sun cc. This is not at all standard. It does not
work for gcc for example or system V although there is some such method there.
Concerning cmpinclude.h you can
(setq compiler::*cc* (concatenate 'string compiler::*cc* " -I/usr2/akcl/h ")),
where /usr2/skcl/ is the directory where akcl resides, to let the
compiler know to check that directory for the cmpinclude.h file.