{"action":"created","issue":{"url":"https://api.github.com/repos/konsoletyper/teavm/issues/11","repository_url":"https://api.github.com/repos/konsoletyper/teavm","labels_url":"https://api.github.com/repos/konsoletyper/teavm/issues/11/labels{/name}","comments_url":"https://api.github.com/repos/konsoletyper/teavm/issues/11/comments","events_url":"https://api.github.com/repos/konsoletyper/teavm/issues/11/events","html_url":"https://github.com/konsoletyper/teavm/issues/11","id":41684237,"number":11,"title":"Move TeaVM debugger into a separate project","user":{"login":"konsoletyper","id":5521903,"avatar_url":"https://avatars.githubusercontent.com/u/5521903?v=3","gravatar_id":"","url":"https://api.github.com/users/konsoletyper","html_url":"https://github.com/konsoletyper","followers_url":"https://api.github.com/users/konsoletyper/followers","following_url":"https://api.github.com/users/konsoletyper/following{/other_user}","gists_url":"https://api.github.com/users/konsoletyper/gists{/gist_id}","starred_url":"https://api.github.com/users/konsoletyper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/konsoletyper/subscriptions","organizations_url":"https://api.github.com/users/konsoletyper/orgs","repos_url":"https://api.github.com/users/konsoletyper/repos","events_url":"https://api.github.com/users/konsoletyper/events{/privacy}","received_events_url":"https://api.github.com/users/konsoletyper/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/konsoletyper/teavm/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":{"login":"konsoletyper","id":5521903,"avatar_url":"https://avatars.githubusercontent.com/u/5521903?v=3","gravatar_id":"","url":"https://api.github.com/users/konsoletyper","html_url":"https://github.com/konsoletyper","followers_url":"https://api.github.com/users/konsoletyper/followers","following_url":"https://api.github.com/users/konsoletyper/following{/other_user}","gists_url":"https://api.github.com/users/konsoletyper/gists{/gist_id}","starred_url":"https://api.github.com/users/konsoletyper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/konsoletyper/subscriptions","organizations_url":"https://api.github.com/users/konsoletyper/orgs","repos_url":"https://api.github.com/users/konsoletyper/repos","events_url":"https://api.github.com/users/konsoletyper/events{/privacy}","received_events_url":"https://api.github.com/users/konsoletyper/received_events","type":"User","site_admin":false},"assignees":[{"login":"konsoletyper","id":5521903,"avatar_url":"https://avatars.githubusercontent.com/u/5521903?v=3","gravatar_id":"","url":"https://api.github.com/users/konsoletyper","html_url":"https://github.com/konsoletyper","followers_url":"https://api.github.com/users/konsoletyper/followers","following_url":"https://api.github.com/users/konsoletyper/following{/other_user}","gists_url":"https://api.github.com/users/konsoletyper/gists{/gist_id}","starred_url":"https://api.github.com/users/konsoletyper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/konsoletyper/subscriptions","organizations_url":"https://api.github.com/users/konsoletyper/orgs","repos_url":"https://api.github.com/users/konsoletyper/repos","events_url":"https://api.github.com/users/konsoletyper/events{/privacy}","received_events_url":"https://api.github.com/users/konsoletyper/received_events","type":"User","site_admin":false}],"milestone":null,"comments":4,"created_at":"2014-09-02T08:03:51Z","updated_at":"2016-08-06T11:07:10Z","closed_at":null,"body":"TeaVM debugger could work with GWT and bck2brwsr, if they produced proper .teavmdbg files. However, this is quite complex task to reimplement TeaVM's debug information generator. Also, it is not a good deal to install TeaVM plugin for debugging GWT or bck2brwsr. So debugger must be moved into a separate project."},"comment":{"url":"https://api.github.com/repos/konsoletyper/teavm/issues/comments/238018327","html_url":"https://github.com/konsoletyper/teavm/issues/11#issuecomment-238018327","issue_url":"https://api.github.com/repos/konsoletyper/teavm/issues/11","id":238018327,"user":{"login":"konsoletyper","id":5521903,"avatar_url":"https://avatars.githubusercontent.com/u/5521903?v=3","gravatar_id":"","url":"https://api.github.com/users/konsoletyper","html_url":"https://github.com/konsoletyper","followers_url":"https://api.github.com/users/konsoletyper/followers","following_url":"https://api.github.com/users/konsoletyper/following{/other_user}","gists_url":"https://api.github.com/users/konsoletyper/gists{/gist_id}","starred_url":"https://api.github.com/users/konsoletyper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/konsoletyper/subscriptions","organizations_url":"https://api.github.com/users/konsoletyper/orgs","repos_url":"https://api.github.com/users/konsoletyper/repos","events_url":"https://api.github.com/users/konsoletyper/events{/privacy}","received_events_url":"https://api.github.com/users/konsoletyper/received_events","type":"User","site_admin":false},"created_at":"2016-08-06T11:07:10Z","updated_at":"2016-08-06T11:07:10Z","body":"> why? the 14.1 code doesn't compile for plugin SDK of IntelliJ 15 & up.\r\n\r\nWhy should I maintain two different branches for only supporting different versions of an IDE? TeaVM supports different tools, if I created different branches for different sets of tools, I ended up with tons of branches. I think, a better approach is to write code that compatible between different versions of IDEA. If it becomes impossible, create separate module for each version of IDEA to contain version-specific code.\r\n\r\n> Also 14.1 uses asm4 library, and asm4 doesn't like java 8, but the whole compiler is written in java 8.\r\n\r\nDoes IDEA use asm4 to instrument bytecode of TeaVM?\r\n\r\n> You don't need to write a parser, java expression parsers are already available, please look at \"jexl3\" library - http://commons.apache.org/proper/commons-jexl/\r\n\r\nWhat does it produce? A naked AST? What about resolution/type inference? What about interpreting these expressions in debugger context? I think, it's better to reuse IDEA PSI, if possible.\r\n\r\n> That's a problem indeed. Can't we have a way to reduce compiler optimization so no code is being omitted?.. for debugging purposes. \r\n\r\nNo, it's impossible. There are too many dependencies on dependency analyzer, and I can't omit it. What I can do (and going to do) is to disable several local optimizations, but not this one. There are two major reasons:\r\n\r\n1. How should TeaVM select classes to compile? Unlike GWT, it does not require you to write something like `module.xml` file, which specified which classes to compile. Without it, TeaVM has to compile the entire (enormous) set of classes available via compiler's class path.\r\n2. TeaVM is capable of generating coroutines to emulate threads and blocking I/O. It makes methods much slower, and TeaVM uses information provided by dependency analyzer to reduce amount of methods that need to be converted to coroutines. Without it every single method should become coroutine.\r\n\r\n> Have you actually used it? the gwt super dev mode with source maps is not able to map variable names,\r\n\r\nThat's the problem indeed, but how can GWT solve this problem? All it can do is to produce source maps, which are limited. You have to hack GWT first to produce another format (for example, TeaVM format) of debug tables. However, it's possible to partially solve the problem by generating JS variables with names as close as possible to original Java names."}}
{"actor":{"display_login":"konsoletyper"}}