Commit Graph

261 Commits

Author SHA1 Message Date
Alexey Andreev
b66053f5ce Don't generate virtual wrappers for methods that aren't ever called virtually 2018-10-04 11:55:34 +03:00
Alexey Andreev
0a94c91ff2 Don't generate unused class names in metadata section 2018-10-03 14:46:52 +03:00
Alexey Andreev
be21e474c5 Generate shorter <clinit> caller names in minified mode 2018-10-03 12:48:14 +03:00
Alexey Andreev
614f95d376 Fix String.contains 2018-09-19 13:35:00 +03:00
Alexey Andreev
4b77a5d15f Fix String.contains. Fix crashing in rare cases or improper use of JSO 2018-09-19 12:47:32 +03:00
Alexey Andreev
b74c501fa6 Add Float/Double.isFinite 2018-09-04 17:27:54 +03:00
Alexey Andreev
d20accc20c Add support for Array.set 2018-08-29 13:20:16 +03:00
Alexey Andreev
174ac9e725 Fix translation of lambdas when class has subclass with lambdas 2018-08-27 19:44:44 +03:00
Alexey Andreev
4e20a1de18 Properly handle checkcast to array type in dependency analyzer 2018-07-03 19:11:51 +03:00
Alexey Andreev
f160ce2f2f Use class/method names to generate lambda class names. Reduce number of types propagated by dependency analyzer 2018-06-29 16:46:36 +03:00
Alexey Andreev
2eea5cba5e Fix AbstractList.removeRange 2018-06-29 16:45:21 +03:00
Alexey Andreev
7511eea1cb Fix boxing lambda return value 2018-06-28 19:07:29 +03:00
Alexey Andreev
d674b0b7de Add some missing stdlib methods 2018-06-28 19:07:04 +03:00
Alexey Andreev
fc13c10d98 Fix Logger.info 2018-06-28 18:54:36 +03:00
Alexey Andreev
dc99ead514 Fix compilation of Kotlin code when there's kotlin-reflect library in the classpath, but it's actually not used by Kotlin code. See #345 2018-06-18 22:56:11 +03:00
Alexey Andreev
cdffb779e0 Fix NPE when there are build errors related to lack of reflection support 2018-06-18 13:40:11 +03:00
Alexey Andreev
097820cc2b Wasm backend: implement remaining types of resources 2018-05-20 23:54:23 +03:00
Alexey Andreev
5ce48ce866 Wasm backend: fix issues related to instanceof expression 2018-05-19 22:56:16 +03:00
Comick
3ef3678ed0 Fix TSetFromMap#add return value 2018-05-19 21:24:41 +03:00
Alexey Andreev
f0d97a72ab Wasm backend: add intrinsics for some Float and Double methods 2018-05-16 20:15:13 +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
f23128bb13 Wasm backend: fix many tests 2018-05-12 23:43:53 +03:00
Alexey Andreev
b087610c2c Wasm backend: make JUnit tests work 2018-05-08 23:31:51 +03:00
Alexey Andreev
f532801f38 C backend: implement support for ResourceArray and ResourceMap 2018-05-07 19:30:00 +03:00
Alexey Andreev
37efbd742b C backend: more bugfixes
* Fix cloning Object[] in 64-bit systems
* Fix generation of x instanceof Interface
* Fix a % b when a and b are float or double
* Fix generation of unreachable virtual calls
2018-05-05 23:35:17 +03:00
Michele Comignano
c11b868c0b Add IdentityHashMap, improve distribution of identityHashCode
Add IdentityHashMap, improve distribution of identityHashCode
2018-05-05 22:05:22 +03:00
Alexey Andreev
4530167061 C backend: implement support for simple cases of resources 2018-05-01 00:54:11 +03:00
Alexey Andreev
ee2f389027 C backend: make more tests pass 2018-04-28 18:49:26 +03:00
Alexey Andreev
18eb3ee058 C backend: make more tests pass 2018-04-27 00:47:38 +03:00
Alexey Andreev
8f0320e217 Fix bugs in C backend to make more tests pass 2018-04-21 00:55:43 +03:00
Alexey Andreev
4990dbe8e4 Add support for C backend in TeaVMTestRunner 2018-04-20 22:58:09 +03:00
Alexey Andreev
e77997c93f Implement null check in C backend
Although initial purpose of this comment was null check,
it took much time to complete it and it caused many unrelated changes.
Besides just implementing null check in quite naive fashion
(I could not use the trick with memory protection, since I have to
maintain shadow stack, and support WebAssembly), I had to optimize
things. I relied on my existing nullness analysis to eliminate
as much null checks as possible. However, the whole nullness analysis
was wrong. After some thoughts I came up with solution very
close to range analysis, which required me to introduce extension
to IR sometimes called e-SSA form with so called sigma nodes.
Also, I found some bugs in few different places (by the time write this
message I could only remember escape analysis/scalar replacement and
after-inlining devirtualization) and fixed them.
2018-04-17 00:05:46 +03:00
Alexey Andreev konsoletyper@gmail.com
fe47fe19ce Fix build under JDK9+ 2018-03-28 22:54:55 +03:00
Alexey Andreev
05d0220dcd C backend: initial commit 2018-03-20 23:18:52 +03:00
Alexey Andreev
52a23fcadd Support '.<digits>' floating literals in Double.parseDouble
See #327
2018-02-16 23:17:17 +03:00
Alexey Andreev
0485930c1f Add AtomicInteger 2018-02-16 23:08:29 +03:00
Alexey Andreev
51d87091cc Fix TimeUnit.convert implementation
See #329
2018-02-16 22:40:56 +03:00
Alexey Andreev
96b2d4e7d6 Support o and x format specifiers in String.format 2018-01-28 19:19:45 +03:00
Alexey Andreev
4ebaf476fe Fix to[Hex/Octal/Binary]String for unsigned values 2018-01-28 18:38:00 +03:00
Alexey Andreev
ff7232ac3e Improvements in reflection:
1. During dependency analysis, propagate class literals from
   Class.forName return node
