Return-Path: Delivered-To: apmail-incubator-harmony-dev-archive@www.apache.org Received: (qmail 9132 invoked from network); 16 May 2005 08:12:40 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 16 May 2005 08:12:40 -0000 Received: (qmail 98850 invoked by uid 500); 16 May 2005 08:08:14 -0000 Delivered-To: apmail-incubator-harmony-dev-archive@incubator.apache.org Received: (qmail 98769 invoked by uid 500); 16 May 2005 08:08:12 -0000 Mailing-List: contact harmony-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: harmony-dev@incubator.apache.org Delivered-To: mailing list harmony-dev@incubator.apache.org Received: (qmail 98749 invoked by uid 99); 16 May 2005 08:08:12 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (hermes.apache.org: domain of tromey@redhat.com designates 66.187.233.31 as permitted sender) Received: from mx1.redhat.com (HELO mx1.redhat.com) (66.187.233.31) by apache.org (qpsmtpd/0.28) with ESMTP; Mon, 16 May 2005 01:07:42 -0700 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11/8.12.11) with ESMTP id j4G87KXS018458; Mon, 16 May 2005 04:07:20 -0400 Received: from opsy.redhat.com (vpn50-66.rdu.redhat.com [172.16.50.66]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id j4G87EO00720; Mon, 16 May 2005 04:07:15 -0400 Received: by opsy.redhat.com (Postfix, from userid 500) id 4D1072DD1DE; Mon, 16 May 2005 02:04:18 -0600 (MDT) Sender: tromey@redhat.com To: Steven Augart Cc: harmony-dev@incubator.apache.org Subject: Re: GC Compatibility (was: Re: State of the World) References: <20050509200843.25329.qmail@web60621.mail.yahoo.com> From: Tom Tromey Reply-To: tromey@redhat.com X-Attribution: Tom Date: 16 May 2005 02:04:18 -0600 In-Reply-To: <20050509200843.25329.qmail@web60621.mail.yahoo.com> Message-ID: Lines: 28 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N >>>>> "Steven" == Steven Augart writes: Steven> What really quashed the idea was the issue of garbage Steven> collection -- GCC is not designed to pass type information Steven> down to the lower levels of the compiler, so GCJ doesn't build Steven> a "gc map", which you need in order to be use any GC other Steven> than a Boehm-style conservative non-copying collector. In Steven> other words, GCJ is restricted to using a garbage collection Steven> that looks for any bit patterns in the data that might be Steven> pointers, and it has to assume that all of them are pointers. As Anthony said, this was once done for Modula-3, but never integrated into the main GCC sources. FWIW, gcj only requires a conservative scan of the stack, not the heap; it would be possible, with some less invasive compiler changes (I think), to allow for a mostly-copying collector. I'm not up on the literature, maybe those aren't cool any more. Probably it would be less effort -- though correspondingly less elegant -- to just make JikesRVM use a conservative GC and make calls to the same functions that libgcj uess. Usually this just means disabling things. ... But once you do this you run into all the other reasons binary interoperability is hard; my looks into LLVM, ORP, and Kaffe all failed due to disagreement over exception handling. Tom