Commit Graph

393 Commits

Author SHA1 Message Date
Alexey Andreev
aefdee2507 Fix checkstyle errors 2020-02-27 19:02:47 +03:00
Alexey Andreev
ea36a1fca8 Fix checkstyle errors 2020-02-27 18:57:45 +03:00
Alexey Andreev
95426e2159 Add per-class compilation when running tests (requires @WholeClassCompilation annotation) 2020-02-27 18:43:08 +03:00
Alexey Andreev
6790ad0818 Code server: fix proxying gzipped resources 2020-02-26 14:27:58 +03:00
Alexey Andreev
0e7c1e5ef9 Wasm: don't generate class metadata if it's not used. Don't generate names and call site metadata in minified mode 2020-02-21 17:29:31 +03:00
Alexey Andreev
7d95c0fb04 Wasm: fix GC 2020-02-21 16:22:25 +03:00
Alexey Andreev
fecdd6613a Use tab character to indent stack traces 2020-02-14 10:39:50 +03:00
Alexey Andreev
05ac4b62bf Add HTTP headers in code server to not cache content 2020-01-23 18:59:05 +03:00
Alexey Andreev
8237403161 Fix build of IDEA plugin 2019-12-04 18:45:22 +03:00
Alexey Andreev
96be75664c Fix build of IDEA plugin 2019-12-04 18:13:28 +03:00
Alexey Andreev
a36cd51c53 Fix build of IDEA plugin 2019-12-04 17:25:07 +03:00
Alexey Andreev
efa15936da Fix build of IDEA plugin 2019-12-04 16:56:47 +03:00
Alexey Andreev
0dbc4a22bb Set proper content type in code server 2019-12-04 16:18:00 +03:00
Alexey Andreev
037acc613c Update IDEA version to 2018.2.8 2019-12-04 15:29:10 +03:00
Alexey Andreev
b60d57ea73 Fix compilation of IDEA plugin 2019-10-31 15:35:19 +03:00
Alexey Andreev
fb78377db8 Fix various issues reported by PVS Studio and LGTM 2019-10-31 14:36:37 +03:00
Alexey Andreev
3b4cc43e79 C: add option to strip off information about call site locations.
This decreases executable size significantly. However, this produces
obfuscated stack traces which can be deobfuscated using JSON symbol table.
2019-10-23 17:34:23 +03:00
Alexey Andreev
e569eaa8a6 C: write test error to stderr rather than stdout 2019-10-15 11:53:31 +03:00
Alexey Andreev
8038f90fd8 Support new format of debug information in C and WASM
This allows to keep proper stack traces in FULL optimization mode,
when aggressive inlining is applied
2019-10-15 11:47:40 +03:00
Alexey Andreev
4ef231c7fa JS: preserve stack trace items when agressive inlining enabled 2019-10-14 14:05:06 +03:00
Alexey Andreev
e762f26a40 Keep location stack in IR when inlining methods 2019-10-08 16:09:07 +03:00
Alexey Andreev
c6f6125622 JS: remove unnecessary link to runtime.js from archetype HTML 2019-10-08 11:15:55 +03:00
Alexey Andreev
bffb50f0cd Implement array bounds checking in JavaScript 2019-10-07 16:55:30 +03:00
mauro
9314461fcf Minor fix for classpath value in CodeServlet 2019-09-26 00:15:41 +03:00
Alexey Andreev
fe3436f053 C/Wasm: resizable heap 2019-09-24 17:48:17 +03:00
Alexey Andreev
f0b6cc2f30 Update version to 0.7.0 2019-09-24 16:26:14 +03:00
Alexey Andreev
f47644d890 Move tool that generates JCL comparison into a separate project. Make this tool compatible with JRE9+ 2019-09-05 14:16:11 +03:00
Alexey Andreev
6e6783f93d C: regenerate only as small amount of classes as possible during incremental build 2019-09-04 19:04:12 +03:00
Alexey Andreev
ed627459c8 Fix issue with async methods in code server 2019-08-23 13:44:03 +03:00
Alexey Andreev
492fd004af C: add ability to write heap dump when application crashes 2019-08-19 15:51:41 +03:00
Alexey Andreev
90e00f7eb4 C: add option to support exceptions via setjmp/longjmp 2019-07-22 16:53:47 +03:00
Alexey Andreev
9ad0ddd891 C: fix File.mkdirs() on Windows 2019-07-11 18:06:15 +03:00
Alexey Andreev
90a5ad72d5 Fix incremental build on Windows 2019-06-26 20:15:42 +03:00
Alexey Andreev
aeb5f44922 C: allow to change main function name 2019-06-20 17:13:08 +03:00
Alexey Andreev
6e71fa7e87 C: implement file IO in Windows 2019-06-14 15:32:20 +03:00
Alexey Andreev
91de1f6ca7 C: implement native file system 2019-05-31 15:05:23 +03:00
Alexey Andreev
d17b459ecc C: fix MSVC support 2019-05-28 20:13:14 +03:00
Alexey Andreev
fdb3f5edb1 C: improve incremental compiler performance. Generate text file with list of c files to compile 2019-05-24 12:10:18 +03:00
Alexey Andreev
8b3df6f730 C: fix bugs, introduce new virtual table builder 2019-05-23 15:18:25 +03:00
Alexey Andreev
8e08cf6dcd C: improve generation of string pool for incremental mode 2019-05-16 16:53:40 +03:00
Alexey Andreev
0003ed0bb2 C: generate '#line' preprocessor directive 2019-05-16 11:12:35 +03:00
Alexey Andreev
7a99258cab C: allow to run external tool after successful incremental build 2019-05-15 16:37:51 +03:00
Alexey Andreev
054db3e8d1 C: incremental code generator 2019-05-15 15:16:18 +03:00
Alexey Andreev
da22256c1f C: compile into multiple .c and .h files 2019-05-08 17:36:46 +03:00
Alexey Andreev
cd008f8a52 Revert to SIMPLE optimization level when running tests 2019-03-24 12:55:26 +03:00
Alexey Andreev
f33c90f778 Improve <clinit> elimination:
* Generate clinit instruction instead of calling <clinit>
  directly
