From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: "Daniel Colascione" Newsgroups: gmane.emacs.devel Subject: Re: Failing to GC killed buffers considered harmful Date: Mon, 30 Mar 2020 12:14:52 -0700 Message-ID: References: <838sjj5jg9.fsf@gnu.org> <83eet93ccb.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="111617"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: SquirrelMail/1.4.23 [SVN] Cc: dancol@dancol.org, Stefan Monnier , pipcet@gmail.com, emacs-devel@gnu.org To: "Eli Zaretskii" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Mar 30 21:17:28 2020 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jIzua-000SuG-1h for ged-emacs-devel@m.gmane-mx.org; Mon, 30 Mar 2020 21:17:28 +0200 Original-Received: from localhost ([::1]:55290 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jIzuY-0006Sm-TM for ged-emacs-devel@m.gmane-mx.org; Mon, 30 Mar 2020 15:17:27 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:53165) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jIzsA-00058X-2P for emacs-devel@gnu.org; Mon, 30 Mar 2020 15:14:59 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jIzs8-0002oS-TT for emacs-devel@gnu.org; Mon, 30 Mar 2020 15:14:57 -0400 Original-Received: from dancol.org ([2600:3c01::f03c:91ff:fedf:adf3]:39872) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jIzs6-0002l8-M8; Mon, 30 Mar 2020 15:14:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=dancol.org; s=x; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:To:From: Subject:Date:References:In-Reply-To:Message-ID:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=+Cy/11SLvHpIIHoTriGAHfgAfgyTCoqVsz42YbvviXs=; b=TUoJxuiDRGpOpDG4DxJBoWDkxV 1XxwnX9UyvfGfdk8MOcSrI4i7zK4TeqPE37QiPvpBKcMOMByYu0BuuS+YqXsBe7FM5vy8pcfApJtc HFdEPulkC6AQXaDsgPPTeQQLtAMff9wqxBTwGbWaRsDmB0OcD8e7nCLbE0WJDLc9IBgs9fMPEDOrb xCmuPup/MNsGaof/nyt3mrqqeWKT6IG8ZEv4fhDgMDO8tBXVMubr4aF6o8sW/BxeIyggsY3wO7wdY +sb/Lmnsn4d5HGjgcDso2kDbtHzZasslplVNCaONwDBr83hM8dpP6wEHyk/c/fzgs9+tCmWx4+XJ9 /MiAISAw==; Original-Received: from localhost ([127.0.0.1] helo=dancol.org) by dancol.org with esmtp (Exim 4.89) (envelope-from ) id 1jIzs4-0008H5-3x; Mon, 30 Mar 2020 12:14:52 -0700 Original-Received: from 127.0.0.1 (SquirrelMail authenticated user dancol) by dancol.org with HTTP; Mon, 30 Mar 2020 12:14:52 -0700 In-Reply-To: <83eet93ccb.fsf@gnu.org> X-Priority: 3 (Normal) Importance: Normal 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.23 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:246062 Archived-At: >> From: Stefan Monnier >> Cc: Eli Zaretskii , Daniel Colascione >> , >> emacs-devel@gnu.org >> Date: Mon, 30 Mar 2020 14:32:30 -0400 >> >> > FWIW, maybe we should get rid of all_buffers. >> > AFAICT the only reason we need it is to unmark the buffers during the >> > sweep phase, and we could allocate buffers like any other >> > pseudovector instead. >> >> The patch below seems to work. >> >> The only worrisome part I think is that `live_buffer_holding` allowed >> pointers into buffer objects, whereas `live_vector_p` only treats >> pointers to the beginning of the object as a valid reference. >> >> Not sure why buffers would be more likely to have valid pointers into >> them (and can't remember discussions about that either), so I assume the >> difference was not important (it just happened to be easier to support >> that for buffers). >> >> Any objection? > > What are the advantages? The original problem is solved, and > everybody agreed that having a dead buffer in the pdumped area is > nothing we should bother about. > With Stefan's patch, Emacs is simpler. Simplicity is its own reward.