Age | Commit message (Collapse) | Author |
|
|
|
|
|
* legoscia/remove-watchdog-vestiges/PR-1255/OTP-14112:
Remove vestiges of watchdog support in heart
|
|
* maint:
Update copyright-year
Conflicts:
lib/dialyzer/src/dialyzer.hrl
lib/dialyzer/src/dialyzer_options.erl
lib/dialyzer/test/opaque_SUITE_data/src/recrec/dialyzer.hrl
lib/dialyzer/test/opaque_SUITE_data/src/recrec/dialyzer_races.erl
lib/hipe/icode/hipe_icode.erl
lib/hipe/main/hipe.erl
lib/hipe/main/hipe.hrl.src
lib/hipe/main/hipe_main.erl
|
|
|
|
* richcarl/kernel/disk_log_tweaks/OTP-14057/PR-1245:
Pass log format through from handle()
Improve caching in disk_log
Use pattern matching for records where suitable
Eliminate more code duplication
Simplify for rflat
Clarify that the type for disk log data is iodata()
Pass through known size instead of recomputing
Use iolist_size instead of local function
Only read log format once in collect loop
Eliminate some code duplication
Rename internal function for clarity
Minor documentation cleanup
|
|
|
|
Avoid starting timers for flushing when the written data is empty or larger
than the max cache size. Previously, a single huge write to an empty cache
would be put in the cache until the next write or the timer event. Also
increase the cache size from 16K to 64K.
|
|
|
|
|
|
|
|
|
|
* richcarl/code-change-utils/PR-1257/OTP-14059:
Update preloaded modules
Add shell mm() and lm() functions
Add code:module_status/1 and modified_modules/0
Fix spec for erlang:get_module_info()
Handle prefetched paths
Restructure code:which() and where_is_file()
Remove remnants of module package support
|
|
These functions use the MD5 beam/native checksum to determine whether the
code for a module has changed on disk and is a candidate for loading.
|
|
|
|
|
|
|
|
|
|
Hardware watchdog support was removed from heart in R13A, but there were
still some vestiges in the code and the documentation.
- Remove mentions of the HW_WD_DISABLE variable, as it's no longer used.
- Remove the HEART_BEAT_BOOT_DELAY variable, as it was only used for the
hardware watchdog.
|
|
|
|
|
|
|
|
|
|
|
|
* siri/appups-20.0:
Update sasl/test/test_lib.hrl with recent versions of kernel and stdlib
Update appups in kernel, stdlib and sasl for OTP-20
|
|
|
|
'gomoripeti/kernel/controlling_proc_badarg_doc/PR-1208/OTP-14022' into maint
* gomoripeti/kernel/controlling_proc_badarg_doc/PR-1208/OTP-14022:
controlling_process can return {error, badarg}
|
|
|
|
* sverker/kernel-erts-dependency:
kernel: Add lost dependency to erts-8.1
|
|
In OTP-19.1 (c70ca686fe269db6079a2ca1c7e09cdfc0cfa903)
erts_code_purger:finish_after_on_load/2 was added
and called by code_server.erl.
|
|
For gen_tcp, gen_udp and gen_sctp controlling_process/2 can return
badarg if erlang:port_connect/2 fails with badarg. This can easily
happen if the new owner is not alive but in some race condition also
when the socket is closed right before port_connect/2 (and after the
previous socket function)
This commit documents this behaviour.
|
|
|
|
The code of add_ref/6 contained an assertion that somehow appeared
twice. Also, a recent commit (2b2de61) suppressed an unmatched
return warning in a non-optimal way. By changing the return type
of hipe_bifs:add_ref/2 to be 'ok' instead of [] the code can be
cleaned up and simplified.
While at it, fixed the wrong indentation of some nearby code.
|
|
|
|
when failing to load native code.
|
|
by introducing hipe_bifs:commit_patch_load/1
that creates the HipeModule.
|
|
|
|
Just like the BEAM loader state (as returned by
erlang:prepare_loading/2), the HiPE loader state is contained in a magic
binary.
Eventually, we will separate HiPE loading into a prepare and a finalise
phase, like the BEAM loader, where the prepare phase will be implemented
by hipe_unified_loader and the finalise phase be implemented in C by
hipe_load.c and beam_load.c, making prepare side-effect free and
finalise atomic. The finalise phase will be exposed through the
erlang:finish_loading/1 API, just like the BEAM loader, as this will
allow HiPE and BEAM modules to be mixed in the same atomic "commit".
The usage of a loader state makes it easier to keep track of all
resources allocated during loading, and will not only make it easy to
prevent leaks when hipe_unified_loader crashes, but also paves the way
for proper, leak-free, unloading of HiPE modules.
|
|
and hipe_bifs:update_code_size
|
|
A step toward better integration of hipe load and purge
Highlights:
* code_server no longer needs to call hipe_unified_loader:post_beam_load/1
Instead new internal function hipe_redirect_to_module()
is called by loading BIFs to patch native call sites if needed.
* hipe_purge_module() is called by erts_internal:purge_module/2
to purge any native code.
* struct hipe_mfa_info redesigned and only used for exported
functions that are called from or implemented by native code.
A list of native call sites (struct hipe_ref) are kept for each hipe_mfa_info.
* struct hipe_sdesc used by hipe_find_mfa_from_ra()
to build native stack traces.
|
|
as they are lists of #fundef records
|
|
* rickard/time-unit/OTP-13831:
Replace usage of deprecated time units
|
|
* nathanl/kernel/write_file-uses-writev/PR-1149/OTP-13909:
Let file:write_file/3 use writev
|
|
|
|
|
|
|
|
Previously, this function would turn any input into a single binary
before writing. This meant it could not take advantage of the `writev`
system call if it was given a list of binaries and told to write with
`raw` mode.
To see this, start an erlang shell on the parent commit, and also
start this dtrace script:
https://github.com/evanmiller/tracewrite
like this:
sudo dtrace -s tracewrite.d -p $(pgrep beam)
In the erlang shell, run the following:
file:write_file("/tmp/tmp.txt", [<<97,98>>, <<98,97>>], [raw]).
In the dtrace output, you will see that the system call used is `write`.
Now repeat with this commit, and you will see that `writev` is used.
|
|
Also update already deprecated calls.
|
|
|
|
* raimo/diffserv-socket-option/OTP-13582:
Tune 'tclass' semantics
Implement IPV6_TCLASS
|