Commit Graph

359 Commits

Author SHA1 Message Date
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
Alexey Andreev
36f2932caa Add incremental build to JPS 2017-06-01 16:14:25 +03:00
Alexey Andreev
2e8e3a65bd Add IO bufferization 2017-06-01 16:14:24 +03:00
Alexey Andreev
d5db7270be Move expected exception handling off test runner.
Implement it in launcher genertor instead
2017-04-22 00:26:43 +03:00
Alexey Andreev
6a1dd17af9 IDEA: refactor JPS plugin to allow proper redeployment in javaee plugin 2017-04-12 17:34:14 +03:00
sertic
19b804b5fc #252 WASM binary version was reset to 0x01 for MVP official release
In current browsers and for the official MVP only WASM binary version 0x01 is supported.
All other binary versions are no longer required or supported, hence the generation
logic for them is no longer needed.
2017-04-04 12:48:00 +02:00
Alexey Andreev
9e4e26ae18 Fix bug in metaprogramming API 2017-03-30 17:20:19 +03:00
Alexey Andreev
6c97f8afe3 Refactor code to avoid duplication 2017-03-17 13:57:37 +03:00
Alexey Andreev
891b906a8c Fix serialization of call graph. Fix minor bugs in build daemon 2017-03-17 13:57:37 +03:00
Alexey Andreev
1ae4a95128 Add TeaVM build daemon to IDEA 2017-03-17 13:57:37 +03:00
Alexey Andreev
6b31e13cbb Add abstraction of build strategy. Implement in-process build strategy. Further step is to implement build strategy that communicates with build daemon 2017-03-17 13:57:36 +03:00
Alexey Andreev
6d3b329540 Remove unnecessary comments and eliminate duplicate code 2017-02-26 13:52:06 +03:00
Alexey Andreev
a48e3fbd61 Write debug information via buffered stream 2017-02-26 13:51:19 +03:00
Alexey Andreev
3821d29f1c Don't allow user to change minifier settings via IDEA facet UI 2017-02-26 07:36:07 +03:00
Alexey Andreev
3e3b25bddc Fix serialization of IR to binary format for incremental build 2017-02-26 07:07:02 +03:00
Alexey Andreev
1d0230b4c6 Fix bytecode class renamer. Remove unnecessary files 2017-02-26 00:08:17 +03:00
Alexey Andreev
7d876668c5 Rename org.ow2.asm to org.teavm.asm in class loader during JPS build. Fix IDEA plugin deployment in travis 2017-02-18 23:50:31 +03:00
Alexey Andreev
b3f52409a7 Fix build 2017-02-18 20:35:04 +03:00
Alexey Andreev
0900f82585 Fix build 2017-02-18 20:26:02 +03:00
Alexey Andreev
b4e88988f6 Build IDEA plugin via Maven 2017-02-18 16:57:52 +03:00
Alexey Andreev
55453c9311 Set version to 0.5.0-SNAPSHOT. Add configuration to deploy to bintray. Update version number during Travis build. 2017-02-16 21:48:13 +03:00
Alexey Andreev
7b6013992c Embed metaprogramming implementation into uberjar for IDEA plugin 2017-02-15 22:49:22 +03:00
Alexey Andreev
d5dd608961 Fix ${project.version} in maven archetype. Add default value for optimizationLevel 2017-02-15 22:48:51 +03:00
Alexey Andreev
6c6e7c0d4d Fix build in travis. Seems they have old and buggy javac 2017-02-15 21:12:13 +03:00
Alexey Andreev
16c467f8e2 Merge pull request #244 from davmac314/cli-classaliases
Add a CLI option to set class aliases.
2017-02-15 21:08:13 +03:00
Davin McCall
d4b11e9817 Add a CLI option to set class aliases.
This adds the "--classalias" option which allows specifying a target
alias for a fully qualified class. The format is:

  --classalias fully.qualified.Name:TargetAlias
2017-02-14 00:06:59 +00:00
Alexey Andreev
ccb4dff836 Fix bugs in metaprogramming. In JUnit runner reload about:blank page before every test 2017-02-13 23:43:49 +03:00
Alexey Andreev
5e44c13caf Fix bugs in metaprogramming. Add run configuration that rebuilds TeaVM 2017-02-04 18:24:23 +03:00
Alexey Andreev
55836d6ed7 Fix async splitting of blocks with exception handlers in some cases. Fix https://github.com/konsoletyper/teavm/issues/234 2017-01-24 23:36:15 +03:00
Alexey Andreev
9532f9a32b Refactor phi updater 2017-01-06 21:13:12 +03:00
Alexey Andreev
a5eb9ac800 Add tests for phi updater 2017-01-04 22:09:56 +03:00
Alexey Andreev
ec3b88f77a Fix test runner behaviour when test fails 2016-12-04 20:53:23 +03:00
Alexey Andreev
f96aa54461 Fix attaching source maps to JS file 2016-12-03 14:05:13 +03:00
Alexey Andreev
ad39024795 Prevent PhiUpdater from placing e-phis with source variable equal to receiver 2016-12-03 13:46:02 +03:00
Alexey Andreev
c25dd1a99d Add JUnit test filtering 2016-11-30 00:25:26 +03:00