aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam
AgeCommit message (Collapse)Author
2015-03-20Merge branch 'rickard/time_api/OTP-11997'Rickard Green
* rickard/time_api/OTP-11997: (22 commits) Update primary bootstrap inets: Suppress deprecated warning on erlang:now/0 inets: Cleanup of multiple copies of functions Add inets_lib with common functions used by multiple modules inets: Update comments Suppress deprecated warning on erlang:now/0 Use new time API and be back-compatible in inets Remove unused functions and removed redundant test asn1 test SUITE: Eliminate use of now/0 Disable deprecated warning on erlang:now/0 in diameter_lib Use new time API and be back-compatible in ssh Replace all calls to now/0 in CT with new time API functions test_server: Replace usage of erlang:now() with usage of new API Replace usage of erlang:now() with usage of new API Replace usage of erlang:now() with usage of new API Replace usage of erlang:now() with usage of new API Replace usage of erlang:now() with usage of new API otp_SUITE: Warn for calls to erlang:now/0 Replace usage of erlang:now() with usage of new API Multiple timer wheels Erlang based BIF timer implementation for scalability Implement ethread events with timeout ... Conflicts: bootstrap/bin/start.boot bootstrap/bin/start_clean.boot bootstrap/lib/compiler/ebin/beam_asm.beam bootstrap/lib/compiler/ebin/compile.beam bootstrap/lib/kernel/ebin/auth.beam bootstrap/lib/kernel/ebin/dist_util.beam bootstrap/lib/kernel/ebin/global.beam bootstrap/lib/kernel/ebin/hipe_unified_loader.beam bootstrap/lib/kernel/ebin/inet_db.beam bootstrap/lib/kernel/ebin/inet_dns.beam bootstrap/lib/kernel/ebin/inet_res.beam bootstrap/lib/kernel/ebin/os.beam bootstrap/lib/kernel/ebin/pg2.beam bootstrap/lib/stdlib/ebin/dets.beam bootstrap/lib/stdlib/ebin/dets_utils.beam bootstrap/lib/stdlib/ebin/erl_tar.beam bootstrap/lib/stdlib/ebin/escript.beam bootstrap/lib/stdlib/ebin/file_sorter.beam bootstrap/lib/stdlib/ebin/otp_internal.beam bootstrap/lib/stdlib/ebin/qlc.beam bootstrap/lib/stdlib/ebin/random.beam bootstrap/lib/stdlib/ebin/supervisor.beam bootstrap/lib/stdlib/ebin/timer.beam erts/aclocal.m4 erts/emulator/beam/bif.c erts/emulator/beam/erl_bif_info.c erts/emulator/beam/erl_db_hash.c erts/emulator/beam/erl_init.c erts/emulator/beam/erl_process.h erts/emulator/beam/erl_thr_progress.c erts/emulator/beam/utils.c erts/emulator/sys/unix/sys.c erts/preloaded/ebin/erlang.beam erts/preloaded/ebin/erts_internal.beam erts/preloaded/ebin/init.beam erts/preloaded/src/erts_internal.erl lib/common_test/test/ct_hooks_SUITE_data/cth/tests/empty_cth.erl lib/diameter/src/base/diameter_lib.erl lib/kernel/src/os.erl lib/ssh/test/ssh_basic_SUITE.erl system/doc/efficiency_guide/advanced.xml
2015-03-20Merge branch 'sverk/dec_term-bin-overhead/OTP-12554'Sverker Eriksson
* sverk/dec_term-bin-overhead/OTP-12554: erts: Add missing binary offheap overhead in binary_to_term
2015-03-20Multiple timer wheelsRickard Green
2015-03-20Erlang based BIF timer implementation for scalabilityRickard Green
2015-03-20Implement ethread events with timeoutRickard Green
2015-03-20Introduce a new time APIRickard Green
The old time API is based on erlang:now/0. The major issue with erlang:now/0 is that it was intended to be used for so many unrelated things. This tied these unrelated operations together and unnecessarily caused performance, scalability as well as accuracy, and precision issues for operations that do not need to have such issues. The new API spreads different functionality over multiple functions in order to improve on this. The new API consists of a number of new BIFs: - erlang:convert_time_unit/3 - erlang:monotonic_time/0 - erlang:monotonic_time/1 - erlang:system_time/0 - erlang:system_time/1 - erlang:time_offset/0 - erlang:time_offset/1 - erlang:timestamp/0 - erlang:unique_integer/0 - erlang:unique_integer/1 - os:system_time/0 - os:system_time/1 and a number of extensions of existing BIFs: - erlang:monitor(time_offset, clock_service) - erlang:system_flag(time_offset, finalize) - erlang:system_info(os_monotonic_time_source) - erlang:system_info(time_offset) - erlang:system_info(time_warp_mode) - erlang:system_info(time_correction) - erlang:system_info(start_time) See the "Time and Time Correction in Erlang" chapter of the ERTS User's Guide for more information.
2015-03-19erts: Fix bug in binary_to_term with more than one big mapSverker Eriksson
2015-03-19Merge branch 'egil/maps/hamt/OTP-12585'Björn-Egil Dahlberg
* 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
2015-03-19erts: Fix bug in ESTACK and WSTACKSverker Eriksson
The [ew]default field would get uninitialised when the stack was saved and later restored. Detected by valgrind.
2015-03-19erts: Ensure maps uses _rel functions in halfwordBjörn-Egil Dahlberg
2015-03-19erts: Do not treat errors as fatal in erl_printf_termBjörn-Egil Dahlberg
2015-03-19erts: Ensure halfword has correct temp-heap for mapsBjörn-Egil Dahlberg
2015-03-19erts: Fix map bug in dec_term for 32-bit debug VMSverker Eriksson
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.
2015-03-18Merge branch 'egil/fix-beam_load-assert'Björn-Egil Dahlberg
* egil/fix-beam_load-assert: erts: Fix beam_load assert
2015-03-18Merge branch 'maint'Zandra Hird
2015-03-18Merge branch 'wmalik/minor-fixes' into maintZandra Hird
* wmalik/minor-fixes: Fix proc_lib doc Remove commented out code Fix make_hash description
2015-03-17Merge branch 'maint'Rickard Green
* maint: Make access to control_flags safe in non-smp emulator
2015-03-17Merge branch 'rickard/port_control_flags_crash/OTP-12544' into maintRickard Green
* rickard/port_control_flags_crash/OTP-12544: Make access to control_flags safe in non-smp emulator
2015-03-16Merge 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-13erts: Remove unused variable in crashdump creationBjörn-Egil Dahlberg
2015-03-13erts: Fix typo in copy_struct for halfword emulatorBjörn-Egil Dahlberg
2015-03-13erts: Restrict GCC intrinsics by compiler versionBjörn-Egil Dahlberg
Intrinsics __builtin_clz and __builtin_popcount are only valid on GCC version 3.4 and above.
2015-03-12erts: Fix windows bug in hashmap_infoSverker Eriksson
undefined symbol 'MAX'
2015-03-12erts: Fix typo in make_hash2 for 32-bit archSverker Eriksson
2015-03-12Fix beam_load assertBjörn-Egil Dahlberg
2015-03-12erts: Set Maps small limit to 32 itemsBjörn-Egil Dahlberg
Use small limit 3 in debug case
2015-03-12erts: Cleanup comments for make_internal_hashSverker Eriksson
2015-03-12erts: Fix nif API for hashmapsSverker Eriksson
2015-03-12erts: Make hashmap iterator more flexibleSverker Eriksson
to allow mixing of 'next' and 'prev' operations.
2015-03-12erts, kernel: Fix erts_debug:size/1 for hashmapsBjö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-12erts: Add hashmap construction to driver APIBjörn-Egil Dahlberg
2015-03-12erts: Reintroduce is_map macroSverker Eriksson
as shorthand for is_flatmap || is_hashmap
2015-03-12erts: Refactor maps naming conventionSverker Eriksson
flatmap: Small map hashmap: Large map map: flatmap or hashmap
2015-03-12erts: Teach hashmaps to match spec compilerBjörn-Egil Dahlberg
2015-03-12erts: Add hashmap_iterator_prev to mapsBjörn-Egil Dahlberg
2015-03-12erts: Tweak over estimation of hashmap size for binary_to_termSverker 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-12erts: Reject duplicate keys for hamt in binary_to_termSverker Eriksson
2015-03-12erts: Fix instruction i_has_map_fields_fsI for hashmapsBjörn-Egil Dahlberg
2015-03-12First stab at binary_to_term for hamtSverker Eriksson
with over estimation of heap size.
2015-03-12erts: Fix various map vs hamt size bugsSverker Eriksson
2015-03-12erts: Fix instruction new_mapBjörn-Egil Dahlberg
2015-03-12erts: Refactor hashmap_from_ks_and_vsBjörn-Egil Dahlberg
Use extra key and value if needed.
2015-03-12erts: Fix update_map_assoc instructionBjörn-Egil Dahlberg
Did not build a hashmap once the small limit was exceeded.
2015-03-12erts: Ensure maps becomes hashmaps in maps:merge/2Björn-Egil Dahlberg
Maps should become hashmaps when merged size exceeds small limit size.
2015-03-12erts: Fix erlang:hash and erlang:phash for hamtSverker Eriksson
by calling make_hash2.
2015-03-12erts: Fix compare order of hamt vs other typesSverker Eriksson
MAP_DEF and HASHMAP_DEF must have adjacent values
2015-03-12erts: Add make_internal_hashSverker Eriksson
2015-03-12erts: Handle hashmap in update/assoc instructionsBjörn-Egil Dahlberg
2015-03-12erts: Split hashmap_insert to down and upBjörn-Egil Dahlberg
2015-03-12erts: Make ESTACK usable through pointerBjörn-Egil Dahlberg