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

PCL package



I am delighted to have a copy of the PCL package.  It is just what we are
looking for to develop user interface tools on top of CLUE/CLX.  We are running
it in the Symbolics (7.2) and Lucid ver 2 (Sun 3, hoping for Sun4 and VAX)
environments.

Suggestions and bugs [8/2/88 version from arisia.xerox.com:/pcl/] ::

 1) Please modify the Mode lines to NOT automatically create the packages on
Genera.  By default, Genera creates the package with the Zetalisp colon mode
(i.e. no internal symbols)

 2) The definition of the mapforms property of pcl::top-level-form was
commented out in rel-7-2-patches.  This caused the Genera compiler to barf while
compiling simple defclasses (like (defclass foo () ())).

 3) Sun 4 notes: [Under Lucid 2.1.1]
     a) %LOGAND& was not defined.  
        I replaced it with the following definition : 

       ;;; Fix for SPARC LCL
       #+sparc
       (defun %logand& (x y)
	 (declare (optimize (speed 3) (safety 0)) (inline logand))
	 (logand (the fixnum x) (the fixnum y))
	 )
     b) Got weird error [FLAG was not either EQ or LUCID::NE] compiling 
        lucid::proceedurep (used by set-function-name-1, funcallable-instance-p,
        set-funcallable-instance-function).  
        To fix I replaced all uses by a call to the following ::
        (defun my-procedurep (x)
	  #+sparc (and (functionp x) (not (listp x)))
	  #-sparc (procedurep x)
	  )
     c) Finally, there looked to be a compiler bug in PROG which caused ITERATE to lose
        I gave up at this point.

 4) I suggest that all the hair used to define the %logand and %logxor
functions on Lucid (in lucid-low) be removed and be replaced by the more common
lispy and efficient ::
(defmacro %logand (x y)
   `(the fixnum
	 (locally (declare (optimize (speed 3) (safety 0)) (inline logand))
           (logand (the fixnum ,x) (the fixnum ,y)))))


-- jim