* Rename annotation that indicates absence of side effects
* Don't apply this annotation automatically to all JSBody methods
2019-03-24 12:54:06 +03:00
Alexey Andreev
a8226ef6a3 Decrease memory consumption 2019-03-11 17:27:51 +03:00
Alexey Andreev
94322e5f6e Get rid of Mapper interface in favour of Function 2019-03-11 13:27:34 +03:00
Alexey Andreev
f08faba3d2 Fix compilation of IDEA plugin 2019-03-11 12:32:15 +03:00
Alexey Andreev
578912056b Reduce memory used by initial class reader 2019-03-07 19:27:07 +03:00
Alexey Andreev
fcfa998e1c Reduce memory used by call graph in dev server mode 2019-03-07 16:51:00 +03:00
Alexey Andreev
88dca1bd02 Decrease memory consumption during compilation 2019-03-06 16:51:01 +03:00
Alexey Andreev
2a1aca98da Use shared ReferenceCache between different stages of compilation 2019-03-05 19:32:50 +03:00
Alexey Andreev
3c9a3bb359 Store AST cash in binary format. Introduce more compact
AST serialization format.

Reduce memory consumption of incremental compilation on dev server
2019-03-05 19:06:21 +03:00
Alexey Andreev
e8312021f2 IDEA: don't serialize call graph when dev server completes build 2019-02-27 13:24:12 +03:00
Alexey Andreev
ca017df6c9 Fix incremental compilation on Windows 2019-02-27 13:21:04 +03:00
Alexey Andreev
2095e52dc2 Dev server: fix bug when proxying URLs with characters not allowed in URLs 2019-02-22 17:19:08 +03:00
Alexey Andreev
bd00575219 IDEA: fix dev server run configuration on Windows. Fix CORS issue with stack trace deobfuscator 2019-02-18 13:07:51 +03:00
Alexey Andreev
acc48f4532 JS: fix inability to re-attach to the same debugger 2019-02-13 19:00:37 +03:00
Alexey Andreev
ce13c05342 JS: add ability to set limit for top-level names.
The purpose of this option is JS engines are too sensible for number
of methods in closure, while they don't care about methods
in an object.
2019-02-13 17:03:13 +03:00
Alexey Andreev
35ca7fd152 Add lazy compilation pipeline that can work a little bit faster in incremental compiler 2019-01-30 19:00:07 +03:00
Alexey Andreev
e404e2d37f Fix proxy bug in dev server 2019-01-27 23:00:20 +03:00
Alexey Andreev
78c55437e3 Add stack deobfuscation to dev server 2019-01-24 16:28:30 +03:00
Alexey Andreev
1dd379551c Produce less names in top level scope in dev server mode in order to improve debugging performance in Chrome 2019-01-23 13:28:39 +03:00
Alexey Andreev
85a71e832b Fix code server WS proxy issue 2019-01-14 15:19:08 +03:00
Alexey Andreev
97a1db1b79 Allow to delegate requests to dev server to another server 2018-12-29 14:28:06 +03:00
Alexey Andreev
830aa2c9b1 Fix bugs in Chrome extension, rewrite it in ES6 2018-12-26 18:57:30 +03:00
Alexey Andreev
58c19e3abc Minor fixes in development toolchain 2018-12-25 18:45:26 +03:00
Alexey Andreev
6900fd587c Fix Float/Double.parse for strings like '123.' 2018-12-24 18:16:05 +03:00
Alexey Andreev
f080526aca Update to latest version of HtmlUnit 2018-12-24 18:15:17 +03:00
Alexey Andreev
90c23e6686 Allow to customize debug port both in IDEA and Chrome 2018-12-20 12:09:32 +03:00
Alexey Andreev
27d81c4fe6 Send less commands over Chrome RDP 2018-12-20 11:43:04 +03:00
Alexey Andreev
a4b61bac19 Fix bugs in debugger 2018-12-19 19:28:35 +03:00
Alexey Andreev
75295f50e5 Make debugging API asynchronous 2018-12-19 18:13:15 +03:00
Alexey Andreev
66126856a2 IDEA: run debug server when running dev server in debug mode, connect to this server automatically from the web page 2018-12-17 19:31:53 +03:00
Alexey Andreev
b1e04da597 IDEA: improve dev server console 2018-12-17 15:46:29 +03:00
Alexey Andreev
d7d4dc1571 Add IDEA run configuration that runs dev server 2018-12-16 20:42:21 +03:00
Alexey Andreev
bab0cd59a6 Improve performance and stability of development server and incremental compilation 2018-12-13 18:45:44 +03:00
Alexey Andreev
5db4c11e10 Fix bugs in dev server 2018-12-11 16:07:43 +03:00
Alexey Andreev
eec458089f Implement development server 2018-12-10 19:03:18 +03:00
Alexey Andreev
952ed3f193 Fix diagnostics no printed from teavm-cli. Fix diagnostics of unavailable classes and methods 2018-12-09 19:54:04 +03:00
Alexey Andreev
d74bcbe2b9 Fast dependency analyzer, fix bugs in incremental compiler 2018-12-07 17:41:21 +03:00
Alexey Andreev
1b83519280 Reduce minumus JS runtime a little 2018-12-07 00:52:05 +03:00
Alexey Andreev
1cf3cce076 Reduce minimum runtime size 2018-12-01 23:07:03 +03:00
Alexey Andreev
45d0a13c9b In HtmlUnit, decode stack traces for all constructed exceptions 2018-11-26 15:58:51 +03:00
Alexey Andreev
1c09a52ef9 Add option to suppress decoding stack when running JUnit tests 2018-11-26 11:41:25 +03:00
Alexey Andreev
3e152f4bb8 JUnit: remove selenium runner 2018-11-23 14:32:35 +03:00
Alexey Andreev
2c8b0b55bb JUnit: Decode stack traces to StackTraceElement[] instead of string 2018-11-23 14:32:10 +03:00
Alexey Andreev
d50189ea3a Add decoding of stack trace in JUnit adapter 2018-11-23 12:09:26 +03:00
Alexey Andreev
6d2815bc5c Support running JUnit3 tests and improve support of JUnit4 2018-11-22 19:51:33 +03:00
Alexey Andreev
753755918d Update build config to avoid jar hell 2018-11-22 14:49:30 +03:00
Alexey Andreev
c7e7e3b3f0 Fix IDEA plugin build 2018-11-20 15:21:55 +03:00
Alexey Andreev
7588962212 Bind system properties to Maven properties.
Add heapSize property
2018-11-20 14:55:04 +03:00
Alexey Andreev
fc799afcda Add Maven option to run TeaVM in a separate process 2018-11-20 14:22:35 +03:00
Alexey Andreev
0f951f8c86 Fix calculating class name in debugger 2018-11-19 15:29:02 +03:00
Alexey Andreev
148c07336c Generate entire code inside wrapper IIF 2018-11-15 12:47:25 +03:00
Alexey Andreev
064888c9a1 Support Java 11 2018-11-12 18:59:28 +03:00
Alexey Andreev
d4b145a523 IDEA: update project configuration 2018-11-06 14:49:14 +03:00
Alexey Andreev
4d2c075c07 Always embed runtime into generated file. Remove 'runtime' build property 2018-10-28 00:15:36 +03:00
Alexey Andreev
eff86f6239 Less output from Maven. Delete TeaVM artifacts from local repository before caching 2018-10-26 16:10:36 +03:00
Alexey Andreev
16ea944a87 Travis: fix build configuration 2018-10-26 15:21:04 +03:00
Alexey Andreev
7bef0f5bb8 Bump IDEA version to 2017.3 2018-10-25 13:15:28 +03:00
Alexey Andreev
55e0905518 IDEA: add facet option to skip TeaVM compilation 2018-09-04 18:30:15 +03:00
Alexey Andreev
8c35ef0189 IDEA: fix starting daemon with specified amount of memory 2018-08-30 11:11:15 +03:00
Alexey Andreev
773d40aa37 IDEA: fix copying sources from dependant modules 2018-08-30 11:10:51 +03:00
Alexey Andreev
7f46c301bd IDEA: allow to configure build daemon heap size 2018-07-31 16:31:09 +03:00
Alexey Andreev
544eb4e827 IDEA plugin: don't load dependencies transitively, since IDEA provides all necessary dependencies 2018-06-19 18:53:38 +03:00
Alexey Andreev
d7b57ae938 Update asm version to 6.1.1 and versions of Maven plugins that use old asm in order to support Java 10 bytecode version. 2018-05-15 16:20:20 +03:00
Alexey Andreev konsoletyper@gmail.com
4d8f33d994 C backend: few fixes for MVSC 2018-05-14 01:15:29 +03:00
Alexey Andreev
a81eeeee03 Wasm backend: fix hanging tests, make more tests pass, change name generation scheme 2018-05-10 17:41:28 +03:00
Alexey Andreev
b087610c2c Wasm backend: make JUnit tests work 2018-05-08 23:31:51 +03:00
Alexey Andreev
38267980fb Run C test compilation in multiple threads 2018-04-21 12:24:31 +03:00
Alexey Andreev
4990dbe8e4 Add support for C backend in TeaVMTestRunner 2018-04-20 22:58:09 +03:00
Alexey Andreev
f079b5fbcc Fix hppc version in Eclipse plugin 2018-03-20 23:19:31 +03:00
Alexey Andreev
05d0220dcd C backend: initial commit 2018-03-20 23:18:52 +03:00
Mauro de Wit
2055df55b3 Minor fix for TeaVMRunner 'generate source maps' option (#325)
Use character 'G' in the parseDebugOptions for sourcemaps
2018-02-16 22:27:04 +03:00
Alexey Andreev
21411cd1d8 Update Scala IDEA plugin download URL 2018-01-22 23:32:33 +03:00
Alexey Andreev
bac8336709 Make set-version script to update Eclipse plugin version 2018-01-11 00:17:16 +03:00
Alexey Andreev
02f61b5d50 Never minify TeaVM output in Eclipse builder 2018-01-10 00:06:55 +03:00
Alexey Andreev
09d857f572 Support preserve-class option in CLI 2018-01-09 23:46:24 +03:00
Alexey Andreev
85c686c72a Remove outdated methodAliases build parameter
Replace classAliases with classesToPreserve
2018-01-09 23:38:30 +03:00
Alexey Andreev
10c706077a When a value in debugger represents plain JavaScript object, show its native fields in watch window 2018-01-08 14:45:46 +03:00
Alexey Andreev
2ae6c872db Fix error setting breakpoints. See #308 2018-01-08 14:44:43 +03:00
Alexey Andreev
a24d628603 Fix IDEA debugger exception. See #307 2018-01-08 14:43:53 +03:00
Alexey Andreev
2bbdf6caba Rename DependencyChecker to DependencyAnalyzer 2017-11-12 23:21:16 +03:00
Alexey Andreev
f401f24521 Revive Eclipse plugin 2017-11-09 20:10:15 +03:00
Alexey Andreev
d3134d3941 Fix running multi-configuration tests in HTMLUnit 2017-11-05 14:53:08 +03:00
Alexey Andreev
ffbfd7df79 Add minor stuff to classlib 2017-10-26 20:17:09 +03:00
Alexey Andreev
fecc087993 Print compilation statistics 2017-10-22 20:22:51 +03:00
Alexey Andreev
de14a57fe1 Change how method resolution work in DCE and devirtualization.
Since in Java 8 there are default methods in interface, method
resolution algorithm becomes more complicated. This alseocauses
several related changes.

1. Resolve methods as late as possible; do not resolve
   virtual call sites during DCE.
2. Due to several reasons we have to improve linking phase
   to preserve super methods that aren't actually ever called,
   but present in virtual call sites.

Related issue: #311
2017-10-22 17:56:31 +03:00
Alexey Andreev
19a003669b Working on CLI 2017-10-12 00:19:56 +03:00
Alexey Andreev
7f76d31330 Update IDEA files 2017-10-08 21:41:08 +03:00
Alexey Andreev
4171d468d4 JS: add reflection support for constructors 2017-07-17 22:21:17 +03:00
Alexey Andreev
e1234df7e1 Fix positioning error messages in JPS 2017-07-05 00:08:28 +03:00
Alexey Andreev
c84dcd366e Display breakpoint status in IDEA 2017-07-04 07:18:02 +03:00
Alexey Andreev
1581345e17 Properly report breakpoint hit event 2017-07-04 06:37:17 +03:00
Alexey Andreev
faec413cf0 Remove annoying tab in debug tool window 2017-07-04 00:46:58 +03:00
Alexey Andreev
db97b7f732 Fix various issues in debugger 2017-07-02 16:25:11 +03:00
Alexey Andreev
434a3dd207 Fix IDEA debugger issues 2017-07-01 23:41:21 +03:00
Alexey Andreev
f86e498898 Speed-up travis build 2017-07-01 15:48:07 +03:00
Alexey Andreev
cdec4560ba Remove dumb comments containing only @author annotation 2017-07-01 13:13:52 +03:00
Alexey Andreev
4948c37419 Fix build daemon not stopping after IDEA shutdown 2017-06-23 23:56:02 +03:00
Alexey Andreev
59e5c16b31 Update version to 0.6.0-SNAPSHOT 2017-06-19 20:50:19 +03:00
Alexey Andreev
6653118dd8 Allow to edit TeaVM build properties from IDEA UI 2017-06-16 00:57:06 +03:00
Alexey Andreev
f0637fda41 Remove obsolete configuration properties 2017-06-12 22:25:13 +03:00
Alexey Andreev
45b0836ac6 Fix updating source map file during incremental build in IDEA 2017-06-11 00:41:06 +03:00
Alexey Andreev
0397bdced1 Report copied source files to JPS as changed files 2017-06-07 14:34:05 +03:00
Alexey Andreev
91a7f69bee Report error in JPS when TeaVM build crashes 2017-06-06 23:08:31 +03:00
Alexey Andreev
d8913f85d1 Improve incremental compilation in IDEA.
Fix bug in source copier.
2017-06-01 19:15:24 +03:00
Alexey Andreev
89eb87e8ca Improve performance of source file copier 2017-06-01 16:14:25 +03:00