diff --git a/CHANGES.txt b/CHANGES.txt index 829c00095..b6867bb4f 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,8 +1,12 @@ [0.7.3-SNAPSHOT] - ** Other changes Borrowed from HPPC: PR #5: OSGi descriptors in JAR manifests, bundle packaging. (Guillaume Delafosse) +HPPCRT-XX: Modernize the build process notably using Retrolambda (https://github.com/orfjackal/retrolambda) to generate a unique Java 5 compatible Jar, +which is fine since the API was the same between the 1.6 and 1.5 jars previously. +As a contrast, building the HPPC-RT project now REQUIRES Java 8 due to Retrolambda. + + [0.7.2] ** API-breaking changes HPPCRT-46: Remove CurstomHash and replace by equals/hashCode overrides in normal hash containers. diff --git a/INSTALL.txt b/INSTALL.txt index de66cd130..31686c545 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -1,16 +1,16 @@ Hacking HPPC-RT: ---------------- -The project as a whole needs Java 7, although the final runtime jars are still Java 5 and Java 6 compatible. To assure such +The project as a whole requires Java 8, although the final runtime jar is still Java 5 compatible. To assure such antiquated compatibility, some restrictions must be enforced: -* hppcrt (sources) : Runtime sources either templates or hand-coded must use 1.5 API at best, while retaining the 1.6 compiler level for convenience. (ex. @Override allowed on subclasses AND interface implementations) -The strict 1.5 API compatibility is checked by the animal-sniffer plugin, before start building the runtime jars, -then during the Jar generation phase the 'retrotranslator' generates a Java 5 Jar together with the Java 6 one. +* hppcrt (sources) : Runtime sources either templates or hand-coded must use 1.5 API at best, although the language constructs could be up to Java 8. (lambdas...) +Then, the Retrolambda plugin translates Java 8 language constructs to 1.5 language ones, and finally +the strict 1.5 API compatibility is checked by the animal-sniffer plugin before building the runtime jar. -* hppcrt (tests): templates and hand-coded tests are allowed to be fully 1.6 compatible, including the API. +* hppcrt (tests): templates and hand-coded tests are allowed to be fully 1.8 compatible, including the API. -* hppcrt-template-processor: No particular restriction, the processor classes used for generate sources and tests are Java 7 level. -* hppcrt-benchmarks: No particular restriction, they are Java 7 level. +* hppcrt-template-processor: allowed to be fully Java 8 compatible, including the API. +* hppcrt-benchmarks: allowed to be fully Java 8 compatible, including the API. Maven shortcuts diff --git a/README.md b/README.md index 79f698081..4110f07ba 100644 --- a/README.md +++ b/README.md @@ -37,8 +37,7 @@ That means in particular using the enhanced for loop without any dynamic allocat All these new features are heavily Unit tested, so should work well. -Binaries are provided in 2 flavors : one compatible with Java 1.5, the other with Java 1.6 and beyond. -Both binaries have no external dependencies, and offer the same API. +The Jar lib is compatible with Java 1.5 and have no external dependencies. Stable version is available on Maven: ```` diff --git a/hppcrt/src/main/retrotranslator/net/sf/retrotranslator/registry/advanced15.properties b/hppcrt/src/main/retrotranslator/net/sf/retrotranslator/registry/advanced15.properties deleted file mode 100644 index e69de29bb..000000000 diff --git a/hppcrt/src/main/templates/com/carrotsearch/hppcrt/maps/KTypeVTypeHashMap.java b/hppcrt/src/main/templates/com/carrotsearch/hppcrt/maps/KTypeVTypeHashMap.java index 8de98c113..2207b5336 100644 --- a/hppcrt/src/main/templates/com/carrotsearch/hppcrt/maps/KTypeVTypeHashMap.java +++ b/hppcrt/src/main/templates/com/carrotsearch/hppcrt/maps/KTypeVTypeHashMap.java @@ -1711,11 +1711,7 @@ public KTypeVTypeHashMap clone() { //We must NOT clone because of independent perturbations seeds cloned.putAll(this); - - cloned.allocatedDefaultKeyValue = this.allocatedDefaultKeyValue; - cloned.allocatedDefaultKey = this.allocatedDefaultKey; - cloned.defaultValue = this.defaultValue; - + return cloned; } diff --git a/hppcrt/src/main/templates/com/carrotsearch/hppcrt/maps/KTypeVTypeIdentityHashMap.java b/hppcrt/src/main/templates/com/carrotsearch/hppcrt/maps/KTypeVTypeIdentityHashMap.java index 57b32a320..d8f858a47 100644 --- a/hppcrt/src/main/templates/com/carrotsearch/hppcrt/maps/KTypeVTypeIdentityHashMap.java +++ b/hppcrt/src/main/templates/com/carrotsearch/hppcrt/maps/KTypeVTypeIdentityHashMap.java @@ -100,11 +100,7 @@ public KTypeVTypeIdentityHashMap clone() //We must NOT clone because of the independent perturbation seeds cloned.putAll(this); - - cloned.allocatedDefaultKeyValue = this.allocatedDefaultKeyValue; - cloned.allocatedDefaultKey = this.allocatedDefaultKey; - cloned.defaultValue = this.defaultValue; - + return cloned; } diff --git a/hppcrt/src/main/templates/com/carrotsearch/hppcrt/sets/KTypeHashSet.java b/hppcrt/src/main/templates/com/carrotsearch/hppcrt/sets/KTypeHashSet.java index e849b79d6..d29fef4d9 100644 --- a/hppcrt/src/main/templates/com/carrotsearch/hppcrt/sets/KTypeHashSet.java +++ b/hppcrt/src/main/templates/com/carrotsearch/hppcrt/sets/KTypeHashSet.java @@ -906,9 +906,7 @@ public KTypeHashSet clone() { //We must NOT clone, because of the independent perturbation seeds cloned.addAll(this); - - cloned.allocatedDefaultKey = this.allocatedDefaultKey; - + return cloned; } diff --git a/hppcrt/src/main/templates/com/carrotsearch/hppcrt/sets/KTypeIdentityHashSet.java b/hppcrt/src/main/templates/com/carrotsearch/hppcrt/sets/KTypeIdentityHashSet.java index 24cdc9f95..4273d4009 100644 --- a/hppcrt/src/main/templates/com/carrotsearch/hppcrt/sets/KTypeIdentityHashSet.java +++ b/hppcrt/src/main/templates/com/carrotsearch/hppcrt/sets/KTypeIdentityHashSet.java @@ -81,9 +81,7 @@ public KTypeIdentityHashSet clone() { //We must NOT clone because of the independent perturbation values cloned.addAll(this); - - cloned.allocatedDefaultKey = this.allocatedDefaultKey; - + return cloned; }