Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-dev] Incremental findings (AJDT)


I thought I'd post an update on where we are with incremental.  Its behaving very strangely:

- Start eclipse with one project in that is marked for incremental compilation.
- Build one project (does a full build because its the first build)
- Make a tiny change in a file and do another build, this time we do an incremental build and afterwards the outline view for the changed file shows the structure of the file but no crosscutting information whilst the outline views for all other files in the project goes blank.
- Do a full build (directly through the build button) and the outline views then appear for all the files but show no crosscutting information.

Slight aside ...

As things are working with multiple fullbuilds in the non-incremental case, we have to assume that some 'state' is built up in an incremental build that damages any subsequent 'full build'.  For example, I saw this statement in AjState:

        private UnwovenClassFile writeClassFile(UnwovenClassFile cf, UnwovenClassFile previous) {
                if (simpleStrings == null) { // batch build
                        addedClassFiles.add(cf);
                        return cf;
                }

I was concerned that the value of simpleStrings was being used to determine if a batch build was in progress.  On creation of an AjState, simpleStrings is null - if we *ever* do an incremental build, simpleStrings is initialized as an ArrayList().  We never set simpleStrings to null again - meaning after an incremental build, the above if statement will never be true again....  


Anyway ...

If anyone can shed light on any of the following couple of questions, we'd be greatful - Adrian and I will be working on this all day tomorrow :(

- Is the outline view completely trashed and built from scratch for an incremental compilation?  I think it is?

- What might go wrong such that the basic structure view for a file appears but the crosscutting information is missing?

I also think there might be a problem lurking to do with empty deltas - if we invoke an incremental build when no files have changed (I'm not sure if this should be an error or not!) - the structure view is blanked out.  Looks like it is deleted the structure view information prior to doing a compile, then failing to do a compile as there was no change detected. hmmm.

cheers,
Andy.

Back to the top