Age | Commit message (Collapse) | Author |
|
* lukas/erts/gc_info/OTP-13265:
erts: Add garbage_collection_info to process_info/2
Conflicts:
erts/emulator/beam/erl_bif_info.c
|
|
|
|
* siri/document-path-flag/OTP-13060:
Add documentation of '-path' flag to 'erl'
|
|
* maint:
Fix HL timer hard debug implementation
Fix stack alignment problem in ethread test on arm
Skip time_SUITE:timestamp on timewarp test
|
|
* rickard/test-fix:
Fix HL timer hard debug implementation
Fix stack alignment problem in ethread test on arm
Skip time_SUITE:timestamp on timewarp test
|
|
* bjorn/erts/clean-up-preloaded/OTP-13112:
Update preloaded modules
erl_prim_loader: Rename release_archives/0
erl_prim_loader: Correct timeout handling for efile
erl_prim_loader: Correct purging of the archive cache
erl_prim_loader: Remove unused 'cache' field
|
|
|
|
|
|
|
|
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.
|
|
The timeout routine for efile was never called. While at it,
eliminate the n_timeouts field and simplify the logic.
|
|
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.
|
|
The #prim_state.cache' field is unused. The actual cache is kept
in the process dictionary.
|
|
* 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
|
|
* maint:
Fix dirty scheduler check in handle_aux_work
|
|
* vinoski/check-awdp-esdp:
Fix dirty scheduler check in handle_aux_work
|
|
More verbose, but hopefully more readable than before.
|
|
|
|
|
|
* sverk/armata-memset-bug:
erts: Workaround memset bug in test case
|
|
* 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
|
|
|
|
|
|
|
|
* sverk/trace-doc-typo:
erts: Correct faulty doc for erlang:trace/3
|
|
The entire MFA tuple is replaced with 0, not just Arity.
|
|
This flag replaces the path specified in the boot script. It has
always existed, but was earlier only documented in SASL (script).
|
|
* maint:
Do not allow aux work on dirty schedulers
|
|
* vinoski/dirty-sched-no-aux-work/OTP-13236:
Do not allow aux work on dirty schedulers
|
|
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.
|
|
Move impl from erlang to erts_internal. Cut and paste.
|
|
* Same process must do enable-disable.
* System process will force it and never get 'aborted'
|
|
as it's not a public interface.
|
|
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.
|
|
* 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
|
|
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.
|
|
as a system process with preloaded code.
|
|
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.
|
|
as is strongly recommended by gcc man page.
We use __attribute__ ((visibility("default"))) to make sure
the init functions are properly exported.
|
|
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
|
|
|
|
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
|
|
* sverk/hipe-mmap-config:
erts: Add config test for MAP_NORESERVE for hipe on 64-bit
|
|
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
|
|
* sverk/float_SUITE-arith:
erts: Add new test cases to float_SUITE
|
|
* sverk/check_process_code-fix:
erts: Fix bug in check_process_code for literals
|
|
* maint:
Light weight statistics of run queue lengths
Conflicts:
erts/preloaded/ebin/erlang.beam
|
|
* rickard/rq-len/OTP-13201:
Light weight statistics of run queue lengths
|
|
- statistics(total_run_queue_lengths)
- statistics(run_queue_lengths)
- statistics(total_active_tasks)
- statistics(active_tasks)
Conflicts:
erts/emulator/beam/erl_process.c
|
|
* maint:
Use monotonic time for call_time trace
|