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

Re: STREAMP and CLOS



	Date: Mon, 24 Feb 1992 11:25-0500
	From: barmar@Think.COM (Barry Margolin)
	Subject: STREAMP and CLOS
	To: bwild@azurro.fzi.de (Bernd Wild)
	Cc: slug@ai.sri.com
	In-Reply-To: <9202241751.AA00621@azurro.fzi.de>
	Message-Id: <19920224162520.2.BARMAR@occam.think.com>
	
	    Date: Mon, 24 Feb 1992 12:51 EST
	    From: bwild@azurro.fzi.de (Bernd Wild)
	
	    We got a surprising result when applying STREAMP to an arbitrary CLOS  
	    instance. It always returns T. This behavior has changed from Genera  
	    8.0 to 8.1. While in 8.0 only "real" streams resulted in a T-value in  
	    8.1 this can be observed for every instance.
	    For example:
	
	    (defclass aa ()())
	
	    (setf my-aa (clos:make-instance 'aa))
	
	    (streamp my-aa) => T
	
	    We looked at the implementation of STREAMP: theu send a FLAVORS  
	    :WHICH-OPERATIONS message to the CLOS instance and obtain a message  
	    list which always contains the symbols :TYO and TYI which are  
	    significant for a stream. 
	
	    So, what's the correct predicate for checking anything for stream or  
	    not?
	
	I can't reproduce this.  I did
	
	(clos:defclass foo () ())
	(setq a (clos:make-instance 'foo))
	
	(streamp a) => NIL
	
	(send a :which-operations) => (:SEND-IF-HANDLES :WHICH-OPERATIONS :OPERATION-HANDLED-P :PRINT-SELF)
	
	I'm running Genera 8.1.1, in case you're running plain 8.1.  I don't
	think it should make a difference, though; none of the CLOS patches in
	the ECO seem to relate to this.
	
	                                                barmar

I'm running 8.1.1 too and it does return T for me. This is starting to be
interesting! :-)

  Mike McDonald				Advanced Technology Dept.	
					Harris Corp.
  Email: mac@trantor.harris-atd.com	M.S. 3A-1912
  Voice: (407) 727-5060			P.O. Box 37
  Fax:   (407) 729-3363			Melbourne, Florida 32902