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

EW under Apollo Domain Lisp

    Date: Mon, 21 May 90 14:28 EDT
    From: davel@whutt.att.com

    We are attempting to compile EW under Apollo's Domain/Common Lisp
    (a product of Lucid) with CLOS and CLX.  We have been hung up on the
    file io-functions.lisp because:
    1. It appears to redefine standard lisp functions, and *then* call
    the function (setup-lisp-functions) which is designed to take care of 
    saving away the old version of the functions.
    2. It uses pcl internals to handle type checking instead of CLOS
    functions.  Simply adding (IN-PACKAGE 'CLOS :NICKNAMES '(PCL))
    to the system file doesn't solve the problem.

The problem is in the definition of type-of. PCL appears to not allow
the use of type-of to find the type of a class so EW does one of
it's little substitution tricks to redirect this call to the right PCL
call. (typep pcl::standard-class-p <object>) Unfortunatley this function
does not exist in CLOS. Fortunatley CLOS can use type-of to return the
type of a class. Use #-clos to switch out the defintion of type-of in
type.lisp, the references to type-of in *functions-shadowed* in
io-functions.lisp and *common-lisp-functins-shadowed* [or something] in
symbols.lisp.  This will then prevent shadowing type-of in the package
EW when CLOS is loaded.

This assumes that no one has :clos in their *features* unless they really
have CLOS and not just PCL.  

    Does anyone have a version of EW which compiles correctly on
    a CLOS, CLX, and CLtL2 version of Common Lisp?

    David Loewenstern
    AT&T Bell Laboratories
    Whippany, NJ 07981
    email: davel@whutt.att.com || whutt!davel
    at&t: 201-386-6516

Peter T. Magee
44 71 356 3524