On Tuesday 20 July 2010 17:04:36 Andy Clement wrote: > On 19 July 2010 23:48, Emond Papegaaij <[email protected]> wrote: > > I wonder, what does the AspectJ compiler need all that information for? > > Currently, it seems it stores a complete representation of the classes in > > the typeMap, including all constantpool entries. Isn't it possible to > > drop part of this information, for example information like the > > LineNumberTable and LocalVariableTable or maybe even string constants? > > Although these structures are not really large, it could save another > > 100M, especially when you also drop the constant pool entries used by > > these tables. > > Indeed it keeps a lot of information, that is partly due to the > initial design of AspectJ never taking into account large projects or > even incremental compilation. Over time areas of the compiler are > revisited over and over as we gradually improve things. (the original > AspectJ didn't allow you to compile more than one project in the same > JVM, imagine how that would work in eclipse - you'd only be allowed > one AspectJ project in your workspace). My list of tasks is quite > large and I get to things when I can... > > The linenumbertables and localvariabletables and code elements cannot > all be dropped, for example if inlining around advice we want that > information for the target, so it isn't as easy as throwing everything > out. And when incrementally compiling we need to recover state > because we won't be recompiling everything, only part of the > application, and that will have dependencies on what we did > previously. Recovering out of the bin folder where we previously > compiled to is part of the solution but sometimes we want the interim > form, the shape of the class after compilation and before weaving, and > that form of the class is not always available from disk. > > I know what to do, I just have to find the time.
I understand. Let me know when you need help with testing a new build. Best regards, Emond Papegaaij _______________________________________________ aspectj-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/aspectj-users
