aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kernel/src
AgeCommit message (Collapse)Author
2016-11-29Clarify that the type for disk log data is iodata()Richard Carlsson
2016-11-28Merge branch 'richcarl/code-change-utils/PR-1257/OTP-14059'Björn Gustavsson
* 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
2016-11-25Add code:module_status/1 and modified_modules/0Richard Carlsson
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.
2016-11-23Add license headers to hipe files in kernelRichard Carlsson
2016-11-22Handle prefetched pathsRichard Carlsson
2016-11-22Restructure code:which() and where_is_file()Richard Carlsson
2016-11-21Remove remnants of module package supportRichard Carlsson
2016-11-21Remove vestiges of watchdog support in heartMagnus Henoch
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.
2016-11-17Pass through known size instead of recomputingRichard Carlsson
2016-11-17Use iolist_size instead of local functionRichard Carlsson
2016-11-17Only read log format once in collect loopRichard Carlsson
2016-11-17Eliminate some code duplicationRichard Carlsson
2016-11-17Rename internal function for clarityRichard Carlsson
2016-11-11Merge branch 'siri/appups-20.0'Siri Hansen
* 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
2016-11-09Merge branch 'maint'Raimo Niskanen
2016-11-09Merge branch ↵Raimo Niskanen
'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}
2016-11-07Merge branch 'sverker/distr-debug/PR-1174'Sverker Eriksson
2016-11-03Merge branch 'sverker/kernel-erts-dependency/OTP-14003' into maintSverker Eriksson
* sverker/kernel-erts-dependency: kernel: Add lost dependency to erts-8.1
2016-10-31kernel: Add lost dependency to erts-8.1Sverker Eriksson
In OTP-19.1 (c70ca686fe269db6079a2ca1c7e09cdfc0cfa903) erts_code_purger:finish_after_on_load/2 was added and called by code_server.erl.
2016-10-27controlling_process can return {error, badarg}Péter Gömöri
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.
2016-10-18Restore the erroneously taken out assertionKostis Sagonas
2016-10-18Code cleanup to remove confusing assertionKostis Sagonas
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.
2016-10-17kernel,hipe: Fix dialyzer warningsSverker Eriksson
2016-10-14kernel: Fix strange 'ok' return value from code_serverSverker Eriksson
when failing to load native code.
2016-10-14erts: Fix early hipe patch loadingSverker Eriksson
by introducing hipe_bifs:commit_patch_load/1 that creates the HipeModule.
2016-10-14erts: Move new hipe ref and sdesc lists to loader stateSverker Eriksson
2016-10-14Add a loader state for HiPE code loadingMagnus Lång
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.
2016-10-10erts: Remove unused hipe_bifs:code_sizeSverker Eriksson
and hipe_bifs:update_code_size
2016-10-10erts: Improve hipe load/upgrade/purge machinerySverker Eriksson
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.
2016-10-10hipe_unified_loader: Refactor rename all Addresses to FunDefsSverker Eriksson
as they are lists of #fundef records
2016-09-29Merge branch 'rickard/time-unit/OTP-13831'Rickard Green
* rickard/time-unit/OTP-13831: Replace usage of deprecated time units
2016-09-29Merge branch 'nathanl/kernel/write_file-uses-writev/PR-1149/OTP-13909'Björn Gustavsson
* nathanl/kernel/write_file-uses-writev/PR-1149/OTP-13909: Let file:write_file/3 use writev
2016-09-27Update appups in kernel, stdlib and sasl for OTP-20Siri Hansen
2016-09-27Merge branch 'maint'Siri Hansen
2016-09-26Update appups in kernel and stdlib for OTP versions > 19.1Siri Hansen
2016-09-24Let file:write_file/3 use writevNathan Long
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.
2016-09-19Allow for easier enabling of distribution debugLuis Rascao
Also update already deprecated calls.
2016-09-15Merge branch 'maint'Raimo Niskanen
2016-09-15Merge branch 'raimo/diffserv-socket-option/OTP-13582' into maintRaimo Niskanen
* raimo/diffserv-socket-option/OTP-13582: Tune 'tclass' semantics Implement IPV6_TCLASS
2016-09-15Merge branch 'maint'Björn Gustavsson
* maint: erts: Add nif_SUITE:t_on_load erts: Improve nif_SUITE:upgrade test Don't leak old code when loading a modules with an on_load function Conflicts: erts/preloaded/ebin/erts_code_purger.beam erts/preloaded/ebin/erts_internal.beam erts/preloaded/src/erts_code_purger.erl
2016-09-15Merge branch 'bjorn/erts/on_load/ERL-240/OTP-13893' into maintBjörn Gustavsson
* bjorn/erts/on_load/ERL-240/OTP-13893: erts: Add nif_SUITE:t_on_load erts: Improve nif_SUITE:upgrade test Don't leak old code when loading a modules with an on_load function
2016-09-14Merge branch 'maint'Peter Andersson
2016-09-14Don't leak old code when loading a modules with an on_load functionBjörn Gustavsson
Normally, calling code:delete/1 before re-loading the code for a module is unnecessary but causes no problem. But there will be be problems if the new code has an on_load function. Code with an on_load function will always be loaded as old code to allowed it to be easily purged if the on_load function would fail. If the on_load function succeeds, the old and current code will be swapped. So in the scenario where code:delete/1 has been called explicitly, there is old code but no current code. Loading code with an on_load function will cause the reference to the old code to be overwritten. That will at best cause a memory leak, and at worst an emulator crash (especially if NIFs are involved). To avoid that situation, we will put the code with the on_load function in a special, third slot in Module. ERL-240
2016-09-12Implement IPV6_TCLASSRaimo Niskanen
2016-09-08Fix incorrect priv_dir when adding app's ebin directory to pathPeter Andersson
2016-09-07Merge branch 'tuncer/kernel/on_load-error-string/PR-1155'Björn Gustavsson
* tuncer/kernel/on_load-error-string/PR-1155: Print on_load error in a more useful style
2016-09-05Merge branch 'lukas/kernel/os_cmd_fix_stdin_close/OTP-13867' into maintLukas Larsson
* lukas/kernel/os_cmd_fix_stdin_close/OTP-13867: kernel: Close stdin of commands run in os:cmd
2016-09-02kernel: Close stdin of commands run in os:cmdLukas Larsson
This is needed when running programs that only exit when stdin has been closed, e.g. 'more'.
2016-08-31Print on_load error in a more useful styleTuncer Ayaz
When printing the error term from on_load, insert a newline because the term is never short and will produce hard to read/copy output that is just hanging off to the right.
2016-08-25Replace usage of deprecated time unitsRickard Green