Subject: bug#18522: 24.4.50; mapcar is very slow

From: Eli Zaretskii <[email-masked]>
Date: Sun, 28 Feb 2016 17:48:29 +0200

> From: Peter Münster <[email-masked]>
> Cc: Eli Zaretskii <[email-masked]>,  [email-masked]
> Date: Sun, 28 Feb 2016 09:07:08 +0100
> 
> On Sun, Feb 28 2016, Lars Ingebrigtsen wrote:
> 
> > Try evaling the following and post the list appearing in *Messages*:
> >
> > (mapatoms
> >  (lambda (symbol)
> >    (when (boundp symbol)
> >      (let ((value (symbol-value symbol)))
> >        (while (consp value)
> > 	 (let ((elem (car value)))
> > 	   (when (bufferp elem)
> > 	     (message "%s has a buffer %s"
> > 		      symbol (buffer-name elem))))
> > 	 (setq value (cdr value))))))
> >  obarray)
> 
> multi-web-global-mode-buffers has a buffer  *Minibuf-1*
> rfn-eshadow-frobbed-minibufs has a buffer  *Minibuf-1*
> gnus-buffers has a buffer *Article nndraft:drafts*
> gnus-buffers has a buffer  *Original Article nndraft:drafts*
> gnus-buffers has a buffer *Summary nndraft:drafts*
> gnus-buffers has a buffer nil
> gnus-buffers has a buffer *unsent wide reply to Lars Ingebrigtsen*
> gnus-buffers has a buffer  *gnus article copy*
> gnus-buffers has a buffer  *nnmail message-id cache*
> gnus-buffers has a buffer  *Gnus Backlog*
> gnus-buffers has a buffer  *gnus work*
> gnus-buffers has a buffer  *Gnus agent overview*
> gnus-buffers has a buffer *Group*
> 
> And then I have to stop it with C-g because it hangs...

So there's a symbol-value there whose cdr equal's itself?  That should
be easy to protect against, no?

Also, I'd suggest disabling GCC during the time this runs.