| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| | |
* sverker/to_erl-utf8/ERL-854:
erts: Remove 7-bit ASCII limitation in to_erl
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Symptom: to_erl garbles anything beyond 7-bit ASCII received on STDIN
Solution: Remove setting of ISTRIP flag on input terminal.
"man tcsetattr" says:
ISTRIP Strip off eighth bit.
|
|\ \
| | |
| | |
| | |
| | | |
* sverker/heart-nice-exit/OTP-15599:
erts: Avoid heart killing a nicely exiting emulator
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Symptom:
Heart kills exiting emulator before is has flushed all ports
and with HEART_KILL_SIGNAL=SIGABRT it may also produce
unnecessary core dumps from doing init:reboot() for example.
Problem:
Heart port is closed together with all the others in handle_reap_ports()
which is detected by heart OS process.
Solution 1:
Leave the heart port alone in handle_reap_ports() and let it be closed
by OS when emulator exists. It doesn't need to be flushed anyway.
Solution 2:
When heart OS process gets EOF on connection let it wait max 5 seconds
for emulator process to self terminate before trying to kill it.
|
| | |
| | |
| | |
| | |
| | | |
The macro command was added quite recently and far from
all of our testmachines have this command
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | | |
Optional tuple calls
OTP-15580
|
| | |/
| |/| |
|
|/ / |
|
| |
| |
| |
| |
| | |
The checks in place to allow this file to compile on macOS and BSD can be
extended to include Solaris.
|
| |
| |
| |
| | |
benign until valgrind version 4.* shows up.
|
|\ \
| | |
| | |
| | |
| | |
| | | |
* sverker/cerl-fixing:
erts: Remove "-pz $PRELOADED" arguments added by cerl
erts: Remove dead code in cerl script
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It caused problems when starting with -rr and other arguments.
Not sure what purpose it served
as -pz $PRELOADED is not passed by default by "erl".
|
| | | |
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
* lukas/erts/etp-aux-work-fixes:
erts: Update etp-commands with correct aux_flags
|
| | | | |
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
Fix use-after-free on Windows in escript
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Since commit 385b18de6fd72672ed7d6736b30f56d6691d4433, the emulator path was not
copied anymore before pushing it to the args vector (before it was done within
the `push_words` function. Since on Windows `free_env_val` is not a NOP as it is
on Unix systems, the string is freed and afterwards used, leading to strange
errors like this:
escript: Error executing 'àyI': 2
This is fixed by removing the `free_env_val` call.
|
|/ /
| |
| |
| | |
This was changed in the logger in 8aa64c90ddd20ec0ca8cc5fe92a6124324c51da5.
|
| | |
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
* maint:
Updated OTP version
Update release notes
Update version numbers
ssl: Prepare for release
ssl: Proper handling of clients that choose to send an empty answer to a certificate request
heart: Use ntohs instead of manual conversion
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
into maint-20
* john/erts/fix-heart-command-overflow/OTP-15034/ERIERL-166:
heart: Use ntohs instead of manual conversion
# Conflicts:
# lib/kernel/test/heart_SUITE.erl
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Multiplying a signed char by 256 is undefined behavior and caused
problems on some platforms when the length was long enough. We
could cast it to an unsigned int to make it work, but it's best not
to reinvent the wheel.
Fixes OTP-15034
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This commit replaces the old memory instrumentation with a new
implementation that scans carriers instead of wrapping
erts_alloc/erts_free. The old implementation could not extract
information without halting the emulator, had considerable runtime
overhead, and the memory maps it produced were noisy and lacked
critical information.
Since the new implementation walks through existing data structures
there's no longer a need to start the emulator with special flags to
get information about carrier utilization/fragmentation. Memory
fragmentation is also easier to diagnose as it's presented on a
per-carrier basis which eliminates the need to account for "holes"
between mmap segments.
To help track allocations, each allocation can now be tagged with
what it is and who allocated it at the cost of one extra word per
allocation. This is controlled on a per-allocator basis with the
+M<S>atags option, and is enabled by default for binary_alloc and
driver_alloc (which is also used by NIFs).
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | | |
* lukas/erts/fix_openbsd_eof_poll/OTP-14346:
erts: Break etp-processes/ports when all found
erts: Don't use EV_DISPATCH on openbsd
|
| | | | |
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Sharing these settings for all schedulers can degrade performance,
so it makes sense to be able to configure them separately.
This also changes the default busy-wait time to "short" for both
kinds of dirty schedulers.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Communication between Erlang processes has conceptually always been
performed through asynchronous signaling. The runtime system
implementation has however previously preformed most operation
synchronously. In a system with only one true thread of execution, this
is not problematic (often the opposite). In a system with multiple threads
of execution (as current runtime system implementation with SMP support)
it becomes problematic. This since it often involves locking of structures
when updating them which in turn cause resource contention. Utilizing
true asynchronous communication often avoids these resource contention
issues.
The case that triggered this change was contention on the link lock due
to frequent updates of the monitor trees during communication with a
frequently used server. The signal order delivery guarantees of the
language makes it hard to change the implementation of only some signals
to use true asynchronous signaling. Therefore the implementations
of (almost) all signals have been changed.
Currently the following signals have been implemented as true
asynchronous signals:
- Message signals
- Exit signals
- Monitor signals
- Demonitor signals
- Monitor triggered signals (DOWN, CHANGE, etc)
- Link signals
- Unlink signals
- Group leader signals
All of the above already defined as asynchronous signals in the
language. The implementation of messages signals was quite
asynchronous to begin with, but had quite strict delivery constraints
due to the ordering guarantees of signals between a pair of processes.
The previously used message queue partitioned into two halves has been
replaced by a more general signal queue partitioned into three parts
that service all kinds of signals. More details regarding the signal
queue can be found in comments in the erl_proc_sig_queue.h file.
The monitor and link implementations have also been completely replaced
in order to fit the new asynchronous signaling implementation as good
as possible. More details regarding the new monitor and link
implementations can be found in the erl_monitor_link.h file.
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | | |
* rickard/psflgs/OTP-14948:
Replace usage of ERTS_PSFLG_BOUND
Remove ERTS_PSFLG_ON_HEAP_MSGQ
|
| | | | |
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | | |
* raimo/stop-encouraging-v4-mapped/ERL-503/OTP-13716:
Stop translating V4MAPPED addresses
Stop returning V4MAPPED addresses
Implement function for IPv4-mapped IPv6 addresses
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| / /
| |/ / |
into 'sverker/master/alloc-n-migration/ERIERL-88'
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
into 'sverker/maint-20/alloc-n-migration/ERIERL-88'
OTP-14915
OTP-14916
OTP-14917
OTP-14918
|
| | | |
| | | |
| | | |
| | | |
| | | | |
acnl: Abandon Carrier Nr Limit
acfml: Abandon Carrier Free block Min Limit
|
|\ \ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
erlexec adds $ROOT/erts-<vsn>/bin and $ROOT/bin first in $PATH on
startup, but didn't do so if they were in the $PATH already, which
meant that the bindir didn't point to the current release after a
downgrade.
|
|\ \ \ \ \
| | |/ / /
| |/| | | |
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The retry loop wasn't working anyway as it tested fd<0
instead of res.
So, there is no real semantic change here.
|
|\ \ \ \
| |/ / / |
|
| |\ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
* lukas/erts/win_user_home_dir/OTP-14691:
erts: Use PROFILE dir as home on windows
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Instead of using C:\Windows we use the profile path as the
home path on windows. The profile path normally resolves
to C:\Users\%USERNAME%. This fixes an issue where the default
path to the .erlang.cookie was not the same for jinterface as
for erl.
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
* dgud/dot_erlang/OTP-14439:
fixup! Do not load .erlang from current dir
erlc: Do not load .erlang
escript: Do not load .erlang
dialyzer: Do not load .erlang
reltool: Add no_dot_erlang bootfiles
Enable usage of no_dot_erlang in bootstrap
Do not load .erlang from current dir
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Use 'no_dot_erlang' start script for tools. Options and
paths should be stated on the command line, via a
Makefile, rebar.config etc.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Previously you could not opt out on loading .erlang, change the
default to not load the resource file. The escript author
can invoke c:erlangrc(PathList) to find and load .erlang if needed.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Use 'no_dot_erlang' start script for tools.
Options and paths should be stated on the command line.
|
|\ \ \ \ \ \
| | |/ / / /
| |/| | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
to run beam with "rr record".
|
| |/ / / /
|/| | | | |
|