--
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit-co...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit-contributors/033a0106-49a2-4d66-aed0-5ee07d515c4d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit-co...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit-contributors/033a0106-49a2-4d66-aed0-5ee07d515c4d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Try using the xs linker instead.
On Sun, Aug 31, 2014 at 10:15 AM, Ivan Markov <ivan....@gmail.com> wrote:
(Background: I'm trying to further shorten the edit-compile-debug cycle by playing with hot-code swapping of recompiled JavaScript in Chrome (via Eclipse / SDBG))GWT 2.7.0-SNAPSHOT, SDM mode, xsiframe linker (obviously), playing with LiveEdit from within Chromedevtools initially:- Editing "<module>.nocache.js" works- However editing "<module>-0.js" does not work (big surprise)Problem 1: I think the "sourceURL=<module>-0.js" line at the end of the script should be present only if CrossSiteIframeLinker is running in "non-pretty / production" mode. In pretty mode, where the <script> tag src attribute is directly modified to point to the CAGFG...AB.cache.js permutation this is probably just bringing confusion, no?Unfortunately, fixing Problem 1 alone did not enable LiveEdit.I think another issue (let's call it Problem 2) is that the xsiframe linker is creating the <iframe> & <script> tags dynamically using JavaScript DOM manipulations. There is some evidence on the internet that editing scripts injected that way is not supported.I was thinking of solving Problem 2 by just switching to the sso (SingleScriptLinker) linker, but then:(a) It is still not supported in SuperDevMode - https://code.google.com/p/google-web-toolkit/issues/detail?id=7722(b) By looking at the source, it seems it is wrapping all the generated GWT code in enclosing functions, which are then called at the end of the script block. I don't think LiveEdit will be re-evaluating these, so this wrapping has to go somehow...Any ideas?
--
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit-contributors+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit-contributors/6d7bf5da-0ba5-48a1-b2f7-2dec9e74370b%40googlegroups.com.To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit-co...@googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit-co...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit-contributors/eeeb5252-162b-4381-a3fa-14da59fa9873%40googlegroups.com.
HotPatching via recompilation will require significant work in SDM. If you just did the naive thing and patched in the JS that changed, stuff would break:1) clinit()s which have already been called would be restored, so classes would get initialized twice2) some instance fields of the class would get reinitialized3) callbacks held by JSNI closures might still point to old code in some circumstances I thinkSDM mode would have to do minimally the following:1) collect only the JS that actually changed2) don't emit clinits for already live classes, and if the user added a new clinit to an existing class or a new statically initialized field, force a full refresh3) don't re-emit field initializers for existing fields on classes, only for new added fields4) if method signatures change, may have to force a full refresh5) the code must be patched in via linker-dependent scope injection as if it were an AsyncFragment
On Sat, Sep 6, 2014 at 9:05 AM, Ivan Markov <ivan....@gmail.com> wrote:
Another option would be to abandon Chrome LiveEdit completely in favor of a do-it-yourself approach.JavaScript does allow functions and variables redefinition, so maybe we can just inject another <script> inside the iframe with the newly recompiled permutation?(To have this instantaneous, only a script containing the changed types should be injected, however I'm not sure if/what needs to be fixed so that sourcemaps continue to work after that.)
--
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit-contributors+unsubscribe@googlegroups.com.