aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2017-10-13erts: Implement map iterator using a stackLukas Larsson
This version does not work great as the subtrees created are not proper hash maps. Also it is not all that performant as the extra allocations to keep the stack there is expensive.
2017-10-13stdlib: Introduce maps iterator APILukas Larsson
2017-10-13Merge branch 'maint'Ingela Anderton Andin
2017-10-13Merge branch 'ingela/ssl/remove-deprcated-string' into maintIngela Anderton Andin
* ingela/ssl/remove-deprcated-string: ssl: Use new string functions
2017-10-13Update primary bootstrapBjörn Gustavsson
2017-10-13Merge pull request #1596 from bjorng/bjorn/enhance-try-catchBjörn Gustavsson
(Slightly) optimize catch and try/catch OTP-14683
2017-10-13Merge pull request #1599 from kostis/exception_SUITEBjörn Gustavsson
Explicitly disable HiPE's range analysis
2017-10-13Merge pull request #1600 from kostis/hipe-tests-eclectic-exceptionsBjörn Gustavsson
hipe: Extend the basic_SUITE with one more test
2017-10-12Merge branch 'lukas/erts/use_SIGRTMIN_for_sys_suspend/OTP-14682'Lukas Larsson
* lukas/erts/use_SIGRTMIN_for_sys_suspend/OTP-14682: erts: Use SIGRTMIN on linux for sys_suspend
2017-10-12erts: Use SIGRTMIN on linux for sys_suspendLukas Larsson
The Linux real-time signal is better used on Linux for suspending schedulers during shutdown as it doesn't collide with SIGUSR2 usage of other applications.
2017-10-12Merge branch 'lukas/erts/poll-thread/OTP-14346'Lukas Larsson
* lukas/erts/poll-thread/OTP-14346: erts: Make a copy of erl_poll.c to help debuggers
2017-10-12Merge branch 'rickard/null-chars/ERL-370/OTP-14543'Rickard Green
* rickard/null-chars/ERL-370/OTP-14543: Don't allow null chars in various strings Conflicts: erts/emulator/beam/erl_alloc.types erts/preloaded/ebin/erlang.beam
2017-10-12Merge branch 'maint'Hans Nilsson
2017-10-12Merge branch 'hans/ssh/cuddle_tests' into maintHans Nilsson
2017-10-12ssh: Anonymize unused variables in test suitesHans Nilsson
2017-10-12Merge branch 'maint'Rickard Green
* maint: Revert "Merge branch 'rickard/null-char-filenames/ERL-370/OTP-14543' into maint"
2017-10-12Revert "Merge branch 'rickard/null-char-filenames/ERL-370/OTP-14543' into maint"Rickard Green
This reverts commit 0717a2194e863f3a78595184ccc5637697f03353, reversing changes made to 71a40658a0cef8b3e25df3a8e48a72d0563a89bf.
2017-10-12ssh: ssh_bench_SUITE disable aes_gcmHans Nilsson
2017-10-12ssh: remove dead codeHans Nilsson
2017-10-12Merge branch 'maint'Hans Nilsson
2017-10-12Merge branch 'hans/public_key/fix_verif_host_ip_addr_bug' into maintHans Nilsson
2017-10-12public_key: Fix bug in pkix_verify_hostname with IP addressesHans Nilsson
An IP address could in some circomstances be converted to a list and then to_lower was applied to it. So {$A,1,1,1} was changed to {$a,1,1,1} which of course didn't match....
2017-10-12Merge branch 'maint'Ingela Anderton Andin
2017-10-12Merge branch 'ingela/inets/cgi-env/OTP-14679' into maintIngela Anderton Andin
* ingela/inets/cgi-env/OTP-14679: inets: httpc - fix default timeout in httpc_SUITE inets: ENV should be a string
2017-10-12inets: httpc - fix default timeout in httpc_SUITEIngela Anderton Andin
Timeout must be set in suite/0 or init_per_testcase not init_per_group or init_per_suite
2017-10-12inets: ENV should be a stringIngela Anderton Andin
This is tested by new erts check that will cause badarg when trying to execute scripts via mod_cgi
2017-10-12Merge branch 'maint'Lukas Larsson
Conflicts: erts/emulator/beam/beam_bp.c erts/emulator/beam/erl_process.c
2017-10-12Merge branch 'lukas/erts/tracing/recv_exit_signal_deadlock/OTP-14678' into maintLukas Larsson
* lukas/erts/tracing/recv_exit_signal_deadlock/OTP-14678: erts: Fix lock order when recv tracing trapped exit signal
2017-10-12Merge branch 'lukas/erts/fix_caller_trace_for_apply_bifs/OTP-14677' into maintLukas Larsson
* lukas/erts/fix_caller_trace_for_apply_bifs/OTP-14677: erts: Fix caller trace for apply bifs
2017-10-12erts: Fix lock order when recv tracing trapped exit signalLukas Larsson
2017-10-11Don't allow null chars in various stringsRickard Green
Various places that now reject null chars inside strings - Primitive file operations reject it in filenames. - Primitive environment variable operations reject it in names and values. - os:cmd() reject it in its input. Also '=' characters are rejected by primitive environment variable operations in environment variable names. Documentation has been updated to document null characters in these types of data as invalid. Currently these operations accept null chars at the end of strings, but that will change in the future.
2017-10-11Merge branch 'maint'Rickard Green
* maint: Updated OTP version Update release notes Update version numbers vsn -> 2.1.1 Update appup and code_change for ERIERL-83 Fix missing monitor in diameter_reg Conflicts: OTP_VERSION
2017-10-11Merge branch 'maint-20' into maintRickard Green
* maint-20: Updated OTP version Update release notes Update version numbers vsn -> 2.1.1 Update appup and code_change for ERIERL-83 Fix missing monitor in diameter_reg
2017-10-11Merge pull request #1595 from ↵Raimo Niskanen
RaimoNiskanen/raimo/stdlib/gen_statem-clean_timeout-infinity/OTP-13073 Change gen_statem:call(_, _, {clean_timeout,infinity}) to use proxy
2017-10-11Merge pull request #1598 from ruanpienaar/patch-1Raimo Niskanen
Update gen_statem.erl Correct typo in comment: perferred -> preferred
2017-10-11Optimize a catch whose return value is ignoredBjörn Gustavsson
Rewrite a catch expression like this: catch side_effect(), ... to: try side_effect() catch _:_ -> ok end, ... A try/catch is more efficient since no stack trace will be built when an exception occurs.
2017-10-11Do the receive optimization in the presence of try/catchBjörn Gustavsson
Improve the receive optimization to be able to handle code such as this: Ref = make_ref(), try side_effect() catch _:_ -> ok end, receive %% Clauses that all match Ref. . . . end
2017-10-11Optimize try/catch that ignores the return valueBjörn Gustavsson
If a try/catch is used to ignore the potential exception caused by some expression with a side effect such as: try side_effect() catch _Class:_Reason -> ok end, . . . the generated code will be wasteful: try YReg TryLabel %% call side_effect() here try_end Yreg jump GoodLabel TryLabel: try_case YReg %% try_case has set up registers as follows: %% x(0) -> error | exit | throw %% x(1) -> reason %% x(2) -> raw stack trace data GoodLabel: %% This code does not use any x registers. There will be two code paths that both end up at GoodLabel, and the try_case instruction will set up registers that are never used. We can do better by replacing try_case with try_end to obtain this code: try YReg TryLabel %% call side_effect() here try_end Yreg jump GoodLabel TryLabel: try_end YReg GoodLabel: The jump optimizer (beam_jump) can further optimize this code like this: try YReg TryLabel %% call side_effect() here TryLabel: try_end YReg
2017-10-11hipe: Extend the basic_SUITE with one more testKostis Sagonas
that checks the construction of exception information. The test is taken from the compiler SUITE but part of it (the one that constructs exceptions which differ between BEAM and HiPE) is commented out. Related to the discussion of #1596.
2017-10-10Explicitly disable HiPE's range analysisKostis Sagonas
when/if compiling this file to native code to check its exception behaiour. Related to the discussion in #1586.
2017-10-10Update gen_statem.erlRuan Pienaar
2017-10-10Merge branch 'maint'Hans Nilsson
2017-10-10Merge branch 'hans/ssh/ssh_dbg_hostkey/OTP-14658' into maintHans Nilsson
2017-10-10Merge branch 'maint'Sverker Eriksson
2017-10-10Merge branch 'sverker/fix-code_SUITE-upgrade' into maintSverker Eriksson
2017-10-10Merge branch 'maint'Lars Thorsen
2017-10-10Merge branch 'lars/doc-cleanup/OTP-14475' into maintLars Thorsen
* lars/doc-cleanup/OTP-14475: [edoc] Remove unused module otpsgml_layout.erl Remove unused files from the documentation build
2017-10-10Merge branch 'lars/erl_docgen/code-tag-fix/OTP-14674' into maintLars Thorsen
* lars/erl_docgen/code-tag-fix/OTP-14674: [erl_docgen] Fix spacing for code blocks [erl_docgen] Change pdf to have the same style as html for code,warning,note
2017-10-10Merge branch 'lars/orber/fix-man-warnings/OTP-14673' into maintLars Thorsen
* lars/orber/fix-man-warnings/OTP-14673: [orber] Touchup of code tags
2017-10-09Slightly speed up try/catchBjörn Gustavsson
The try_end and try_case instructions are implemented the same way (try_case is translated to try_end by the loader). We can do better than that. We know that try_case will only be executed when an exception has been caught. Therefore, we know that x(0) is the non-value and that x(1) through x(3) need to be shifted down to x(0) through x(2). There is no need to test x(0) before shifting down. try_end does not need the register shifting code at all.