Age | Commit message (Collapse) | Author |
|
|
|
* margnus1/hipe-call-elim-crash/PR-1253:
hipe_icode_call_elim: Fix cf elimination crash
hipe: Improve error message on internal crashes
|
|
* bjorn/compiler/fix-unwanted-warning/ERL-301/OTP-14040:
Suppress warnings from v3_kernel when inlining is turned on
|
|
* jimdigriz/kernel/rpc-doc/ERL-302/PR-1252:
document {yield/nb_yield}() limitation
|
|
* hasse/dialyzer/improve_messages/OTP-11403:
dialyzer: Substitute 'opacity' for 'opaqueness'
dialyzer: Improve a warning message
dialyzer: Improve a warning message
dialyzer: Correct a warnings message
|
|
* hasse/stdlib/correct_types:
stdlib: Correct types of the abstract format
|
|
The types in erl_parse.yrl are more in harmony with the description in
The Abstract Format (in ERTS User's Guide).
|
|
|
|
|
|
Suggested by Kostis.
|
|
Messages regarding guards with orelse/andalso could look
like "Clause guard cannot succeed. The variable A was matched
against the type any()". Now they look like as if or/and is
used: "Guard test is_integer(A::atom()) can never succeed".
|
|
Messages like "Invalid type specification for function
para3:exp_adt/0. The success typing is () -> 3" now look like
"The specification for para3:exp_adt/0 has an opaque subtype
para3_adt:exp1(para3_adt:exp2()) which is violated by the success
typing () -> 3".
The old message did not give any clue as to what invalidated the
contract, namely the opaque subtype.
|
|
Messages like "The attempt to match a term of type rec_api:f()
against the variable _ breaks the opaqueness of rec_adt:f()" now
look like "The attempt to match a term of type rec_adt:f()
against the record field 'f' with type rec_api:f() breaks the
opaqueness of the term".
|
|
hipe_icode_call_elim could in some cases replace an #icode_call{} with
control flow with a move instruction. This would break the control flow
graph invariants and cause a crash.
|
|
Print the MFA/module being compiled, and pretty-print the backtrace with
lib:format_stacktrace/4.
Additionally, make the error_msg/2 macro in hipe.hrl respect the
HIPE_LOGGING define, since messages produced by this macro just before
runtime shutdown were sometimes lost (since code_server:error_msg/2 is
asynchronous).
|
|
|
|
* bjorn/cuddle-with-tests:
Correct tar_SUITE:unicode/1
|
|
* ingela/httpc/keep-alive-https/OTP-14041:
inets: httpc - do not send absolute URIs over TLS tunnels
|
|
v3_kernel may produce unwanted and confusing warnings for code that
has been inlined with the new inliner (cerl_inline). Consider this
code:
-compile(inline).
compute1(X) ->
add(X, 0).
compute2(X, Y) ->
add(X, Y).
add(1, 0) ->
1;
add(1, Y) -> %% "this clause cannot match..."
1 + Y;
add(X, Y) ->
X + Y.
v3_kernel warns because add/2 has been inlined into compute1/1 and only
the first clause in add/2 will match. But the other clauses are needed
when add/2 is inlined into compute2/2, so the user cannot do anything
to eliminate the warning (short of manually inlining add/2, defeating the
purpose of the 'inline' option).
The warning would be reasonable if compute2/2 didn't exist, but it would
be too complicated for the compiler to figure whether a warning make
sense or not.
Therefore, suppress all warnings generated by v3_kernel if cerl_inline
has been run.
ERL-301
|
|
* ingela/odbc/mac:
odbc: Remove support for old MACs
|
|
Change configure to skip odbc for old MACs, the change in
PR-1227 is not backwards compatible with old MACs, and we do not
see a need to continue support for such old versions. However
it is still possible to make it work on such machines using
the --with-odbc configure option.
|
|
Make sure that we always test the "+fnu" option on all
systems. It seems that it was not tested in our daily
builds, since they are run non-interactively.
Make sure that we sort the list of names in do_unicode/1.
Otherwise the test would only work in "+fnl" mode because
the list would only contain one element.
|
|
|
|
* github/pr/1227:
Update configure to work better on Mac
|
|
|
|
|
|
|
|
* peppe/common_test/fix_default_gl/ERL-279/OTP-13973:
Fix problem with printouts to incorrect parent group leader
OTP-13973
|
|
|
|
* margnus1/hipe_llvm39_bugs/PR-1237:
hipe_rtl_to_llvm: Constants for bits per byte/word
hipe_llvm: Work around LLVM 3.9 sdesc bug
hipe_llvm: Fix incorrect atom alignment assumption
|
|
ECC certs should preferably use SHA2, this is what we want to be
testing. Also assembling of all available test suites must consider TLS version.
|
|
Update to look for -lodbc as well as default to /usr/local as you will need to brew install libiodbc.
|
|
* ingela/ssl/tune-timeouts-packet_SUITE:
ssl: Change to more modest timeouts
|
|
* ingela/ssl/ECC-faulty-workaround:
ssl: Remove faulty workaround
|
|
We where never really satisfied with this workaround it was
a bit far fetched, so we are pleased to be able to remove it.
|
|
'gomoripeti/kernel/controlling_proc_badarg_doc/PR-1208/OTP-14022' into maint
* gomoripeti/kernel/controlling_proc_badarg_doc/PR-1208/OTP-14022:
controlling_process can return {error, badarg}
|
|
The constant ?WORD_WIDTH is renamed ?BITS_IN_WORD, and a new constant
?BITS_IN_BYTE is introduced.
Additionally, a bug in a currently unused case clause of
llvm_type_from_size/1 is fixed (the size of a word was hardcoded to 64
bits).
|
|
* raimo/gen_statem-improvements/OTP-13929:
Log terminate to sys debug
Optimize event timeout
Rework timeout handling
Clarify the chapter 'Postponing Events' (ERL-284)
Fix doc and type for state enter calls
|
|
* jxck/fix-doc-typo/PR-1238:
fix typo on doc of maps
|
|
* leoliu/tools/emacs-erldoc/PR-1197/OTP-14018:
New commands to ease looking up OTP documentation
|
|
typo
|
|
As of LLVM 3.9, the x86-call-frame-opt pass in LLVM's X86 backend causes
the stack descriptors to contain incorrect (or even negative) frame
sizes or root slot offsets.
This might cause LLVM-compiled modules to be rejected during loading
with a badarg exception in hipe_bifs:enter_sdecs/1 (which additionally
prints a "hipe_bifs_enter_sdesc_1: bad sdesc!" message to stderr), or it
might cause corruption or segmentation faults when walking stacks (f.ex.
during GC) containing frames compiled with ErLLVM.
As a workaround, we pass the -no-x86-call-frame-opt flag to llc when
the version is at least 3.9
|
|
ErLLVM was declaring atoms in the following manner:
@atom_ok = external constant i64
; Used inside a function like this
%var = ptrtoint i64* @atom_ok to i64
However, doing so makes LLVM think the `atom_ok` is 8-byte aligned,
since it refers to a i64 value. This resulted in LLVM occasionally
incorrectly optimising away type tests on atoms, causing incorrect
behaviour or even segfaults. One such case is in
bs_match_compiler:coverage_apply/2, in which an is_boxed test on a
literal atom was optimised away, causing the code to try and load the
"header" of an atom. This problem reproduces with LLVM versions 3.7
through 3.9.
By declaring atoms as i8 (byte) constants instead, LLVM no longer makes
these alignment assumptions, and the bug is fixed.
|
|
* kostis/hipe-bs_match_string/PR-1234/OTP-14005:
Add a test case that should now work
Fix the native code translation of bs_match_string
|
|
* ferd/ssl-allow-ecc-config/PR-1210/OTP-13959:
Add ECC curve selection order config in TLS server
|
|
* egil/erts/cuddle-tests:
stdlib: Increase timeouts in ets_SUITE
stdlib: Increase timeouts in rand_SUITE
stdlib: Increase timeouts in base64_SUITE
erts: Use cmd on windows for port_SUITE
|
|
* valgrind needs lots of time
|
|
* valgrind needs lots of time
|
|
* valgrind needs lots of time
|
|
|