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
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
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