Return-Path: Delivered-To: apmail-harmony-dev-archive@www.apache.org Received: (qmail 12662 invoked from network); 14 Jan 2008 15:54:18 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 14 Jan 2008 15:54:18 -0000 Received: (qmail 16712 invoked by uid 500); 14 Jan 2008 15:54:06 -0000 Delivered-To: apmail-harmony-dev-archive@harmony.apache.org Received: (qmail 16682 invoked by uid 500); 14 Jan 2008 15:54:06 -0000 Mailing-List: contact dev-help@harmony.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@harmony.apache.org Delivered-To: mailing list dev@harmony.apache.org Received: (qmail 16673 invoked by uid 99); 14 Jan 2008 15:54:06 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 14 Jan 2008 07:54:06 -0800 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of gcjhd-harmony-dev@m.gmane.org designates 80.91.229.2 as permitted sender) Received: from [80.91.229.2] (HELO ciao.gmane.org) (80.91.229.2) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 14 Jan 2008 15:53:40 +0000 Received: from list by ciao.gmane.org with local (Exim 4.43) id 1JERdA-0004Ls-6H for dev@harmony.apache.org; Mon, 14 Jan 2008 15:53:44 +0000 Received: from 221x115x75x108.ap221.ftth.ucom.ne.jp ([221.115.75.108]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 14 Jan 2008 15:53:44 +0000 Received: from salikh by 221x115x75x108.ap221.ftth.ucom.ne.jp with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 14 Jan 2008 15:53:44 +0000 X-Injected-Via-Gmane: http://gmane.org/ To: dev@harmony.apache.org From: Salikh Zakirov Subject: Re: [drlvm][modularity proposal] change current vm/gc query interface for better flexibility and performance Date: Tue, 15 Jan 2008 00:53:35 +0900 Lines: 32 Message-ID: References: <9623c9a50801121827r6033d1d8jeb38c390fd966eba@mail.gmail.com> <9623c9a50801132314v27011bd9l1a92a59aee2f8cb7@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 221x115x75x108.ap221.ftth.ucom.ne.jp User-Agent: Thunderbird 2.0.0.9 (X11/20071205) In-Reply-To: <9623c9a50801132314v27011bd9l1a92a59aee2f8cb7@mail.gmail.com> Sender: news X-Virus-Checked: Checked by ClamAV on apache.org Xiao-Feng Li wrote: > On Jan 14, 2008 12:27 AM, Pavel Pervov wrote: >> Xiao-Feng, >> >> I'm supporting the idea of filling interface table on the side of the >> component. >> >> Generifying this idea, I'd suggest creating JNI-like table-of-functions >> interface and fill it with single call to a component (GC in your case). >> Then VM can unpack the structure if it can provide some performance >> benefits. > > Using a function table probably works as well. We can try it at the beginning. > > Btw, basically my current idea (initial, not mature) is to have a > memory manager (MM) which manages a couple of different garbage > collectors. The garbage collectors can be in same DLL or different > ones. It's MM's responsibility to decide using which DLL and which > function implementation inside the DLL. This probably can help the > switch between compressed and uncompressed ref GCs. That's a long term > goal though. How about trying out existing "Component Manager" infrastructure? It was designed with flexibility in mind, so hopefully having several different GC implementations in single DLL would not be an issue. It implements exactly what was discussed: creating and filling interface table on the side of the component. And VM-side function table (void (*gc_init)() etc.) can be filled by copying function pointers from component-provided function table. Currently, EM is loaded using component manager, the code is in vm/vmcore/src/init/vm_init.cpp, function process_properties_dlls; see also vm/em/src/em_intf.cpp