aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2019-03-08Clarify beam_load error message on file/module mismatchJosé Valim
This is particularly important in case insensitive filesystems, where attempting to invoke a module with the wrong case leads to confusing error messages: 1> erlpress_core:foo(). beam/beam_load.c(1428): Error loading module 'erlpress_core': module name in object code is erlPress_core Loading of erlPress_core.beam failed: :badfile This commit replaces object code by BEAM file and improves the readability of the message.
2018-08-24Merge branch 'maint'Rickard Green
* maint: Refer to OTP Versions Tree from documentation
2018-08-24Merge branch 'rickard/otp-versions-tree/OTP-15264' into maintRickard Green
* rickard/otp-versions-tree/OTP-15264: Refer to OTP Versions Tree from documentation
2018-08-24Refer to OTP Versions Tree from documentationRickard Green
Refer to the OTP Versions Tree in the documentation in order to better illustrate how the version scheme works
2018-08-24Update primary bootstrapBjörn Gustavsson
2018-08-24Merge branch 'bjorn/compiler/ssa'Björn Gustavsson
* bjorn/compiler/ssa: Travis CI: Run the SSA linter in the Linux64SmokeTest build Remove retired compiler passes Introduce a new SSA-based intermediate format hipe_beam_to_icode: Correct translation of get_map_elements beam_dead: Remove shortcut of binary matching instruction beam_bs: Remove optimizations that are easier done on SSA format Don't run unsafe compiler passes Simplify optimizations by introducing is_nil late beam_utils: Make is_tagged_tuple a pure test beam_except: Enhance recognition of function_clause exceptions beam_validator: Infer the types of copies in a smarter way beam_validator: Improve merge of cons and literal list beam_validator: Strengthen validation of func_info beam_validator: Allow get_tuple_element before dsetelement beam_validator: Don't transfer state to labels that can't be reached beam_validator: Improve type analysis for tuples beam_validator: Be more careful when updating try/catch state beam_trim: Handle an empty list of instructions v3_core: Number argument variables in ascending order Teach binary instructions to use Y registers as destination OTP-14894
2018-08-24Merge branch 'maint'Lars Thorsen
* maint: Updated OTP version Prepare release Updated the engine load functionality inets: Prepare for release inets: Use status code 501 when no mod_* handles the request ssl: Prepare for release ssl: Make sure that a correct cipher suite is selected ssl: Make sure that a correct cipher suite is selected
2018-08-24Merge branch 'maint-21' into maintLars Thorsen
* maint-21: Updated OTP version Prepare release Updated the engine load functionality inets: Prepare for release inets: Use status code 501 when no mod_* handles the request ssl: Prepare for release ssl: Make sure that a correct cipher suite is selected ssl: Make sure that a correct cipher suite is selected
2018-08-24Travis CI: Run the SSA linter in the Linux64SmokeTest buildBjörn Gustavsson
2018-08-24Remove retired compiler passesBjörn Gustavsson
2018-08-24Introduce a new SSA-based intermediate formatBjörn Gustavsson
v3_codegen is replaced by three new passes: * beam_kernel_to_ssa which translates the Kernel Erlang format to a new SSA-based intermediate format. * beam_ssa_pre_codegen which prepares the SSA-based format for code generation, including register allocation. Registers are allocated using the linear scan algorithm. * beam_ssa_codegen which generates BEAM assembly code from the SSA-based format. It easier and more effective to optimize the SSA-based format before X and Y registers have been assigned. The current optimization passes constantly have to make sure no "holes" in the X register assignments are created (that is, that no X register becomes undefined that an allocation instruction depends on). This commit also introduces the following optimizations: * Replacing of tuple matching of records with the is_tagged_tuple instruction. (Replacing beam_record.) * Sinking of get_tuple_element instructions to just before the first use of the extracted values. As well as potentially avoiding extracting tuple elements when they are not actually used on all executions paths, this optimization could also reduce the number values that will need to be stored in Y registers. (Similar to beam_reorder, but more effective.) * Live optimizations, removing the definition of a variable that is not subsequently used (provided that the operation has no side effects), as well strength reduction of binary matching by replacing the extraction of value from a binary with a skip instruction. (Used to be done by beam_block, beam_utils, and v3_codegen.) * Removal of redundant bs_restore2 instructions. (Formerly done by beam_bs.) * Type-based optimizations across branches. More effective than the old beam_type pass that only did type-based optimizations in basic blocks. * Optimization of floating point instructions. (Formerly done by beam_type.) * Optimization of receive statements to introduce recv_mark and recv_set instructions. More effective with far fewer restrictions on what instructions are allowed between creating the reference and entering the receive statement. * Common subexpression elimination. (Formerly done by beam_block.)
2018-08-23Merge branch 'maint'Ingela Anderton Andin
Conflicts: lib/ssl/src/tls_v1.erl
2018-08-23Merge branch 'ingela/ssl/correct-specs' into maintIngela Anderton Andin
* ingela/ssl/correct-specs: ssl: Correct dialyzer specs
2018-08-23ssl: Correct dialyzer specsIngela Anderton Andin
2018-08-23Updated OTP versionOTP-21.0.6Erlang/OTP
2018-08-23Prepare releaseErlang/OTP
2018-08-23Merge branch 'lars/crypto/multiple-engine-load-21/OTP-15233' into maint-21Erlang/OTP
* lars/crypto/multiple-engine-load-21/OTP-15233: Updated the engine load functionality
2018-08-23Merge branch 'ingela/maint-21/inets/status-501/ERIERL-218/OTP-15215' into ↵Erlang/OTP
maint-21 * ingela/maint-21/inets/status-501/ERIERL-218/OTP-15215: inets: Prepare for release inets: Use status code 501 when no mod_* handles the request ssl: Make sure that a correct cipher suite is selected
2018-08-23Merge branch 'ingela/ssl/maint-21/ECC/ERIERL-210/OTP-15203' into maint-21Erlang/OTP
* ingela/ssl/maint-21/ECC/ERIERL-210/OTP-15203: ssl: Prepare for release ssl: Make sure that a correct cipher suite is selected
2018-08-23Merge branch 'maint'Hans Nilsson
* maint: crypto: doc x25519 & x448 crypto: Test vectors for ecdh x25519 and x448 crypto: Remove the term 'eddh' crypto: Enable EDDH all OpenSSL cryptolib over beta version 1.1.1-pre8 ssh: Doc updates ssh: spec curve25519 & curve448 ssh: Fix non-conforming key generation in kex for x25519 and x448 ssh: Enable curve448-sha512 and curve25519-sha256 ssh: Remove the term 'eddh' crypto: Disable non-working SHA3_224 and SHA3_256 crypto: doc SHA3 (hash & hmac) crypto: Tests for SHA3 crypto: SHA3 hash on OpenSSL-1.1.1
2018-08-23Merge branch 'hans/ssh/x25519_x448/OTP-15133' into maintHans Nilsson
* hans/ssh/x25519_x448/OTP-15133: ssh: Doc updates ssh: spec curve25519 & curve448 ssh: Fix non-conforming key generation in kex for x25519 and x448 ssh: Enable curve448-sha512 and curve25519-sha256 ssh: Remove the term 'eddh'
2018-08-23Merge branch 'hans/crypto/x25519_x448/OTP-15240' into maintHans Nilsson
* hans/crypto/x25519_x448/OTP-15240: crypto: doc x25519 & x448 crypto: Test vectors for ecdh x25519 and x448 crypto: Remove the term 'eddh' crypto: Enable EDDH all OpenSSL cryptolib over beta version 1.1.1-pre8
2018-08-23Merge pull request #1932 from josevalim/jv-sb-bm/OTP-15238Lukas Larsson
Do not allocate good and bad shifts for single byte lookups
2018-08-23Merge branch 'hans/crypto/SHA3/OTP-15153' into maintHans Nilsson
* hans/crypto/SHA3/OTP-15153: crypto: Disable non-working SHA3_224 and SHA3_256 crypto: doc SHA3 (hash & hmac) crypto: Tests for SHA3 crypto: SHA3 hash on OpenSSL-1.1.1
2018-08-23Merge branch 'maint'Hans Nilsson
* maint: ssh: Doc updates ssh: some benchmarking of [email protected] ssh: -spec ssh: Add [email protected] cipher crypto: doc poly1305 crypto: doc chacha20 crypto: Error in test case crypto: chacha20 test case crypto: poly1305 test case crypto: -spec crypto: chacha20 cipher crypto: Mac POLY1305 if >=OpenSSL 1.1.1-pre8
2018-08-23Merge branch 'hans/ssh/[email protected]/OTP-15209' into maintHans Nilsson
* hans/ssh/[email protected]/OTP-15209: ssh: Doc updates ssh: some benchmarking of [email protected] ssh: -spec ssh: Add [email protected] cipher
2018-08-23Merge branch 'hans/crypto/poly1305_and_chacha20/OTP-15164' into maintHans Nilsson
* hans/crypto/poly1305_and_chacha20/OTP-15164: crypto: doc poly1305 crypto: doc chacha20 crypto: Error in test case crypto: chacha20 test case crypto: poly1305 test case crypto: -spec crypto: chacha20 cipher crypto: Mac POLY1305 if >=OpenSSL 1.1.1-pre8
2018-08-23crypto: doc x25519 & x448Hans Nilsson
2018-08-23crypto: Test vectors for ecdh x25519 and x448Hans Nilsson
2018-08-23crypto: Remove the term 'eddh'Hans Nilsson
2018-08-23crypto: Enable EDDH all OpenSSL cryptolib over beta version 1.1.1-pre8Hans Nilsson
2018-08-23ssh: Doc updatesHans Nilsson
2018-08-23ssh: spec curve25519 & curve448Hans Nilsson
2018-08-23ssh: Fix non-conforming key generation in kex for x25519 and x448Hans Nilsson
That is, curve25519-sha256, [email protected] and curve448-sha512
2018-08-23ssh: Enable curve448-sha512 and curve25519-sha256Hans Nilsson
2018-08-23ssh: Remove the term 'eddh'Hans Nilsson
2018-08-23crypto: Disable non-working SHA3_224 and SHA3_256Hans Nilsson
2018-08-23crypto: doc SHA3 (hash & hmac)Hans Nilsson
2018-08-23crypto: Tests for SHA3Hans Nilsson
2018-08-23crypto: SHA3 hash on OpenSSL-1.1.1Hans Nilsson
crypto:hash/2, crypto:hash_init/1, crypto:hash_update/2, crypto:hash_final/1
2018-08-23ssh: Doc updatesHans Nilsson
2018-08-23ssh: some benchmarking of [email protected]Hans Nilsson
2018-08-23ssh: -specHans Nilsson
2018-08-23ssh: Add [email protected] cipherHans Nilsson
2018-08-23crypto: doc poly1305Hans Nilsson
2018-08-23crypto: doc chacha20Hans Nilsson
2018-08-23crypto: Error in test caseHans Nilsson
2018-08-23crypto: chacha20 test caseHans Nilsson
2018-08-23crypto: poly1305 test caseHans Nilsson
2018-08-23crypto: -specHans Nilsson