Age | Commit message (Collapse) | Author |
|
File annotations {file, File} in Core Erlang code is replaced by
{file, FakeFile}, where FakeFile is "0", "1", ..., in order to save
memory. When a warning message is created, FakeFile is translated to
the original File (a bit awkward but easy to do).
The Core code stored in ETS tables needs less space, but more
important is that a less heap memory is used in the dataflow,
warnings, and typesig phases, allowing more parallelism.
|
|
The translation from forms to types is done in a separate process
in an attempt to reduce peak memory usage.
Expect further optimizations as it is probably not feasible
in the long run to keep all type information on the heap.
|
|
|
|
|
|
|
|
|
|
Some SCC info is no longer cached. It reduces the peak memory
consumption of workers during the typesig phase, and seems to cost
very little time.
|
|
The cache used for speeding up the translation from forms to types is
no longer global, but reset per module. The peak memory consumption
is reduced, and the added time seems to be small.
|
|
Using erlang:system_info(schedulers_online) for determining
parallelism is recommended by OTP experts. It takes care of "+S 4:1"
and simultaneous loading of HiPE code.
|
|
Memory consumption is reduced during the compilation phase by keeping
the Core parse tree shared. In particular the file annotation takes a
lot of memory when not shared.
|
|
The condensed graph of SCCs occupies less ETS memory. A table
translating to and from SCC to a unique integer is introduced.
|
|
By not using ETS when calculating the condensation of graphs, peak
heap memory consumption is reduced.
|
|
The mini PLT is extended to hold all data of the full PLT, and the
full PLT is restored when needed (for storing the PLT on file).
|
|
* hasse/dialyzer/fix_opaque_parms/OTP-14130:
dialyzer: Fix check of parameterized opaque types
|
|
* hasse/stdlib/char_as_integer/ERL-313/OTP-14103:
stdlib: Allow characters in types and constant patterns
|
|
Two parameters used to be "compatible" if one is a specialization of
the other, in the way that the input type of t_limit() is a
specialization of the output type. This check is now relaxed: any() in
any of the two parameters is compatible with any type of the other
parameter.
The change is due to bugus warnings.
A clause for maps has been added.
|
|
Characters ($char) can be used in constant pattern expressions. They
can also be used in types and contracts.
|
|
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
|
|
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
|
|
* legoscia/remove-watchdog-vestiges/PR-1255/OTP-14112:
Remove vestiges of watchdog support in heart
|
|
OTP-14055
* rickard/stacktrace-bugs:
Remove faulty release note for these fixes
New test cases testing stacktrace from apply on erlang:error()
Fix stactrace for apply on error/[1,2], exit/1, or throw/1
Fix stack-trace generated by a traced process
|
|
|
|
* ingela/ssl/terminate/OTP-14100:
ssl: Correct terminate behaviour
|
|
When the terminate function is called explicitly, to make guarantees
that for instance the reuseaddr option works as expected, we must
make sure that the clean up code is not run again when gen_statem
calls terminate. This check was broken in the rewrite from gen_fsm to
gen_statem.
Caused PEM cache errors, that in some cases would
cause unexpected connection failures.
|
|
hipe: one more test file and some cleanups
|
|
Allow escripts with only two lines
OTP-14098
|
|
|
|
into maint
* ingela/inets/httpc-redirect-host-header/ERL-316/OTP-14097:
inets: httpc - Correct redirection host header
|
|
* ingela/inets/httpc-PATCH-doc:
inets: httpc - patch method missing in doc
|
|
|
|
RFC2616 Sect 14.23: The Host request-header field specifies the
Internet host AND port number.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The current implementation assumes that escripts all have at least
three lines. But according to the escript documentation, comments
on the second line and emulator flags on the third line are all
optional. Thus escripts with only two lines -- shebang on the
first line and code on the second line -- will not run. This commit
fixes the problem by rearranging the escript header parsing logic,
and recognize the escript body on the second line if the header only
contains a line of shebang.
|
|
|
|
Since commit 265998a7e412cd382315632964846569c370a5a2, etop reports
the CPU (scheduler) utilization since the tool was started instead of
for the last interval only. This is now corrected.
|
|
|
|
* egil/erl_interface/fix-warning-in-erl_call/OTP-14086:
erl_interface: Fix compile warning in erl_call
|
|
|
|
|
|
|
|
|