From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Daniel Colascione Newsgroups: gmane.emacs.devel Subject: Re: Conservative GC isn't safe Date: Mon, 28 Nov 2016 11:40:22 -0800 Message-ID: <97b09a32-c355-2f3f-2bff-1a3e1ef3b6be@dancol.org> References: <66485157-00cd-4704-a421-cbfe84299cae@cs.ucla.edu> <69a1fdf3-7120-125b-8556-d74f5afc6b37@dancol.org> <8360na399k.fsf@gnu.org> <26a81224-c61e-27ac-37b4-5e7bd1e90910@dancol.org> <8337ibz984.fsf@gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Trace: blaine.gmane.org 1480362042 16080 195.159.176.226 (28 Nov 2016 19:40:42 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 28 Nov 2016 19:40:42 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 Cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Nov 28 20:40:33 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cBRmy-0002f9-MN for ged-emacs-devel@m.gmane.org; Mon, 28 Nov 2016 20:40:32 +0100 Original-Received: from localhost ([::1]:60800 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cBRn2-0005Bo-8i for ged-emacs-devel@m.gmane.org; Mon, 28 Nov 2016 14:40:36 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55907) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cBRmw-0005Bi-No for emacs-devel@gnu.org; Mon, 28 Nov 2016 14:40:31 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cBRmt-0004io-LI for emacs-devel@gnu.org; Mon, 28 Nov 2016 14:40:30 -0500 Original-Received: from dancol.org ([2600:3c01::f03c:91ff:fedf:adf3]:37170) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cBRmt-0004i5-CD; Mon, 28 Nov 2016 14:40:27 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=dancol.org; s=x; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:MIME-Version:Date:Message-ID:From:Cc:References:To:Subject; bh=eLRhpBlCezgo3vJRkmy4FscAHrdjiPP1SLWgaRzETDE=; b=X5tI/nti/Xrztn/e31we9ftpr1yjaNhWzWeHkuh/LelFCU/o/WibGyip4V1LinZk1OT3bzPV4CLWJfuwEs2nVDihr2oYBrdAWYaSqfDcgKYWXkcgauhNydPStG4+d69N5X4gO9SyR9JrktMrU5y7swrn9PrCohY4NWZCO1j+YH9Yie+2jEiu1LiRswXqn6z/Yl52QcZKtgzUzpkDkSvkGNVEkul+JOhZoT2FUmwW9wGcFuq5ud7LNKPwLtLKBktSVwWB/YziqqZDeh3hsoLE38nR9tv1yj7MTRjNtjwtcwRxrRO53zs3fXzv8Q/agKVxjHHZ+lXjjsxdgCoGS3ClbA==; Original-Received: from c-73-140-245-253.hsd1.wa.comcast.net ([73.140.245.253] helo=[192.168.1.173]) by dancol.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1cBRmr-0007qj-Uj; Mon, 28 Nov 2016 11:40:25 -0800 In-Reply-To: <8337ibz984.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2600:3c01::f03c:91ff:fedf:adf3 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:209678 Archived-At: On 11/28/2016 11:37 AM, Eli Zaretskii wrote: >> From: Daniel Colascione >> Date: Mon, 28 Nov 2016 11:18:32 -0800 >> Cc: emacs-devel@gnu.org >> >> Let me ask again: we already have all the runtime data we need for more >> conservative GC. Where is the resistance to the idea coming from? > > I already answered that up-thread: it will be dead code, and thus will > likely do the wrong thing if it ever runs. We'll always have stray pointers to object interiors that will exercise these code paths. I've broken enough of them recently enough to know. > I also suggested what to do instead: add assertions that express what > we believe should never happen. Stefan says doing that is unlikely to > be justified by the dangers, but if we think so, then we shouldn't be > afraid of the problem in the first place. If we are, then adding > assertions is the way to go. It's not possible to assert, statically or dynamically, that we don't have this problem. If we could, we wouldn't need conservative GC at all, since we'd know the exact locations of all pointers.