Re: Binary Compatibility: debug info for compiled Java programs

Ian Lance Taylor
2004-06-10T17:12:09Z

Andrew Haley <aph@redhat.com> writes:

> > By the way, Tom and Andrew, I meant to ask, but I forgot: would it
> > make sense to build the numeric otables and atables for the common
> > case, and then recompute only when required?
>
> That's possibly true, but you'd somehow have to discover that
> something had changed, and I'm not sure how you'd do that without
> doing the lookups.

It seems to me that you could hash the relevant information for each
relevant class and store it in the defining class and in the loaded
class. When you load the binary, check the hashes, and recompute if
they differ.

> > I have to think that the common case is pretty darn common--I'm
> > sure people don't spend all their time loading classes into
> > different hierarchies.
>
> What is very common is for people to distribute Java binaries without
> specifying the exact versions of the classes they depend on. So, it's
> normal for the run-time library environment of a Java program to be
> different from the compile-time environment. The whole idea of binary
> compatibility is to make this possible.

On the other hand, at during compile/edit/debug, the compile-time and
run-time environment should be similar.

Hmmm, I suppose that could be a good way to hide bugs, though.

Ian