Age | Commit message (Collapse) | Author | |
---|---|---|---|
2015-04-10 | Merge branch 'egil/fix-maps-deep-colliding-merge' | Björn-Egil Dahlberg | |
* egil/fix-maps-deep-colliding-merge: erts: Fix deep colliding hash values in maps:from_list/1 | |||
2015-04-09 | Merge branch 'sverk/maps-bin2term-eqhash-bug/12585' | Sverker Eriksson | |
* sverk/maps-bin2term-eqhash-bug/12585: erts: Fix bug in map_from_list when keys clash in both value and hash erts: Fix bug in binary_to_term for big maps with 32 bit hash-clash | |||
2015-04-08 | Merge branch 'sverk/refactor-encode-size/OTP-12585' | Sverker Eriksson | |
* sverk/refactor-encode-size/OTP-12585: erts: Optimize insert and delete for big maps erts: Optimize == and /= for unequal big maps erts: Refactor encode_size_struct_int Conflicts: erts/emulator/beam/erl_map.c | |||
2015-04-07 | erts: Fix bug in map_from_list when keys clash in both value and hash | Sverker Eriksson | |
Subtle bug in qsort callback. Cast from Sint to int does not retain sign. | |||
2015-04-07 | erts: Fix bug in binary_to_term for big maps with 32 bit hash-clash | Sverker Eriksson | |
binary_to_term threw badarg as the "reject_dupkey" case in hashmap_from_unsored_array was always triggered when hash-clash was found as the first round in the loop compared the key with itself. | |||
2015-04-07 | erts: Fix deep colliding hash values in maps:from_list/1 | Björn-Egil Dahlberg | |
Reported-by: Jesper Louis Andersen | |||
2015-04-01 | Merge branch 'egil/fix-maps-tmp-heap' | Björn-Egil Dahlberg | |
* egil/fix-maps-tmp-heap: erts: Test deep Maps updates erts: Use halfword secure tmp heap erts: Remove unused tmp heap in make_internal_hash Conflicts: erts/emulator/test/map_SUITE.erl | |||
2015-03-31 | erts: Use halfword secure tmp heap | Björn-Egil Dahlberg | |
2015-03-31 | erts: Fix size bug in maps:from_list/1 BIF | Björn-Egil Dahlberg | |
The wrong size was imprinted on maps with deep hash key collisions. | |||
2015-03-31 | erts: Optimize insert and delete for big maps | Sverker Eriksson | |
Do fast path without bit count for full internal nodes. | |||
2015-03-25 | erts: Refactor Map - use multiple values ESTACK_PUSHN | Björn-Egil Dahlberg | |
2015-03-25 | erts: GC needs the size even if the frag is not referenced | Björn-Egil Dahlberg | |
2015-03-25 | erts: Combine flat and hash maps under one unifying tag | Björn-Egil Dahlberg | |
2015-03-25 | Merge branch 'sverk/hamt-term2bin-bug/OTP-12585' | Sverker Eriksson | |
* sverk/hamt-term2bin-bug/OTP-12585: erts: Optimize hashmap_get erts: Remove HAMT_SUBTAG_NODE_ARRAY erts: Fix bug in binary_to_term for hamt when yielding erts: Rename to flatmap_from_validated_list | |||
2015-03-25 | Merge branch 'maint' | Björn-Egil Dahlberg | |
Conflicts: erts/emulator/beam/erl_map.c erts/emulator/test/map_SUITE.erl | |||
2015-03-24 | erts: Optimize hashmap_get | Sverker Eriksson | |
2015-03-24 | erts: Remove HAMT_SUBTAG_NODE_ARRAY | Sverker Eriksson | |
This will also fix a bug in term_to_binary treating full nodes as tuples and emiting LIST_EXT for leafs. | |||
2015-03-24 | erts: Fix comparison of exact terms | Björn-Egil Dahlberg | |
Comparison of exact terms could cause faulty term tests. This was caused by a faulty (too small) internal type. Symptom: -1 = erts_internal:cmp_term(2147483648,0). %% wrong Correct: 1 = erts_internal:cmp_term(2147483648,0). Reported-by: Jesper Louis Andersen | |||
2015-03-23 | erts: Rename to flatmap_from_validated_list | Sverker Eriksson | |
from map_to_validated_list | |||
2015-03-20 | erts: Fix hashmap overestimation | Sverker Eriksson | |
Old overestimation assumed an average of k/3 nodes. This can be bad for large maps (with tight standard deviations) as the average vary between 0.3*k and up to almost 0.4*k. | |||
2015-03-19 | erts: Ensure maps uses _rel functions in halfword | Björn-Egil Dahlberg | |
2015-03-19 | erts: Ensure halfword has correct temp-heap for maps | Björn-Egil Dahlberg | |
2015-03-13 | erts: Restrict GCC intrinsics by compiler version | Björn-Egil Dahlberg | |
Intrinsics __builtin_clz and __builtin_popcount are only valid on GCC version 3.4 and above. | |||
2015-03-12 | erts: Fix windows bug in hashmap_info | Sverker Eriksson | |
undefined symbol 'MAX' | |||
2015-03-12 | erts: Make hashmap iterator more flexible | Sverker Eriksson | |
to allow mixing of 'next' and 'prev' operations. | |||
2015-03-12 | erts, kernel: Fix erts_debug:size/1 for hashmaps | Björn-Egil Dahlberg | |
This commit introduces two BIFs: * erts_internal:map_type/1 * erts_internal:map_hashmap_children/1 erts_internal:map_hashmap_children/1 is only intended for use within erts_debug:size/1 since the internal hashmap node is not allowed to leak anywhere. | |||
2015-03-12 | erts: Reintroduce is_map macro | Sverker Eriksson | |
as shorthand for is_flatmap || is_hashmap | |||
2015-03-12 | erts: Refactor maps naming convention | Sverker Eriksson | |
flatmap: Small map hashmap: Large map map: flatmap or hashmap | |||
2015-03-12 | erts: Add hashmap_iterator_prev to maps | Björn-Egil Dahlberg | |
2015-03-12 | erts: Tweak over estimation of hashmap size for binary_to_term | Sverker Eriksson | |
Strategy: Calculate an over estimation of heap size that will give such a low probability for overflow, that "it will not happen". Scary assumption 1: Uniformly distributed hash values. Scary assumption 2: Tree size is normally distributed (right?) | |||
2015-03-12 | erts: Reject duplicate keys for hamt in binary_to_term | Sverker Eriksson | |
2015-03-12 | First stab at binary_to_term for hamt | Sverker Eriksson | |
with over estimation of heap size. | |||
2015-03-12 | erts: Fix various map vs hamt size bugs | Sverker Eriksson | |
2015-03-12 | erts: Fix instruction new_map | Björn-Egil Dahlberg | |
2015-03-12 | erts: Refactor hashmap_from_ks_and_vs | Björn-Egil Dahlberg | |
Use extra key and value if needed. | |||
2015-03-12 | erts: Fix update_map_assoc instruction | Björn-Egil Dahlberg | |
Did not build a hashmap once the small limit was exceeded. | |||
2015-03-12 | erts: Ensure maps becomes hashmaps in maps:merge/2 | Björn-Egil Dahlberg | |
Maps should become hashmaps when merged size exceeds small limit size. | |||
2015-03-12 | erts: Split hashmap_insert to down and up | Björn-Egil Dahlberg | |
2015-03-12 | erts: Handle hashmap in get_map_element(s) instructions | Björn-Egil Dahlberg | |
2015-03-12 | erts: Remove erl_hashmap.[ch] files | Björn-Egil Dahlberg | |
2015-03-12 | erts: Move hashmap:merge/2 to maps | Björn-Egil Dahlberg | |
2015-03-12 | erts: Move hashmap:info/1 to erts_debug:map_info/1 | Björn-Egil Dahlberg | |
2015-03-12 | erts: Move hashmap:from_list/1 to maps | Björn-Egil Dahlberg | |
2015-03-12 | erts: Refactor maps:from_list/1 | Björn-Egil Dahlberg | |
2015-03-12 | erts: Refactor maps:remove/2 | Björn-Egil Dahlberg | |
2015-03-12 | erts: Move hashmap:remove/2 to maps | Björn-Egil Dahlberg | |
2015-03-12 | erts: Refactor maps:update/3 and maps:put/3 | Björn-Egil Dahlberg | |
2015-03-12 | erts: Reindent erts_maps_update | Björn-Egil Dahlberg | |
2015-03-12 | erts: Move hashmap:put/3, update/3 to maps | Björn-Egil Dahlberg | |
2015-03-12 | erts: Refactor maps:get/2, find/2 and is_key/2 | Björn-Egil Dahlberg | |