| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
43b7675259eb76c570b6cc3a44fec2b9f6410697)
|
|
|
|
| |
ReflectionUtil.MethodAccess, a convenient Method instance accessor.
|
|
|
|
| |
exceptions
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- RecursiveLock _is_ interface.
- Use LockFactory to create a RecursiveLock.
- Impl: RecursiveLockImpl01Unfairish
- just using notify w/o any queue: fast
- still enqueuing new lock-applicants if queue full (nice)
- lock's sync extends AbstractOwnableSynchronizer and uses it (monitor)
- Impl: RecursiveLockImpl01CompleteFair
- using queue and interrupt for correctness (slow)
- lock's sync extends AbstractOwnableSynchronizer and uses it (monitor)
- Impl: RecursiveLockImplJava5 for using Java5's concurrency impl.
- to verify correctness, performance and deviation of locking time
TestRecursiveLock01 new performance measurements incl. simple avrg and deviation
shows best combined performance-deviation w/ our RecursiveLockImpl01Unfairish
os Linux and MacOSX.
RecursiveLockImpl01Unfairish is the default in LockFactory.
Adding 'private' LockDebugUtil, allowing validating all holdings locks
of one thread as stack traces (Throwable).
Besides the AbstractOwnableSynchronizer utilization, this helps debugging deadlocks
and starvation very well.
|
|
|
|
| |
Certificates if caller has any. Add Convenient JNILibLoaderBase.addNativeJarLibs(..) method.
|
|
|
|
| |
initialization/usage only
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
JarUtil:
Utility to handle Jar files and it's content, incl. extracting it's entries
TempFileCache:
Utility to have a save temporary file cache per JVM and per instance,
eg. per ClassLoader.
The temp cache is cleaned up with the next usage of TempFileCache,
which solves the troubles of JVM bugs and situations where the JVM
is not able to close and delete open temp files.
TempJarCache:
Utility to cache Jar files temporary (using TempFileCache)
and access it's content.
This class is suitable to implement a URLClassLoader
or similar resource loading facilities.
All tested w/ TestTempJarCache
|
| |
|
|
|
|
| |
speedup test
|
|
|
|
|
|
|
|
|
|
|
|
| |
- StructAccessor uses byteOffset now (since 8b3057585930357bb16546f584d998953b084034)
Fix linux armv7l eabi:
- build.xml arm7 -> armv7
- all tests passes
Adding NativeSizeAlignment-linux-armv7l_eabi from passing test
OK: linux 32/64/armv7l, windows 32/64
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Platform:
- enum CPUFamily is part of CPUType
- DALVIK -> ANDROID
- ARM: ARM + ARMv[567]
MachineDescription
- self contained
- static size/alignment Config (enum) for unix32, unix64, win32, win64 and armeabi
- add 'long double'
- Removed MachineDescription32Bit, MachineDescription64Bit
- createStatic(..) uses OS/CPU to fetch best match if not at runtime
FIXES: JavaEmitter's struct-emit: Proper 32/64 struct sizes
TODO: StructAccessor's mapping to <Type>Buffer w/ index os sizeof(<Type>)
doesn't work, since offset may not be multiple of sizeof(<Type>)!
i.e.
typedef struct {
int8_t bits1; // +1 - 0
// +3 (p32)
int32_t id; // +4 - 4
int8_t bits2; // +1 - 8
// +3 (p32) -
int64_t long0; // +8 - 12
so "longBuffer.get(<type-sized index>)" is invalid,
but "byteBuffer.getLong(<byte index>)" must be done.
The actual impl. doesn't matter, hence dropping the other nio type mappings is good.
|
|
|
|
| |
low performance ARM
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Preparation.
Currently GlueGen fails for type long (size) and some alignments (see package.html).
- The size and alignment values shall be queried at runtime.
- Compound alignment needs to follow the described natural alignment (also @runtime).
-
- Build
- add Linux Arm7 (EABI)
- junit test
- added compound/struct tests, pointing out the shortcomings of current impl.
- package.html
- Added alignment documentation
- remove intptr.cfg
- add GluGen types int8_t, int16_t, uint8_t, uint16_t
- move MachineDescription* into runtime
- Platform
- has runtime MachineDescription
- moved size, .. to MachineDescription
- use enums for OSType, CPUArch and CPUType defined by os.name/os.arch,
triggering exception if os/arch is not supported.
This avoids Java String comparison and conscious os/arch detection.
- MachineDescription:
- compile time instances MachineDescription32Bits, MachineDescription64Bits
- runtime queried instance MachineDescriptionRuntime
- correct size, alignment, page size, ..
|
| |
|
|
|
|
| |
IOUtil and Platform's page size
|
|
|
|
| |
values (using equals(Object)); Adding junit tests for clone(), capacity and IntObjectHashMap
|
| |
|
| |
|
|
|
| |
- create new buffers only if size > capacity not if >= capacity
|
|
|
| |
factory supports dynamic and static allocation schemes and has a synchronized and a unsynchronized implementation.
|
| |
|
| |
|
| |
|
|
|
|
| |
BuffersTest and PCPP to the proper src/junit folder. All junit tests are now handled by build-junit.xml
|
|
|
|
| |
the non existing hashed value lead to O(n)
|
| |
|
|
|
|
| |
back conversion; Add unit test for arrays
|
|
|
|
| |
toStringBuffer(StringBuffer) ; Add String toString() { ..}
|
| |
|
|
|
|
|
|
|
|
|
| |
VersionInfo -> GlueGenVersion
JogampVersion, providing generic information for Jogamp JAR archives
Accessor to the Jogamp specific manifest additions, ie branch and commit.
Also provides convenient attribute access and version dump methods.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Both IntIntHashMapTest and LongIntHashMapTest failed to reset test start time.
The time values for intmapGetTime,mapGetTime,intmapRemoveTime,and mapRemoveTime
all used the start time value from mapPutTime. This caused the following to be
always/guarenteed to be true:
mapPutTime < intmapGetTime < mapGetTime < intmapRemoveTime < mapRemoveTime
thus not actually testing the following asserts:
assertTrue("'get' too slow", intmapGetTime <= mapGetTime);
assertTrue("'remove' too slow", intmapRemoveTime <= mapRemoveTime);
In addition the results of the test were being printed before the actual test
ran.
Changed code to reset time to System.nanoTime() prior to each for loop, and
moved time calculation and result output to below the test for loop.
I also improved the output of the test info, by including the warmup status
on benchmark start.
|
| |
|
|
|
|
| |
identity or add it, if not exist yet
|
|
|
|
| |
operations
|
|
|
|
| |
changes
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Added JogAmp Community and common denominator:
New BSD 3-clause license
- Added note to make/lib binary file (source and license)
Added source and license text for external binaries used
in build process (make/lib folder).
Changed 'Sven Gothel' and 'Michael Bien' New BSD 3-clause license
to 'JogAmp Community' Simplified BSD 2-clause license.
|
| |
|
|
they are a junit test.
|