Age | Commit message (Collapse) | Author | |
---|---|---|---|
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 | |
2015-03-12 | erts: Move hashmap:get/2, find/2 and is_key/2 to maps | Björn-Egil Dahlberg | |
2015-03-12 | erts: Move hashmap:to_list/1, keys/1 and values/1 to maps | Björn-Egil Dahlberg | |
2015-03-12 | erts: Move hashmap:size/1 to maps | Björn-Egil Dahlberg | |
2014-08-20 | Return pointer to value in erts_maps_get() | Anthony Ramine | |
While at it, implement erts_maps_get_rel() for halfword support. | |||
2014-04-30 | erts: Add erts_internal:map_to_tuple_keys/1 | Björn-Egil Dahlberg | |
* Used for introspection. * Will return the internal key tuple if applicable * Not documented - not for public use | |||
2014-03-21 | erts: Fix heap overflow in maps:remove/2 when key is not found | Sverker Eriksson | |
One key-value pair too many was copied. | |||
2014-01-29 | erts: Add map construction to driver API | Sverker Eriksson | |
erl_drv_output_term() and erl_drv_send_term() can send messages containing maps with the use of the new ERL_DRV_MAP. The driver API minor version is updated as new functionality is added. | |||
2014-01-29 | erts: Optimize erts_map_update/remove | Sverker Eriksson | |
to not continue comparing keys once it has been found. | |||
2014-01-29 | erts: Fix bug in erts_maps_remove | Sverker Eriksson | |
HRelease was called with wrong arguments and left garbage on heap when key was not found. |