Age | Commit message (Collapse) | Author |
|
* bjorn/handle-bad-path/ERL-142:
Tolerate bad directories in the code path
|
|
|
|
|
|
Second merge of this branch to master
with some more docs
|
|
* dgud/wx/cmd-queue-bug:
Fix compilation warning
wx: Fix generated defines in gl.hrl
wx: Fix driver command queue
|
|
* jrobhoward/os_mon/fix-freebsd_get_os_wordsize/PR-1039/OTP-13601:
Fix memsup:get_os_wordsize() on 64-bit Linux PPC
os_mon: Test wordsize of memsup:get_os_wordsize/0
Fix memsup:get_os_wordsize() on 64-bit FreeBSD
|
|
* origin/ingela/public_key/tests:
public_key: Remove test_server config macros and unsed hooks
|
|
* egil/egd/improve-line/OTP-13598:
egd: Save images during tests
egd: Use anti-aliasing for lines
egd: Add more line tests
egd: Add line thickness algorithm for lines
egd: Use maps to map height to line spans
egd: Refactor precompile objects
egd: Refactor object_on_line
egd: Refactor primitives style
egd: Improve span calculation
|
|
* ingela/inets/dialyzer:
inets: httpd_util:split does not return {error, Reason}
|
|
* hairyhum/eldap/ignore_tcp_errors_at_close/PR-1048/OTP-13590:
indentation
Ignore tcp errors during close request to eldap
|
|
|
|
Fix return value handling that was missed when code was refactored to
use re-module.
|
|
A bad directory in the path would prevent the run-time system
from starting:
$ echo >foobar
$ erl -pa foobar
{"init terminating in do_boot",{load_failed,[supervisor,kernel,gen_server,file_io_server,filename,file,erl_parse,error_logger,code_server,erl_lint,proc_lib,code,application_controller,application_master,gen_event,application,error_handler,lists,heart,gen,file_server,ets,erl_eval]}}
Crash dump is being written to: erl_crash.dump...done
init terminating in do_boot ()
The reason is that when attempting to read each of the BEAM files,
there would be an 'enotdir' error which
erl_prim_load:get_modules/2,3 assumed was a fatal error.
Update erl_prim_load:get_modules/2,3 to ignore any error and try
the next directory in the path.
Reported-by: http://bugs.erlang.org/browse/ERL-142
Reported-by: Michael Truog
|
|
|
|
Simple test against erlang:system_info({wordsize,external}).
|
|
* mururu/os_mon/cpu-sup-osx/PR-1049/OTP-13597:
os_mon: Implement cpu_sup:util/0,1 on OSX
|
|
* egil/common_test/fix-doc-lint:
common_test: Fix doc tags of ct_netconfc
|
|
* ingela/ssl/cipher-suites-refactor:
ssl: Refactor to make code easier to understand
|
|
|
|
* kostis/dialyzer/opaque_type/OTP-13586/PR-1047:
Declare the erl_types:var_table() type as opaque
|
|
* bjorn/compiler/beam_bool/ERL-143:
Eliminate crash in beam_bool
Add beam_bool_SUITE
Add missing test cases in andor_SUITE and beam_block_SUITE
|
|
* bjorn/compiler/misc:
beam_utils: Correct break in conventions for split_even/1 and join_even/1
beam_utils: Remove clause checking for illegal set/4 instruction
beam_utils: Simplify the return value for check_liveness/3
beam_utils: Remove unused code
beam_utils: Let code_at/2 fail if the label does not exist
beam_utils: Remove unused handling of try/3 in live_opt/4
beam_utils: Correct translation of BIFs to tests
core_pp: Remove uncovered clause in is_simple_term/1
core_pp: Crash on unhandled Core Erlang forms
core_pp: Remove unused clauses in unindent/3 to improve coverage
core_pp: Remove useless try...catch
core_pp: Simplify printing of map literals
compile_SUITE: Cover numeric variable names in core_pp
compile_SUITE: Eliminate clones when re-compiling test suites
test_lib: Add is_cloned_mod/1
trycatch_SUITE: Cover the only uncovered line in sys_core_fold
test_lib: Correct calculation of number of processes
|
|
beam_bool would crash when attempting to optimize BEAM code similar
to this code:
bif '=:=' Reg1 SomeValue => y(0)
bif '=:=' Reg2 {atom,true} => x(2)
bif '=:=' Reg3 {atom,true} => x(3)
bif 'or' x(2) x(3) => x(2)
is_eq_exact Fail x(2) {atom,true}
The problem is that the first instruction that assigns a value to a Y
register. beam_bool:ssa_assign/2 will not accept a Y register
argument.
We could change ssa_assign/2 to accept a Y register, but that would
only cause the entire optimization to be rejected later because the Y
register is alive in the code that follows. Therefore, a better
solution is to modify extend_block/3 so that the instruction that
assign to Y registers are not added to the block. That is, the
optimizer will only operate on the following code:
bif '=:=' Reg2 {atom,true} => x(2)
bif '=:=' Reg3 {atom,true} => x(3)
bif 'or' x(2) x(3) => x(2)
is_eq_exact Fail x(2) {atom,true}
Usually the optimization will succeed, rewriting the four instructions
to a select_val instruction.
Assembly code such as the above can be produced by code similar to:
Y = Something == SomethingElse,
case Y of
Condition; OtherCondition ->
. . .
end,
. . .,
Y.
Reported-by: http://bugs.erlang.org/browse/ERL-143
Reported-by: José Valim
|
|
It's time that we have a dedicated test suite for beam_bool.
|
|
Two test cases were not actually run. Even if their main purpose is to
ensure that the compiler doesn't crash, we always try to also run the
test case (when practial) to also ensure that the generated code is
correct.
|
|
|
|
* Also remove old line algorithm
|
|
Add images to common_test logs.
|
|
|
|
|
|
Must call erl_init() to create mutex "ei_gethost_sem".
The lazy initialization done in my_gethostbyname_r
is not thread-safe.
|
|
* egil/erts/nif-format_term/OTP-13580:
runtime_tools: Change erts_snprintf to enif_snprintf
erts: Document enif_snprintf
erts: Add tests for enif_snprintf
erts: Add enif_snprintf
Conflicts:
erts/emulator/beam/erl_nif_api_funcs.h
|
|
|
|
* egil/tools/fix-unmatched_return/OTP-13595:
xref: Fix unmatched return warnings
tags: Fix unmatched return warnings
lcnt: Fix unmatched return warnings
fprof: Fix unmatched return warnings
fprof: Fix unmatched return warnings
eprof: Fix unmatched return warnings
cover: Fix unmatched return warnings
|
|
* egil/runtime_tools/fix-unmatched_return/OTP-13595:
runtime_tools: Fix unmatched return warnings
|
|
* egil/os_mon/fix-unmatched_return/OTP-13595:
os_mon: Fix unmatched return warnings
|
|
* egil/et/fix-doc-lint:
et: Fix linting documentation xml tags
|
|
* egil/runtime_tools/fix-doc-lint:
runtime_tools: Fix tags of dbg reference manual
runtime_tools: Fix tags of LTTng User's Guide
|
|
* egil/percept/fix-ug-doc:
egd: Fix User's Guide lint
|
|
|
|
Exported functions in this file should appear at the top of the file.
Also add missing spaces after commas.
|
|
I can't remember that clause ever trigger during development.
Remove it to eliminated an uncovered line.
|
|
check_liveness/3 returns {unknown,State} if an instruction is
not handled. All callers will handle 'unknown' the same way as
'used'. Therefore, we can simplify the code and improve the
coverage if we return {used,State} instead of {unknown,State}.
|
|
|
|
All callers only calls code_at/2 for existing labels and they don't
handle the return value 'none'.
|
|
30cc5c902d moved try/3 instruction inside blocks, so the clause for
handling try/3 in live_opt/4 is never executed.
|
|
Two lines were never covered, because '[]' was used instead of 'nil'.
|
|
The clause for handling #c_values{} in is_simple_term/1 is never
executed. It can be safely removed, since there is a default clause
that will return 'false' in the extremly unlikely event that a
Without the clause, code such as:
let <_v1,_v2> = <1,2>
in {_v1,_v2}
would be printed with an extra newline:
let <_v1,_v2> =
<1,2>
in {_v1,_v2}
|
|
Don't try to be nice. Since we now have good test suites for
Core Erlang, just let it crash.
|
|
|