Age | Commit message (Collapse) | Author | |
---|---|---|---|
2015-03-17 | Merge branch 'maint' | Rickard Green | |
* maint: Make access to control_flags safe in non-smp emulator | |||
2015-03-17 | Merge branch 'rickard/port_control_flags_crash/OTP-12544' into maint | Rickard Green | |
* rickard/port_control_flags_crash/OTP-12544: Make access to control_flags safe in non-smp emulator | |||
2015-03-16 | Merge branch 'nox/ets-update_counter-4' | Zandra Hird | |
* nox/ets-update_counter-4: Create new BIF ets:update_counter/4 Allow 4-ary BIFs OTP-12563 | |||
2015-03-15 | Ensure NIF term creation disallows illegal values | Steve Vinoski | |
Add a check to enif_make_double to see if its double argument is infinity or NaN, returning a badarg exception if it is. Change the erl_nif documentation to specify that enif_make_double returns a badarg exception if its double argument is either infinity or NaN. Add tests to nif_SUITE for this change. Add checks to the enif_make* functions for atoms to prevent the creation of atoms whose name lengths are greater than the allowed maximum atom length. The enif_make_atom and enif_make_atom_len functions now return a badarg exception if the input string is too long. The enif_make_existing_atom and enif_make_existing_atom_len functions return false if the input string is too long. Change the erl_nif documentation to reflect the changes to these functions. Add tests to nif_SUITE for these changes. Add a field to ErlNifEnv to track that a NIF has raised an exception via enif_make_badarg. If a NIF calls enif_make_badarg but then ignores its return value and instead tries to return a non-exception term as its return value, the runtime still raises a badarg. This is needed to prevent enif_make_badarg values resulting from calls to enif_make_double, enif_make_atom, or enif_make_atom_len from being erroneously stored within other terms and returned from a NIF. Calling enif_make_badarg but not returning its return value has been documented as being illegal ever since enif_make_badarg was added, but the runtime has not enforced it until now. Add tests for regular and dirty NIFs to ensure that calls to enif_make_badarg result in badarg exceptions even if a NIF fails to return the result of enif_make_badarg as its return value. Add documentation to enif_make_badarg to specify that calling it raises a badarg even if a NIF ignores its return value. | |||
2015-03-13 | erts: Remove unused variable in crashdump creation | Björn-Egil Dahlberg | |
2015-03-13 | erts: Fix typo in copy_struct for halfword emulator | 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: Fix typo in make_hash2 for 32-bit arch | Sverker Eriksson | |
2015-03-12 | Fix beam_load assert | Björn-Egil Dahlberg | |
2015-03-12 | erts: Set Maps small limit to 32 items | Björn-Egil Dahlberg | |
Use small limit 3 in debug case | |||
2015-03-12 | erts: Cleanup comments for make_internal_hash | Sverker Eriksson | |
2015-03-12 | erts: Fix nif API for hashmaps | Sverker Eriksson | |
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: Add hashmap construction to driver API | Björn-Egil Dahlberg | |
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: Teach hashmaps to match spec compiler | Björn-Egil Dahlberg | |
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 | erts: Fix instruction i_has_map_fields_fsI for hashmaps | Björn-Egil Dahlberg | |
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: Fix erlang:hash and erlang:phash for hamt | Sverker Eriksson | |
by calling make_hash2. | |||
2015-03-12 | erts: Fix compare order of hamt vs other types | Sverker Eriksson | |
MAP_DEF and HASHMAP_DEF must have adjacent values | |||
2015-03-12 | erts: Add make_internal_hash | Sverker Eriksson | |
2015-03-12 | erts: Handle hashmap in update/assoc instructions | Björn-Egil Dahlberg | |
2015-03-12 | erts: Split hashmap_insert to down and up | Björn-Egil Dahlberg | |
2015-03-12 | erts: Make ESTACK usable through pointer | 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: Remove hashmap:new/0 | 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 erlang:is_hashmap/1 to maps | Björn-Egil Dahlberg | |