2. Use original class source to generate reflection metadata
3. Link classes when they appear in signature of reflectable methods
4. Turn Class.forName(string_literal) into class literal.
2018-01-27 00:21:50 +03:00
Alexey Andreev
5ec05b9446 Fix lock on overflow/underflow in ArrayBlockingQueue 2018-01-23 22:08:44 +03:00
Alexey Andreev
28e17af500 Implement ArrayBlockingQueue 2018-01-22 23:32:10 +03:00
Alexey Andreev
ec3724b2bc Perform HTTP request as late as possible 2018-01-14 22:51:02 +03:00
Alexey Andreev
ac236f1ff8 When HTTP response invalid, return -1 as a responseCode 2018-01-09 22:15:37 +03:00
Alexey Andreev
a9beef3a15 Fix behaviour of HttpUrlConnection responseCode/responseMessage 2018-01-07 18:45:00 +03:00
Alexey Andreev
477f491b25 Fix HttpUrlConnection responseCode/responseMessage properties 2018-01-07 14:20:08 +03:00
Alexey Andreev
c46bfbc93c Fix bugs in URL implementation 2018-01-03 19:47:00 +03:00
Alexey Andreev
422cb0462a Add java.net.URL implementation 2018-01-01 14:53:44 +03:00
Alexey Andreev
7a03bf795f Add some Java classes that aren't used by TeaVM, but are necessary for javac 2017-12-03 20:05:50 +03:00
Alexey Andreev
7b989a4c1c Fix bug in EnumSet.of 2017-12-03 17:46:35 +03:00
Alexey Andreev
8256302c03 Fix ClassLoader.getResourceAsStream 2017-12-03 13:08:08 +03:00
Alexey Andreev
f14990eaeb Fix bug in base64 encoder 2017-11-26 20:18:39 +03:00
Alexey Andreev
a39e6eb47e Get rid of Base64 class in TeaVM compiler 2017-11-26 19:56:23 +03:00
Alexey Andreev
8fbf62ebac Fix infinite lock when overriding Thread.run and then joining it 2017-11-26 17:32:09 +03:00
Alexey Andreev
cc04c3446d Add support for several JDK classes and functions 2017-11-26 17:10:56 +03:00
Alexey Andreev
cc0f7583b0 Minor performance improvement 2017-11-26 14:53:56 +03:00
Alexey Andreev
0ecafbe4b4 Add newly supported packages to page of Java class library support 2017-11-26 13:14:02 +03:00
Alexey Andreev
c246bb6e1e Fix code that represents doubles as text in bootstrap mode 2017-11-26 13:14:02 +03:00
Alexey Andreev
ff19dc15c9 Further bootstrapping 2017-11-26 13:14:02 +03:00
Alexey Andreev
42be95959b Minor fixes for bootstrapping TeaVM 2017-11-26 13:14:02 +03:00
Alexey Andreev
cb355a85f5 Add BufferedOutputStream implementation 2017-11-26 13:14:02 +03:00
Alexey Andreev
5fa48c089a Add several unimplemented collection methods 2017-11-26 13:14:00 +03:00
Alexey Andreev
608e62ae3b Add support of stream API 2017-11-26 13:13:33 +03:00
Alexey Andreev
2fb6ca7001 Fix bug in LambdaMetafactory 2017-11-26 13:05:34 +03:00
Alexey Andreev
fc4425d7f4 Add missing method to Properties 2017-11-26 13:05:34 +03:00
Alexey Andreev
980a2d9e97 Add Optional implementation 2017-11-19 14:36:19 +03:00
Alexey Andreev
44e6feef0c Add support for functions that return true or false depending on whether they run from TeaVM 2017-11-16 18:30:04 +03:00
Alexey Andreev
2f73272ed7 Fix compiler crash when service enumerated in META-INF/service does not exist 2017-11-16 16:16:10 +03:00
Alexey Andreev
07f946e710 Add some useful JDK classes 2017-11-16 15:47:10 +03:00
Alexey Andreev
e96df3ef7e Add java.util.jar.* classes 2017-11-16 15:11:58 +03:00
Alexey Andreev
aa48a097d2 Fix bug in File.createTempFile 2017-11-16 15:11:58 +03:00
Alexey Andreev
0e5b1a97c1 Add PipedInputStream and PipedOutputStream 2017-11-16 15:11:58 +03:00
Alexey Andreev
82b96da215 Add StreamTokenizer 2017-11-16 15:11:58 +03:00
Alexey Andreev
7f152c0137 Add FileReader and FileWriter 2017-11-16 15:11:58 +03:00
Alexey Andreev
30da395304 Add BufferedWriter 2017-11-16 13:43:31 +03:00
Alexey Andreev
c9485ccbdc Add tests for FileInputStream and FileOutputStream 2017-11-16 00:19:00 +03:00
Alexey Andreev
a96b5912c7 Uncomment previously failing File tests and fix bugs in File implementation 2017-11-16 00:19:00 +03:00
Alexey Andreev
23c25c5d6e Add tests for java.io.File. Improve its implementation to pass tests 2017-11-15 00:13:07 +03:00
Alexey Andreev
c048b2ac6c Implement java.io.RandomAccessFile 2017-11-14 00:08:49 +03:00
Alexey Andreev
9ca09093a6 Improve virtual FS API 2017-11-13 23:22:54 +03:00
Alexey Andreev
99812d1bfa Call <clinit> from native System.currentTimeMillis 2017-11-13 00:37:20 +03:00
Alexey Andreev
e1c7acd8a1 Fix ResourceBundle.getBundle in case of .properties resource 2017-11-10 15:49:09 +03:00
Alexey Andreev
e2225941f8 Add java.lang.InternalError 2017-11-10 01:02:36 +03:00
Alexey Andreev
76590d759c Add preliminary support of file I/O 2017-11-10 01:02:21 +03:00
Alexey Andreev
86d151d953 Add support for more java.util.zip 2017-11-10 00:47:48 +03:00
Alexey Andreev
2a07e67423 Cache CLDRReader data between builds 2017-11-05 14:51:24 +03:00
Alexey Andreev
840b9dfe8b Fix message format tests 2017-11-03 21:59:21 +03:00
Alexey Andreev
90cc2c4677 Add implementation of java.text.MessageFormat 2017-11-03 00:32:16 +03:00
Alexey Andreev
6145afcbf8 Fix compact() operation on NIO buffers 2017-11-02 23:30:03 +03:00
Alexey Andreev
389b55be91 Implement AtomicBoolean and String.toLowerCase/toUpperCase(Locale) 2017-11-02 20:26:02 +03:00
Alexey Andreev
6d5b4a67e5 Implement String.format 2017-10-30 00:06:25 +03:00
Alexey Andreev
5109691a8d Implement java.util.Formatter for subset of available specifiers 2017-10-30 00:03:30 +03:00
Alexey Andreev
ffbfd7df79 Add minor stuff to classlib 2017-10-26 20:17:09 +03:00
Alexey Andreev
74be67038d Implement ResourceBundle 2017-10-26 20:11:24 +03:00
Alexey Andreev
a22eb43bde Fix Enum.getDeclaringClass 2017-10-26 16:16:27 +03:00
Alexey Andreev
f61567dfde Implement StringWriter and PrintWriter 2017-10-26 15:51:01 +03:00
Alexey Andreev
6848984a10 Provide independent implementation for ArrayList.add(E).
To improve performance. Also, see #310
2017-10-24 23:06:43 +03:00
Jaroslav Tulach
ba5342f860 Basic implementation of two basic JavaBeans classes 2017-10-24 22:56:22 +03:00
Jaroslav Tulach
8c7905e9cc Adjusting TeaVM to forthcoming release of Apache HTML/Java API version 1.5 2017-10-24 22:56:22 +03:00
Alexey Andreev
daf0f03634 Fix Boolean.getBoolean(String). Fix various minor issues with system properties
See #306
2017-10-13 16:06:10 +03:00