From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.bugs Subject: bug#17168: 24.3.50; Segfault at mark_object Date: Sun, 06 Apr 2014 15:58:27 -0400 Message-ID: References: <87y4zop44m.fsf@yahoo.fr> <533C3AF5.6070502@yandex.ru> <533C6905.9060309@dancol.org> <83bnwjbh8v.fsf@gnu.org> <533C75A6.60900@dancol.org> <533D06E6.2060001@yandex.ru> <533D07EF.1040502@yandex.ru> <533D13E2.3060300@dancol.org> <533D251E.3030108@dancol.org> <533D6A19.8050504@yandex.ru> <533D9099.3000104@dancol.org> <533D9F2C.7030500@yandex.ru> <533D9FBB.2050803@dancol.org> <533DB4F0.20706@dancol.org> <534085B1.9070307@dancol.org> <534176F3.9090205@dancol.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1396814369 11099 80.91.229.3 (6 Apr 2014 19:59:29 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 6 Apr 2014 19:59:29 +0000 (UTC) Cc: Dmitry Antipov , 17168@debbugs.gnu.org To: Daniel Colascione Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Apr 06 21:59:22 2014 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1WWtDu-0000z0-3s for geb-bug-gnu-emacs@m.gmane.org; Sun, 06 Apr 2014 21:59:22 +0200 Original-Received: from localhost ([::1]:59111 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WWtDt-0002pz-P0 for geb-bug-gnu-emacs@m.gmane.org; Sun, 06 Apr 2014 15:59:21 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:57103) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WWtDi-0002od-KJ for bug-gnu-emacs@gnu.org; Sun, 06 Apr 2014 15:59:18 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WWtDb-0000De-1d for bug-gnu-emacs@gnu.org; Sun, 06 Apr 2014 15:59:10 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:37210) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WWtDa-0000DZ-Tx for bug-gnu-emacs@gnu.org; Sun, 06 Apr 2014 15:59:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1WWtDa-00049M-Ld for bug-gnu-emacs@gnu.org; Sun, 06 Apr 2014 15:59:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 06 Apr 2014 19:59:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 17168 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: moreinfo Original-Received: via spool by 17168-submit@debbugs.gnu.org id=B17168.139681431415902 (code B ref 17168); Sun, 06 Apr 2014 19:59:02 +0000 Original-Received: (at 17168) by debbugs.gnu.org; 6 Apr 2014 19:58:34 +0000 Original-Received: from localhost ([127.0.0.1]:38391 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WWtD8-00048P-1e for submit@debbugs.gnu.org; Sun, 06 Apr 2014 15:58:34 -0400 Original-Received: from pruche.dit.umontreal.ca ([132.204.246.22]:39164) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WWtD6-00048H-4F for 17168@debbugs.gnu.org; Sun, 06 Apr 2014 15:58:32 -0400 Original-Received: from fmsmemgm.homelinux.net (lechon.iro.umontreal.ca [132.204.27.242]) by pruche.dit.umontreal.ca (8.14.1/8.14.1) with ESMTP id s36JwRU1022027; Sun, 6 Apr 2014 15:58:28 -0400 Original-Received: by fmsmemgm.homelinux.net (Postfix, from userid 20848) id A2DCBAE27C; Sun, 6 Apr 2014 15:58:27 -0400 (EDT) In-Reply-To: <534176F3.9090205@dancol.org> (Daniel Colascione's message of "Sun, 06 Apr 2014 08:46:59 -0700") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) X-NAI-Spam-Flag: NO X-NAI-Spam-Threshold: 5 X-NAI-Spam-Score: 0 X-NAI-Spam-Rules: 1 Rules triggered RV4904=0 X-NAI-Spam-Version: 2.3.0.9378 : core <4904> : inlines <693> : streams <1153104> : uri <1722285> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:87829 Archived-At: > The pinned bit approach is exactly what I implemented, except that we > walk obarray, like we already do, instead of all symbols. We already walk obarray during the mark phase, so I don't understand what you mean here. > Your approach would require that we check for non-symbols in purecopy > and reject them, Yes. > and it'd have a bigger performance impact, since we'd > then need to walk the entire symbol list essentially twice. Indeed. I don't expect it to be significant, tho. As you point out we already walk that list once during gc_sweep, so doing it one more time should be very quick. Also, I'd expect that a significant proportion of all symbols would be marked with that bit, so scanning all symbols won't take that much longer than the alternative of only scanning a vector of pinned symbols. Also scanning all symbols like gc_sweep means that the scan is nicely sequential in memory. > I'd strongly prefer the fully general approach in my patch. It isn't > *that* complicated. But it requires more memory, whereas we already have space for an extra bit in the Lisp_Symbol struct. I guess the main difference resides in whether we want to allow uninterning pinned symbols. If we do as you suggest and disallow it, then indeed, I expect there to be rather few uninterned pinned symbols so using a small auxiliary array makes sense. But I'd rather we don't pay attention to a symbol's interned status, so we can later unintern them. Stefan