From owner-freebsd-java Sat Mar 30 5:59:40 2002 Delivered-To: freebsd-java@freebsd.org Received: from cygnus.com (runyon.sfbay.redhat.com [205.180.230.5]) by hub.freebsd.org (Postfix) with SMTP id 19AB937B416 for ; Sat, 30 Mar 2002 05:59:36 -0800 (PST) Received: from dhcppc2 (taarna.cygnus.com [205.180.230.102]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id FAA15841; Sat, 30 Mar 2002 05:54:36 -0800 (PST) Subject: Re: [press@apache.org: PRESS RELEASE: ASF Reaches Agreement with Sun to Allow Open Source Java Implementations] From: Anthony Green To: Bill Huey Cc: Brian Behlendorf , freebsd-java@FreeBSD.ORG In-Reply-To: <20020330002119.GA1537@gnuppy.monkey.org> References: <20020328002610.GA2023@gnuppy.monkey.org> <20020327221634.M1335-100000@yez.hyperreal.org> <20020328064218.GA2973@gnuppy.monkey.org> <1017330145.2206.84.camel@dhcppc2> <20020329004939.GA1639@gnuppy.monkey.org> <1017419202.5814.1933.camel@dhcppc2> <20020330002119.GA1537@gnuppy.monkey.org> Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Evolution/1.0.2 (1.0.2-0.7x) Date: 30 Mar 2002 05:55:47 -0800 Message-Id: <1017496550.1853.22.camel@dhcppc2> Mime-Version: 1.0 Sender: owner-freebsd-java@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org On Fri, 2002-03-29 at 16:21, Bill Huey wrote: > Last time I looked, I didn't think that the Boehm GC was terribly > modern and support either generational or incremental collection.: Well, it's a conservative collector (and does support incremental collection). We currently require the use of a conservative collector. > > Yes. We also have a unique, and much faster native code interface > > called CNI if you can afford to lose portability. > > At what price ? Portability. > The JNI layer is heavy weight for a reason. And that's > to provide direct access directly invoke methods so that stuff like > RMI, etc... can happen in terms of the JVM itself so that it's transparent > to runtime typing system. The JNI layer is heavy weight because it's designed to support multiple implementation schemes. While we do support JNI just fine, CNI is specifically tailored for use with gcj and g++. We have a program, gcjh, which is somewhat like javah in that it creates C headers from Java code. However, if you're using CNI, it will create C++ headers for those Java classes. They look almost identical to the Java classes. You simply implement your native methods in natural C++. You can directly manipulate data members, call other methods with zero overhead, etc. It's quite nice. But if you want portability, you can still use JNI. > What about class reflection ? Yes, that all works, including method invocation. AG To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-java" in the body of the message