aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2016-09-06Merge branch 'maint'Hans Bolinder
* maint: kernel: Correct file(3)
2016-09-06Merge branch 'hasse/kernel/doc-fix' into maintHans Bolinder
* hasse/kernel/doc-fix: kernel: Correct file(3)
2016-09-06kernel: Correct file(3)Hans Bolinder
2016-09-05Merge branch 'maint'Lukas Larsson
2016-09-05Merge branch 'lukas/erts/epmd_xmllint_fix' into maintLukas Larsson
* lukas/erts/epmd_xmllint_fix: epmd: Fix xmllint error in comsummary
2016-09-05Merge branch 'maint'Lukas Larsson
2016-09-05Merge branch 'lukas/erts/fix_signalhandler_errno_restore/OTP-13868' into maintLukas Larsson
* lukas/erts/fix_signalhandler_errno_restore/OTP-13868: erts: Fix child setup signal hander bug
2016-09-05Merge branch 'maint'Lukas Larsson
2016-09-05Merge branch 'lukas/kernel/os_cmd_fix_stdin_close/OTP-13867' into maintLukas Larsson
* lukas/kernel/os_cmd_fix_stdin_close/OTP-13867: kernel: Close stdin of commands run in os:cmd
2016-09-05Merge branch 'maint'Lukas Larsson
2016-09-05Merge branch 'lukas/kernel/fix_os_SUITE_message_leak_testcase/OTP-13867' ↵Lukas Larsson
into maint * lukas/kernel/fix_os_SUITE_message_leak_testcase/OTP-13867: kernerl: Remove infinite loop from testcase
2016-09-05Merge branch 'maint'Lukas Larsson
2016-09-05Merge branch 'lukas/erts/tracing/fix_sparc_align_issue/OTP-13803' into maintLukas Larsson
* lukas/erts/tracing/fix_sparc_align_issue/OTP-13803: erts: Immed tracer states also have to be alignable
2016-09-05Update primary bootstrapBjörn Gustavsson
2016-09-05Merge branch 'bjorn/floor-ceiling/OTP-13692'Björn Gustavsson
* bjorn/floor-ceiling/OTP-13692: Add math:floor/1 and math:ceil/1 Implement the new ceil/1 and floor/1 guard BIFs
2016-09-05Add math:floor/1 and math:ceil/1Björn Gustavsson
Add math:floor/1 and math:ceil/1 to avoid unnecessary conversions in floating point expressions. That is, instead of having to write float(floor(X)) as part of a floating point expressions, we can write simply math:floor(X).
2016-09-05Implement the new ceil/1 and floor/1 guard BIFsBjörn Gustavsson
Implement as ceil/1 and floor/1 as new guard BIFs (essentially part of Erlang language). They are guard BIFs because trunc/1 is a guard BIF. It would be strange to have trunc/1 as a part of the language, but not ceil/1 and floor/1.
2016-09-05Merge branch 'bjorn/lc-overridden-bif/OTP-13690'Björn Gustavsson
* bjorn/lc-overridden-bif/OTP-13690: Fix overridden BIFs Don't crash when obsolete guard overrides local function
2016-09-05Merge branch 'bjorn/erts/help-clang'Björn Gustavsson
* bjorn/erts/help-clang: Slightly reduce code size of process_main()
2016-09-05Merge branch 'maint'Ingela Anderton Andin
2016-09-05Merge branch 'ingela/ssl/test-framework-checks' into maintIngela Anderton Andin
* ingela/ssl/test-framework-checks: ssl: Test ssl v2 clients rejection depending on configuration ssl: Add check in test framework for crypto support
2016-09-02kernel: Close stdin of commands run in os:cmdLukas Larsson
This is needed when running programs that only exit when stdin has been closed, e.g. 'more'.
2016-09-02ssl: Test ssl v2 clients rejection depending on configurationIngela Anderton Andin
Even though v2 is never supported v2 hellos can be. No support for v2 client hellos gives "handshake failiure" alert. Support for v2 hello but no higher SSL/TLS version offered gives "protocol version" alert.
2016-09-02Merge branch 'maint'Rickard Green
* maint: Introduce literal sweep of native stack in new purge strategy
2016-09-02Merge branch 'rickard/new-purge-strategy/OTP-13777' into maintRickard Green
* rickard/new-purge-strategy/OTP-13777: Introduce literal sweep of native stack in new purge strategy
2016-09-02Introduce literal sweep of native stack in new purge strategyRickard Green
2016-09-02Merge branch 'sverker/hipe-performance-o1/PR-1154/OTP-13862'Sverker Eriksson
* sverker/hipe-performance-o1/PR-1154: hipe_sparc: Minimise CFG<->linear conversions hipe_ppc: Minimise CFG<->linear conversions hipe_arm: Minimise CFG<->linear conversions hipe_x86: Use lea instead of move+add hipe_arm: Improve peephole optimiser hipe_arm: Be resilient to crappy RTL hipe_ppc: Be resilient to crappy RTL hipe_sparc: Be resilient to crappy RTL hipe: Reuse liveness info for spillmin hipe_x86: Minimise CFG<->linear conversions hipe: Fix o0 and o1 hipe: Add o0 and o1 to tests hipe_rtl_binary:get_word_integer/4: Handle imms hipe_x86: Be resilient to crappy RTL hipe_x86: LSRA for SSE2
2016-09-02Merge branch 'maint'Sverker Eriksson
2016-09-02Merge branch 'sverker/hipe-sparc-19/PR-1148/OTP-13861' into maintSverker Eriksson
* sverker/hipe-sparc-19/PR-1148: Eliminate catch-all clause from two functions Increase the time limit used by the test suite
2016-09-02Fix overridden BIFsBjörn Gustavsson
The filters in a list comprehension can be guard expressions or an ordinary expressions. If a guard expression is used as a filter, an exception will basically mean the same as 'false': t() -> L = [{some_tag,42},an_atom], [X || X <- L, element(1, X) =:= some_tag] %% Returns [{some_tag,42}] On the other hand, if an ordinary expression is used as a filter, there will be an exception: my_element(N, T) -> element(N, T). t() -> L = [{some_tag,42},an_atom], [X || X <- L, my_element(1, X) =:= some_tag] %% Causes a 'badarg' exception when element(1, an_atom) is evaluated It has been allowed for several releases to override a BIF with a local function. Thus, if we define a function called element/2, it will be called instead of the BIF element/2 within the module. We must use the "erlang:" prefix to call the BIF. Therefore, the following code is expected to work the same way as in our second example above: -compile({no_auto_import,[element/2]}). element(N, T) -> erlang:element(N, T). t() -> L = [{some_tag,42},an_atom], [X || X <- L, element(1, X) =:= some_tag]. %% Causes a 'badarg' exception when element(1, an_atom) is evaluated But the compiler refuses to compile the code with the following diagnostic: call to local/imported function element/2 is illegal in guard
2016-09-02Don't crash when obsolete guard overrides local functionBjörn Gustavsson
The compiler would crash in v3_codegen when trying to compile the following code: is_port(_) -> false. foo(P) when port(P) -> ok. We *could* have the compiler interpret the code as: is_port(_) -> false. foo(P) when erlang:is_port(P) -> ok. But that would encourage using the obsolete form of the guard tests. Note that the following code is illegal: is_port(_) -> false. foo(P) when is_port(P) -> ok. It produces the following diagnostic: call to local/imported function is_port/1 is illegal in guard Therefore, we should refuse to compile the code.
2016-09-02Update primary bootstrapBjörn Gustavsson
2016-09-02Merge branch 'bjorn/eliminate-sys_pre_expand/OTP-13856'Björn Gustavsson
* bjorn/eliminate-sys_pre_expand/OTP-13856: Remove sys_pre_expand xref: Eliminate use of sys_pre_expand debugger: Eliminate use of sys_pre_expand compiler: Eliminate use of sys_pre_expand shell_SUITE: Eliminate references to sys_pre_expand in comments qlc_pt: Simplify code because of updated erl_expand_records Teach erl_expand_records to translate module-less calls erl_internal: Add add_predefined_functions/1 cover: Remove always stale comment
2016-09-02ssl: Add check in test framework for crypto supportIngela Anderton Andin
Avoid to run tests of algorithms not supported by crypto.
2016-09-02erts: Fix child setup signal hander bugLukas Larsson
When running the signal handler, the errno has to be restored to its original value, otherwise code running in the same thread may misbehave.
2016-09-02Merge branch 'maint'Hans Bolinder
* maint: Fix documentation of an option of erl_tidy
2016-09-02Merge branch 'fenollp/syntax_tools/erl_tidy_option/PR-1151' into maintHans Bolinder
* fenollp/syntax_tools/erl_tidy_option/PR-1151: Fix documentation of an option of erl_tidy
2016-09-02Merge branch 'maint'Hans Bolinder
* maint: doc: Correct errors introduced by Editorial changes
2016-09-02Merge branch 'hasse/doc/fix_editorial_changes' into maintHans Bolinder
* hasse/doc/fix_editorial_changes: doc: Correct errors introduced by Editorial changes
2016-09-01Merge branch 'rickard/default-dirty-schedulers/OTP-13860'Rickard Green
* rickard/default-dirty-schedulers/OTP-13860: Enable dirty scheduler support as default
2016-09-01Enable dirty scheduler support as defaultRickard Green
2016-09-01Merge branch 'rickard/remove-old-purge-strategy/OTP-13844'Rickard Green
* rickard/remove-old-purge-strategy/OTP-13844: Avoid selective receive in code-purger process Remove old purge strategy Conflicts: erts/emulator/beam/beam_bif_load.c erts/emulator/beam/global.h
2016-09-01Merge branch 'maint'Rickard Green
* maint: Fix reclaim of literal areas Conflicts: erts/emulator/beam/global.h
2016-09-01Merge branch 'rickard/new-purge-strategy/OTP-13833' into maintRickard Green
* rickard/new-purge-strategy/OTP-13833: Fix reclaim of literal areas Conflicts: erts/emulator/beam/beam_bif_load.c
2016-09-01Slightly reduce code size of process_main()Björn Gustavsson
clang will generate smaller code if we avoid reassigning the reg and freg arrays. That can be easily arranged by passing them as arguments to process_main().
2016-09-01Remove sys_pre_expandBjörn Gustavsson
The previous commits have made sys_pre_expand superfluous. Since sys_pre_expand is undocumented and unsupported it can be removed in a major release without prior deprecation. Also remove code in erl_parse that handles abstract code that has passed through sys_pre_expand. We considered deprecating sys_pre_expand just in case, but decided against it for the following reasons: - Anyone brave and knowledgeable enough to use sys_pre_expand should be able to cope with sys_pre_expand being removed. - If we kept it, but didn't test it anywhere in OTP, it could potentially stop working. So we would probably have to add some test cases.
2016-09-01xref: Eliminate use of sys_pre_expandBjörn Gustavsson
2016-09-01debugger: Eliminate use of sys_pre_expandBjörn Gustavsson
2016-09-01compiler: Eliminate use of sys_pre_expandBjörn Gustavsson
sys_pre_expand previously did a lot more work, for example, translating records and funs, but now is merely a grab bag of small transformations. Move those transformations to v3_core.
2016-09-01shell_SUITE: Eliminate references to sys_pre_expand in commentsBjörn Gustavsson
Make it clear that we test that the shell is not dependent on the compiler application being in the path.