Age | Commit message (Collapse) | Author |
|
Before this fix the process would continue to process
more distributed down or exit messages until it
ran out of reductions instead of being suspended
immediately.
|
|
|
|
|
|
|
|
Doing the dump via rpc can introduce all kins of strange
timing issiues. So instead we dump 5ms after the exit has
been started.
|
|
|
|
Because of fragmentation of memory it is not always possible
to allocate enough 320 MB segments on 32-bit so we only sent
smaller packets there.
|
|
If it cannot be found in the daily build dir, we try ERL_TOP
incase it is there.
|
|
|
|
|
|
|
|
erts: Optimize arithmetic ops using overflow intrinsics
|
|
* john/merge-re-replace-fix:
erts: Skip ERTS_NOINLINE on non-GCC-compatible compilers
cleanup: beam_emu.c: use ERTS_NOINLINE instead of NOINLINE
stdlib: fix re:replace on LTO builds
|
|
The wrong allocator type was given to erts_free.
|
|
We don't check for io errors as the pollset will be unstable.
|
|
Complementory fix to 922fd355831575965
|
|
The edep->data values need to be 64-bit aligned as it
contains 64-bit values.
|
|
|
|
|
|
|
|
Cannot do unaligned word writes on sparc!
|
|
|
|
|
|
Incorrect precidence rules made the driver never
deselect the given fds.
|
|
* bjorn/erts/cuddle-with-tests:
statistics_SUITE: Make wall_clock_update/1 more tolerant
|
|
|
|
__declspec(noinline) works fine on MSVC but requires us to place
the macro before a function rather than after, which in turn causes
early versions of GCC to puke since they only accept __attribute__
at the end of a function declaration.
Since this is a new macro that previously only saw use in beam_emu,
I figured it's easiest to leave it disabled on MSVC.
|
|
Measurements show that i_minus instructions (subtraction) are
frequent enough to warrant creating specialized i_minus instructions.
Thanks to José Valim for doing instruction counting on
Elixir code.
|
|
OTP-15715
* lukas/erl_docgen/add-internal-docs:
cerl_clauses: Fix broken link
Fix minor typos
Add CountingInstructions to the internal documentation
GarbageCollection.md: Fix links to references
emd2exml: Remove paragraphs around image tags
emd2exml: Clean emphasis markers in link texts
emd2exml: Allow short names of anchors for internal links
Include figures
erts: Fix more internal docs xmllint
compiler: Add internal docs section
erl_docgen: Add new internal docs chapter to docs
|
|
* bjorn/doc/fix-broken-links:
Fix broken links
|
|
PR 2194, stdlib: fix re:replace on LTO builds
* trofi/master:
cleanup: beam_emu.c: use ERTS_NOINLINE instead of NOINLINE
stdlib: fix re:replace on LTO builds
|
|
A multitude of broken links were found when a bug was fixed
in the link checker.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AGAIN
* sverker/enable-big-creation/OTP-15603:
erts: Document new EPMD response ALIVE2_X_RESP
erl_interface: Support 32-bit creation local cnode
jinterface: Remove old encoding of pid,port,refs
|
|
* john/erts/cuddle-efile-suite:
efile_SUITE: Fix proc_zero_sized_files on systems with empty /proc
|
|
* maint:
Updated OTP version
Prepare release
# Conflicts:
# OTP_VERSION
# make/otp_version_tickets_in_merge
|
|
This test would fail on some versions of FreeBSD because /proc was
present but empty.
This commit makes the test fail if and only if a known zero-sized
file is found and turns out to be empty empty.
|
|
* john/kernel/cuddle-file-suite:
file_name_SUITE: Darwin 18 broke support for 'icky' names
file_SUITE: Ignore EILSEQ on Darwin in +fnu/latin1 test
|
|
Signed-off-by: Sergei Trofimovich <[email protected]>
|
|
Fabio Coatti reported elixir build failure in https://bugs.gentoo.org/681778.
The minimal reproducer looks like that (from otp git tree):
$ ./configure CFLAGS='-O2 -flto' LDFLAGS='-O2 -flto=8'
$ make
$ ERL_TOP=$PWD \
PATH=$ERL_TOP/bin:$PATH \
\
bin/erl \
\
-noshell -eval 're:replace("a","b","c",[{return,list}]).' \
-s erlang halt
{"init terminating in do_boot",{badarg,[{re,replace,["a","b","c",[{return,list}]],
[{file,"re.erl"},{line,362}]},
{erl_eval,do_apply,6,[{file,"erl_eval.erl"},{line,680}]},
{init,start_it,1,[]},
{init,start_em,1,[]},
{init,do_boot,3,[]}]}}
init terminating in do_boot ({badarg,[{re,replace,[[_],[_],[_],[_]],[{_},{_}]},
{erl_eval,do_apply,6,[{_},{_}]},{init,start_it,1,[]},{init,start_em,1,[]},{init,do_boot,3,[]}]})
Crash dump is being written to: erl_crash.dump...done
The failure happens in libpcre2 where stack overflow is mis-identified
at function entry of
erts_pcre_compile2()
compile_regex()
if (PUBL(stack_guard) != NULL && PUBL(stack_guard)())
{
*errorcodeptr= ERR85;
return FALSE;
}
The stack "overflow" detection happens in
thr_wrapper()
ethr_set_stacklimit__()
because the stack usage code relies on the fact that ethr_set_stacklimit__()
and similar functions don't get inlined into callers for stack growth
measurement.
Before the change inlining avoidance was achieved by putting functions
into standalone translation units. LTO makes this technique inefficient.
The change marks functions explicitly as __attribute__((__noinline__)) on gcc.
Reported-by: Fabio Coatti
Bug: https://bugs.gentoo.org/681778
Signed-off-by: Sergei Trofimovich <[email protected]>
|
|
|
|
* sverker/process_info-reductions-fix/OTP-15709:
erts: Fix bug in process_info(reductions)
erts: Use ptr_val for pointer in gc msg copy
|
|
|
|
* sverker/process_info-reductions-fix/OTP-15709:
erts: Fix bug in process_info(reductions)
erts: Use ptr_val for pointer in gc msg copy
|