Commit Graph

3778 Commits

Author SHA1 Message Date
Joel Dice
ed119938b0 Merge pull request #161 from soc/topic/SIOOBE
Add StringIndexOutOfBoundsException and use it in String
2014-01-22 12:50:46 -08:00
Simon Ochsenreither
4b54b30439 Add StringIndexOutOfBoundsException and use it in String 2014-01-22 21:06:54 +01:00
Joshua Warner
d2cc630736 implement java/util/Observ* 2014-01-20 10:17:22 -07:00
Joshua Warner
c4112db0b9 Merge pull request #160 from dicej/master
fix ProGuarded OpenJDK build and LZMA-compressed jar support
2014-01-19 09:17:14 -08:00
Joel Dice
7ec7fe7e4d preserve ThreadGroup.threadTerminated in openjdk.pro
We call this cleanup method from within the VM for every thread, so we
need to preserve it.
2014-01-18 19:45:10 -07:00
Joel Dice
66bd7e0814 use "lzma." prefix for LZMA-compressed embedded jars
Previously, we used "lzma:", which worked fine on Windows (where the
path separator is ";") but not on Unix-style OSes (where the path
separator is ":").  In the latter case, the VM would parse
"[lzma:bootJar]" as a path containing two elements, "[lzma" and
"bootJar]", which is not what was intended.  So now we use "lzma." as
the prefix, which works on all OSes.
2014-01-18 19:41:43 -07:00
Joshua Warner
c730a932e9 Merge pull request #159 from dicej/no-more-gestalt
stop using Gestalt on OS X
2014-01-16 21:06:35 -08:00
Joel Dice
ce1d59aac7 stop using Gestalt on OS X
This function has been deprecated for a while and is not even part of
the latest SDK, so it's time to say goodbye.
2014-01-16 17:00:52 -07:00
Joshua Warner
2ac66cb48c Merge pull request #158 from dicej/armv7
use armv7 memory barriers by default
2014-01-10 17:19:43 -08:00
Joel Dice
2b1177039e use armv7 memory barriers by default
armv7 and later provide weaker cache coherency models than armv6 and
earlier, so we cannot just implement memory barriers as no-ops.  This
patch uses the DMB instruction (or the equivalent OS-provided barrier
function) to implement barriers.  This should fix concurrency issues
on newer chips such as the Apple A6 and A7.

