Age | Commit message (Collapse) | Author |
|
Conflicts:
erts/emulator/beam/erl_alloc.types
erts/emulator/beam/erl_bif_info.c
erts/emulator/beam/erl_process.c
erts/preloaded/ebin/erts_internal.beam
|
|
|
|
Change scheduler responsiveness to 'check_schedulers'.
|
|
|
|
* bernardd/gen_tcp_export_socket:
Export gen_tcp:socket() type
OTP-13380
|
|
|
|
|
|
In addition, the heart API is extended with the following functions:
* heart:set_options/1
* heart:get_options/0
If heart:set_options([scheduler]) is set, heart will check
scheduler responsiveness before every heartbeat to the heart port.
|
|
|
|
* bjorn/remove-test_server/OTP-12705:
Remove test_server as a standalone application
Erlang mode for Emacs: Include ct.hrl instead test_server.hrl
Remove out-commented references to the test_server applications
Makefiles: Remove test_server from include path and code path
Eliminate use of test_server.hrl and test_server_line.hrl
|
|
* legoscia/prettier-default-error-logger/OTP-13325:
Prettify default error_logger output somewhat
|
|
* maint:
kernel: Correct contract for inet:getifaddrs/1
|
|
See also http://bugs.erlang.org/browse/ERL-95.
|
|
The test_server application has previously been deprecated.
In OTP 19, we will move relevant parts of test_server into the
common_test application. Test suites that include test_server.hrl
must be updated to include ct.hrl instead. Test suites that include
test_server_line.hrl must removed that inclusion. Test suites that
call the test_server module directly will continue to work in OTP 19.
The test suites for Erlang/OTP are built and executed in exactly
the same way as previously.
Here are some more details.
The modules test_server*.erl and erl2html2.erl in lib/test_server/src
have been moved to common_test/src.
The test_server.hrl and test_server_line.hrl include files have
been deleted. The macros in test_server.hrl have been copied into
lib/common_test/include/ct.hrl.
The ts*.erl modules and their associated data files in
lib/test_server/src has been been moved to the new directory
lib/common_test/test_server. The ts* modules are no longer built
to lib/common_test/ebin. They will only built when 'make release_tests'
is executed.
The test suite for test_server has been moved to lib/common_test/test.
The rest of the files have been deleted.
|
|
Cleanliness.
|
|
Since no test suites includede test_server.hrl, there is no need
to have test_server in the include path or code path.
|
|
As a first step to removing the test_server application as
as its own separate application, change the inclusion of
test_server.hrl to an inclusion of ct.hrl and remove the
inclusion of test_server_line.hrl.
|
|
* maint:
xmerl: Remove 'no_return' Dialyzer warnings
xmerl: Add suppression of Dialyzer warnings
eunit: Add suppression of Dialyzer warnings
debugger: Add suppression of Dialyzer warnings
kernel: Add suppression of Dialyzer warnings
mnesia: Add suppression of Dialyzer warnings
observer: Add suppression of Dialyzer warnings
runtime_tools: Add suppression of Dialyzer warnings
stdlib: Add suppression of Dialyzer warnings
test_server: Add suppression of Dialyzer warnings
tools: Add suppression of Dialyzer warnings
Conflicts:
lib/stdlib/src/erl_lint.erl
lib/stdlib/src/otp_internal.erl
|
|
|
|
|
|
|
|
Before a heartbeat to the port program a responsiveness check of
the schedulers is performed. If the responsiveness check fails,
stalls, the heartbeat will not be performed (as intended).
|
|
* heart:set_callback/2
* heart:get_callback/0
* heart:clear_callback/0
The callback is called before every heartbeat to the heart port.
The callback needs to return 'ok' if the validation is correct.
|
|
|
|
The default error logger, the one in use before a more sophisticated
error logger can be installed, has rather terse output, in part because
it cannot rely on io:format. This patch attempts to improve the error
logger within that constraint:
- Print timestamps as YYYY-MM-DD HH:MM:SS
- For error reports with format strings, just print the format string
and the format arguments on separate lines
- For error reports with tuple lists, print each pair on a separate line
|
|
Eliminate duplicated code by factoring out the common code
for starting erl_boot_server and a slave node.
Also, in the new start_boot_server/0 helper, fix a problem
with Linux systems that assign 127.0.1.1 as the IP address
for the hostname.
Also stop using the -setcookie option when starting a node
using -loader inet. The inet loading method doesn't use
the distribution anymore.
|
|
|
|
* legoscia/patch-3:
Fix documentation of net_kernel:allow/1
OTP-13299
|
|
When handling a gen_tcp socket, it's handy to be able to give it its proper type
and have dialyzer be able to validate it, rather than falling back on using
port(). The gen_udp equivalent is already exported.
|
|
* lukas/erts/msacc:
Update preloaded modules
erts: Make msacc alloctor type thread safe
Silence compiler
erts: Fix msacc testcase on some windowses
erts: Add power saving cpu feature tests and use them
erts: Refactor perf counter internal interface
erts: Add rdtscp instruction check
erts: Fix hrtime for windows
erts: use correct function for perf counter on non-x86
erts: Fix msacc win32 debug compile error
erts: Add microstate accounting
erts, kernel: Add os:perf_counter function
erts: Add ERTS_WRITE_UNLIKELY
|
|
* maint:
Use nano second time unit in tracing
|
|
* rickard/monotonic-time-improvements/OTP-13222:
Use nano second time unit in tracing
|
|
|
|
The perf_counter is a very very cheap and high resolution timer
that can be used to timestamp system events. It does not have
monoticity guarantees, but should on most OS's expose a monotonous
time.
A special instruction has been created for this counter to further
speed up fetching it.
OTP-12908
|
|
* maint:
Introduce time management in native APIs
Introduce time warp safe replacement for safe_fixed option
Introduce time warp safe trace timestamp formats
Conflicts:
erts/emulator/beam/erl_bif_trace.c
erts/emulator/beam/erl_driver.h
erts/emulator/beam/erl_nif.h
erts/emulator/beam/erl_trace.c
erts/preloaded/ebin/erlang.beam
|
|
* rickard/monotonic-time-improvements/OTP-13222:
Introduce time management in native APIs
Introduce time warp safe replacement for safe_fixed option
Introduce time warp safe trace timestamp formats
|
|
* bjorn/kernel/clean-up-code_server:
code_server: Add specs for all exported functions
code_server: Add types to the state record
code_server: Don't export internal system_* functions
Simplify starting of code server
Remove first argument of code_server:call()
|
|
|
|
* maint:
Update documentation for code-loading functions
code: Correct the types for error returns
Eliminate run-time system crash in code:load_abs/1
|
|
Some of the error reasons were not explained.
|
|
The specifications for functions that load code in the 'code'
module (e.g. code:load_file/1) have some problems:
* The specs claim that the functions can return {error,on_load}, but
they never do. However, they can return {error,on_load_failure} if
the -on_load function in a module fails.
* The specs claim that the functions can return {error,native_code},
but they never do.
While we are it, also extend the on_load_errors/1 test case to test
that the load functions return {error,on_load_failure} when an
-on_load function fails.
|
|
|
|
There is no reason to export system_continue/3 and system_terminate/4
from code_server. Servers that use proc_lib and 'sys' to handle system
message do need those functions exported, but code_server contains a
modified copy of the system message handling code from 'sys', and that
code only make local calls to system_continue/3 and
system_terminate/4.
|
|
There is unnecessary knowledge about the -nostick option
in the 'kernel' module. -nostick can be handled entirely
in the 'code' module.
There is no need to have both code:start_link/0 and
code:start_link/1. code:start_link/0 is sufficient.
Also get rid of error handling for things that cannot happen:
The 'init' module has made sure that init:get_argument(root)
can't fail, so there is no need for any error-reporting code.
(See e1dc0aa4.)
We also don't need to test the return value from
code_server:start_link/1, because it will always return {ok,Pid}
(or crash).
|
|
Remove the first argument for code_server:call(). It makes no
sense. The only caller is 'code'.
Note that the code_server module is undocumented and that
code_server:call() is an internal helper function.
|
|
The run-time system would terminate if code:load_abs/1 was
called with a filename containing any non-latin1 characters.
The reason is that code_server would attempt to construct a
module name from the filename using list_to_atom/1 and that
atoms currently are limited to the latin1 character set.
But how should the error be reported?
I have decided to that the simplest and least confusing way
is to move the call to list_to_atom/1 to 'code' module and
let it crash the calling process. The resulting stack back
trace will make it clear what the reason for the crash was.
|
|
For some reason, there is a test in code_server that
hipe_unified_loader is loaded before trying to call it. The test was
added in R9B, but it is not clear why. Before starting the code
server, the 'code' module would always load hipe_unified_loader;
thus there is now way that the test can ever fail.
|
|
|
|
The following functions in the 'code' module only allow the
module argument to an atom:
load_file/1
load_binary/3
ensure_loaded/1
delete/1
purge/1
soft_purge/1
get_object_code/1
Therefore, there is no reason that the corresponding implementation in
code_server should allow the module to be either an atom or a
string. Only accept an atom and remove the helper functions to_atom/1
and do_mod_call/4.
|
|
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.
|