Subject: Re: bug#17168: 24.3.50; Segfault at mark_object

From: Richard Stallman <[email-masked]>
Date: Sun, 06 Apr 2014 14:00:00 -0400

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

Thanks for writing a fix.  I think it can be simpler.

You accumulate a list of uninterned symbols whose names are pure.  Why
make this into a hash table and then a vector?  A list should suffice.

Or maybe some (or even all) uninterned symbols with pure string names
should be freed like all other symbols when not pointed to.  That
would be even simpler.

Is there really a need to avoid collecting some of them?

    As an optimization, when we build the final
    vector form of Fpure_reachable, we see whether each item is a symbol
    interned in the initial obarray. If it is, then instead of adding it to
    the vector, we mark the symbol as un-uninternable,

Or unintern could check whether the name is pure.

-- 
Dr Richard Stallman
President, Free Software Foundation
51 Franklin St
Boston MA 02110
USA
www.fsf.org  www.gnu.org
Skype: No way! That's nonfree (freedom-denying) software.
  Use Ekiga or an ordinary phone call.