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

eclipse problem



    Date: Wed, 13 Nov 1991 14:22 EST
    From: bruno@oz.geology.washington.edu (Steve Willis)



      Hello.  I think that we're the last site still running the Scope system - 
    the Pixar Image Computer connected to a symbolics 3670.  We're trying to upgrade
    the Eclipse pseudo lisp compiler to run under 8.1, and are having a bit of
    difficulty.  

      Eclipse takes a pseudo lisp language and compiles it to pixar executables
    and a lisp stub that invokes the pixar code.  The main form that we use
    is   (defun-pixar ...).  The following code compiled (and worked) correctly
    under gen 8.0, and fails under 8.1.


    (defun-pixar interleave-inside-pixar (in-pw out-pw in-array o-array band nbands qw
						&optional (strt 0))
      (declare (fixnum in-pw out-pw band nbands qw strt)
	       ((fixnum :pixel t :dimensions 1) in-array)
	       ((fixnum :pixel t :dimensions 1) o-array))
       (loop with iwidth = (pwwidth in-pw)
	    with owidth = (pwwidth out-pw)
	    for y from 0 below (pwheight in-pw) do
	...
	(loop for x1 from strt below (+ strt qw)
	      for x2 from ...
	      for x3 from ...
	      for x4 from ... 
	      for xi from band by nbands do
	 (setf (aref o-array xi) (make-pixel (red-component (aref in-array x1))
					     (red-component (aref in-array x2))	
					     (red-component (aref in-array x3))
					     (red-component (aref in-array x4)))))
	...))


    When the form  (defun-pixar ...) is compiled, we get the following error:


    Error> While compiling (SETF (AREF O-ARRAY XI)
				  (MAKE-PIXEL (RED-COMPONENT (AREF IN-ARRAY X1))
				   (RED-COMPONENT (AREF IN-ARRAY X2))
				   (RED-COMPONENT (AREF IN-ARRAY X3))
				   (RED-COMPONENT (AREF IN-ARRAY X4)))):

    Unknown declaration keyword VARIABLE-INLINABLE

Note that this one does not say COMPILER:VARIABLE-INLINABLE.

    Error> While compiling (SETF (AREF O-ARRAY XI)
				  (MAKE-PIXEL (RED-COMPONENT (AREF IN-ARRAY X1))
				   (RED-COMPONENT (AREF IN-ARRAY X2))
				   (RED-COMPONENT (AREF IN-ARRAY X3))
				   (RED-COMPONENT (AREF IN-ARRAY X4)))):

    COMPILER:VARIABLE-INLINABLE is not a known type.
    Error> While compiling (SETF (AREF O-ARRAY XI)
				  (MAKE-PIXEL (RED-COMPONENT (AREF IN-ARRAY X1))
				   (RED-COMPONENT (AREF IN-ARRAY X2))
				   (RED-COMPONENT (AREF IN-ARRAY X3))
				   (RED-COMPONENT (AREF IN-ARRAY X4)))):

    COMPILER:VARIABLE-INLINABLE is not a known type.



    The form itself macro-expands into:

    (LET* ((#:G19432 O-ARRAY)
	   (#:G19433 XI))
      (DECLARE (COMPILER:VARIABLE-INLINABLE #:G19432 #:G19433))
      (ZL:ASET (VALUES (MAKE-PIXEL (COMPONENT (VALUES (AREF IN-ARRAY X1)) 0)
			(COMPONENT (VALUES (AREF IN-ARRAY X2)) 0)
			(COMPONENT (VALUES (AREF IN-ARRAY X3)) 0)
			(COMPONENT (VALUES (AREF IN-ARRAY X4)) 0)))
	       #:G19432
	       #:G19433))

    Evidently the problem is in the (declare ..) in the macro expansion.  Is
    this something that has changed from 8.0 to 8.1??  Is there a simple way
    to make compiler:variable-inlinable a known type??  

COMPILER:VARIABLE-INLINABLE is not SUPPOSED to be a type.


							I've tried to locate
    the defsetf call without success.  Any hints on where to find it??  The
    get-setf-method that I tried requires the appropriate environment and I
    can't figure out how to stuff that in at compile time (in fact, I'm not
    even convinced this is a correct way to proceed).

When I replace ... with xxx or ;xxx, and DEFUN-PIXAR with DEFUN,
and comment out the weird declarations:
 (declare ((fixnum :pixel t :dimensions 1) in-array)
	  ((fixnum :pixel t :dimensions 1) o-array))

I find it compiles fine for me.  I get the same expansion
of the SETF as you do.

I have a suspicion that DEFUN-PIXAR is doing some code-walking
and some incorrect declaration processing.  There's no way
the Lisp compiler should be getting confused into thinking
that COMPILER:VARIABLE-INLINABLE is supposed to be a type.