Comment by cromwellian:

The problem is, if you support separate compilation, the compiler can no  
longer make assumptions about which methods in your code base are 'live'  
(are going to be called) and which are 'dead' (are never called), it would  
be forced to include them on the chance that they might be called in the  
future by some third party module. This would massively bloat the size of  
the JS output as well as hamper other optimizations like inlining which  
depend on knowing things like that if an interface I is implemented by  
classes A and B, and B is never used, than I == A. This comes up frequently  
with say, List/ArrayList/LinkedList where LinkedList is rarely if ever used.

In my opinion, what you really want is some kind of message bus or RPC  
mechanism, so that differently compiled packages can communicate over some  
interface. In this case, the amount of shared code that must be replicated  
can be kept to a minimum.



For more information:
http://code.google.com/p/google-web-toolkit/wiki/CodeSplitting

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

Reply via email to