Age | Commit message (Collapse) | Author |
|
|
|
|
|
Refc on process struct could reach zero while it was still
referred by dirty scheduler
|
|
The dirty scheduler failed to set a timer. Dispatch this job
to an ordinary scheduler.
|
|
|
|
* reith/erts/c_port_driver_tutorial_fix/PR-1281:
fix library open error in linked-in port driver tutorial
|
|
The code has been rearranged to make use of the actual path
"get_default_emulator(scriptname)" to the escript instead of
the given one "get_default_emulator(argv[0])".
TL;DR
Assume a source system with some Erlang applications (app1, app2 etc.)
and an escript called "mytool". When generating a standalone target
system (with reltool for example), the escript(s) are located in the
same top bin directory as "erl". See mytool* below.
In such a system the original "mytool" escript is given the extension
".escript" and the file with the same name as the original escript is
a copy of the "escript" executable. One purpose of the escript
executable is to determine which "erl" to use to start the system.
In a standalone system we want it to find the runtime system bundled
with the escript(s). This is done by analyzing the path in order to
find the "erl" located in the same directory as the escript.
A dilemma here is that we do not want to put the top bin directory
in the execution path (PATH env var) as we then would cause other
Erlang applications to make use of our bundled run-time system.
One way of solving this is to choose some suitable bin directory in
the execution path (such as /user/local/bin) and put a symbolic link
there to our mytool executable.
Unfortunately this did not work as the escript executable (in this
case called mytool) would try to find "erl" in /usr/local/bin and when
it did not find such a file it resorted to use the command "erl" which
would find some (unwanted) "erl" in the execution path.
My fix solves that problem.
├── bin/
│ ├── erl* (dyn_erl.c)
│ ├── mytool* (escript.c)
│ ├── mytool.escript* (original mytool escript)
│ └── start_clean.boot
├── erts-vsn/
│ └── bin/
│ ├── beam*
│ ├── beam.smp*
│ ├── erl*
│ ├── erl_child_setup*
│ ├── erlexec*
│ └── inet_gethost*
└── lib/
├── app1-vsn
├── app2-vsn
└── ...
|
|
|
|
Characters ($char) can be used in constant pattern expressions. They
can also be used in types and contracts.
|
|
|
|
* ingela/inets/httpc-user-hangs/ERL-271/OTP-14091:
inets: httpc - Prevent hanging user process
inets: httpc - clean code
|
|
Input should be checked and httpc_handler process shall terminate
gracefully on errors so that user process will in hang in gen_server:call.
|
|
Remove dead code and redundant debug macros. Better to use tracing for
debugging.
|
|
|
|
* ingela/inets/httpc-stream/ERL-116/OTP-13571:
inets: httpc - Chunk size decoding could fail
|
|
|
|
Make depth of current_stacktrace configurable
|
|
|
|
|
|
|
|
|
|
|
|
* sverker/map-footprint-docs:
erts: Correct memory footprint for maps
|
|
|
|
Seems some default rule made it work before
until an upgrade of FreeBSD resulted in:
make: don't know how to make dead_port. Stop
|
|
* egil/ssh/use-maps-instead-of-dict/OTP-14117:
ssh: Use maps instead of dict in ssh_sftp
ssh: Remove whitespace errors in ssh_sftp.erl
|
|
|
|
* mikpe/erts/system_info-atom_table/PR-1286/OTP-13976:
erts: add erlang:system_info(atom_count)
|
|
|
|
Small map was wrong as we should include our own top Eterm and exclude
them for keys and values.
Large maps was wrong as it described the theoretical minimum of a
full tree, which does not happen in reality.
|
|
This commit reactivates chacha20_poly1305 and fixes the imprementation
for the released OpenSSL 1.1.0 or later.
|
|
Correct chunk decoding by adding missing argument to match.
The symptom was that chunk decoding sometimes failed depending on
stream data arrival timing.
|
|
|
|
* siri/cdv/multi-line-slogan/ERL-318/OTP-14093:
[crashdump_viewer] Allow multiple lines in Slogan
|
|
* siri/etop/cpu-per-interval/OTP-14090:
[etop] Show CPU utilization for last interval only
|
|
|
|
|
|
|
|
|
|
|
|
* sverker/cuddle-port_SUITE:
erts: Fix faulty printout in port_SUITE
|
|
|
|
|
|
ERL_DRV_USE_NO_CALLBACK only meaningful when deselecting.
|
|
|
|
* legoscia/remove-watchdog-vestiges/PR-1255/OTP-14112:
Remove vestiges of watchdog support in heart
|
|
|
|
Update the myths in the Efficiency Guide for OTP 20
|
|
Thanks to Joe Armstrong for the suggestion.
|
|
The myth about tail recursion being faster than body recursion
still seems to be alive, but we don't need to spend that much
space discussing it as we needed earlier. Shorten the discussion
and include a link to to Fred Hebert's excellent blog post.
|