Age | Commit message (Collapse) | Author |
|
Seems like halt/2 should be a member of this club.
|
|
just to make things simpler.
|
|
Remove the restriction to only do the translation for
gen_server and gen_fsm. This enables user defined
gen based generic callback modules to be displayed nicely in
c:i() and observer.
|
|
* hans/eldap/new_test_file_style/OTP-13566:
eldap: ts-macros replaced
|
|
* hans/ssh/decode_error:
ssh: handle ssh_message binary decode errors
|
|
* hans/ssh/benchmark_crash:
ssh: Benchmark suite timeouts were to short
|
|
* hans/ssh/cuddle_tests:
ssh: Longer timeout for ssh client tests
ssh: tc renaming
ssh: New 'prepare' function in ssh_sftp_SUITE
ssh: split result line in test
ssh: No erlang port in ssh_algorithms_SUITE
ssh: New test for utf8 in ssh_sftp_SUITE
ssh: polish test log (ssh_algorithms_SUITE)
ssh: monitor os:cmd to avoid hanging on baal
|
|
* kostis/compiler/v3_kernel/eta-conversion:
v3_kernel: Fix typo in comment
|
|
* josevalim/supervisor-try-again-restart/PR-1001/OTP-13618:
Avoid potential timer bottleneck on supervisor restart
|
|
* ingela/inets/tests-enhancement:
inets: Use test_server app tests and remove legacy test_server code
|
|
Follow the convention and make atom more visibile in types and specs
|
|
When building match result patterns the tuples they must qouted
with { }, which causes a problem with variable patterns.
Use element(1, Match) instead of trying to build the two tuple.
|
|
|
|
|
|
|
|
The extra trace data has been moved to the opts map in order
for the tracer to be able to distinguish inbetween extra
trace data 'undefined' and no extra trace data. In the same
commit all opts associations have been changed so that if
the tracer should not use them, the key is left unassicated
instead of being sent to undefined. This should be give a
small performance gain and also makes the API easier to work
with.
|
|
* dgud/tools/emacs/improve-tags-def-function:
emacs: Improve default tag search
|
|
FTP tests needed some refactoring as some tests where lost to
the ftp_suite_lib module that was not run.
|
|
* Added a suite opt_verify_SUITE.erl to HiPE that tests for the results
of optimisations, with a single testcase that checks that the
icode_call_elim optimisation pass does remove calls to maps:is_key/2
where sound and not otherwise.
* Made hipe_testsuite_driver only create explicitly listed suites.
|
|
* Implemented removal of maps:is_key/2 calls of which the result is
known in a new pass during the typed phase, called
hipe_icode_call_elim.
* Added the option icode_call_elim that enables the
hipe_icode_call_elim pass, and made it default for o2.
|
|
|
|
Add current module to non external functions calls.
Also improves finding record and macro definitions.
|
|
* 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
|
|
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)
|
|
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.
|
|
Those clause are obsolete and never used by common_test.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* binarin/fix-absolute-paths/PR-1056/OTP-13617:
Fix program paths used in build process
|
|
|
|
|
|
|
|
|
|
* kostis/compiler/cerl-arity/PR-1059:
Use arity() consistently
|