Alexey Andreev
b2c78948f5
Loop invariant motion now considers method arguments to be invariants of
...
any loop
2014-03-27 21:40:04 +04:00
Alexey Andreev
cfd0f3e998
JCL tests pass with loop invariant motion enabled
2014-03-27 21:19:55 +04:00
Alexey Andreev
b96c5038ce
Adds loop invariant code motion optimization
2014-03-27 20:09:05 +04:00
Alexey Andreev
2f2985bb10
Removes inlining of variable's values into && and || expression, as it
...
sometimes can violate evaluation order. Fixes creation of arrays of
arrays of primitives.
2014-03-27 15:48:34 +04:00
Alexey Andreev
bf68cf4b7d
Fixes bugs in JSO and building resources
2014-03-26 23:15:55 +04:00
Alexey Andreev
ae60a7b4a0
Refactoring that introduces ability to generate new classes from
...
dependency interceptors.
2014-03-24 15:40:56 +04:00
Alexey Andreev
00d160e92b
First attempt to refactor dependency checker
2014-03-24 13:26:32 +04:00
konsoletyper
e43898e573
Most of java.util.BitSet test pass
2014-03-21 15:06:06 +04:00
konsoletyper
02dcf9caa8
Configure pom.xml files to automatically release into Sonatype OSS
...
repository
2014-03-20 10:59:12 +04:00
konsoletyper
cbdcfa8977
Switches to 0.2-SNAPSHOT version
2014-03-19 01:48:43 +04:00
konsoletyper
3d3b5abce8
Adds JavaDocs
2014-03-19 01:37:07 +04:00
Alexey Andreev
0ab1639821
Refactor pom files
2014-03-18 18:02:15 +04:00
konsoletyper
91a7a9ba22
Adds java.lang.String methods. Makes intern on all string constants.
2014-03-17 00:53:22 +04:00
konsoletyper
e35f9b54b5
Moves JCL report generator into separate package. Adds hack that allows
...
to obtain JavaCompiler (but yet it won't compile).
2014-03-16 01:54:47 +04:00
konsoletyper
aacc7e08d2
One more speed-up of register allocation
2014-03-15 14:58:27 +04:00
Alexey Andreev
8d0c412634
Removes some temporary code
2014-03-15 01:06:57 +04:00
Alexey Andreev
97dc66968e
Speed-up interference graph builder. Simplify API
2014-03-15 00:43:13 +04:00
Alexey Andreev
45fe202740
Switch to asm4
2014-03-14 22:24:25 +04:00
Alexey Andreev
739f666c0a
Fixes java.io.BufferedReader.skip method. Fixes multiplication of
...
negative long integers
2014-03-14 13:03:26 +04:00
konsoletyper
44264c7ea8
Fixes some bugs in JCL
2014-03-12 22:35:20 +04:00
konsoletyper
b85dfcd7a0
Fixes bug that caused JUnit not to throw assertions in certain cases.
2014-03-12 21:01:00 +04:00
konsoletyper
134196d401
Completes java.lang.StringBuilder|StringBuffer
2014-03-12 15:43:26 +04:00
konsoletyper
d870060187
Fixes bug in Java bytecode parser. Fixes bug in register allocator. Adds
...
java.util.Timer. Adds java.util.Collections.reverse
2014-03-11 15:49:47 +04:00
konsoletyper
d8477f1e9d
Fixes devirtualization bug. Adds exception message displaying when test
...
fails. Fixes java.util.Arrays.deepToString
2014-03-11 10:41:59 +04:00
konsoletyper
4143e6c8d7
Repairs common subexpression elimination and renames it to global value
...
numbering, as it is really pessimistic GVN
2014-03-07 23:13:07 +04:00
konsoletyper
758c7c7966
Repairs implementation of bit manipulation in java.lang.Double. Disables
...
GVN due to bug
2014-03-07 12:02:07 +04:00
konsoletyper
688d6191fd
Adds implementation of some JCL methods/classes
2014-03-06 13:47:24 +04:00
konsoletyper
43b41b3a66
Makes JCL compatibility report in HTML
2014-03-05 23:39:35 +04:00
konsoletyper
a29318668e
Adds utility that checks which classes are implemented in JCL emulation
...
and produces JSON report
2014-03-05 17:47:47 +04:00
konsoletyper
d714e880d3
Adds checkstyle and findbugs into configuration of teavm-core
2014-03-05 12:54:26 +04:00
konsoletyper
226f4c2c8a
Refactoring. JavascriptBuilder becomes TeaVM and goes to org.teavm.vm
...
package, as well as some other classes go to org.teavm.vm.spi. html4j
now supports generation of JavaScript that is completely compatible with
bck2brwsr without altering HTML page
2014-03-05 00:13:58 +04:00
konsoletyper
92d4078228
Fixes classpath bugs. Fixes internal analysis bug. Adds some JCL
2014-03-04 00:06:03 +04:00
konsoletyper
9c4f00c18a
Adds most of java.lang.Character implementation. Adds integer stack to
...
avoid stack overflow when using fixed-sized array-based stack
2014-03-03 16:29:46 +04:00
konsoletyper
a2d9663901
Minimizes amount of generated code to represent virtual methods
2014-03-02 11:02:09 +04:00
konsoletyper
04de57627f
Fixes dependency propagation of exceptions
2014-03-02 10:05:56 +04:00
konsoletyper
8541e40f36
Adds exception type propagation
2014-03-01 22:19:24 +04:00
konsoletyper
d68f78f77d
Adds NullCheckInstruction
2014-03-01 19:01:27 +04:00
konsoletyper
4c36ab9db1
Reduces amount of generated code
2014-03-01 18:05:04 +04:00
konsoletyper
f4fd2d884f
Fixes devirtualization optimization
2014-03-01 16:58:38 +04:00
konsoletyper
cc8d2b8903
TCK passes some more tests
2014-02-28 14:16:23 +04:00
konsoletyper
ce4f6dc5d5
Adds some JCL dependencies required by html4j
2014-02-28 13:40:55 +04:00
konsoletyper
5c613d2f7f
Implements Double.parseDouble. Fixes bugs. Disabled devirtualization
...
optimization due to bugs
2014-02-27 16:06:22 +04:00
konsoletyper
b4347b4eb8
Adds optional support of throwing NPE when calling method on null
...
instance
2014-02-27 10:04:51 +04:00
konsoletyper
43acca8706
Fixes incorrect optimization of try/catch statements
2014-02-26 22:02:09 +04:00
konsoletyper
1f18148144
Removes exception handlers in a special case when exception handler is
...
exactly at the start of a protected block
2014-02-26 21:45:58 +04:00
konsoletyper
a4f477329d
Fixes bugs in try/catch
2014-02-26 17:54:25 +04:00
konsoletyper
ea3e6adb64
Adds VM test that verifies that exceptions are caught
2014-02-26 17:14:08 +04:00
konsoletyper
62686878c6
Adds try/catch support in simple cases
2014-02-26 16:42:31 +04:00
konsoletyper
de245613c4
Parser supports try/catch blocks
2014-02-26 13:26:33 +04:00
konsoletyper
d5fac392d3
Adds try/catch block to model
2014-02-25 21:36:45 +04:00
konsoletyper
03bc2e2e07
Adds support of java.io.BufferedReader and java.io.StringReader
2014-02-25 12:41:00 +04:00
konsoletyper
8cbb6477cb
Adds test coverage of InputStreamReader
2014-02-24 19:43:11 +04:00
konsoletyper
7782f1edb7
Small improvements
2014-02-24 15:00:30 +04:00
konsoletyper
0004babe65
Bugfixes and improvements, trying to launch Knockout4Java
2014-02-24 13:07:06 +04:00
konsoletyper
d34e26e970
Adds java.util.ServiceLoader support
2014-02-24 00:50:06 +04:00
konsoletyper
3195879467
Adds support of Class.getDeclaringClass method
2014-02-23 23:17:30 +04:00
konsoletyper
9cdc099b1a
Adds simple support of Class.forName and class.newInstance
2014-02-23 21:14:10 +04:00
konsoletyper
5c03e7547f
Avoids swap problem when eliminating phi functions and therefore gets
...
back global value numbering optimization
2014-02-22 23:20:30 +04:00
konsoletyper
7831ade3a6
Fixes infinite loop in dependency checker in some cases
2014-02-21 19:47:51 +04:00
konsoletyper
a353a05e23
Fixes dependency checker bug
2014-02-21 19:29:45 +04:00
konsoletyper
e2d872fa20
Fixes dependency checking when casting arrays
2014-02-21 17:34:49 +04:00
konsoletyper
90a077fc34
Fixes dependency checker bug
2014-02-21 17:10:28 +04:00
konsoletyper
31b9525309
Fixes bugs. Adds JCL implementation
2014-02-21 15:07:37 +04:00
konsoletyper
59e6095fef
Adds linking phase that for each method invocation places a proper
...
reference, possibly inherited from superclass. Adds tests on ArrayList
2014-02-21 10:36:44 +04:00
konsoletyper
f63d0cd8d0
Adds complete enum support
2014-02-20 11:58:44 +04:00
konsoletyper
f3ae632786
Adds implementations of some JCL classes
2014-02-20 00:53:44 +04:00
konsoletyper
281d4b8e05
Adds ability to build JavaScript tests against custom adapters. Adds
...
optional dependency scanning for tests. Adds test inclusion by
wildcards. Adds TCK test generator.
2014-02-19 20:46:17 +04:00
konsoletyper
b48cbc98a4
Introduces TestAdapter to make maven plugin be aware of different test
...
frameworks
2014-02-19 17:52:07 +04:00
konsoletyper
301d14e1ab
Most of JavaScriptBody TCK tests pass
2014-02-19 13:44:27 +04:00
konsoletyper
8988d4fc64
Removes unecessary dependency error when building JavaScriptBody support
2014-02-19 11:40:02 +04:00
konsoletyper
2c08f75b0a
Alters JUnit plugin. Now it doesn't stop when dependency problems found,
...
but puts warning into log and into execution report of test
2014-02-19 11:15:22 +04:00
konsoletyper
be89d16e88
Further refactoring of dependency checker
2014-02-19 10:43:13 +04:00
konsoletyper
da35fbc2a9
Dependency checker refactoring
2014-02-18 23:50:54 +04:00
konsoletyper
5b76001a34
Adds json-tck tests
2014-02-18 17:53:55 +04:00
konsoletyper
ee28309008
Adds displaying of full dependency stack for each missing item
2014-02-18 14:20:48 +04:00
konsoletyper
6c903a916c
Fixes illegal processing of DUP2, DUP_X1, DUP_X2m, DUP2_X2 instructions.
...
Makes more fancy list of missing items
2014-02-18 12:52:29 +04:00
konsoletyper
53e1ea3627
When missing some classes/methods/fields dependency checker throws
...
exception after checking, providing the full list of missing items.
2014-02-17 21:02:47 +04:00
konsoletyper
169ecb18c8
Adds integer conversion
2014-02-17 17:05:17 +04:00
konsoletyper
ae2ca37ee0
Adds type conversion from Java array and integer to JS array and number
2014-02-17 08:15:06 +04:00
konsoletyper
d310409db3
Fixes dependency checking of arrays
2014-02-14 16:19:51 +04:00
konsoletyper
cc3a89ebf7
Makes `started' dependency event to be emitted before any dependency
...
checking. Suppresses repeated ClassHolder transformation
2014-02-14 00:37:14 +04:00
konsoletyper
4dd9eaa1fd
Adds a new dependency event that is emitted when dependency checker is
...
about to start. Adds ability to examine classes from generators.
2014-02-13 22:59:30 +04:00
konsoletyper
e5ea6b51a7
Moves JSObject and others into a separate project
2014-02-13 17:52:56 +04:00
konsoletyper
e13accc7e4
Adds pluggable system to extend TeaVM compiler
2014-02-13 17:22:25 +04:00
konsoletyper
8c4514a200
Refactoring. Adds devirtualization optimization
2014-02-12 23:41:17 +04:00
konsoletyper
99333f2370
Speed-up MULTIANEWARRAY. Temporarily disable typed arrays as they make
...
benchmark to pass slower
2014-02-11 12:28:37 +04:00
konsoletyper
e094fe4192
Adds emulation of Integer.parseInt
2014-02-10 16:34:40 +04:00
konsoletyper
8055edd547
Fixes issue with JSFunctor-annotated classes
2014-02-10 12:43:23 +04:00
konsoletyper
67bc76f89a
Adds java.lang.Boolean emulation. Adds emulation of some of
...
java.lang.String methods. Fixes bug in register allocator.
2014-02-10 12:25:17 +04:00
Alexey Andreev
8a423c0d4f
Adds support of *functors*. Adds benchmark from bck2brwsr
2014-02-09 14:27:32 +04:00
Alexey Andreev
48265c446f
Adds possibility to implement JSObject ant pass it as a callback to a
...
method of another JSObject
2014-02-07 23:30:31 +04:00
konsoletyper
c9f78c5cdf
Introduces concept of an *injector*. Uses injectors to make generated
...
JavaScript code neat.
2014-02-07 00:44:06 +04:00
konsoletyper
ae2e669ec3
Adds support of native JavaScript interaction
2014-02-06 17:51:51 +04:00
konsoletyper
b621b0524b
Adds a skeleton of a new native interface to JavaScript
2014-02-06 13:00:46 +04:00
konsoletyper
6a626ec493
Renamings
2014-02-02 20:35:12 +04:00
konsoletyper
4c03e7d3cb
Returns back old variable substitution
2014-01-31 22:25:24 +04:00
konsoletyper
ce0859beac
AST optimizations and output code minification
2014-01-31 14:03:29 +04:00
konsoletyper
bc68602dae
Remove .$class property and use built-in .constructor instead
2014-01-31 10:49:01 +04:00
konsoletyper
4c70cf6828
Fixes error generating minfied JS
2014-01-30 17:44:47 +04:00
konsoletyper
3496907f0e
While eliminator
2014-01-30 17:36:56 +04:00
konsoletyper
692bfdd731
Fixes issues in if statement AST optimizer
2014-01-30 17:13:24 +04:00
konsoletyper
16d11909ea
New AST optimization algorithm
2014-01-29 17:35:27 +04:00
konsoletyper
d93883296e
Slightly improves AST optimizer
2014-01-28 17:29:36 +04:00
konsoletyper
24921c6e80
Support of multithreaded execution. Performance optimizations.
2014-01-28 16:46:40 +04:00
konsoletyper
0c240f5636
Refactoring of model to allow multithreaded optimization
2014-01-28 14:13:12 +04:00
konsoletyper
619c50729b
Further optimization for multiple threads
2014-01-27 17:35:42 +04:00
konsoletyper
915add4d97
Multithreading support refactoring
2014-01-27 17:15:28 +04:00
konsoletyper
c9a891d9cd
All tests pass with register allocation
2014-01-27 16:02:23 +04:00
konsoletyper
94fe8a0acf
Fixes minor decompilation issues
2014-01-27 12:36:35 +04:00
konsoletyper
0eb4e54e51
Fixes register allocation bugs
2014-01-27 11:34:55 +04:00
konsoletyper
b7917f2511
Register allocator almost complete
2014-01-24 17:26:03 +04:00
konsoletyper
73884794a4
Bugfixes. Start to implement phi eliminator through interting copies for
...
all phi arguments and then coalescing.
2014-01-23 17:19:36 +04:00
konsoletyper
e5a083b4c7
Trying to implement register allocator with phi function elimination
2014-01-23 16:10:42 +04:00
konsoletyper
24d40c3c41
Fixes register allocator
2014-01-23 13:16:20 +04:00
konsoletyper
ba67c34b20
Adds interference graph builder
2014-01-22 16:43:36 +04:00
konsoletyper
161eb2b9c0
Removes "representative" property of variables in SSA form
2014-01-22 13:02:27 +04:00
konsoletyper
d704e503ee
Adds representative attribute to variables in SSA form. Adds program
...
bytecode logging
2014-01-20 18:17:58 +04:00
konsoletyper
c704956ca1
Complete liveness analyzer (not tested)
2014-01-15 17:38:14 +04:00
konsoletyper
c8ac2a8b98
Adds liveness analyzer (incomplete)
2014-01-10 17:10:58 +04:00
konsoletyper
ca29e10aeb
Fixes threading issue in DependencyChecker
2014-01-10 15:30:41 +04:00
konsoletyper
2214433d6c
Adds variable usage extractor and phi eliminator (incomplete)
2014-01-09 17:30:39 +04:00
konsoletyper
559cf989ba
Adds method to copy program
2014-01-09 15:26:31 +04:00
konsoletyper
a5ff1cf5a8
Merge remote-tracking branch 'origin/master'
2014-01-08 18:48:20 +04:00
konsoletyper
93e2f5d284
Fixes issues with dependency checking
2014-01-08 17:48:54 +04:00
konsoletyper
111b3d9076
Applies apache license
2013-12-20 12:45:28 +04:00
konsoletyper
56991af700
Adds fixes to make `samples' project to work properly
2013-12-19 12:13:31 +04:00
konsoletyper
eb6627c532
Adds a minimal code to support HelloWorld application
2013-12-18 15:04:11 +04:00
konsoletyper
6eb145e1d0
Adds maven plugin. Switches class library test generation from main
...
class to maven goal
2013-12-17 12:03:27 +04:00
konsoletyper
e5cb7a20d3
Adds JavascriptBuilder - a facade for building whole JavaScript files
2013-12-16 17:48:38 +04:00
konsoletyper
a736359a07
Code size optimization
2013-12-16 16:33:28 +04:00
Alexey Andreev
808b0d9468
Fixes bugs
2013-12-13 17:28:30 +04:00
konsoletyper
5ab0036564
Common subexpression elimination now works
2013-12-12 20:59:05 +04:00
Alexey Andreev
9faf252a8d
Adds common subexpression elimination prototype
2013-12-12 17:37:18 +04:00
Alexey Andreev
d9b7a87784
Fixes dependency checker bugs
2013-12-12 16:35:12 +04:00
konsoletyper
d100654b93
JUnit tests now compiled each in a separate file
2013-12-11 22:16:27 +04:00
konsoletyper
18fd80be56
Fixes bugs in minifier
2013-12-10 21:28:11 +04:00
Alexey Andreev
62df1018cc
Improves minification
2013-12-10 17:24:19 +04:00
Alexey Andreev
029f655b55
Merge remote-tracking branch 'origin/master'
...
Conflicts:
teavm-core/src/main/java/org/teavm/javascript/Renderer.java
2013-12-10 16:52:43 +04:00
Alexey Andreev
10c1e2f528
Adds minification
2013-12-10 16:47:41 +04:00
konsoletyper
82ef14fc07
Adds support of JVM class initialization
2013-12-09 22:04:04 +04:00
konsoletyper
d948d8d8b0
Adds long division emulation
2013-12-09 21:45:47 +04:00
Alexey Andreev
bb7053cfa4
Improvements
2013-12-06 17:16:56 +04:00
Alexey Andreev
3f1a44eccb
Fixes casting between integer values. Fixes naming generation of
...
methods. Adds more informative exception trace when no method was found
during rendering
2013-12-04 11:46:17 +04:00
konsoletyper
d3063e7811
Fixes class methods errors. Adds string tests
2013-12-03 22:29:50 +04:00
Alexey Andreev
620d2cef62
Adds some more support of reflection
2013-12-03 19:30:53 +04:00
Alexey Andreev
b3fe2f6a29
Fixes a bug with Object.getClass() behaviour. Improves JUnit emulation
2013-12-03 19:07:53 +04:00
Alexey Andreev
167e1a52c8
Merge remote-tracking branch 'origin/master'
2013-12-03 10:06:30 +04:00
konsoletyper
06e466b01b
Fixes a little optimization bug
2013-12-02 20:54:06 +04:00
konsoletyper
601fcf0824
Adds unused variable elimination
2013-12-02 20:51:04 +04:00
Alexey Andreev
c8528ef91a
More tests added
2013-12-02 17:28:48 +04:00
konsoletyper
ac0df0ca6b
Refactoring of array generation
2013-12-01 21:57:41 +04:00
Alexey Andreev
ce56214ed5
Adds some JVM class library implementation
2013-11-29 19:07:39 +04:00
Alexey Andreev
f6927a72af
Fixes some bugs
2013-11-28 17:42:06 +04:00
Alexey Andreev
e32da9316f
Improves dependency checking. Adds some core runtime functions
2013-11-27 17:30:16 +04:00
Alexey Andreev
c244c596c9
Implements some of JVM class library
2013-11-27 10:11:21 +04:00
Alexey Andreev
1355e211e3
Implementing class library emulation
2013-11-25 17:41:18 +04:00
Alexey Andreev
18e35b80e6
Adds some JVM classes.
2013-11-22 17:19:51 +04:00
Alexey Andreev
04e12562a0
Adds class preordering. Fixes concurrency issues
2013-11-20 18:16:48 +04:00
Alexey Andreev
f88b868c39
Dependency checker now cuts off unused methods
2013-11-18 17:28:02 +04:00
Alexey Andreev
6efbb75783
Instructions, that have separate class name and field/method name now
...
use FieldReference and MethodReference instead
2013-11-17 16:45:35 +04:00
Alexey Andreev
91a50605bc
Dependency plugin support added
2013-11-17 16:20:23 +04:00
Alexey Andreev
59358dcd8d
Dependency checker complete
2013-11-17 15:43:03 +04:00
Alexey Andreev
7e7cdc5b78
Working on dependency checker
2013-11-15 17:31:11 +04:00
Alexey Andreev
93798a335c
Merge remote-tracking branch 'origin/master'
2013-11-11 19:08:47 +04:00
Alexey Andreev
3e7dc295a1
Type analyzer complete
2013-11-11 19:06:01 +04:00
Alexey Andreev
958592a4b0
Adds generator of HTML page, running junit test cases
2013-11-10 22:49:56 +04:00
Alexey Andreev
50a8c85cd1
java.lang.Object constructor generated properly
2013-11-10 19:56:17 +04:00
konsoletyper
ee10986d05
Class renaming now works
2013-11-06 19:46:54 +04:00
Alexey Andreev
9c83d63c86
Class components renamer
2013-11-06 17:31:08 +04:00
konsoletyper
5641a09a0a
Fixes native method decompilation. Refactoring
2013-11-04 19:29:07 +04:00
konsoletyper
d63171e935
Adds annotation parsing. Adds native method generation
2013-10-28 22:59:56 +04:00
konsoletyper
df05104e3c
Doing a lot of things
2013-10-27 12:16:07 +04:00
konsoletyper
3d12aed446
Adds phi instruction eliminator
2013-10-01 22:10:25 +04:00
konsoletyper
4e4d0cfe9e
Adds JavaScript AST optimizer.
2013-10-01 21:45:19 +04:00
konsoletyper
3445910866
Ignores eclipse files
2013-09-24 00:11:28 +04:00
konsoletyper
69dd04668e
Adds initial files
2013-09-24 00:09:15 +04:00