Age | Commit message (Collapse) | Author |
|
Refactor, simplify, and modernize the code to facilitate future
improvements in the following commits.
|
|
Add the possibility to truncate big messages to avoid running out
of memory.
|
|
Refactor, simplify, and modernize the code to facilitate future
improvements in the following commits.
|
|
A long time ago, errors from the emulator itself was sent as
messages that would end up in the handle_info/2 function.
Those clauses in handle_info/2 can be removed.
The code for handling events tagged 'info' instead of 'info_msg'
can also be taken out.
|
|
|
|
|
|
The test case did not test the log files were created. And they
were not created, because filelib:ensure_dir/1 was used
incorrectly.
|
|
Report handlers are not automatically removed. That means
that the report handler will remain installed until the entire
running of the stdlib test suite finishes. That could potentially
cause problems.
|
|
The unzip_to_binary/1 and zip_to_binary/1 test cases need the
test_server's priv_dir to be empty. On Windows, file system
pecularities can prevent us from emptying priv_dir.
Since the point of this test case is not to test file operations
on Windows, simplify things by working in a newly created sub
directory of priv_dir.
|
|
* maint:
dialyzer: Fix erlang:abs/1
|
|
* hb/dialyzer/fix_abs_bug/OTP-12948:
dialyzer: Fix erlang:abs/1
|
|
Instruction get_map_elements might destroy target registers when the fail-label is taken.
Only seen for patterns with two, and only two, target registers.
Specifically: we copy one register, and then jump.
foo(A,#{a := V1, b := V2}) -> ...
foo(A,#{b := V}) -> ...
call foo(value, #{a=>whops, c=>42}).
corresponding assembler:
{test,is_map,{f,5},[{x,1}]}.
{get_map_elements,{f,7},{x,1},{list,[{atom,a},{x,1},{atom,b},{x,2}]}}.
%% if 'a' exists but not 'b' {x,1} is overwritten, jump {f,7}
{move,{integer,1},{x,0}}.
{call_only,3,{f,10}}.
{label,7}.
{get_map_elements,{f,8},{x,1},{list,[{atom,b},{x,2}]}}.
%% {x,1} (src) is read with a corrupt value
{move,{x,0},{x,1}}.
{move,{integer,2},{x,0}}.
{call_only,3,{f,10}}.
The fix is to remove 'opt_moves' pass for get_map_elements instruction
in the case of two or more destinations.
Reported-by: Valery Tikhonov
|
|
|
|
|
|
Fix the range type of erlang:abs/1.
|
|
Avoid printing sensitive information in supervisor logs
|
|
Conflicts:
erts/emulator/beam/erl_printf_term.c
erts/emulator/beam/erl_term.c
erts/emulator/beam/utils.c
|
|
of a process with a matchstate on the stack.
|
|
If the process stack contained a match state
the print function would crash the vm as it was not
recognized by tag_val_def().
Add new MATCHSTATE_DEF returned by tag_val_def().
All other callers either ignore it or has a default
clause to handle invalid terms.
|
|
Editorial changes
|
|
Editorial Changes
|
|
|
|
|
|
|
|
* sverk/hipe-fix-literal-crc:
erts,hipe,dialyzer: Fix hipe checkum of target runtime system
erts: Change THE_NON_VALUE to not be hard coded in hipe compiler
OTP-12962
OTP-12963
OTP-12964
|
|
Main problem:
A faulty HIPE_LITERAL_CRC was not detected by the loader.
Strangeness #1:
Dialyzer should ask the hipe compiler about the target checksum,
not an internal bif.
Strangeness #2:
The HIPE_SYSTEM_CRC checksum was based on the HIPE_LITERALS_CRC
checksum.
Solution:
New HIPE_ERTS_CHECKSUM which is an bxor of the two (now independent)
HIPE_LITERALS_CRC and HIPE_SYSTEM_CRC.
HIPE_LITERALS_CRC represents values that are assumed to stay constant
for different VM configurations of the same arch, and are therefor
hard coded into the hipe compiler.
HIPE_SYSTEM_CRC represents values that may differ between VM variants.
By default the hipe compiler asks the running VM for this checksum,
in order to create beam files for the same running VM.
The hipe compiler can be configured (with "make XCOMP=yes ...") to
create beam files for another VM variant, in which case HIPE_SYSTEM_CRC
is also hard coded.
ToDo:
Treat all erts properties the same. Either ask the running VM or hard
coded into hipe (if XCOMP=yes). This will simplify and reduce the risk
of dangerous mismatches. One concern might be the added overhead
from more frequent calls to hipe_bifs:get_rts_param.
|
|
|
|
* sverk/hipe-maps-merge-wrapper:
erts: Fix hipe bug for maps:merge/2
erts: Beautify hipe wrapper macro
OTP-12965
|
|
* maint:
ssh: dh_gex defautl values increased. Groups added
|
|
* hans/ssh/more_dh_group/OTP-12937:
ssh: dh_gex defautl values increased. Groups added
|
|
|
|
* maint:
ssh: Reorganize and extend the test suites
|
|
* hans/ssh/test_reorg/OTP-12230:
ssh: Reorganize and extend the test suites
|
|
Add ssh_trpt_test_lib:instantiate/2, ssh_test_lib:default_algoritms/2 and algo_intersection/2
ssh_to_openssh_SUITE uses only algos that sshd and ssh client supports
raised timeout limit in ssh_basic_SUITE:ssh_connect_arg4_timeout
Break out ssh_renegotiate_SUITE from ssh_basic_SUITE
Move std_daemon/4 to ssh_test_lib.erl
Add ssh_algorithms_SUITE
Add ssh_options_SUITE
Add assymetric testing of algorithms
Add openssh tests to ssh_algorithms_SUITE
Remove algo tests from ssh_sftp_SUITE (now in ssh_algorithms_SUITE)
Removed kex algo tests from in ssh_basic_SUITE because they are now in ssh_algorithm_SUITE.
fixed test case ssh_protocol_SUITE:no_common_alg_server_disconnects/1
|
|
* maint:
ssh: Elliptic Curve Diffie-Hellman (ECDH)
|
|
* hans/ssh/kex_ecdh/OTP-12622:
ssh: Elliptic Curve Diffie-Hellman (ECDH)
|
|
Adds ecdh-sha2-nistp256
ecdh-sha2-nistp384
ecdh-sha2-nistp512
and OTP-12938
hmac-sha2-512
|
|
Add forgotten HIPE_WRAPPER_BIF_DISABLE_GC which
could lead to stack-heap overrun if unlucky with the
yielding during maps:merge when called by native hipe code.
|
|
|
|
|
|
|
|
|
|
|
|
Lots of pthread platforms unnecessarily falled back on the pipe/select
solution. This since we tried to use the same monotonic clock source
for pthread_cond_timedwait() as used by OS monotonic time. This has
been fixed on most platforms by using another clock source.
Darwin can however not use pthread_cond_timedwait() with monotonic
clock source and has to use the pipe/select solution. On darwin we
now use select with _DARWIN_UNLIMITED_SELECT in order to be able to
handle a large amount of file descriptors.
|
|
* maint:
Optimize zip:unzip/2 when uncompressing to memory
wx: Fix assert log test
debugger: Fix broken debugger:quick/3 start
Remove erlang:now() and random usage in tests
|
|
* dgud/stdlib/zip-optimize/OTP-12950:
Optimize zip:unzip/2 when uncompressing to memory
|
|
* dgud/debugger/fix-case-clause/OTP-12911:
debugger: Fix broken debugger:quick/3 start
|
|
* dgud/wx/fix-test:
wx: Fix assert log test
|
|
* dgud/mnesia/use_now_in_tests:
Remove erlang:now() and random usage in tests
|
|
|