; -*- Mode:LISP; Package:OBJ; Base:10; Readtable:CL; Syntax: Common-lisp -*- ;; Copyright (C) Gary Drescher 1984, 1985 ;; Licensed to and distributed by Lisp Machine, Inc. ;; See filename "Copyright" for ;; licensing and release information. (in-package "OBJ") (defobfun exist (&rest args &key* obj-name) (if obj-name (have 'obj-name obj-name)) (bind-builtin-instance-vars (current-obj) args) nil) (defvar obj-name) (defvar class-name) (defvar *objs-print-self? t) (defobfun print-self (&aux (ptr (if *%pointer? (%pointer (current-obj)) (obj-index (current-obj))))) (if *objs-print-self? (cond ((null (current-obj)) (print nil)) ((own? 'class-name) (format t "#" class-name ptr)) ((own? 'obj-name) (if (own? 'class-name) (format t "#<~a, a ~a ~o>" obj-name class-name ptr) (format t "#<~a ~o>" obj-name ptr))) ((there? 'class-name) (format t "#" class-name ptr)) (t (format t "#" ptr))) (format t "#" ptr)))