I'm looking at PUC itself now, but I wanted to go ahead and get out some
quick comments on everything else.

High-level:

- My gut reaction is that it's odd to make it a command-line option.
It's not really a user-facing 'option' in the same way that draftCompile
or style=PRETTY is, it's just an internal implementation detail.  It
would seem more like a jvm flag, and perhaps later just always on.

- Same with having to encode the persistence dir into every single entry
point.  Throwing it into WEB-INF in dev mode seems weird, and there's no
fundamental reason dev mode and the compiler shouldn't share a unit
cache anyway.  How about just using / creating a well-known directory
under the current directory?  If you fail to create the directory
(permission problem) then you don't use the disk.



http://gwt-code-reviews.appspot.com/1375802/diff/1/dev/core/src/com/google/gwt/dev/javac/CompilationStateBuilder.java
File dev/core/src/com/google/gwt/dev/javac/CompilationStateBuilder.java
(right):

http://gwt-code-reviews.appspot.com/1375802/diff/1/dev/core/src/com/google/gwt/dev/javac/CompilationStateBuilder.java#newcode232
dev/core/src/com/google/gwt/dev/javac/CompilationStateBuilder.java:232:
logger.log(TreeLogger.TRACE, "Invalid units found: " +
invalidatedUnits.size());
I would dig on this more.  It's perfectly fine and expected that some
units will have null dependencies.  That should not force those units to
recompile... *provided that the dependencies remain null*.

http://gwt-code-reviews.appspot.com/1375802/diff/1/dev/core/src/com/google/gwt/dev/javac/CompilationStateBuilder.java#newcode450
dev/core/src/com/google/gwt/dev/javac/CompilationStateBuilder.java:450:
It does seem kind of strange, though, like the two need to be unified.
Maybe PersistentUnitCache should be one of two UnitCache subclasses, or
maybe internally it should either use the disk or not.

http://gwt-code-reviews.appspot.com/1375802/diff/5002/dev/core/src/com/google/gwt/dev/javac/Dependencies.java
File dev/core/src/com/google/gwt/dev/javac/Dependencies.java (right):

http://gwt-code-reviews.appspot.com/1375802/diff/5002/dev/core/src/com/google/gwt/dev/javac/Dependencies.java#newcode47
dev/core/src/com/google/gwt/dev/javac/Dependencies.java:47: public
CompiledClass getCompiledClass() {
Not used anymore.

http://gwt-code-reviews.appspot.com/1375802/diff/5002/dev/core/src/com/google/gwt/dev/javac/Dependencies.java#newcode202
dev/core/src/com/google/gwt/dev/javac/Dependencies.java:202: return
myRef.getSignatureHash().equals(theirs.getSignatureHash());
Given your changes, and that you always use signature hash now, you no
longer need to bifurcate SerializedRef / DirectRef at all.  You can use
SerializedRef always (and just call it Ref).

http://gwt-code-reviews.appspot.com/1375802/

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to