Subject: bug#5082: 23.1.50; print-circle and make-hash-table

From: 川幡太一 <[email-masked]>
Date: Tue, 1 Dec 2009 00:09:30 +0900

Dear Emacs Developers,

I've found an Emacs behavior that seems a bug concerning to `print-circle'
and make-hash-table, so I would like to report it.

By setting `print-circle' to `t', printing Lisp Object with recursive
or repetitive
list should be displayed as #N= and #N# syntax.

However, it seems this is not true when printing lisp objects within
hash tables
(which become possible in Emacs 23.1.50.)  Following is an example.

Is it possible to display the repetitive lisp object within printed hash tables
by #N= and #N# syntax, when `print-circle' is set to `t'?

I notify this behavior as a bug, but it may not be so.  I apologize in that
case.

(let ((print-circle t)
      (x (list 10 20))
      (y (make-hash-table)))
  (insert (format "%S\n" (list x x)))
  (puthash 1 x y)
  (puthash 2 x y)
  (insert (format "%S\n" y))
  (setcar x 3)
  (insert (format "%S\n" y)))

Result:
> (#1=(10 20) #1#)
> #s(hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8
> data (1 (10 20) 2 (10 20)))
> #s(hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8
> data (1 (3 20) 2 (3 20)))
nil

Cordially Yours,

-- 
---------------------------------------------------------------------
　KAWABATA, Taichi　　　E-mail: [email-masked]