----- Original Message ----- From: "Robin Green" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Saturday, April 15, 2000 4:28 PM Subject: Re: How to participate?
> "Vitaly Stulsky" <[EMAIL PROTECTED]> wrote: > > >From my side I want to ask one question: Is there any code standarts for > >this project? > > I can answer this one: Yes. > > http://jakarta.apache.org/guidelines/source.html > > >I think it is possible to extend ANT to perform the dependence tracking > >like > >JIKES do. > > The easy part would be parsing the code (perhaps using an open source parser > like ANTLR's Java one - no need to reinvent the wheel!). The part requiring > a bit more thought would be to optimise the dependency tracking process - > make reading back and regenerating the dependencies as fast as possible, > bearing in mind that this task will (in my estimation, based on experience > with javac -verbose) be filesystem-bound (held back by the speed of the > filesystem rather than the processor). So you need to minimise filesystem > read/writes. Unless we want to go down the road of "no permanent Ant working > files should be created". -1 for that. Is it principal position to avoid working files? They could sidnificiantly improve overall speed. Jikes and JBuilder uses such files for dependency tracking. > Of course, almost any kind of dependency tracking, however inefficient, is > probably quicker than "build clean; build all" for non-trivial projects, but > why not get it right the first time? > > Someone previously suggested dependency checking based on .class files > rather than .java files. True, there is already a lot of code available for > parsing .class files: > > http://dmoz.org/Computers/Programming/Languages/Java/Open_Source/Libraries/D ata_Formats/Java_Class_Files/ I found the similar library on: http://www.alphaworks.ibm.com/tech/jikesbt May be it will be interesting for you. > However, I am not sure but I think there are one or two ways that this could > theoretically slip up. If you use an optimising compiler on this, which is > basically acting like an IFDEF in C: > > if (Constants.DEBUG) { logger.println ("working okay"); } > > and Constants.DEBUG happens to be false, the optimising compiler may (I > think even javac does this normally) just not compile the whole line, and > may not even put a reference in to the Constants class in the .class file > header. Even worse, anything inside that block may not be referenced. But > this is just speculation.
