Re: Im getting frustrated and angry!



Tor Iver Wilhelmsen wrote:

Ant however is there to provide a framework for cross-platform development with smart compilers.

Another point I thought of after sending is that javac is not smart enough to fulfill make's guarantee of correctness and efficiency. It has enough knowledge to be able to do it if it cached the information. But I don't fault javac with not doing it itself. The problem is that javac doesn't provide any way of getting to the information that it does have. If it at least divulged the information we could build tools that would achieve correctness and efficiency.


Class files can provide some of the information, but not all of it. The other problem is to know which class files to look at. Foo.java doesn't necessarily just produce Foo.class. It can produce Bar.class, Foo$1.class, and/or Foo$Baz.class.

Modern C/C++ compilers don't do the dependency checking but they at least provide a way to get all the information you need to do the dependency checking.

Jikes supported producing makefile dependencies, but it was incomplete and as I said makefile dependencies can't express the complexities of Java's compilation model.

The real solution for Java is to have the compiler support divulging all the information it knows about the dependencies. I've thought about working on such changes, but then again I just use Eclipse which already does this for me, so the motivation isn't there.

--
 Dale King
.



Relevant Pages

  • Re: Crash Course In Modern Hardware
    ... "Both the Java HotSpot Client and Server compilers fully support dynamic ... "The Java HotSpot Server VM can revert to using the interpreter whenever ... If any dependencies are affected by dynamically loaded class ...
    (comp.lang.java.programmer)
  • Re: Crash Course In Modern Hardware
    ... "Both the Java HotSpot Client and Server compilers fully support dynamic deoptimization." ... "The Java HotSpot Server VM can revert to using the interpreter whenever compiler deoptimizations are called for because of dynamic class loading. ... If any dependencies are affected by dynamically loaded class, HotSpot can back out affected inlined code, revert to interpreting for a while, and re-optimize later based on the new class dependencies." ...
    (comp.lang.java.programmer)
  • Re: dependency-detection in java
    ... Andreas Leitgeb wrote: ... While javac has trouble with certain dependencies, in particular the one that is vexing Andreas right now, and despite my previous comments I agree with the need to resolve it, it is superior to some other compilers in resolving dependencies at all. ... Careful attention to filesets in the source tree and how they ripple out, and careful crafting of relevant targets should make it possible for the build.xml to specify the tightest possible rebuilds without risk. ...
    (comp.lang.java.programmer)
  • Re: g++ or c++ in freebsd
    ... Well, I'm using compilers to compile code, and multiple compilers to ... catch compiler specific dependencies. ... standard C++ library (and so probably also no STL). ...
    (comp.unix.bsd.freebsd.misc)
  • Re: [OT] PostLisp, a language experiment
    ... some compilers might compile the ... > of the name is really irrelevant to any discussion of efficiency. ... my discussion with John Doty was based on stack ... apparently no runtime checks for stack mismatches, ...
    (comp.lang.lisp)