Well it may be possible to compile most of a class, for instance if I introduce a field with an invalid type. Only at the moment that something tried to use that type would an exception be thrown.
2008/10/24 Jess Holle <[EMAIL PROTECTED]>: > So I guess that should mean a "compile all possible classes" compiler more > than a lenient compiler. > > In a CI environment you might have 100's of modified sources. If some fail > to compile, you'd like to ensure that (1) all other possible sources are > compiled [javac will simply stop trying at some point and thus fail to > compile some sources which could be comiled] and (2) continue with the build > even though some compilations failed. If this is coupled with retention of > previous class versions, then you're about as lenient as possible from a CI > perspective -- but not from the perspective of producing class files for > bogus sources or guessing the intent of bogus source. > > Jim Blackler wrote: > > Consider a continuous build server that makes a large project, then > runs tests on the code. If one programmer makes a submission that > causes a compile error in a method, this breaks the build and the > tests never even start. However many tests may never execute the > broken method. Assuming the programmer that broke the build isn't me > (of course), I'd still like to see my own test results. It would also > be nice to get a visual indication of which tests the compile error > would affect in practice. > > Jim > > 2008/10/24 Alexey Zinger <[EMAIL PROTECTED]>: > > > I hope I'm not missing something crucial in this discussion, but what is the > benefit of running partially compiled code? If I introduce a compilation > error, why do I want to proceed with either an incomplete class set or one > class out-of-date, while another is new? > > Alexey > 2001 Honda CBR600F4i (CCS) > 1992 Kawasaki EX500 > http://azinger.blogspot.com > http://bsheet.sourceforge.net > http://wcollage.sourceforge.net > > > > --- On Fri, 10/24/08, Reinier Zwitserloot <[EMAIL PROTECTED]> wrote: > > > > From: Reinier Zwitserloot <[EMAIL PROTECTED]> > Subject: [The Java Posse] Re: A lenient compiler? > To: "The Java Posse" <[email protected]> > Date: Friday, October 24, 2008, 9:39 AM > Eclipse does this, even if you don't use the debugger. > The method with > the error in it is replaced with a simple exception, and > the rest is > compiled normally. When that method is called, it blows up, > otherwise, > it runs fine. > > There are two separate steps in creating a lenient > compiler: > > 1. 'error recovering' parser: We're obviously > not going to get far if > the simplest of syntax errors makes the parser just stop. > > 2. a compiler that still produces a class file and knows to > insert a > dummy. > > > #1 is by far the hardest thing to do, and we're in > luck: javac is even > better at recovery than ecj these days (particularly when > you use a > lot of anonymous classes; the ecj error recovery system > just stops > flat out when something goes wrong there), and the new > langtools > project is focussed on improving recovery even more. #2 is > relatively > easy, but as far as I can tell, javac doesn't currently > do it. Hacking > javac shouldn't even be that difficult, but, given that > the hard work > is already done, it would be great if the official javac > just had a > parameter (something like -Xdummy at first, possibly > introduce it as a > required feature for the 'jdk' stamp (no -X, just > -dummy), later. It > might be worth it to see what netbeans does; if it does > produce dummy > code, then just rip the javac back out of netbeans, and > voila. > > > On Oct 24, 1:39 pm, Christian Catchpole > <[EMAIL PROTECTED]> > wrote: > > > Or simply.. > > for (;;) { > System.out.println("Donkey."); > > } > > On Oct 24, 4:32 pm, Casper Bang > > > <[EMAIL PROTECTED]> wrote: > > > - at the failing code block, insert throw > > > new > > > CodeMissingYouNoobRuntimeException(); > > > Nah, better to reuse > > > java.nio.charset.CoderMalfunctionError ;) > > > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/javaposse?hl=en -~----------~----~----~----~------~----~------~--~---
