Return-Path: Delivered-To: apmail-incubator-harmony-dev-archive@www.apache.org Received: (qmail 57007 invoked from network); 27 May 2005 16:34:04 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 27 May 2005 16:34:04 -0000 Received: (qmail 51950 invoked by uid 500); 27 May 2005 16:33:50 -0000 Delivered-To: apmail-incubator-harmony-dev-archive@incubator.apache.org Received: (qmail 51874 invoked by uid 500); 27 May 2005 16:33:49 -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 51831 invoked by uid 99); 27 May 2005 16:33:48 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: neutral (hermes.apache.org: local policy) Received: from chi.mobile-health-diary.com (HELO chi.mobile-health-diary.com) (128.241.244.71) by apache.org (qpsmtpd/0.28) with SMTP; Fri, 27 May 2005 09:33:46 -0700 Received: (qmail 28554 invoked from network); 27 May 2005 16:33:35 -0000 Received: from ool-43560634.dyn.optonline.net (HELO ?10.0.1.52?) (geir@67.86.6.52) by b014.internal.mobile-health-diary.com with SMTP; 27 May 2005 16:33:35 -0000 Mime-Version: 1.0 (Apple Message framework v730) Content-Transfer-Encoding: 7bit Message-Id: <60510FC8-4503-4149-A7EA-9CEBA018D0FA@apache.org> Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed To: harmony-dev@incubator.apache.org From: "Geir Magnusson Jr." Subject: [arch] VM/Classlibrary interface Date: Fri, 27 May 2005 12:33:31 -0400 X-Mailer: Apple Mail (2.730) X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N I think that this is a good topic that many around here have experience with and can get involved in. I think that it's not breaking new ground to say that we'll need a standard interface between the VM and the classlibrary, to let people integrate the various VMs and class libraries that we'll probably see. The GNU Classpath project has documented what they need http://www.gnu.org/software/classpath/docs/vmintegration.html and this seems to break down to : 1) Some sort of initialization protocol (currently seems to be defined in code, and only up to v1.1 - that may be stale docs...) 2) Core classes implemented by the VM for class-library usage - standard - things that you expect in java.lang (java.lang.Object) - non-standard - extension to java.lang (java.lang.VMObject) 3) VM hooks into the classlib 4) RMI stuff Clearly this is one model, and one that works because it's been used by many integrations. Now, questions : 0) Standing back from this specific model, can the model be generalized? 1) Are there other models? How do some of the commercial VMs do it? 2) Are there things that the GNU Classpath model is missing due to the version of the API it's implementing? (I.e. they don't realize they need it yet...) 3) I was uncomfortable with extending java.lang. I understand the argument - that as they are package private, the language can be depended upon to keep them safe from user code using them rather than some security infrastructure. However, isn't this a bit dangerous in terms of standard java.lang changes colliding? I'd like to drive to a standard interface that we can all agree on, and hopefully GNU Classpath will support it. This would insulate us from the ongoing legal discussion surrounding the license, and let us get on with using it directly. geir -- Geir Magnusson Jr +1-203-665-6437 geirm@apache.org