The attached patch to clojure.core fixes the printing problem for  
types that have no implementation of print-method. When such objects  
are printed or converted to strings, an infinite loop leads to a  
stack overflow. The reason is that the :default implementation for  
print-method calls str on the object, which in turn calls print- 
method again.

The path makes two changes:

1) The current :default implementation becomes the implementation for  
Object, thus remaining the default for everything that does not have  
a type field in the metadata.

2) A new :default implementation calls print-method recursively after  
having removed the :type field from the object's metadata.

Konrad.


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to 
clojure+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Attachment: print-method.patch
Description: Binary data

Reply via email to