aboutsummaryrefslogtreecommitdiffstats
path: root/erts
AgeCommit message (Collapse)Author
2016-01-21Update preloaded modulesBjörn Gustavsson
2016-01-20erl_prim_loader: Rename release_archives/0Björn Gustavsson
Rename release_archives/0 to purge_archive_cache/0 to make it clearer what it does and what it doesn't do. Also add a comment about its intended purpose. Note that release_archives/0 is not documented and is part of the experimental archive feature. Furthermore, the only uses I could find were in the test suite. I did not find any uses in the external applications relx and rebar3 applications that are known to use archives. Therefore, I think that the increased clarity is worth the small risk of breaking code.
2016-01-20erl_prim_loader: Correct timeout handling for efileBjörn Gustavsson
The timeout routine for efile was never called. While at it, eliminate the n_timeouts field and simplify the logic.
2016-01-20erl_prim_loader: Correct purging of the archive cacheBjörn Gustavsson
prim_do_release_archives/3 can't make up its mind whether the primary archive should be released or not. The key in the process dictionary is kept, while #prim_state.primary_archive is cleared. It seems that intent was the primary archive should be preserved, because the function was intended to be called by a timeout routine every sixth minute (it is not because of a bug in setting up the timeout). Therefore, rewrite the code to preserve the primary archive and simplify it while at it. Also, rename prim_release_archives/1 to prim_purge_cache/0 to make it clearer what it is doing.
2016-01-20erl_prim_loader: Remove unused 'cache' fieldBjörn Gustavsson
The #prim_state.cache' field is unused. The actual cache is kept in the process dictionary.
2016-01-20Merge branch 'hb/stdlib/refine_abstr_types/OTP-10292'Hans Bolinder
* hb/stdlib/refine_abstr_types/OTP-10292: erts: Improve readability of The Abstract Format erts: Improve the documentation of the abstract format stdlib: Update erl_parse(3) stdlib: Refine the types of the abstract format compiler: Improve type and specs hipe: Improve types dialyzer: Improve a type doc: Update a refman example syntax_tools: Correct a type stdlib: Correct a type
2016-01-20Merge branch 'maint'Rickard Green
* maint: Fix dirty scheduler check in handle_aux_work
2016-01-20Merge branch 'vinoski/check-awdp-esdp' into maintRickard Green
* vinoski/check-awdp-esdp: Fix dirty scheduler check in handle_aux_work
2016-01-20erts: Improve readability of The Abstract FormatHans Bolinder
More verbose, but hopefully more readable than before.
2016-01-20erts: Improve the documentation of the abstract formatHans Bolinder
2016-01-19Merge branch 'maint'Sverker Eriksson
2016-01-19Merge branch 'sverk/armata-memset-bug' into maintSverker Eriksson
* sverk/armata-memset-bug: erts: Workaround memset bug in test case
2016-01-19Merge branch 'sverk/safe-purging/OTP-13122'Sverker Eriksson
* sverk/safe-purging/OTP-13122: erts: Ignore unexpected messages to erts_code_purger erts: Optimize erlang:check_process_code erts: Refactor check_process_code/3 erts: Make copy_literals more fail safe erts: Move copy_literals/2 from erlang to erts_internal erts: Make erlang:purge_module/1 safe erts: Refactor code:purge/1 and code:soft_purge/1 erts: Introduce erts_code_purger
2016-01-19erts: Ignore unexpected messages to erts_code_purgerSverker Eriksson
2016-01-18Fix dirty scheduler check in handle_aux_workSteve Vinoski
2016-01-14Merge branch 'maint'Sverker Eriksson
2016-01-14Merge branch 'sverk/trace-doc-typo' into maintSverker Eriksson
* sverk/trace-doc-typo: erts: Correct faulty doc for erlang:trace/3
2016-01-14erts: Correct faulty doc for erlang:trace/3Sverker Eriksson
The entire MFA tuple is replaced with 0, not just Arity.
2016-01-14Merge branch 'maint'Rickard Green
* maint: Do not allow aux work on dirty schedulers
2016-01-14Merge branch 'vinoski/dirty-sched-no-aux-work/OTP-13236' into maintRickard Green
* vinoski/dirty-sched-no-aux-work/OTP-13236: Do not allow aux work on dirty schedulers
2016-01-13erts: Optimize erlang:check_process_codeSverker Eriksson
by ignoring literals. erts_internal:check_process_code will be called again anyway (with option {copy_literals, true}) before the module is actually purged. No need to check literals twice.
2016-01-13erts: Refactor check_process_code/3Sverker Eriksson
Move impl from erlang to erts_internal. Cut and paste.
2016-01-13erts: Make copy_literals more fail safeSverker Eriksson
* Same process must do enable-disable. * System process will force it and never get 'aborted'
2016-01-13erts: Move copy_literals/2 from erlang to erts_internalSverker Eriksson
as it's not a public interface.
2016-01-13erts: Make erlang:purge_module/1 safeSverker Eriksson
Problem: erlang:purge_module/1 is not safe in the sense that very bad things may happen if the code to be purged is still referred to by live processes. Introduce erts_internal:purge_module which is the same as the old erlang:purge_module BIF (except it returns false if no such old module). Implement erlang:purge_module in Erlang and let it invoke erts_code_purger for safe purging where all clogging processes first are killed.
2016-01-13Merge branch 'sverk/fvisibility-hidden/OTP-13227'Sverker Eriksson
* sverk/fvisibility-hidden/OTP-13227: erts: Allow -fvisibility=hidden for NIFs and drivers erts: Cleanup erl_driver.h for windows erts: Refactor ERL_NIF_INIT macro
2016-01-13erts: Refactor code:purge/1 and code:soft_purge/1Sverker Eriksson
by moving code from code_server to erts_code_purger. This is more or less a copy-paste from code_server.erl to erts_code_purger.erl. All the inner mechanics of code:purge/1 and code:soft_purge/1 are unchanged.
2016-01-13erts: Introduce erts_code_purgerSverker Eriksson
as a system process with preloaded code.
2016-01-11erts: Workaround memset bug in test caseSverker Eriksson
memset seen to fail with values larger than 255 on (armata) 32-bit ARM Debian with EGLIBC 2.13-38+rpi2+deb7u8 and gcc 4.6.3-14+rpi1.
2016-01-08erts: Allow -fvisibility=hidden for NIFs and driversSverker Eriksson
as is strongly recommended by gcc man page. We use __attribute__ ((visibility("default"))) to make sure the init functions are properly exported.
2016-01-08erts: Cleanup erl_driver.h for windowsSverker Eriksson
The comment is misleading and no need to "export" static windows drivers. DRIVER_INIT for dynamic windows drivers is defined in erl_win_dyn_driver.h
2016-01-08erts: Refactor ERL_NIF_INIT macroSverker Eriksson
2016-01-07Merge branch 'sverk/proc-dict-opt'Sverker Eriksson
OTP-13167 * sverk/proc-dict-opt: erts: Add new test case pdict_SUITE:mixed erts: Add 'fill_heap' to erts_debug:state_internal_state erts: Rename proc dict size to arraySize erts: Refactor proc dict with 'usedSlots' erts: Add sizeMask for faster proc dict indexing erts: Remove ProcDict.used erts: Add proc dict macros ERTS_PD_START/SIZE erts: Optimize away function "array_put" in proc dict erts: Optimize hashing in process dictionary
2016-01-07Merge branch 'sverk/hipe-mmap-config'Sverker Eriksson
* sverk/hipe-mmap-config: erts: Add config test for MAP_NORESERVE for hipe on 64-bit
2016-01-07erts: Add config test for MAP_NORESERVE for hipe on 64-bitSverker Eriksson
to get a nicer error on FreeBSD and others that does not support MAP_NORESERVE for mmap. Q: How to support this? A: Implement the "literal tag" in hipe or another way to reserve virtual address space in erl_mmap.c
2016-01-07Merge branch 'sverk/float_SUITE-arith'Sverker Eriksson
* sverk/float_SUITE-arith: erts: Add new test cases to float_SUITE
2016-01-07Merge branch 'sverk/check_process_code-fix'Sverker Eriksson
* sverk/check_process_code-fix: erts: Fix bug in check_process_code for literals
2015-12-30Merge branch 'maint'Rickard Green
* maint: Light weight statistics of run queue lengths Conflicts: erts/preloaded/ebin/erlang.beam
2015-12-30Merge branch 'rickard/rq-len/OTP-13201' into maintRickard Green
* rickard/rq-len/OTP-13201: Light weight statistics of run queue lengths
2015-12-30Light weight statistics of run queue lengthsRickard Green
- statistics(total_run_queue_lengths) - statistics(run_queue_lengths) - statistics(total_active_tasks) - statistics(active_tasks) Conflicts: erts/emulator/beam/erl_process.c
2015-12-30Merge branch 'maint'Rickard Green
* maint: Use monotonic time for call_time trace
2015-12-30Merge branch 'rickard/trace_call_time/OTP-13216' into maintRickard Green
* rickard/trace_call_time/OTP-13216: Use monotonic time for call_time trace
2015-12-30Merge branch 'rickard/ohmq-fixup/OTP-13047'Rickard Green
* rickard/ohmq-fixup/OTP-13047: Fix asynchronous BIF timer cancellation message reply
2015-12-29Fix asynchronous BIF timer cancellation message replyRickard Green
2015-12-28Merge branch 'maint'Zandra
2015-12-28Merge branch 'binarin/maint' into maintZandra
* binarin/maint: Don't wait for twice the delay_write timeout OTP-13220
2015-12-23Use monotonic time for call_time traceRickard Green
2015-12-21Do not allow aux work on dirty schedulersSteve Vinoski
The nature of aux work is such that dirty schedulers should not attempt to perform it. Modify the code to ensure that dirty schedulers avoid aux work. Also fix an incorrect assumption about the size of a Uint in the ErtsDirtySchedId type.
2015-12-18Merge branch 'lv/fix-compilation-with-vm-probes/OTP-13209'Björn-Egil Dahlberg
* lv/fix-compilation-with-vm-probes/OTP-13209: Fix compilation with `--enable-vm-probes`
2015-12-18Merge branch 'maint'Henrik Nord
Conflicts: OTP_VERSION erts/vsn.mk