GNU bug report logs -
#30626
26.0.91; Crash when traversing a `stream-of-directory-files'
Previous Next
Reported by: Michael Heerdegen <michael_heerdegen <at> web.de>
Date: Tue, 27 Feb 2018 09:23:01 UTC
Severity: normal
Tags: fixed, patch
Found in version 26.0.91
Done: Noam Postavsky <npostavs <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
Message #62 received at 30626 <at> debbugs.gnu.org (full text, mbox):
> From: Michael Heerdegen <michael_heerdegen <at> web.de>
> Cc: npostavs <at> gmail.com, 30626 <at> debbugs.gnu.org
> Date: Wed, 28 Feb 2018 17:20:53 +0100
>
> Eli Zaretskii <eliz <at> gnu.org> writes:
>
> > How do you see that the car is immediately thrown away?
>
> After expansion and dispatch, this is what gets executed:
>
> #+begin_src emacs-lisp
> (let ((stream (stream-range 1 1000000)))
> (while (not (stream-empty-p stream))
> (funcall #'ignore (stream-first stream))
> (setq stream (stream-rest stream))))
> #+end_src
>
> Creating an element and throwing away the outermost cons alternate.
I don't think it's thrown away from the POV of GC. But you can easily
see what is going on if you trace the GC on the C level. You should
be able to see which object causes recursion in mark_object. I didn't
look long enough, but what I did see looks very much like the entire
unwound stream.
This bug report was last modified 6 years and 45 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.