> From: Aaron M. Renn
> Subject: Excellent News About java.io
>
> I have started the coding spree I said I was going to go on.  I think
> java.io is ready for our first release.  I have made the
> following changes:
>
> -- Fixed broken HTML in javadocs
> -- Updated for complete Java 1.2RC2 spec conformance (excepting
>    serialization (Geoff Berry's baby) and a couple items I felt
>    absolutely had to be included despite non-conformance)

As I think we told Stuart, those items you're talking about (overriding a
method when the spec doesn't override) are entirely OK to do.  Spec
compatibility means conforming to the APIs, period.

> -- Fixed a couple of bugs
> -- Re-ran all tests with the latest Japhar from CVS.  Everything ok.
>
> Some things remain untested.  Nevertheless, all modules compile and the
> basics seem to be working alright.  Building things remains the big
> problem.  I am still compiling the Java by hand and the native
> code must be
> hand linked.
>

You shouldn't need to compile the Java code by hand ... the build process,
while not complete and wonderful, seems to be working pretty well.  I got
401 classes out of it at last count, and that included (as far as I know)
all of java.io as of a week ago.

What do you mean, hand link the native code?  Hand link to what?  Japhar?

> John, you said you were using my java.io for your testing, but I highly
> doubt that is the case.  The native library build succeeds fine,
> but due to
> a lack of interlibrary dependencies in libtool (possibly
> corrected now), it
> crashes on an undefined symbol at runtime.

This mystifies me given what you say.  I definitely loaded the "javaio" lib
in the patch.  I never had problems linking or compiling.  "Hello World"
worked fine.

I can assure you, though, that I was using your java.io, because at one
point I was having problems with Japhar and then I put a little hack into
one of those files (PrintWriter.java, I think) and it worked fine.  The fact
that it worked different after I hacked it was a sign it was definitely
using your java.io (at least in part).  Any native code it used *had* to be
yours, since it was only loading your native library and not Japhar's.

> Additionally,
> FileDescriptor had
> a bug that was exposed by the latest Japhar which caused JVM symbol lookup
> errors.
>

It is possible that the symbol lookup errors you're talking about have to do
with (a) stubs or (b) a conflict with the native io lib Japhar loads, which
my patch commented out.

> Another issue is that the native routines still use functions in
> John's JCL
> common library that I don't know if we still are officially using.  I'm
> talking the method/field id caching and JCL_jstring_to_cstring.
>

I think we need to evaluate the usefulness of the caching procs.  I no
longer regard it as giving extra functionality, *ever*, but as a macro it
may be useful.  It's been so long since I've messed with it that I don't
really know--you would actually be a better judge than any of us, I think,
Aaron, having used it more than most.

Other things, like jstring_to_cstring, we should probably still use.  Common
libraries are generally good things.

VMI is entirely deprecated, as far as I know.  None of us are using it,
right?  I don't think I even loaded it into Japhar.

> If anybody wants to test with java.io, let me know and I'll put
> up a tarball
> with compiled Java classes and instructions on how to build the native
> code.  (You need to link and install the native shared library by hand).
>
> Next up, I need to get java.net in shape, then I'm going to focus
> on either
> the build process or Japhar integration or whatever else needs help.
>

I'm impressed.  Nice going.

--John

Reply via email to