aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2016-05-23Merge branch 'richcarl/eunit/debug-val-depth/PR-1061/OTP-13612'Björn Gustavsson
* richcarl/eunit/debug-val-depth/PR-1061/OTP-13612: Replace suggested debugValAll/1 macro with debugVal/2
2016-05-23beam_bool_SUITE: Cover one more lineBjörn Gustavsson
2016-05-23beam_utils_SUITE: Cover more lines in beam_utilsBjörn Gustavsson
By first adding a call to error/1 to each uncovered line, QuickCheck could find test cases that would cover the lines.
2016-05-23beam_reorder: Don't confuse beam_validatorBjörn Gustavsson
Make sure we don't optimize code such as: is_tuple Fail Src test_arity Fail Src Arity get_tuple_element Src Pos Dst is_map Fail Src If we would reorder the instructions like this: is_tuple Fail Src test_arity Fail Src Arity is_map Fail Src get_tuple_element Src Pos Dst beam_validator would complain that the type for Src is a map instead of a tuple. Since the code has problems to begin with, there is no need to do the optimization.
2016-05-23beam_bool: Reject potentially unsafe optimizationBjörn Gustavsson
When calculating the sets of registers that must be killed or unused, registers set in a {protected,_,_,_} block were not considered. That could result in a crash in the assertion in beam_utils:live_opt_block/4.
2016-05-23v3_core: Don't depend on sys_core_fold for cleaning upBjörn Gustavsson
a3ec2644f5 attempted to teach v3_core not to generate code with unbound variables. The approach taken in that commit is to discard all expressions following a badmatch. That does not work if the badmatch is nested: {[V] = [] = foo,V}, V That would be rewritten to: {error({badmatch,foo})}, V where V is unbound. If we were to follow the same approach, the tuple construction code would have to look out for a badmatch. As would list construction, begin...end, and so on. Therefore, as it is impractical to discard all expressions that follow a badmatch, the only other solution is to ensure that the variables that the pattern binds will somehow be bound. That can be arranged by rewriting the pattern to a pattern that binds the same variables. Thus: error({badmatch,foo}), E = foo, case E of {[V],[]} -> V; Other -> error({badmatch,Other} end
2016-05-23beam_type: Eliminate crashBjörn Gustavsson
The following code: simple() -> case try 0 after [] end of 0 -> college; 1 -> 0 end. would crash the compiler like this: crash reason: {case_clause, {'EXIT', {function_clause, [{beam_type,simplify_select_val_int, [{select,select_val, {x,0}, {f,7}, [{integer,1},{f,9},{integer,0},{f,8}]}, 0], [{file,"beam_type.erl"},{line,169}]}, {beam_type,simplify_basic_1,3, [{file,"beam_type.erl"},{line,155}]}, {beam_type,opt,3,[{file,"beam_type.erl"},{line,57}]}, {beam_type,function,1,[{file,"beam_type.erl"},{line,36}]}, {beam_type,'-module/2-lc$^0/1-0-',1, [{file,"beam_type.erl"},{line,30}]}, {beam_type,module,2,[{file,"beam_type.erl"},{line,30}]}, {compile,'-select_passes/2-anonymous-2-',2, [{file,"compile.erl"},{line,521}]}, {compile,'-internal_comp/4-anonymous-1-',2, [{file,"compile.erl"},{line,306}]}]}}} The root cause is that the type representation is not well-defined. Integers could be represented in three different ways: integer {integer,{1,10}} {integer,0} However, only the first two forms were handled. To avoid similar problems in the future: * Make the type representation stricter. Make sure that integers are only represented as 'integer' or {integer,{Min,Max}}. * Call verify_type/1 whenever a new type is added (not only when merging types) to ensure that only the supported types are added to the type database). (ERL-150)
2016-05-20Make inet:gethostbyname respect resolver option `inet6`Daniel Sommermann
This makes the implementation text of inet:gethostbyname/1 identical to that of inet_res:gethostbyname/1. I also copied over the doc note about this resolver option.
2016-05-20Eliminate use of doc and suite clausesBjörn-Egil Dahlberg
Those clause are obsolete and never used by common_test.
2016-05-20Eliminate use of the ?t macroBjörn-Egil Dahlberg
2016-05-20Eliminate use of ?config() macroBjörn-Egil Dahlberg
2016-05-20Modernize timetrapsBjörn-Egil Dahlberg
2016-05-20Add testcase for init:stop/1 statusRichard Carlsson
2016-05-20Check exit status in init:stop/1 and simplify documentationRichard Carlsson
2016-05-20Clarify limitation on halt/2 slogan stringRichard Carlsson
2016-05-20erts: Refactor ERTS_MSG_COMBINED_HFRAG to heap fragmentBjörn-Egil Dahlberg
2016-05-20Merge branch 'sverker/os_mon/FreeBSD-EXIT_WITH'Sverker Eriksson
2016-05-20erts: Copy literals in messages on module purgeBjörn-Egil Dahlberg
During check process code, explicitly copy all referenced literals in a message (in the private queue) to a heap fragment and attach it to the message reference. Not all types of message communication does an explicit copy of a literal and this needs to be taken care of before a module is purged.
2016-05-20erts: Add testcase for purge of literalsBjörn-Egil Dahlberg
Specifically t_copy_literals_frags/1 tries to test literals in message heap fragments.
2016-05-20erts: Check for carrier capability specifically in testBjörn-Egil Dahlberg
2016-05-20Remove ?line macrosBjörn-Egil Dahlberg
2016-05-20Fix spelling of "atomicity" in ets.xmlMagnus Henoch
2016-05-20ssl: Send correct close messageIngela Anderton Andin
2016-05-20doc: Update efficiency guide with Maps memory infoBjörn-Egil Dahlberg
2016-05-20Merge branch 'binarin/fix-absolute-paths/PR-1056/OTP-13617'Björn-Egil Dahlberg
* binarin/fix-absolute-paths/PR-1056/OTP-13617: Fix program paths used in build process
2016-05-20ssh: handle ssh_message binary decode errorsHans Nilsson
2016-05-20ssh: tc renamingHans Nilsson
2016-05-20ssh: New 'prepare' function in ssh_sftp_SUITEHans Nilsson
2016-05-20ssh: split result line in testHans Nilsson
2016-05-20Merge branch 'kostis/compiler/cerl-arity/PR-1059'Björn Gustavsson
* kostis/compiler/cerl-arity/PR-1059: Use arity() consistently
2016-05-20beam_type: Correct handling of setelement/3Björn Gustavsson
We must be careful how we treat the type info for the result of: setelement(Index, Tuple, NewValue) If Tuple had type information, the result of setelement/3 (in x(0)) would be assigned the same type information. But that is not safe for: setelement(1, Tuple, NewValue) since the type for the first element will be changed. Therefore, we must take care to remove the type information for the first element of the tuple if might have been modified by setelement/3.
2016-05-20beam_validator: Handle cons literals betterBjörn Gustavsson
As a preparation for better optimizations in beam_type, a list literal must be accepted as a 'cons'.
2016-05-20beam_validator: Keep better track of tuple literalsBjörn Gustavsson
As a preparation for upcoming better optimizations in beam_type, we will need to keep better track of tuple literals so that beam_validator will not falsely reject safe code.
2016-05-20[observer] Update user guideSiri Hansen
Document the new Ports tab and tracing of ports.
2016-05-20[observer] Automatically add active nodeSiri Hansen
When setting trace flags on 'new_processes' or 'new_ports', the currently active node is now automatically added if no other node is traced.
2016-05-20[observer] Allow more trace flags on procs/ports from GUISiri Hansen
2016-05-20[runtime_tools] Don't trace the trace client portSiri Hansen
When using an IP trace client, turn of all trace flags on the client port to avoid massive overload. Note that this is only a protection on client start - it is currently not possible to protect the port against trace flags set at a later point in time.
2016-05-20[runtime_tools] Allow setting trace flag 'exiting' with dbgSiri Hansen
2016-05-20[observer] Add more default match specs for messagesSiri Hansen
2016-05-20[observer] Add test of new Ports tabSiri Hansen
2016-05-20[observer] Improve appearance in Trace tabSiri Hansen
* Only allow single selection of modules * Add right click menu to remove module * Allow multiple selection of nodes, and show procs/ports for ALL selected nodes * On right click, only show menu items that make sense for the current content and selection * Add tooltips with help text
2016-05-20Merge branch 'dgud/observer/process-display-binary'Dan Gudmundsson
* dgud/observer/process-display-binary: observer: sync close to avoid process crash reports Test cuddling observer: Align system info boxes Change binary debug tuple to size and refc info
2016-05-20Merge branch 'dgud/tools/emacs-xref/PR-1051'Dan Gudmundsson
* dgud/tools/emacs-xref/PR-1051: Add xref support in erlang.el Conflicts: lib/tools/emacs/erlang.el
2016-05-20Replace suggested debugValAll/1 macro with debugVal/2Richard Carlsson
Also make the default depth for debugVal/1 possible to override by defining the macro EUNIT_DEBUG_VAL_DEPTH.
2016-05-20ssl: Increase timeoutIngela Anderton Andin
We want to avoid tests timeing out regularly on slow test machines.
2016-05-20ssl: Remove use of test_server config macroIngela Anderton Andin
2016-05-20ssl: Disable DTLS test for nowIngela Anderton Andin
We are working on including DTLS support. And we want to include the contributed tests now before making planned enhancements to the test suits.
2016-05-20ssl: move TLS/DTLS version logging into helperAndreas Schultz
Consolidate code that logs TLS/DTLS version during testing into ssl_test_lib.
2016-05-20ssl: tests for DTLSAndreas Schultz
2016-05-20Add xref support in erlang.elJohan Claesson
In GNU Emacs 25 xref will be introduced. It is a framework for cross referencing commands, in particular commands for finding definitions. It does not replace etags. It rather resides on top of it and provides user-friendly commands. The idea is that the user commands should be the same regardless of what back-end does the actual finding of definitions. Add to the xref commands awareness of the module:tag syntax in a similar way that is already done for the old etags commands. Xref completion support is not included in this commit. Remove all compilation warnings for GNU Emacs 24.5 and current 25 (4ffec91). Remove XEmacs incompatibility in erlang-font-lock-exported-function-name-face. Add file erlang-test.el with a single unit test. Add TAGS to .gitignore.