From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Dave Love Newsgroups: gmane.emacs.devel Subject: new GC Date: Mon, 16 Jun 2003 22:55:24 +0100 Sender: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Message-ID: NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: main.gmane.org 1055800421 9641 80.91.224.249 (16 Jun 2003 21:53:41 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Mon, 16 Jun 2003 21:53:41 +0000 (UTC) Original-X-From: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Mon Jun 16 23:53:36 2003 Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 19S1uy-0002V5-00 for ; Mon, 16 Jun 2003 23:53:36 +0200 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 19S2IZ-0000xG-00 for ; Tue, 17 Jun 2003 00:17:59 +0200 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.20) id 19S1xA-0008SC-B9 for emacs-devel@quimby.gnus.org; Mon, 16 Jun 2003 17:55:52 -0400 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19S1wn-0008NG-Gk for emacs-devel@gnu.org; Mon, 16 Jun 2003 17:55:29 -0400 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19S1wm-0008Ka-2a for emacs-devel@gnu.org; Mon, 16 Jun 2003 17:55:28 -0400 Original-Received: from albion.dl.ac.uk ([148.79.80.39]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19S1wl-0008E4-Do for emacs-devel@gnu.org; Mon, 16 Jun 2003 17:55:27 -0400 Original-Received: from fx by albion.dl.ac.uk with local (Exim 3.36 #1 (Debian)) id 19S1wi-0002lj-00 for ; Mon, 16 Jun 2003 22:55:24 +0100 Original-To: emacs-devel@gnu.org User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.2 (gnu/linux) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1b5 Precedence: list List-Id: Emacs development discussions. List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , Errors-To: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Xref: main.gmane.org gmane.emacs.devel:15137 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:15137 There's work on a new GC system installed on CVS branch `Boehm-GC' which anyone interested in GC and fairly knowledgeable about GC might like to look at. It still needs significant work, and I probably won't have enough time to devote to it for a while. There are some disorganized and probably incomplete notes in the top-level README.GC. It uses Boehm's fully conservative GC, which should be able to perform better than the current system, at least in time, if not in space. [People have said it won't work, but I've never seen any good arguments why, as for conservative stack scanning.] The code isn't in a state to measure and tune, but there doesn't seem to be any fundamental problem. Emacs basically works if you configure with --enable-boehm-gc, but leaks badly. That's at least because of buffer marker chains not getting swept, though there may be other causes. Changes can be enabled which should fix this, but that currently causes a crash after GC which I haven't been able to debug yet. It could do with a second set of eyes on the result of enabling the #ifdef'ed out clause for GC_MARK_OBJECT in lisp.h. (Boehm said the basic technique is sound, so it's likely to be a stupid mistake making it fail, but the tagging scheme Emacs uses means that the GC debugging hooks won't work currently.) If anyone does start working on it, please send me mail. I'll try to answer specific questions, but I don't have time to explain the GC generally.