If you still need to support ARMv6 devices, you should pass
"armv6=true" to make when building Avian.  Ideally, the VM would
detect what kind of CPU it was executing on at runtime and direct the
JIT compiler accordingly, but I don't know how to do that on ARM.
Patches are welcome, though!
2014-01-10 17:32:54 -07:00
Mike Jensen
3916e35e71 Merge pull request #157 from dicej/thread-run-android-proguard
add Thread.run() to vm.pro
2014-01-10 10:56:07 -08:00
Joel Dice
43af2bf260 add Thread.run() to vm.pro
This is necessary to ensure multithreaded Android-classpath-based
ProGuarded builds do not fail with NoSuchMethodErrors.
2014-01-10 11:29:59 -07:00
Joshua Warner
290d7a9fc0 Merge pull request #154 from dicej/getModifiers-crash
fix Method.getModifiers crash due to bootimage miscompile
2014-01-10 09:15:42 -08:00
Joel Dice
c3638b7d10 Merge pull request #156 from jentfoo/concurrency_classpath_extension
Adding more java.util.concurrent interfaces that were missed previously.
2014-01-10 07:58:00 -08:00
Mike Jensen
2aa9de3dfb More interfaces that were missed previously. 2014-01-09 09:50:15 -07:00
Joshua Warner
522e8caeef Merge pull request #155 from dicej/windows-fixes
Windows fixes
2014-01-08 15:47:44 -08:00
Joel Dice
d1eb8c5d11 define ENOTCONN if necessary on Windows 2014-01-08 16:08:32 -07:00
Joel Dice
65f6431de0 use ';' instead of ':' as path separator on windows when running tests 2014-01-08 16:08:15 -07:00
Joel Dice
bb86500155 fix Method.getModifiers crash due to bootimage miscompile
When calculating field offsets in the bootimage generator, we failed
to consider alignment at inheritence boundaries (i.e. the last field
inherited by from a superclass should be followed by enough padding to
align the first non-inherited field at a machine word boundary).  This
led to a mismatch between native code and Java code in terms of class
layouts, including that of java.lang.reflect.Method.
2014-01-07 09:04:13 -07:00
Joel Dice
1f6051bcbc Merge pull request #149 from jentfoo/concurrency_classpath_extension
Concurrency classpath extension (part of the atomic package implementation)
2014-01-03 16:06:04 -08:00
Mike Jensen
ac27ebd995 Reduced code duplication by combining these three very similar tests into a single file. 2014-01-03 16:24:11 -07:00
Mike Jensen
2760252a13 Avoid doing a Thread.sleep() and instead do a wait and notify. 2014-01-03 15:39:40 -07:00
Mike Jensen
9809898470 Moved the waitTillReady to before the doOperation call in order to have the threads synchronized. 2014-01-03 15:27:11 -07:00
Joshua Warner
ade2e8ef2b Merge pull request #152 from dicej/getMethod-aioobe
add test for d1bdf2f (Class.getMethod bug)
2014-01-03 14:17:28 -08:00
Joel Dice
abdbf6f47a Merge pull request #150 from joshuawarner32/master
fix silly error in recent compiler refactor
2014-01-03 13:45:34 -08:00
Joel Dice
4ce545c4fd add test for d1bdf2f (Class.getMethod bug)
I meant to include this in the original commit, but forgot.
2014-01-03 14:40:47 -07:00
Joshua Warner
38c6951991 Merge pull request #151 from dicej/getMethod-aioobe
fix dumb mistake leading to AIOOBEs in Class.getMethod
2014-01-03 13:34:52 -08:00
Mike Jensen
3fdf29a670 Small simplfication on this if/else statement 2014-01-03 14:23:48 -07:00
Joshua Warner
233a12bf2b remove unnecessary variable initialization 2014-01-03 14:04:57 -07:00
Joel Dice
d1bdf2f8ef fix dumb mistake leading to AIOOBEs in Class.getMethod 2014-01-03 13:58:37 -07:00
Joshua Warner
6d5f511d04 fix silly error in recent compiler refactor 2014-01-03 12:23:36 -07:00
Mike Jensen
d8b0db9354 Merge branch 'concurrency_classpath_extension' of github.com:jentfoo/avian into concurrency_classpath_extension 2014-01-03 11:23:08 -07:00
Mike Jensen
735921cd6f Renamed these tests to a shorter name so the test output still looks clean 2014-01-03 11:22:33 -07:00
Mike Jensen
6ebc89d03a Merge branch 'master' into concurrency_classpath_extension 2014-01-03 11:19:27 -07:00
Mike Jensen
56253e3123 Merge pull request #148 from dicej/objectFieldOffset
implement Unsafe.objectFieldOffset for the Avian class library
2014-01-03 10:18:30 -08:00
Joel Dice
708519d812 implement Unsafe.objectFieldOffset for the Avian class library 2014-01-03 11:13:21 -07:00
Mike Jensen
f4f4b8a26b Fix for unit test failure when threads are created too slowly. 2014-01-03 10:08:36 -07:00
Mike Jensen
f7341732fc Added some tests which would fail with a simple volatile, but should work for the atomic implementations. 2014-01-03 09:36:27 -07:00
Mike Jensen
f7d77473a4 Merge branch 'master' of github.com:ReadyTalk/avian into concurrency_classpath_extension 2014-01-03 08:49:40 -07:00
Mike Jensen
1275bdfd35 Merge pull request #145 from dicej/putOrderedLong
implement Unsafe.putOrderedLong and putVolatileLong, plus a build fix and cleanup
2014-01-03 07:31:23 -08:00
Joel Dice
789c36a459 move Unsafe.putObjectVolatile and putOrderedObject implementations
This makes them available to all class libraries, not just OpenJDK.
2014-01-02 18:00:53 -07:00
Joel Dice
cc5b58725a implement Unsafe.putOrderedLong and putVolatileLong
The former just defers to the latter for now, since it provides
strictly weaker guarantees.  Thus it's correct to use full
volatile-style barriers, though not as efficient as it could be on
some architectures.
2014-01-02 17:49:56 -07:00
Joel Dice
ab4adef373 remove obsolete idle statement from Unsafe.getLongVolatile
Now that Josh has fixed the busy block bug (see commit 10d15d2), we
don't need this anymore.
2014-01-02 17:47:42 -07:00
Joel Dice
e19bdda13e fix uninitialized value warning in compile.cpp
Clang was complaining that newIp might be used uninitialized at the
bottom of our giant, unstructured compile loop, so I initialized it
with a bogus value, which means it will at least fail consistently if
Clang is right and there really is a path by which that code is
reached without otherwise initializing newIp.
2014-01-02 17:44:33 -07:00
Mike Jensen
99c59cfe94 Start for a basic atomic implementation for avian. Still need to figure out how to do the Array versions of these. But I wanted to wait till we have the needed Unsafe implementation and add testing for these before we go further. 2014-01-02 13:01:13 -07:00
Joel Dice
ef3e3d749b Merge pull request #143 from jentfoo/concurrency_classpath_extension
Expanding avian's classpath for java.util.concurrent
2013-12-24 10:50:30 -08:00
Mike Jensen
996e52170f Fix for spelling error joel pointed out, as well as a simple unit test around the TimeUnit conversions 2013-12-24 11:30:50 -07:00
Mike Jensen
8b7f689e1a Added the easy to add interfaces and implementations for java.util.concurrent to pave the way for future expansion of avians java.util.concurrent classpath implementation. 2013-12-23 14:19:41 -07:00
Joel Dice
4570195a9b Merge pull request #141 from joshuawarner32/clang-format
Specify formatting style via .clang-format config file
2013-12-20 13:36:11 -08:00
Joel Dice
be549ecae3 Merge pull request #142 from joshuawarner32/compiler-boilerplate
Remove boilerplate in Compiler interface
2013-12-20 13:33:30 -08:00