Skip to content
This repository has been archived by the owner on Jun 27, 2023. It is now read-only.

0.7.0-RT

Compare
Choose a tag to compare
@vsonnier vsonnier released this 19 Jul 21:13
· 46 commits to 0.7.x-RT since this release

[0.7.0]
This release fix important bugs, and align on some refactorings or changes of HPPC v0.7.1, hence the version number.

** API-breaking changes / New features

HPPCRT-36: Simplify specific IdentityHash impl by deriving a specific CustomHash
HPPCRT-40: Remove DoubleLinkedIntSet and BitSet
HPPCRT-41: Remove senseless key types for CustomHash containers. Now CustomHash are only generated for int, long, Object keys.
HPPCRT-42: Remove all Boolean containers versions. Usage for them is either uncommon, or can be easily emulated with the other containers.
HPPCRT-43: Remove Stacks. Replaced by adding a few stack-emulating methods to KTypeArrayList.
HPPCRT-44: Simplify LinkedList iteration. Removed isFirst(), isLast(), isHead(), isTail() iterator methods and replace them by hasAfter()/ hashBefore().
HPPC-140: On maps, values() and keys() returns a full-fledged Collection. Indeed, keys() and values() already returned Collection from a long time in HPPC-RT.
Still, rename the retuned types from KeysContainer/ValuesContainer into KeysCollection/ValuesCollection to stress on that fact.

HPPCRT-37: API changes and internal code refactorings from HPPC v0.7.0:

  • HPPC-104 + HPPC-116: Ability to create a read-only view of a map. For that, lset/lget/lslot..., all l* methods from hash containers are removed.
  • HPPC-105: renamed hppcrt-core to hppcrt, and hppcrt-templateprocessor into hppcrt-template-processor
  • HPPC-109: Moved @author tags to NOTICE.txt.
  • HPPC-114: Buffer resizing and allocation should be throwing non-assertion mode exceptions.
  • HPPC-117: Static factory methods newInstanceXXX() renamed into newInstance() everywhere with proper overrides.
  • HPPC-118: Buffer arrays for generic types should be declared as Object[] to avoid compiler-injected automatic casts.
  • HPPC-121: Renamed methods:
    T.removeFirstOccurrences -> T.removeFirst
    T.removeLastOccurrences -> T.removeLast
    T.removeAllOccurrences -> T.removeAll(type)
  • HPPC-125: equals should not compare with subclasses of itself.
  • HPPC-133: KTypeContainer.toArray(Class) now accepts any array
    component type; runtime checks will throw ArrayStoreException if not
    compatible.
  • HPPC-141: Dropped mutable type wrappers (*Holder classes)
  • HPPC-145: Removed any "Open" infix from all Hash container classes:
    KTypeOpenHashSet -> KTypeHashSet
    KTypeVTypeOpenHashMap -> KTypeVTypeHashMap
  • HPPC-149: Recognize tests.seed as the initialization seed for perturbation key mixing for hash containers.
  • HPPC-152: Add a faster RPRG, XorShift128P as a replacement of XorShiftRandom.

** Internal changes, cleanups, optimizations...etc.

HPPCRT-36: Simplify specific IdentityHash impl by deriving a specific CustomHash
HPPC-110: putOrAdd and other primitive-only methods should be template-compilable.
HPPC-120: Rework entry shifting routine to be less hairy
HPPC-134: Set and Map's removeAll() should pick the best removal strategy.

** Bug fixes

HPPCRT-35: Hash to hash batch copying hangs, regression from the working perturbation policy

HPPC-130: removeAll(KTypeLookupContainer) had an incorrect
generic signature of:
public int removeAll(final KTypeLookupContainer<? extends KType> c)
now corrected to:
public int removeAll(final KTypeLookupContainer<? super KType> c)
(for primitive types this does not apply).

HPPC-131: retainAll(KTypeLookupContainer) had an incorrect
generic signature of:
public int retainAll(final KTypeLookupContainer<? extends KType> c)
now corrected to:
public int retainAll(final KTypeLookupContainer<? super KType> c)
(for primitive types this does not apply).

HPPC-135: KTypeVTypeAssociativeContainer#removeAll had an incorrect
generic signature of:
public int removeAll(KTypeContainer<? extends KType> container)
now corrected to:
public int removeAll(KTypeContainer<? super KType> container)