aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2017-09-04Try to avoid generating unecessary do/while wrappersBjörn Gustavsson
Make the generated code easier to read.
2017-09-04Eliminate unecessary instruction macro i_move_call_only()Björn Gustavsson
2017-09-04Merge branch 'maint'Ingela Anderton Andin
2017-09-04Merge branch 'ingela/ssl/session-cache-max/OTP-14556' into maintIngela Anderton Andin
* ingela/ssl/session-cache-max/OTP-14556: ssl: Mend Max session handling
2017-09-04ssl: Mend Max session handlingIngela Anderton Andin
The commit 256e01ce80b3aadd63f303b9bda5722ad313220f was a misunderstanding that actually broke the implementation. It is not so important to keep specific max, rather max is a threshold when the table should be shrinked as to not grow indefinitely. New sessions are created when the id is created and may be short lived it they are not registered for reuse due to handshake failure.
2017-09-04Merge branch 'maint'Ingela Anderton Andin
2017-09-04Merge branch 'ingela/ssl/error-msg-enhancment' into maintIngela Anderton Andin
* ingela/ssl/error-msg-enhancment: ssl: Add the role (server or client) to the alert message Addition to 972f9121311efcfb50db727ab3e930ebc95ab314 solved in OTP-14236
2017-09-03Merge branch 'maint'Anders Svensson
2017-09-03Merge branch 'anders/diameter/decode_format/OTP-14511' into maintAnders Svensson
* anders/diameter/decode_format/OTP-14511: Map less in traffic suite Fix decode_format doc oversights Rename decode_format false to none Tweak {decode_format, false} semantics Fix dialyzer spec
2017-09-03Merge branch 'anders/diameter/config_consistency/OTP-14555' into maintAnders Svensson
* anders/diameter/config_consistency/OTP-14555: Fix strict_arities blunder Fix minor error-handling blunder
2017-09-03Merge branch 'anders/diameter/Proxy-Info/OTP-9869' into maintAnders Svensson
* anders/diameter/Proxy-Info/OTP-9869: Fix handling of Proxy-Info in answers formulated by diameter
2017-09-03Merge branch 'anders/diameter/Experimental-Result/OTP-14511' into maintAnders Svensson
* anders/diameter/Experimental-Result/OTP-14511: Fix extraction of Experimental-Result for counter keys
2017-09-03Merge branch 'anders/diameter/performance/OTP-14521' into maintAnders Svensson
* anders/diameter/performance/OTP-14521: Rename variable Fix decode of too many generic AVPs Enumerate AVPs in diameter_avp.index (again)
2017-09-03Merge branch 'anders/diameter/sctp/OTP-10889' into maintAnders Svensson
* anders/diameter/sctp/OTP-10889: Send unordered on all outbound diameter_sctp streams Delay rotation of diameter_sctp outbound streams Exercise unordered delivery in traffic suite Use unordered delivery on a lone outbound stream in diameter_sctp
2017-09-01Map less in traffic suiteAnders Svensson
By just decoding to map in the client, instead of to record first. The record decode is exercised enough in the server and in other suites.
2017-09-01Fix decode_format doc oversightsAnders Svensson
diameter_codec(3) referred only to the record format in places. The configurable format was added in commits 722fa415 and then 55e65b26.
2017-09-01Rename decode_format false to noneAnders Svensson
Which reads better and makes it easier to distinguish this false from others.
2017-09-01Tweak {decode_format, false} semanticsAnders Svensson
Represent the decoded message by its atom-valued name in diameter_packet.msg, which makes trace much more readable. A diameter_avp.value is untouched (ie. undefined): the AVP name is already in the name field.
2017-09-01Fix dialyzer specAnders Svensson
Which dialyzer hasn't noticed.
2017-09-01Merge branch 'anders/diameter/config_consistency/OTP-14555' into ↵Anders Svensson
anders/diameter/decode_format/OTP-14511 * anders/diameter/config_consistency/OTP-14555: Fix strict_arities blunder Fix minor error-handling blunder Let strict_mbit and incoming_maxlen be configured per transport Let a service configure default transport options Rename type evaluable -> eval Document transport_opt() strict_capx Rename transport_opt() capx_strictness to strict_capx
2017-09-01Fix strict_arities blunderAnders Svensson
Remove value from the merged map, not from the maps being merged. Bundled in commit 5f3becad.
2017-09-01Merge branch 'maint'Sverker Eriksson
2017-09-01Merge branch 'sverker/20/binary_to_atom-utf8-crash/ERL-474/OTP-14590' into maintSverker Eriksson
* sverker/20/binary_to_atom-utf8-crash/ERL-474/OTP-14590: erts: Fix crash in binary_to_atom/term for invalid utf8
2017-09-01Merge branch 'maint'Lukas Larsson
2017-09-01Merge branch 'lukas/scripts/dialyze_all_applications' into maintLukas Larsson
* lukas/scripts/dialyze_all_applications: scripts: dialyze more applications in automation scripts
2017-09-01scripts: dialyze more applications in automation scriptsLukas Larsson
2017-09-01ssl: Add the role (server or client) to the alert messageIngela Anderton Andin
It is desirable to be as specific as possible in the info message, so there can be no mistake if the alert is form the peer or generated by us. This use to be an error message, but it is better to make it an info message as sending an ALERT ending the connection is an expected behaviour.
2017-09-01Update primary bootstrapBjörn Gustavsson
2017-09-01Merge pull request #1550 from bjorng/bjorn/erts/unique-literalsBjörn Gustavsson
De-duplicate bignums in the literal pool
2017-09-01Merge pull request #1554 from bjorng/bjorn/compiler/opt-bsm/ERL-444Björn Gustavsson
Eliminate unnecessary 'move' instructions OTP-14594
2017-09-01Merge branch 'bjorn/erts/improve-beam-ops'Björn Gustavsson
* bjorn/erts/improve-beam-ops: Optimize dispatch of loop_rec from recv_set Add missing -no_next directives Eliminate three arguments for erts_hibernate() Eliminate three arguments for the apply() helper Assign machine registers for X86-64 Annotate arithmetic instructions with likely/unlikely Add annotations for likely/unlikely ops.tab: Mark infrequently used instructions as %cold Introduce '%warm' and beam_warm.h
2017-08-31Fix minor error-handling blunderAnders Svensson
Leading to this admonition from dialyzer: diameter_config.erl:670: The variable No can never match since previous clauses completely covered the type 'ok' The throw was caught, but resulted in an error return without the intended information.
2017-08-31Optimize dispatch of loop_rec from recv_setBjörn Gustavsson
We KNOW that recv_set instruction is immediately followed by a loop_rec instruction.
2017-08-31Add missing -no_next directivesBjörn Gustavsson
2017-08-31Eliminate three arguments for erts_hibernate()Björn Gustavsson
We don't need to pass x(0), x(1), and x(2) because they can already be found in the register array.
2017-08-31Eliminate three arguments for the apply() helperBjörn Gustavsson
We don't need to pass x(0), x(1), and x(2) because they can already be found in the register array.
2017-08-31Assign machine registers for X86-64Björn Gustavsson
Keep frequently used variables in machine registers.
2017-08-31Annotate arithmetic instructions with likely/unlikelyBjörn Gustavsson
We expect that: * An arithmetic instruction is more likely to succeed than to fail. * An arithmetic instruction is more likely to have small operands than bignum operands.
2017-08-31Add annotations for likely/unlikelyBjörn Gustavsson
In a correct Erlang programs, we can expect that: * A GC test instruction (such as test_heap) is more likely not to do the GC. * A BIF is more likely to succeed than to fail. * A BIF is more likely to fail in a guard than in a body. * An apply or fun call is likely to succeed. Annotate conditions accordingly.
2017-08-31ops.tab: Mark infrequently used instructions as %coldBjörn Gustavsson
Instructions that used to be implemented in beam_emu.c were not marked as cold as it would make no difference.
2017-08-31Introduce '%warm' and beam_warm.hBjörn Gustavsson
The bit syntax instructions are mixed among other instructions in beam_hot.h and beam_cold.h. Introduce a new hotness level called '%warm' with is associated file beam_warm.h. Mark all bit syntax instructions as '%warm'.
2017-08-31Merge branch 'maint'Sverker Eriksson
2017-08-31Merge PR-1543 from gootik/gootik-ets-docSverker Eriksson
Changes confusing example of a bad guard in ets:fun2ms
2017-08-31Merge branch 'maint'Rickard Green
* maint: Upgrade to PCRE 8.41 from PCRE 8.40
2017-08-31Merge branch 'rickard/pcre-8.41' into maintRickard Green
OTP-14574 * rickard/pcre-8.41: Upgrade to PCRE 8.41 from PCRE 8.40
2017-08-31Fix handling of Proxy-Info in answers formulated by diameterAnders Svensson
RFC 6733 says this: 6.2. Diameter Answer Processing When a request is locally processed, the following procedures MUST be applied to create the associated answer, in addition to any additional procedures that MAY be discussed in the Diameter application defining the command: ... o Any Proxy-Info AVPs in the request MUST be added to the answer message, in the same order they were present in the request. This wasn't done when a handle_request callback returned a Result-Code in an 'answer-message' or protocol_error tuple, causing diameter itself to construct the answer message. This form of answer is just a convenience, since the callback can always return an answer that it constructs itself.
2017-08-31Fix extraction of Experimental-Result for counter keysAnders Svensson
The introduction of decode_format in commit 722fa415 (and then 55e65b26) meant the value was not necessarily the intended tuple.
2017-08-31Rename variableAnders Svensson
It's no longer the AVP name as of the parent commit, but the name of the field/member the value will be stored in. Typically the AVP name, but possibly 'AVP'.
2017-08-31Fix decode of too many generic AVPsAnders Svensson
That is, when the arity of an 'AVP' field has an upper bound. This shouldn't happen in practice, but if an AVP is known but its name not explicit in the message grammar then its count was confused with that of AVPs packed into the 'AVP' field.
2017-08-31Enumerate AVPs in diameter_avp.index (again)Anders Svensson
Commit 96cd627a changed the way the index field was used, but the enumeration is used in at least one known application (as a pointer from elements of diameter_packet.errors to elements of diameter_packet.avps) and the motivation for the change is questionable: the lookup that was avoided was unnecessary given that it was already performed in incrementing a counter. Revert to enumerating as before in the non-relay case, but not in the relay case since there's no corresponding usecase.