aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2017-12-14Merge pull request #1653 from tonyrog/makedep_side_effectBjörn Gustavsson
Add -MMD option to erlc OTP-14830
2017-12-13Merge tag 'OTP-20.1.7.1'Lukas Larsson
=== OTP-20.1.7.1 === Changed Applications: - kernel-5.4.0.1 Unchanged Applications: - asn1-5.0.3 - common_test-1.15.2 - compiler-7.1.3 - cosEvent-2.2.1 - cosEventDomain-1.2.1 - cosFileTransfer-1.2.1 - cosNotification-1.2.2 - cosProperty-1.2.2 - cosTime-1.2.2 - cosTransactions-1.3.2 - crypto-4.1 - debugger-4.2.3 - dialyzer-3.2.2 - diameter-2.1.2 - edoc-0.9.1 - eldap-1.2.2 - erl_docgen-0.7.1 - erl_interface-3.10 - erts-9.1.5 - et-1.6.1 - eunit-2.3.4 - hipe-3.16.1 - ic-4.4.2 - inets-6.4.4 - jinterface-1.8 - megaco-3.18.2 - mnesia-4.15.1 - observer-2.5 - odbc-2.12 - orber-3.8.3 - os_mon-2.4.3 - otp_mibs-1.1.1 - parsetools-2.1.5 - public_key-1.5.1 - reltool-0.7.5 - runtime_tools-1.12.2 - sasl-3.1 - snmp-5.2.8 - ssh-4.6.2 - ssl-8.2.2 - stdlib-3.4.2 - syntax_tools-2.1.3 - tools-2.11 - wx-1.8.2 - xmerl-1.3.15 Conflicts: OTP_VERSION lib/kernel/doc/src/notes.xml lib/kernel/doc/src/os.xml lib/kernel/src/os.erl lib/kernel/vsn.mk otp_versions.table
2017-12-13Merge branch 'bjorn/compiler/use-stacktrace-syntax'Björn Gustavsson
* bjorn/compiler/use-stacktrace-syntax: Use the new syntax for retrieving stack traces
2017-12-13Merge pull request #1654 from bjorng/bjorn/kernel/file_io_serverBjörn Gustavsson
Slightly optimize reading of cooked files in list mode
2017-12-13Updated OTP versionOTP-20.1.7.1Lukas Larsson
2017-12-13Prepare releaseLukas Larsson
2017-12-13Merge branch 'lukas/kernel/os_cmd_max_size/OTP-14823' into HEADLukas Larsson
* lukas/kernel/os_cmd_max_size/OTP-14823: kernel: Add os:cmd/2 with max_size option
2017-12-13kernel: Add os:cmd/2 with max_size optionLukas Larsson
2017-12-13Merge branch 'maint'Henrik Nord
2017-12-11Merge branch 'maint'Lars Thorsen
2017-12-08Use the new syntax for retrieving stack tracesBjörn Gustavsson
2017-12-08Updated OTP versionOTP-20.2Erlang/OTP
2017-12-08Update release notesErlang/OTP
2017-12-08Update version numbersErlang/OTP
2017-12-08Update primary bootstrapBjörn Gustavsson
2017-12-08Merge branch 'lars/ssl/update-runtime-dependencies' into maintLars Thorsen
* lars/ssl/update-runtime-dependencies: [ssl] Update runtime dependencies
2017-12-08Merge branch 'maint'Hans Nilsson
* maint: ssh: Update runtime dependencies of ssh
2017-12-08Merge branch 'hans/ssh/update_runtime_dep' into maintHans Nilsson
* hans/ssh/update_runtime_dep: ssh: Update runtime dependencies of ssh
2017-12-08Merge pull request #1634 from bjorng/bjorn/get_stacktrace-syntax/OTP-14692Björn Gustavsson
Add syntax in try/catch to retrieve the stacktrace directly
2017-12-08Merge branch 'bjorn/compiler/cover-v3_codegen'Björn Gustavsson
* bjorn/compiler/cover-v3_codegen: v3_codegen: Simplify #k_guard_break{} v3_codegen: Remove uncovered clause in bs_rename_ctx/4 Cover handling of #k_call{} in v3_codegen:bsm_rename_ctx/4 v3_codegen: Move guard_cg_list/6 to a more logical place v3_codegen: Remove unnecessary clause for handling #cg_block{} v3_codegen: Remove unnecessary adding of variable to set
2017-12-08[ssl] Update runtime dependenciesLars Thorsen
2017-12-08ssh: Update runtime dependencies of sshHans Nilsson
2017-12-08Slightly optimize reading of cooked files in list modeBjörn Gustavsson
In general, the new NIF-based file routines are faster than the old efile driver. However, on some computers, building the entire OTP system is somewhat slower. It turns out that it is because 'erlc' cheated by turning off the IO thread pool (using '+A0') to avoid context switches between scheduler threads and threads in the IO thread pool. The new file routines perform IO on dirty IO threads, and there is (by intent) no way to force the operations to occur on scheduler threads to avoid the context switches What we can do to is to use a small (4Kb) read-ahead buffer for files opened for reading (only) in list mode (which is how the compiler opens its input files). The buffering reduces the number of context switches between scheduler threads and dirty IO threads. On my computer that seems to slightly speed up building of the entire OTP system. The buffer should do no harm. The only potential for harm I can think of is random access to a file opened in read mode, where the read-ahead buffer could slightly decrease performance. That does not seems to be a likely use case in practice, though.
2017-12-07Merge branch 'hasse/stdlib/base64/OTP-14624'Hans Bolinder
* hasse/stdlib/base64/OTP-14624: stdlib: Add base64 benchmarks stdlib: Do not check base64 input more than needed stdlib: Minor optimization of base64 stdlib: Use binary_to_list in base64 when it is faster stdlib: Optimize base64 functions
2017-12-07Merge branch 'maint'Anders Svensson
2017-12-07Merge branch 'anders/diameter/typo/OTP-14805' into maintAnders Svensson
* anders/diameter/typo/OTP-14805: vsn -> 2.1.3 Update appup for 20.2 Fix doc typo
2017-12-07v3_codegen: Simplify #k_guard_break{}Björn Gustavsson
It turns out that we don't need to keep track of locked variables, because the locked variables are always the same variables that will be alive after a #k_guard_break{}.
2017-12-07v3_codegen: Remove uncovered clause in bs_rename_ctx/4Björn Gustavsson
Remove handling of #k_match{} in bsm_rename_ctx/4. It can never be reached because bsm_rename_ctx/4 will never recurse into a block that is not in the scope of a #k_protected{}, and in a #k_protected{}, #k_match{} is not allowed.
2017-12-07Cover handling of #k_call{} in v3_codegen:bsm_rename_ctx/4Björn Gustavsson
2017-12-07v3_codegen: Move guard_cg_list/6 to a more logical placeBjörn Gustavsson
Put guard_cg_list/6 directly after guard_cg/5.
2017-12-07v3_codegen: Remove unnecessary clause for handling #cg_block{}Björn Gustavsson
The function guard_cg/5 handles constructs found within the records #k_guard_clause{] and #k_protected{}. Since #k_guard_clause{} can only contain a #k_protected{}, and #k_protected{} in turn cannot contain a #cg_block{}, the clause for handling #cg_block{} in guard_cg/5 is never executed and can be removed.
2017-12-07v3_codegen: Remove unnecessary adding of variable to setBjörn Gustavsson
The variable being added will already be there (added by v3_kernel).
2017-12-07Merge pull request #1652 from ↵Björn Gustavsson
bjorng/bjorn/compiler/fix-excessive-allocations/ERL-514 Avoid excessive stack frame allocation OTP-14808
2017-12-07Merge branch 'john/erts/fix-invalid-name-xlat'John Högberg
2017-12-07Merge branch 'john/erts/fix-debug-dirty-nif-tracing'John Högberg
2017-12-06"Fix" tracing of dirty NIFs on debug buildsJohn Högberg
When a dirty NIF is executed a "schedule in" trace event is generated, which may in turn result in a generic system task being created, causing the process to be scheduled out as it can't run dirty with pending tasks. This is usually fine since said system task is seldom created, but ERTS_FORCE_ENIF_SEND_DELAY was de-facto always on for debug builds, causing the process to bounce between dirty and normal schedulers forever. This commit is not a complete fix and it can go off the rails even on normal builds; if there's a lot of dirty jobs lined up and the receiver's msgq lock happens to be busy at the wrong time, the additional trace messages generated through this will hammer the lock and keep everything bouncing.
2017-12-06Add translation for ERROR_INVALID_NAMEJohn Högberg
Most functions return this if they're given an invalid path, eg. if they contain "<" or ">". ENOENT may seem like a strange translation, but that's what open(2) returns when fed garbage, so we'll roll with that.
2017-12-06Add a test case for ERL-514Björn Gustavsson
2017-12-06beam_dead: Improve creation of select_val from is_eq_exactBjörn Gustavsson
When converting a comparison BIF (such as '=:=') to a test instruction, run the other optimizations on the result. When trying to combine is_eq_exact tests, handle the case that is_eq_exact is followed by a jump instead of a label to handle a test that has been newly converted from a BIF. Taken together, those changes will coalesce more is_eq_exact instructions into select_val instructions.
2017-12-06v3_codegen: Avoid excessive stack frame allocationBjörn Gustavsson
A 'case' or 'if' that does not occur last in a function clause will always force a stack frame. The reasoning behind this is that in most uses of 'case' there will be a function call from within the 'case'. When there is a function call, the stack frame is needed both to save the continuation pointer and to save any X registers that will need to survive the call. When there is no function call from a 'case', the resulting stack frame is annoying. There will be register shuffling, and the existence of the stack frame may thwart many optimizations (for example, in beam_dead). Therefore, add an extra pass to v3_codegen to avoid creating a stack frame when not needed. https://bugs.erlang.org/browse/ERL-514
2017-12-06Add -MMD option to erlcTony Rogvall
The compile option makedep_side_effect, erlc -MMD, instructs the compiler to emit dependencies and continue to compile as normal.
2017-12-05Merge branch 'john/erts/erlexec-bindir-path/OTP-14719'John Högberg
2017-12-05Merge branch 'maint'Ingela Anderton Andin
Conflicts: lib/ssl/src/ssl_cipher.erl lib/ssl/src/ssl_handshake.erl
2017-12-05Ensure that bindir is first in $PATH on startupJohn Högberg
erlexec adds $ROOT/erts-<vsn>/bin and $ROOT/bin first in $PATH on startup, but didn't do so if they were in the $PATH already, which meant that the bindir didn't point to the current release after a downgrade.
2017-12-05Merge branch 'ingela/ssl/cipher-suites/OTP-14749' into maintIngela Anderton Andin
* ingela/ssl/cipher-suites/OTP-14749: ssl: Use maps for cipher suites internally
2017-12-05ssl: Use maps for cipher suites internallyIngela Anderton Andin
This is a preparation for improvements to come in option handling and support for TLS-1.3
2017-12-05Merge branch 'maint'John Högberg
2017-12-05Merge branch 'john/erts/lcnt-fix-reg-proc-names/OTP-14803' into maintJohn Högberg
2017-12-04Merge branch 'maint'Peter Andersson
2017-12-04Merge branch 'peppe/common_test/auto_cleanup/OTP-13832' into maintPeter Andersson
* peppe/common_test/auto_cleanup/OTP-13832: Add tests and doc for the new remaining_test_procs function Implement function that finds disposable test processes Tag Common Test system processes using process dictionary Add app name tag in process dictionary OTP-13832