Age | Commit message (Collapse) | Author |
|
from map_to_validated_list
|
|
* sverk/hamt-overestimate/OTP-12585:
erts: Add test map_SUITE:t_hashmap_balance
erts: Fix hashmap overestimation
erts: Silence valgrind warning in nif_SUITE.c
|
|
* sverk/dec_term-bin-overhead/OTP-12554:
erts: Add missing binary offheap overhead in binary_to_term
|
|
|
|
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.
|
|
Hmm, seems like gcc (4.4.3 at least) can switch the order
of an &&-expression and do the last condition first if it
think it's more efficient (and without side effects I hope).
Which led to valgrind complaining about 'prev_ret' being used
uninitialized in this case.
|
|
|
|
* egil/maps/hamt/OTP-12585: (113 commits)
erts: Fix bug in ESTACK and WSTACK
kernel: Add spec for erts_debug:map_info/1
mnesia: Update mnesia tests to reflect new ETS hash
erts: Ensure maps uses _rel functions in halfword
erts: Do not treat errors as fatal in erl_printf_term
erts: Update preloaded erts_internal.beam
erts: Add map decomposition wrappers
erts: Ensure halfword has correct temp-heap for maps
hipe: Handle separate hashmap tag correctly
erts: Fix map bug in dec_term for 32-bit debug VM
stdlib: Update qlc tests to reflect new ETS hash
stdlib: Remove obsolete hashmap references in io_lib
erts: Enhance maps ordering tests
hipe: Fix maps sort order testcase
erts: Remove unused variable in crashdump creation
erts: Fix typo in copy_struct for halfword emulator
erts: Restrict GCC intrinsics by compiler version
erts: Fix windows bug in hashmap_info
erts: Fix typo in make_hash2 for 32-bit arch
Fix beam_load assert
...
Conflicts:
erts/emulator/beam/bif.tab
|
|
The [ew]default field would get uninitialised when the stack was
saved and later restored.
Detected by valgrind.
|
|
|
|
|
|
|
|
* erts_internal:map_type/1
* erts_internal:map_hashmap_children/1
|
|
|
|
Adding ERTS_SWORD_MAX to a pointer does not work
as a way to disable a bound check.
Remove the hp_end from ErtsHeapFactory as it isn't really used anyway.
|
|
* essen/zlib-export-types:
Export useful types from zlib module
OTP-12584
|
|
* egil/fix-beam_load-assert:
erts: Fix beam_load assert
|
|
|
|
* nlmills/cleanup:
Remove unused time macros from efile_drv
|
|
|
|
* wmalik/minor-fixes:
Fix proc_lib doc
Remove commented out code
Fix make_hash description
|
|
* maint:
Make access to control_flags safe in non-smp emulator
|
|
* rickard/port_control_flags_crash/OTP-12544:
Make access to control_flags safe in non-smp emulator
|
|
* maint:
Fix missing quotation in LM_FIND_EMU_CC
|
|
* rickard/find_emu_cc/OTP-12388:
Fix missing quotation in LM_FIND_EMU_CC
|
|
|
|
* essen/zlib-windowbits:
Update zlib:zwindowbits/0 type to accept 8 and -8
OTP-12564
|
|
* nox/ets-update_counter-4:
Create new BIF ets:update_counter/4
Allow 4-ary BIFs
OTP-12563
|
|
|
|
* nlmills/docfix:
Correct typo in erlang(3) documentation
|
|
All uses of these macros were removed in
commit c3a615aa2da09bc3a0575e973959f800460a63de.
|
|
|
|
|
|
|
|
Intrinsics __builtin_clz and __builtin_popcount are only valid on
GCC version 3.4 and above.
|
|
undefined symbol 'MAX'
|
|
|
|
|
|
Use small limit 3 in debug case
|
|
|
|
|
|
to allow mixing of 'next' and 'prev' operations.
|
|
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.
|
|
|
|
as shorthand for is_flatmap || is_hashmap
|
|
flatmap: Small map
hashmap: Large map
map: flatmap or hashmap
|
|
|
|
|
|
|
|
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?)
|