aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2018-05-16Update etpRickard Green
2018-05-16Replace previous suspend in setnode/3Rickard Green
2018-05-16New process suspend implementation based on async signalingRickard Green
2018-05-16Teach HiPE to yield from receiveRickard Green
2018-05-16Merge pull request #1811 from bjorng/bjorn/disable-fpe-supportBjörn Gustavsson
Disable the use of floating point exceptions
2018-05-16Merge branch 'sverker/sig-msg-notify-bug'Sverker Eriksson
2018-05-15erts: Fix bug when scheduling monitor-msg comboSverker Eriksson
Bug introduced in master by 613cde66c25464121f2f6dace99782bad0e07d9b
2018-05-15erts: Refactor new erts_make_dirty_proc_handledSverker Eriksson
from ensure_dirty_proc_handled as an outline function callable from inline functions.
2018-05-15Do not hold runq lock while deleting a processRickard Green
2018-05-15ssl: Correct key_usage checkIngela Anderton Andin
The Key Usage extension is described in section 4.2.1.3 of X.509, with the following possible flags: KeyUsage ::= BIT STRING { digitalSignature (0), nonRepudiation (1), -- recent editions of X.509 have -- renamed this bit to contentCommitment keyEncipherment (2), dataEncipherment (3), keyAgreement (4), keyCertSign (5), cRLSign (6), encipherOnly (7), decipherOnly (8) } In SSL/TLS, when the server certificate contains a RSA key, then: either a DHE or ECDHE cipher suite is used, in which case the RSA key is used for a signature (see section 7.4.3 of RFC 5246: the "Server Key Exchange" message); this exercises the digitalSignature key usage; or "plain RSA" is used, with a random value (the 48-byte pre-master secret) being encrypted by the client with the server's public key (see section 7.4.7.1 of RFC 5246); this is right in the definition of the keyEncipherment key usage flag. dataEncipherment does not apply, because what is encrypted is not directly meaningful data, but a value which is mostly generated randomly and used to derive symmetric keys. keyAgreement does not apply either, because that one is for key agreement algorithms which are not a case of asymmetric encryption (e.g. Diffie-Hellman). The keyAgreement usage flag would appear in a certificate which contains a DH key, not a RSA key. nonRepudiation is not used, because whatever is signed as part of a SSL/TLS key exchange cannot be used as proof for a third party (there is nothing in a SSL/TLS tunnel that the client could record and then use to convince a judge when tring to sue the server itself; the data which is exchanged within the tunnel is not signed by the server). When a ECDSA key is used then "keyAgreement" flag is needed for beeing ECDH "capable" (as opposed to ephemeral ECDHE)
2018-05-15erts: Make cpu_timestamp use per thread on LinuxLukas Larsson
If we don't use per thread the value becomes completely nonsensical on systems with more than one scheduler. We keep the old solaris behaviour in order to support the option, but it only really works when using a single scheduler.
2018-05-15Merge branch 'lukas/erts/otp-21-misc'Lukas Larsson
* lukas/erts/otp-21-misc: erts: Fix unused variable warning in unix prim file erts: Fix erts_os_times warning kernel: Fix comment in kernel_config kernel: Refactor erl_signal_handler startup kernel: Remove doc for unused browser_cmd variable
2018-05-15erts: Fix unused variable warning in unix prim fileLukas Larsson
2018-05-15erts: Fix erts_os_times warningLukas Larsson
2018-05-15kernel: Fix comment in kernel_configLukas Larsson
The error_logger is no longer added here.
2018-05-15kernel: Refactor erl_signal_handler startupLukas Larsson
2018-05-14Optimize string lowercase, uppercase and casefold for ASCII charactersDan Gudmundsson
2018-05-14Merge branch 'hans/ssh/timers/OTP-15019'Hans Nilsson
* hans/ssh/timers/OTP-15019: ssh: Test cases fixes ssh: Use generic_timer for option idle_time ssh: Refactor connection_msg handling ssh: Unfold function in the single used place ssh: idle_timer sends special msg instead of EXIT
2018-05-14ssh: Test cases fixesHans Nilsson
2018-05-14ssh: Use generic_timer for option idle_timeHans Nilsson
2018-05-14ssh: Refactor connection_msg handlingHans Nilsson
2018-05-14ssh: Unfold function in the single used placeHans Nilsson
2018-05-14ssh: idle_timer sends special msg instead of EXITHans Nilsson
2018-05-14Merge branch 'hasse/tools/xref_fix'Hans Bolinder
* hasse/tools/xref_fix: tools: Handle fast restarts of Xref server
2018-05-14Merge branch 'hans/ssh/rekey_limit/OTP-15069'Hans Nilsson
* hans/ssh/rekey_limit/OTP-15069: ssh: Test the infinity rekey_limit option ssh: Add infinity as values to rekey_limit
2018-05-14Merge pull request #1813 from legoscia/erl_driver.xml-typosLukas Larsson
Fix typos in erl_driver.xml
2018-05-13Add typespecs for netns and bind_to_device optionsChris Spiegel
Some networking functions accept the options netns (to switch network namespaces) and bind_to_device (to bind to a device with SO_BINDTODEVICE), but these functions are not annotated to accept these options, which causes dialyzer to raise issues. This patch applies these type specs to the options for gen_tcp:connect/3,4, gen_tcp:listen/2, gen_udp:open/1,2, and gen_sctp:open/0,1,2, as these are the documented functions which accept the netns and bind_to_device options.
2018-05-13Check for the overlap between maps and iteratorsJesper Louis Andersen
Add tests which passes on Erlang release 20.0, but have changed since then in later branches. The tests works in a "gap" between the old test cases and the new test cases in order to make it stricter what to return in this case.
2018-05-13dialyzer: Do not emit warnings for unreachable funsHans Bolinder
Warnings are not generated for funs residing in dead code. In particular, warnings like "The created fun has no local return" are no longer generated for funs declared in clauses or functions that cannot be run.
2018-05-10Fix typos in erl_driver.xmlMagnus Henoch
2018-05-09erts: Try fix contant maps:next orderSverker Eriksson
Symptom: maps:iterator+next returns different orders for the exact same map. Problem: Number of cached key-values within iterator term depends on number of input reductions to erts_internal_map_next_3. Solution: Build cached key-values in destructive non-reverse order to not affect iteration order.
2018-05-09ssh: Test the infinity rekey_limit optionHans Nilsson
2018-05-09Merge branch 'bjorn/efficiency-guide'Björn Gustavsson
* bjorn/efficiency-guide: Remove obsolete example in Efficiency Guide
2018-05-09Disable the use of floating point exceptionsBjörn Gustavsson
Floating point exceptions has been disabled since 2011 on macOS (fa0f8d2c29b) and on Linux since 2014 (c7ddafbe6dbc) because there were unresolved stability issues. Floating point exceptions are not disabled by default on FreeBSD, and if OTP is compiled with gcc (as opposed to clang) floating point exceptions will be used. 81a6adab693a introduced a bug in erts/emulator/Makefile.in which would cause the building of OTP to fail if floating point exceptions were enabled. The bug was not noticed because it turns out that none of our daily build machines has floating point exceptions enabled. Since floating point exceptions is not tested, we should not expect them to work reliably on any platform. Therefore, turn off floating point exceptions unconditionally in erts/configure.in. For the moment we will keep the code in the runtime system that handles floating point exceptions. (This commit also fixes the bug in erts/emulator/Makefile.in, in case floating point exceptions ever become reliable and enabled.) https://bugs.erlang.org/browse/ERL-620
2018-05-09ssh: Add infinity as values to rekey_limitHans Nilsson
Zero is removed from the Minutes in the new tuple value to remove a loop possibility. The zero is kept for bytes since that is not dangerous and a removal would be an unnecssary incompatibility.
2018-05-09kernel: Remove doc for unused browser_cmd variableLukas Larsson
2018-05-09Merge branch 'siri/logger-fix'Siri Hansen
* siri/logger-fix: Update reference manuals for logger Update some specs in logger
2018-05-09Fix minor issuesRichard Carlsson
2018-05-09Merge branch 'maint'Hans Nilsson
* maint: Updated OTP version Prepare release ssh: Renegotiation -> renegotiate ssh: Fix DH group exchange server bug for PuTTY and others following draft-draft-00 from 2001 and not the rfc4419 ssh: Fix server crashes for exit-normal signals
2018-05-09Merge branch 'maint-19' into maintHans Nilsson
* maint-19: Updated OTP version Prepare release ssh: Renegotiation -> renegotiate ssh: Fix DH group exchange server bug for PuTTY and others following draft-draft-00 from 2001 and not the rfc4419 ssh: Fix server crashes for exit-normal signals Conflicts: OTP_VERSION lib/ssh/doc/src/notes.xml lib/ssh/src/ssh_connection_handler.erl lib/ssh/src/ssh_transport.erl lib/ssh/vsn.mk otp_versions.table
2018-05-09Eliminate call to ct:get_progname() in ts_erl_configRichard Carlsson
During cross compilation, the ct module is not available.
2018-05-09Update reference manuals for loggerSiri Hansen
2018-05-09macros.xml: Document ?OTP_RELEASE, -if and -elifTomas Abrahamsson
2018-05-09syntax_tools: Add support for -if and -elifBjörn Gustavsson
2018-05-09epp: Implement the -if and -elif preprocessor directivesBjörn Gustavsson
Libraries or applications that support more than one major release of OTP may need to use conditional compilation of Erlang source code. Here are few examples where it would be necessary or desirable: * To support a new data type or language feature only available in the latest major release (real-world examples: maps and the stacktrace syntax). * To avoid warnings for deprecated functions. * To avoid dialyzer warnings. Previously, to do conditional compilation, one would have to use a parse transform or some external tool such as 'autoconf'. To simplify conditional compilation, introduce the -if and -elif preprocessor directives, to allow code like this to be written: -if(?OTP_RELEASE =:= 21). %% Code that will only work in OTP 21. -else. %% Fallback code. -endif. What kind of expressions should be allowed after an -if? We certainly don't want to allow anything with a side effect, such as a '!' or a 'receive'. We also don't want it to be possible to call erlang:system_info/1, as that could make the code depedent on features of the run-time system that could change very easily (such as the number of schedulers). Requiring the expression to be a guard expression makes most sense. It is to explain in the documentation and easy for users to understand. For simplicity of implementation, only a single guard expression will be supported; that is, the ',' and ';' syntax for guards is not supported. To allow some useful conditions to be written, there is a special built-in function: defined(Symbol) tests whether the preprocessor symbol is defined, just like -ifdef. The reason for having this defined/1 is that the defined test can be combined with other tests, for example: 'defined(SOME_NAME) andalso ?OTP_RELEASE > 21'.
2018-05-08erts: Rename untrapping db_free_*empty*_tableSverker Eriksson
as it's now only used for empty tables by ets:new/2.
2018-05-08erts: Make ets:delete_all_objects yield on fixed tableSverker Eriksson
2018-05-08erts: Optimize ets delete all in fixed tableSverker Eriksson
by only allocating one FixedDeletion with the new "all" flag instead of one FixedDeletion per slot.
2018-05-08erts: Refactor ets select iteration codeSverker Eriksson
* Remove all "mtraversal_" prefixes. * Rename all local context variables as "ctx". * Changed callbacks from function arguments to members of new base context struct "match_callbacks_t" * Remove unnecessary struct initializations "= {0}"
2018-05-08erts: Cleanup ets codeSverker Eriksson