aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2019-01-28erts: Add magic port control numbersSverker Eriksson
to increase the probablity of a nice badarg from erlang:port_control.
2019-01-28Merge PR-2108 from sverker/ets-doc-iter-oddity/OTP-15325Sverker Eriksson
Add ETS doc note about subtle iteration oddities
2019-01-28crypto: Fix type spec rsa_sign_verify_opt()Péter Dimitrov
Add missing type {rsa_mgf1_md, sha2} to rsa_sign_verify_opt. This commit fixes dialyzer warnings when crypto users configured explicit MGF1 hash function for RSA PSS signatures. Change-Id: Ie11b1c73fc0d111303e256a578a2fd7b0d09b18a
2019-01-28ssl: Fix dialyzer warningsPéter Dimitrov
Change-Id: Icc6c1433dba8d35f81162ef8100292bf2ba53c71
2019-01-28beam_validator: Add explicit assertions for fragile termsJohn Högberg
We haven't seen any related bugs so far, but all instructions that place a term in another ought to reject fragile inputs. It can't hurt to check.
2019-01-28beam_validator: Refactor type managementJohn Högberg
Our current type management (based on set_type_reg etc) is rather error-prone, often requiring special cases on a per-instruction basis. This commit replaces nearly all ad-hoc mechanisms with more general abstractions: * assign - Moves a term. * create_term - Creates a new term. * extract_term - Extracts a term from another, maintaining fragility as required. * update_type - Adds more type information about a register. * type_test - Helper function for type tests that subtracts on failure and meets on success.
2019-01-28beam_except: Eliminate unsafe function_clause translationBjörn Gustavsson
The translation from `error(function_clause, Args)` to a jump to the `func_info` label is not safe if there is a stack frame.
2019-01-28ssl: Add 'Finished'Péter Dimitrov
Implement Finished message on the server side. Change-Id: Ie0d054ac80f7eb47797273e1878990335112e923
2019-01-28ssl: Use HKDF hash function in Transcript-HashPéter Dimitrov
Two hash functions needed to create the CertificateVerify message. One for creating the Transcript-Hash and another for the digital signature. Transcript-Hash uses the HKDF hash of the selected cipher suite, the digital signature uses the hash defined by the selected signature scheme. Change-Id: Ife68ec123682d9aaf42c6b46cc2608e1df8be8d6
2019-01-28ssl: Improve test of 1-RTT handshakePéter Dimitrov
Change-Id: Iaffe5d6e402448f1da5e37b0e55829fa72af310d
2019-01-28ssl: Update certificate_verifyPéter Dimitrov
Change-Id: I6adacc846f938d1ca1eb1a798780cc804b501a71
2019-01-28ssl: Update function build_contentPéter Dimitrov
Change-Id: I91c5866f1400c3ad9c7eab1292c3ceb32a482c70
2019-01-28ssl: Fix encoding of the Certificate messagePéter Dimitrov
Fix encoding of extensions in CertificateEntries. Change-Id: I776a2210d2aa51cde3be5e0bc87d9beb8d63825c
2019-01-28ssl: Add EncryptedExtensionsPéter Dimitrov
Send empty EncryptedExtensions after ServerHello. Update ssl logger. Change-Id: Id57fdb52c360a1125ac1a735ee37c433bfb69a0a
2019-01-28ssl: Fix encoding of empty extensionsPéter Dimitrov
Change-Id: Ia18cda4e2b43dc863a24ac4838718adc788b08b1
2019-01-28ssl: Fix key schedule and traffic keysPéter Dimitrov
Fix key schedule and traffic key calculation. Add test for the server side calculation of shared secrets and traffic keys. Change-Id: Ia955e5e8787f3851bdb3170723e6586bdf4548ca
2019-01-28ssl: Encode/decode CertificateVerifyPéter Dimitrov
Implement encoding/decoding of CertificateVerify. Update property tests with CertificateVerify. Refactor state handling function: 'do_negotiated'. Change-Id: Ifa066076960120717ddb472dc45fcc7a16a517d0
2019-01-28Speed up beam_ssa_deadBjörn Gustavsson
Compilation of code similar the following would be very slow: uts46_map(CP) when 0 =< CP, CP =< 44 -> '3'; uts46_map(CP) when 45 =< CP, CP =< 46 -> 'V'; uts46_map(CP) when 48 =< CP, CP =< 57 -> 'V'; %% More than 2500 similar lines follows. . . . The code is from from: https://github.com/benoitc/erlang-idna/blob/3eb54ccbfa6fb917c0f4ca9197da337ad888ffe0/src/idna_mapping.erl#L6780 By using information about skippable blocks, the beam_ssa_dead pass can be sped up to compile idna_mapping.erl about 10 times faster.
2019-01-28Speed up ssa_opt_merge_blocksBjörn Gustavsson
It is never possible to merge a block ending in a switch with the next block, so it is not necessary to call `beam_ssa:successors/1` in that case. Avoiding the call slightly improves compilation speeds for switches with many branches.
2019-01-28Fix crash in beam_ssa_typeBjörn Gustavsson
To improve compilation times, beam_ssa_type keeps track of variables that are only used once and don't keep types for those variables. As currently implemented, it turns to be unsafe. Change it to only keep track of variables that are only used in the terminator of the block they are defined in. https://bugs.erlang.org/browse/ERL-840
2019-01-28beam_ssa_opt: Make phase/4 tail-recursiveBjörn Gustavsson
If compilation failed, the name of the current function *and* all previously compiled functions would be printed because phase/4 was not tail-recursive. https://bugs.erlang.org/browse/ERL-840
2019-01-25Merge branch 'maint'Hans Nilsson
* maint: ssh: Internal refactor and ct:log -> ct:pal ssh: Change unit in measurements ssh: Invert ssh_bench
2019-01-25ssh: Internal refactor and ct:log -> ct:palHans Nilsson
2019-01-25ssh: Change unit in measurementsHans Nilsson
2019-01-25ssh: Invert ssh_benchHans Nilsson
2019-01-25Merge branch 'maint'Hans Nilsson
* maint: crypto: Reorg crypto: Misc fixes: double time, calibrate once
2019-01-25crypto: ReorgHans Nilsson
2019-01-25crypto: Misc fixes: double time, calibrate onceHans Nilsson
2019-01-25Merge branch 'maint'Lukas Larsson
* maint: Updated OTP version Prepare release Include erlang-logo128.png in release Enable setting custom application icon for Mac OS X through environment variable Update to icon with better resolution
2019-01-25Merge branch 'maint-21' into maintLukas Larsson
* maint-21: Updated OTP version Prepare release
2019-01-25Merge pull request #2029 from richcarl/mnesia-read-local-if-availableDan Gudmundsson
Mnesia should always use the local context if available OTP-15550
2019-01-25Merge pull request #2094 from jfacorro/change-application-icon-mac-os-xDan Gudmundsson
Enable a way to change the application icon for Mac OS X in wx
2019-01-25Merge branch 'maint'Siri Hansen
2019-01-25Merge branch 'siri/cover/searchable-uncovered/OTP-15542' into maintSiri Hansen
* siri/cover/searchable-uncovered/OTP-15542: [cover] Make uncovered lines searchable in html output [cover] Right-align number of hits in html output
2019-01-25Merge branch 'john/compiler/trim-ignore-annos'John Högberg
* john/compiler/trim-ignore-annos: beam_trim: Ignore type annotations
2019-01-25Merge branch 'john/compiler/misc-validator-fixes/ERL-832'John Högberg
* john/compiler/misc-validator-fixes/ERL-832: Make the beam_validator smarter again, again
2019-01-25Merge pull request #2106 from bjorng/bjorn/compiler/fewer-movesBjörn Gustavsson
Reduce redundant moves and register shuffling
2019-01-25Merge pull request #2104 from bjorng/bjorn/compiler/ssa-opt-tail-phisBjörn Gustavsson
Introduce optimizations of tail building
2019-01-24Merge branch 'maint'Rickard Green
* maint: Pluggable distribution socket implementation for EI
2019-01-24Merge branch 'rickard/ei-ext-maint/OTP-15442' into maintRickard Green
* rickard/ei-ext-maint/OTP-15442: Pluggable distribution socket implementation for EI
2019-01-24ssl: Correct check for delayed close due to undliverd dataIngela Anderton Andin
Could cause connection processes not terminate when they should
2019-01-24stdlib: Add ets doc note about subtle iteration odditiesSverker Eriksson
as it has been made more relevant with the introduction of write_concurrency for ordered_set.
2019-01-24Make the beam_validator smarter again, againJohn Högberg
The fix in f9ea85611faca82c7494449ddb8bcb1ef1d194cb didn't consider that the tested register could be aliased.
2019-01-24beam_trim: Ignore type annotationsJohn Högberg
The type annotations inserted by beam_ssa_type and beam_ssa_bsm would inadvertently disable stack trimming, as unknown instructions are considered unsafe.
2019-01-24Merge branch 'maint'Sverker Eriksson
2019-01-24Merge PR-2103 from sverker/ets-iteration-doc/OTP-15545Sverker Eriksson
Clarify ETS docs about table iterations
2019-01-24stdlib: Clarify ets docs about table iterationsSverker Eriksson
2019-01-24Introduce optimizations of tail phisBjörn Gustavsson
Try to eliminate short blocks that starts with a phi node and end in a return. For example: Result = phi { Res1, 4 }, { literal true, 5 } Ret = put_tuple literal ok, Result ret Ret The code in this block can be inserted at the end blocks 4 and 5. Thus, the following code can be inserted into block 4: Ret:1 = put_tuple literal ok, Res1 ret Ret:1 And the following code into block 5: Ret:2 = put_tuple literal ok, literal true ret Ret:2 Which can be further simplified to: ret literal {ok, true} This transformation may lead to more code improvements, for example: * Stack trimming * Fewer test_heap instructions * Smaller stack frames
2019-01-24Prepare releaseErlang/OTP
2019-01-24Merge branch 'ingela/inets/httpc-ipv6-brackets/OTP-15544' into maint-21Erlang/OTP
* ingela/inets/httpc-ipv6-brackets/OTP-15544: inets: httpc - Do not use bracked addresses to gen_tcp or ssl calls