Alexey Andreev
463f24506d
Fix Throwable.toString
2019-02-13 19:30:14 +03:00
Alexey Andreev
1214534671
Reduce unnecessary usages of T-prefixed classes in classlib
2019-02-13 15:12:50 +03:00
Alexey Andreev
4de1c51e1a
Improve inliner: use simlified heuristics in advanced optimization mode, remove methods that were fully inlined
2019-02-12 19:30:57 +03:00
Alexey Andreev
1b2c47407f
Place classes to a single object in development server to improve debugger performance
2019-02-07 16:29:55 +03:00
Alexey Andreev
95a3a30a6e
Fix html4j tests
2019-01-31 19:20:14 +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
48227b24a0
Fix bootstrap mode
2019-01-20 17:50:46 +03:00
Alexey Andreev
f589b0035a
Decrease memory consumption
2018-12-29 19:02:03 +03:00
Alexey Andreev
6900fd587c
Fix Float/Double.parse for strings like '123.'
2018-12-24 18:16:05 +03:00
Alexey Andreev
4ffe74296d
Limit max line size of generated JS code
2018-12-21 14:28:30 +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
c9c9c15dfe
Fix Class.initialize. Fix html4j tests
2018-12-11 23:47:47 +03:00
Alexey Andreev
d74bcbe2b9
Fast dependency analyzer, fix bugs in incremental compiler
2018-12-07 17:41:21 +03:00
Alexey Andreev
eaf0f5a24e
Fix bootstrap compiler
2018-12-07 17:41:20 +03:00
Alexey Andreev
2bb146af47
Improve float to string conversion
2018-12-07 00:21:18 +03:00
Alexey Andreev
f23c71cd97
Improve double to string conversion
2018-12-02 16:12:59 +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
cf9090e0fa
Use JS typed arrays to reinterpret floats and ints.
...
Also, drop IE9 support
2018-11-23 17:14:06 +03:00
Alexey Andreev
b9ec21a667
Fix Long.reverse
2018-11-23 14:32:50 +03:00
Alexey Andreev
753755918d
Update build config to avoid jar hell
2018-11-22 14:49:30 +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
064888c9a1
Support Java 11
2018-11-12 18:59:28 +03:00
Alexey Andreev
63b2440e48
Remove $rt_global and indirect references to runtime function
2018-10-27 22:42:25 +03:00
Alexey Andreev
5035c58533
Fix Collections.reverse for non-random access lists. Make ArrayList random access.
2018-10-23 17:01:55 +03:00
Alexey Andreev
f206cbe2d1
Reorder modifiers to get less metadata size
2018-10-04 19:07:23 +03:00
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
Alexey Andreev
0b985b95d1
Implementing java.util.EnumMap
2017-10-12 15:13:55 +03:00
Alexey Andreev
e885ebdbbb
Move tests from TArrayDequeTests to proper location
2017-10-10 23:59:55 +03:00
adamjryan
8d2e468f44
TArrayDeque fix for .remove(Object) ( #302 )
...
* TArrayDeque fix for .remove(Object)
ArrayDeque removes items by shifting the existing items to overwrite
the removed item. It did not update the head/tail pointers once the
operation was complete leaving a null item at the head/tail of the
collection. This change updates the pointers so that the null element is
excluded and the correct size is returned.
2017-10-10 22:39:06 +03:00
Alexey Andreev
26824f1399
Add some properties-related methods to System class
2017-10-10 12:56:51 +03:00
Alexey Andreev
c057c7b78f
Fix compilation
2017-10-08 21:50:41 +03:00
Alexey Andreev
dfaeb46c5e
Implementing EnumSet
2017-10-08 21:40:45 +03:00
Alexey Andreev
669594fc9c
JS: add reflection support for methods
2017-07-17 22:21:17 +03:00
Alexey Andreev
12dded73f6
JS: add support for Class.getModifiers
2017-07-17 22:21:17 +03:00
Alexey Andreev
4171d468d4
JS: add reflection support for constructors
2017-07-17 22:21:17 +03:00
Alexey Andreev
c4c5635f88
Add reflection support for constructors
2017-07-17 22:21:16 +03:00
Alexey Andreev
31f9ca57ce
Add reflection support for fields
2017-07-17 22:21:16 +03:00
Alexey Andreev
248d62ff12
Reformat classlib according to checkstyle rules
2017-07-01 14:08:29 +03:00
Alexey Andreev
cdec4560ba
Remove dumb comments containing only @author annotation
2017-07-01 13:13:52 +03:00
Alexey Andreev
b477a7dcad
Fix capacity calculation in ArrayList and StringBuilder.
...
See #289 and #290
2017-06-25 13:37:15 +03:00
Alexey Andreev
d982f89ab6
Add missing folder to CLDR archive. Fix tests WRT changes in CLDR.
2017-06-25 13:36:35 +03:00
Alexey Andreev
59e5c16b31
Update version to 0.6.0-SNAPSHOT
2017-06-19 20:50:19 +03:00
Alexey Andreev
daa5384e97
Upgrade versions of dependencies. Upgrade tzdata, CLDR and UnicodeData
2017-06-18 22:33:27 +03:00
Alexey Andreev
40b29cdfa1
Add support for altMetafactory
2017-06-18 21:22:44 +03:00
Alexey Andreev
27bb8fe9ed
Rename object's $id
field to $id$
...
To avoid clash with user-defined fields
2017-06-07 12:46:43 +03:00
Alexey Andreev
87f7ee4b72
Remove unnecessary @author comment from classes
2017-06-01 16:14:25 +03:00
Alexey Andreev
2e8e3a65bd
Add IO bufferization
2017-06-01 16:14:24 +03:00
Alexey Andreev
c0ed3d54d7
Fix base64 support
...
(cherry picked from commit 5da32e3a6583493a36c87bc02c8177a7740faaf7)
# Conflicts:
# tests/src/test/java/org/teavm/classlib/java/lang/TestResourcesSupplier.java
2017-05-29 23:26:34 +03:00
Alexey Andreev
b1b98097ee
Improve ResourceSupplier API
...
(cherry picked from commit 539a12227f79abdb4ce22aac2dbc647f1c09f083)
# Conflicts:
# classlib/src/main/java/org/teavm/classlib/java/lang/ClassLoaderNativeGenerator.java
# tests/src/test/java/org/teavm/classlib/java/lang/TestResourcesSupplier.java
2017-05-29 23:22:59 +03:00