Age | Commit message (Collapse) | Author |
|
86fbd6d76d strengthened type optimization in lets. As a result of
the stronger optimizations, special care had to be taken to
suppress false warnings.
It turns out that false warnings can still slip through. Slapping
on a 'compiler_generated' annotation at the top-level of a
complex term such as #c_tuple{} may not suppress all warnings.
We will need to go deeper into the term to eliminate all warnings.
|
|
Understanding get_map_elements improves the stack trimming done
by beam_trim.
|
|
|
|
beam_utils used to be overly conservative about liveness for
exit instructions such as:
call_ext erlang:exit/1
beam_utils would consider all y registers to be used, to avoid
overwriting a catch or try tag. That does not seem to be a real
risk.
However, we miss opportunities for stack trimming if we consider
y registers used by an exit instruction.
|
|
The run-time system stopped paying attention the 'aligned' flag in bit
syntax construction and matching when bitstrings were introduced in
language.
The beam_asm compiler pass will crash if the 'aligned' flag is given
in bit syntax instructions.
beam_validator still validates the 'aligned' flag. Before
912fea0b712a (which removed the possibility to validate existing
BEAM files), the 'aligned' flag could actually be encountered
when validating a BEAM file.
Since the validation of 'aligned' no longer serves any useful
purpose, remove the validation code.
|
|
set_type_y/3 is far too complicated. Note that we don't need to check
the #st.numy field, because we will detect the error anyway because
the information for the y register will be missing in the #st.y
gb_tree.
There is also a clause that would never match because of a spelling
error (the first "n" was missing in "uninitialized"). That clause
is not needed because the default clause will do fine.
Furthermore, we can break out the special case for handling catch_end
and similar instructions into a new function.
|
|
* egil/opt-instructions/OTP-12690:
erts: Specialize minus and plus instruction
erts: Add move2 specialization for common move patterns
erts: Specialize rem instruction for common case
erts: Specialize band instruction for common case
erts: Batch loads and stores for move_window
erts: Fix loader increment from minus instruction
erts: Add move window instruction
erts: Add instruction move3 for xy and xx
erts: Specialize compare instructions
kernel: Add instruction_count helper to erts_debug
|
|
|
|
* erland/OTP18/snmp/OTP-12452:
snmp: Remove deprecated warning for erlang:now in snmp_verbority
snmp: Change to random use crypto. Remove use of erlang:now
|
|
|
|
* x0id/jinterface_transport_factory:
jinterface: transport factory implementation
fix typo error from recent merge
OTP-12686
|
|
* hans/ssh/improve_docs:
ssh: broken doc links to file functions fixed
|
|
|
|
* derek121/gen_server_doc_grammar:
Fix grammar in docs for multi_call/*
|
|
We cannot use erlang:unique_integer([positive]) here
since this code in run on older test releases as well.
|
|
* bjorn/use-monotonic-time:
supervisor: Correct restart handling
test_server: Use erlang:monotonic_time/0
compile: Teach 'time' option to show three significant decimals
timer: Use monotonic_time/0 in tc/1,2,3
|
|
|
|
Replace the undocumented option 'no_unknown' with the documented
option 'unknown'.
|
|
|
|
|
|
* egil/eprof-totality/OTP-12681:
tools: Add printout of total number of calls and time in eprof
|
|
* egil/core-on-heart-tmo/OTP-12613:
kernel: Document heart environment HEART_KILL_SIGNAL
erts: Enable different abort signal from heart
|
|
|
|
|
|
* ia/ssh/improve_docs:
ssh: Move code example to Users Guide
ssh: Keep dependency info in only one place
ssh: Add links
ssh: Align to alphabetic order
ssh: Change wording to become accurate
ssh: Remove extra whitespace
ssh: Corrected information about error and event logging
ssh: Remove legacy statement
ssh: Technically correct description
Editorial updates
|
|
This patch fixes a bug that causes an SFTP connection to always fail
when {timeout, Timeout} option is used with
ssh_sftp:start_channel. The bug is that the version negotiation timer
is not cancelled upon reception of SSH_FXP_VERSION.
|
|
|
|
|
|
|
|
|
|
Some examples had encountered the space eater.
|
|
|
|
|
|
|
|
The fault/1,2 BIF was removed a long time ago.
|
|
When merging two states, the following fields should be merged
between the states: #st.x, #st.y, #st.numy, #st.ct. Everything
else should be set to the default values in a new state.
|
|
When merging y registers, only the y registers that are found in
both states should be retained.
|
|
|
|
Conflicts:
OTP_VERSION
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Also added some links
|
|
|
|
|
|
SSH application
|
|
fbaa0bec replaced the use of now/0 with erlang:monotonic_time/1 but at
the same time introduced a bug in inPeriod/3 so that it would always
return 'true' (the subtraction Time - Now would always result in
a non-positive number that would always be less than Period).
The symptoms of the bug is that when a child has been restarted the
maximum number of times allowed, the supervisor will terminate,
regardless of how much time that elapses between the restarts.
There was no test case that detected this problem. Add the missing
test case to ensure that this bug stays killed.
Reported-by: Rafał Studnicki
|