Age | Commit message (Collapse) | Author |
|
Refactor optimization of `Bool =:= true` to make the code
somewhat simpler, as well as potentially apply the optimization
in more cases.
|
|
Always rewriting left-associative andalso/orelse to right-associative
will not change the code (except in very rare cases), but it will
make sure that the transformation is tested.
|
|
|
|
Do the destructive setelement optimization in SSA
|
|
|
|
* siri/logger/pretty-print-config/OTP-15600:
[logger] Add pretty print function for configuration
|
|
|
|
|
|
for enif_send and enif_select_read|write.
|
|
|
|
* sverker/heart-nice-exit/OTP-15599:
erts: Avoid heart killing a nicely exiting emulator
|
|
The expansion of record field updates, when more than one field is
updated, but not a majority of the fields, will create a sequence of
calls to `erlang:setelement(Index, Value, Tuple)` where Tuple in the
first call is the original record tuple, and in the subsequent calls
Tuple is the result of the previous call. Furthermore, all Index
values are constant positive integers, and the first call to
`setelement` will have the greatest index. Thus all the following
calls do not actually need to test at run-time whether Tuple has type
tuple, nor that the index is within the tuple bounds.
Since OTP R7, the `sys_core_dsetel` pass, run as the very last Core
Erlang pass, has optimized this sequence of `setelement` calls to use
a special destructive version of `setelement` (called
`set_tuple_element`) for all but the very first `setelement` in the
sequence.
It turns out that the presence of the `set_tuple_element` in SSA code
is awkward and can prevent or complicate type analysis and aggressive
optimizations.
Therefore, this commit removes the `sys_core_dsetel` pass and
reimplements it for SSA code. The optimization will be done in the
`beam_ssa_pre_codegen` pass (that is, just before code generation and
after running all other SSA code optimization passes).
In most cases, the resulting BEAM code is identical to previous
code. For a few modules, the BEAM code is actually slightly better,
with smaller stack frames.
|
|
* maint:
ssh: Refactor decryption in ssh_protocol_SUITE
|
|
* hans/ssh/cuddle_tests:
ssh: Refactor decryption in ssh_protocol_SUITE
|
|
* maint:
dialyzer: Fix a bug regarding contracts
|
|
* hasse/dialyzer/fix_contract_check/OTP-15562/ERL-845:
dialyzer: Fix a bug regarding contracts
|
|
* john/compiler/cuddle-validator:
compiler: Allow disabling SSA passes in -compile() directives
beam_validator: Infer types from result of all type test BIFs
beam_validator: Infer BIF argument types
beam_validator: type_test in BIFs that only fail on invalid types
beam_validator: Simplify complex branches
beam_validator: Explain why verify_get_map wipes dst registers
beam_validator: fconv means we have a number
beam_validator: Simplify update_ne/eq_types
beam_validator: Remove pointless fragility propagation
beam_validator: Misc cosmetic refactoring
|
|
|
|
The macro command was added quite recently and far from
all of our testmachines have this command
|
|
|
|
* lukas/erts/fix-exit_status-netbsd/OTP-15558:
Fix EV_DISPATCH detection on NetBSD
|
|
* ingela/ssl/dialyzer:
ssl: Correct merge commit thanks to dialyzer
|
|
Also make a weaker spec in ssl_internal.hrl for now as it creates
a conflict between error handling and dialyzer warnings.
|
|
Previously this test suite used a short-cut that didn't work well with the new crypto
API being experimented with in other branches.
This commit uses the legacy decode and decryption functions in ssh_transport. It is of
course normally a bad idea to test something with itself. However, other test suites
test the interoperability with OpenSSH and by that implicitly of the decoding/decryption.
The ssh_protocol_SUITE tests sending malformed and even malicious PDUs to the Erlang/OTP
SSH implementation. Therefore the tests in this suite is not dependent on being different
than thoose of the system under test.
|
|
This fixes compiling against older OTP versions with the +r?VSN
options, which often expand to disabling certain SSA passes to
avoid new instructions.
|
|
|
|
* ingela/ssl/shrink-state:
ssl: Remove duplicate record_cb handling
ssl: Add test case for continued handshake with a timeout
ssl: Use gen_statem named timers to handle connection and recv timeouts
ssl: Move and rename diffie_hellman_keys and srp_keys to kex_keys
ssl: Move key_algorithm to handshake_env
ssl: srp
ssl: Rename
ssl: Move diffie_hellman_params to handshake_env
ssl: Move and rename psk_identity state record field
ssl: Move premaster_secret to handshake_env
ssl: Make flight_state DTLS specific
ssl: Add private_key to connection_env
ssl: Remove unused record field
ssl: Add erl_dist_handle to connection_env
ssl: Add negotiated_version to connection_env
ssl: Add key exchange items to handshake_env
ssl: Add hashsign_algorithm and cert_hashsign_algorithm to handshake_env
ssl: Add downgrade handling to connection_env
ssl: Create connection_env
ssl: Handle renegotiation and extensions in handshake_env
|
|
|
|
Conflicts:
lib/ssl/src/dtls_connection.erl
lib/ssl/src/ssl_connection.erl
lib/ssl/src/ssl_connection.hrl
lib/ssl/src/tls_connection.erl
|
|
* maint:
Updated OTP version
Prepare release
|
|
* maint-21:
Updated OTP version
Prepare release
|
|
Optimise ext table dumping
OTP-15588
|
|
* maint:
Fix showModal crash on Mojave
Add wxGCDC
wx: Add wxDisplay
wx: Change wxFONTWEIGHT enums
Let wxwidgets check events
|
|
* dgud/wx/extend-functionality/OTP-15587:
Fix showModal crash on Mojave
Add wxGCDC
wx: Add wxDisplay
wx: Change wxFONTWEIGHT enums
Let wxwidgets check events
|
|
* maint:
Updated OTP version
Prepare release
|
|
* bjorn/compiler/cuddle-with-tests:
inline_SUITE: Make coverage/1 test cheaper
Remove compile_SUITE:big_file/1
Add test modules that disable all SSA optimizations
Cover erl_bifs.erl
Remove attempt to handle all bs_match_string instructions
Cover exception throwing code in beam_ssa_opt
Parallelize test of listing files
Don't limit the number of processes when running cover
|
|
=== OTP-20.3.2.1 ===
Changed Applications:
- common_test-1.15.4.0.1
Unchanged Applications:
- asn1-5.0.5
- compiler-7.1.5
- cosEvent-2.2.2
- cosEventDomain-1.2.2
- cosFileTransfer-1.2.2
- cosNotification-1.2.3
- cosProperty-1.2.3
- cosTime-1.2.3
- cosTransactions-1.3.3
- crypto-4.2.1
- debugger-4.2.4
- dialyzer-3.2.4
- diameter-2.1.4
- edoc-0.9.2
- eldap-1.2.3
- erl_docgen-0.7.2
- erl_interface-3.10.1
- erts-9.3
- et-1.6.1
- eunit-2.3.5
- hipe-3.17.1
- ic-4.4.3
- inets-6.5
- jinterface-1.8.1
- kernel-5.4.3
- megaco-3.18.3
- mnesia-4.15.3
- observer-2.7
- odbc-2.12.1
- orber-3.8.4
- os_mon-2.4.4
- otp_mibs-1.1.2
- parsetools-2.1.6
- public_key-1.5.2
- reltool-0.7.5
- runtime_tools-1.12.5
- sasl-3.1.1
- snmp-5.2.10
- ssh-4.6.7
- ssl-8.2.5
- stdlib-3.4.5
- syntax_tools-2.1.4
- tools-2.11.2
- wx-1.8.3
- xmerl-1.3.16
* tag 'OTP-20.3.2.1':
Updated OTP version
Prepare release
|
|
* maint:
Add OBSERVER_SCALE environment variable for HiDPI support
|
|
* pr/2105:
Add OBSERVER_SCALE environment variable for HiDPI support
OTP-15586
|
|
|
|
|
|
|
|
* siri/ct/post_end_per_testcase-change-status/ERIERL-282/OTP-15584:
[ct] Allow post_end_per_testcase hook to change tc status after timetrap
|
|
The compiler will usually optimize these into test instructions,
but they'll nevertheless pop up in some cases.
|
|
If we know that a BIF will badarg unless its arguments have certain
types, we can infer that we have at least those types on success.
Note that we can't do this in the general case as the BIF could
fail for reasons other than bad arguments.
|
|
* ingela/ssl/shrink-state:
ssl: Remove duplicate record_cb handling
ssl: Add test case for continued handshake with a timeout
ssl: Use gen_statem named timers to handle connection and recv timeouts
ssl: Move and rename diffie_hellman_keys and srp_keys to kex_keys
ssl: Move key_algorithm to handshake_env
ssl: srp
ssl: Rename
ssl: Move diffie_hellman_params to handshake_env
ssl: Move and rename psk_identity state record field
ssl: Move premaster_secret to handshake_env
ssl: Make flight_state DTLS specific
ssl: Add private_key to connection_env
ssl: Remove unused record field
ssl: Add erl_dist_handle to connection_env
ssl: Add negotiated_version to connection_env
ssl: Add key exchange items to handshake_env
ssl: Add hashsign_algorithm and cert_hashsign_algorithm to handshake_env
ssl: Add downgrade handling to connection_env
ssl: Create connection_env
ssl: Handle renegotiation and extensions in handshake_env
|
|
* maint:
crypto: Fix of engine_SUITE:engine_list test case
|
|
* hans/crypto/cuddle_tests:
crypto: Fix of engine_SUITE:engine_list test case
|
|
|
|
* maint:
Update primary bootstrap
stdlib: Optimize formatted printing of terms
Conflicts:
bootstrap/lib/stdlib/ebin/io_lib.beam
bootstrap/lib/stdlib/ebin/io_lib_format.beam
bootstrap/lib/stdlib/ebin/io_lib_pretty.beam
|