Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* egil/erts/lttng-configure-help:
erts: Print valid version of lttng-ust in configure help
|
|
* egil/erts/fix-purge_code-literals:
erts: Refactor ERTS_MSG_COMBINED_HFRAG to heap fragment
erts: Copy literals in messages on module purge
erts: Add testcase for purge of literals
|
|
* dgud/tools/emacs/improve-tags-def-function:
emacs: Improve default tag search
|
|
Add current module to non external functions calls.
Also improves finding record and macro definitions.
|
|
|
|
* egil/erts/cuddle-lttng-tests:
erts: Check for carrier capability specifically in test
|
|
* egil/xmerl/modernize-tests:
Eliminate use of doc and suite clauses
Eliminate use of the ?t macro
Eliminate use of ?config() macro
Modernize timetraps
Remove ?line macros
|
|
* dgud/tools/emacs/tag-search-order/PR-1067:
Let find-tag visit definitions in right order
|
|
The right order is defined by find-tag-tag-order which is a list of
predicate functions. Tags matched by the first function shall be
visited first. After that tags matched by the seconds function shall be
visited and so on.
Previous behavior was to visit tags that match any of the functions in
the order they appear in the TAGS file.
Reported by Dan Gudmundsson.
|
|
* ingela/ssl-httpc/ERL-144:
ssl: Send correct close message
|
|
* ingela/ssl/test-enhancment:
ssl: Increase timeout
ssl: Remove use of test_server config macro
ssl: Disable DTLS test for now
ssl: move TLS/DTLS version logging into helper
ssl: tests for DTLS
|
|
|
|
* bjorn/compiler/misc:
beam_bool_SUITE: Cover one more line
beam_utils_SUITE: Cover more lines in beam_utils
beam_reorder: Don't confuse beam_validator
beam_bool: Reject potentially unsafe optimization
v3_core: Don't depend on sys_core_fold for cleaning up
beam_type: Eliminate crash
beam_type: Correct handling of setelement/3
beam_validator: Handle cons literals better
beam_validator: Keep better track of tuple literals
|
|
* richcarl/eunit/debug-val-depth/PR-1061/OTP-13612:
Replace suggested debugValAll/1 macro with debugVal/2
|
|
|
|
By first adding a call to error/1 to each uncovered line,
QuickCheck could find test cases that would cover the lines.
|
|
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.
|
|
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.
|
|
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
|
|
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)
|
|
Those clause are obsolete and never used by common_test.
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
Specifically t_copy_literals_frags/1 tries to test literals
in message heap fragments.
|
|
|
|
|
|
|
|
|
|
* binarin/fix-absolute-paths/PR-1056/OTP-13617:
Fix program paths used in build process
|