Age | Commit message (Collapse) | Author | |
---|---|---|---|
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. | |||
2014-01-29 | erts: Update maps BIFs to use term order | Björn-Egil Dahlberg | |
Maps internally uses term order to store keys in an ordered fashion. | |||
2014-01-29 | erts: Add NIFs for Maps | Björn-Egil Dahlberg | |
- int enif_is_map(ErlNifEnv* env, ERL_NIF_TERM map) - int enif_get_map_size(ErlNifEnv *env, ERL_NIF_TERM, int*) - ERL_NIF_TERM enif_make_new_map(ErlNifEnv *env) - int enif_make_map_put(ErlNifEnv *env, ERL_NIF_TERM map_in, ERL_NIF_TERM key, ERL_NIF_TERM value, ERL_NIF_TERM* map_out) - int enif_get_map_value(ErlNifEnv *env, ERL_NIF_TERM map, ERL_NIF_TERM key, ERL_NIF_TERM* value) - int enif_find_map_value(ErlNifEnv *env, ERL_NIF_TERM map, ERL_NIF_TERM key, ERL_NIF_TERM* value) - int enif_make_map_update(ErlNifEnv *env, ERL_NIF_TERM map_in, ERL_NIF_TERM key, ERL_NIF_TERM value, ERL_NIF_TERM* map_out) - int enif_make_map_remove(ErlNifEnv *env, ERL_NIF_TERM map_in, ERL_NIF_TERM key, ERL_NIF_TERM* map_out) - int enif_map_iterator_create(ErlNifEnv *env, ERL_NIF_TERM map, ErlNifMapIterator *iter) - void enif_map_iterator_destroy(ErlNifEnv *env, ErlNifMapIterator *iter) - int enif_map_iterator_next(ErlNifEnv *env, ErlNifMapIterator *iter) - int enif_map_iterator_get_pair(ErlNifEnv *env, ErlNifMapIterator *iter, ERL_NIF_TERM *key, ERL_NIF_TERM *value) | |||
2014-01-28 | erts,stdlib: Change map module name to maps | Björn-Egil Dahlberg | |
Name conforms to EEP. | |||
2014-01-28 | erts: Introduce more Maps BIFs | Björn-Egil Dahlberg | |
* map:remove/2 * map:keys/1 * map:values/1 * map:is_key/2 * map:update/3 - Equivalent to ':=' operator in #{ K := V } maps. * map:from_list/1 - map:from_list/1 takes any unsorted key/value list, [{K,V}], and produces a map. Duplicate keys are removed. The latest key is kept. * map:find/2 - Searches for a pair that *equals* input key. * map:merge/2 - Merge two maps to one map. | |||
2014-01-28 | erts: Add the size-testing guard BIF map_size/1 | Björn-Egil Dahlberg | |
2014-01-28 | erts: Initial Map instructions, type and structure | Björn-Egil Dahlberg | |