Age | Commit message (Collapse) | Author |
|
* sverker/trace_gc-bug:
erts: Fix GC tracing to use temp heap
erts: Assert sufficient space need after GC
|
|
OTP-14153
* rickard/hipe_handle_exception:
Remove debug printout and unnecessary GC
|
|
|
|
ssh: Correct ssh_sftpd_file_api dialzyer spec
|
|
* rickard/no-harddebug:
Do not automatically define HARDDEBUG when DEBUG is defined
|
|
OTP-14135
* rickard/abandoned-heap-bugs:
Fix memory leak of temporary heap
|
|
* ingela/ssl/hs-stream/OTP-14138:
ssl: Handle really big handshake packages
|
|
If a handshake message is really big it could happen that the ssl
process would hang due to failing of requesting more data from the
socket. This has been fixed.
Also added option to limit max handshake size. It has a default
value that should be big enough to handle normal usage and small
enough to mitigate DoS attacks.
|
|
|
|
|
|
This bug was introduced in previous commit, and has never been
released in an official OTP version.
|
|
Include explicit attrs when default_attrs=true
|
|
The `State` seems to have been included twice in 91acfc.
|
|
* hasse/stdlib/fix_anno_types/OTP-14131:
stdlib: Correct signatures of functions in erl_parse
|
|
Travis: Simplify running of dialyzer
|
|
OTP-14122
* rickard/ds-fixes:
Fix call time tracing with dirty schedulers
|
|
|
|
|
|
* sverker/make-export-fun-race/OTP-14144:
erts: Fix race bug between export fun creation and code loading
|
|
Now that dialyzer has been optimized for memory usage,
we can combine the dialyzer invocations that use the same
options.
|
|
Symptom: SEGV crash on ARM in delete_code() -> export_list().
Could probably happen on other machines as well.
Problem: Staging export table was iterated in an unsafe way
while an entry was added for a new export fun.
Solution: Correct write order and some memory barriers.
|
|
* hasse/dialyzer/memory_opt/OTP-14126:
dialyzer: Compact 'file' annotations in Core code
dialyzer: Try to reduce memory usage
dialyzer: Use less memory when translating contracts
dialyzer: Use maps instaed of dict
dialyzer: Use maps instead of dict for module contracts map
dialyzer: Compress a few more ETS tables
dialyzer: Optimize memory consumption
dialyzer: Reduce memory consumption during 'remote' phase
dialyzer: Update code for finding parallelism
compiler: Do not spawn process when dialyzing
dialyzer: Reduce ETS usage during the typesig phase
dialyzer: Optimize graph condensation
dialyzer: Do not send full PLTs as messages
|
|
|
|
OTP-14136
* rickard/nif-call-time-trace-bug:
Fix call_time trace for NIFs
|
|
OTP-14134
OTP-14135
* rickard/abandoned-heap-bugs:
Fix issues with abandoned heap
|
|
* rickard/test-fix:
Fix processes() BIF test cases
|
|
* rickard/debug-fix:
Fix faulty assertion
|
|
OTP-14133
* rickard/crashdump-timer-fix:
Fix printout of timer data in crash dump
|
|
* siri/ct/add_app_tests:
Add ct_default_gl to common_test.app.src
[ct] Add tests for .app and .appup files
|
|
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
|
|
|
|
|
|
|
|
The signatures of erl_parse:anno_to_term/1 and
erl_parse:anno_from_term/1 are corrected. Using these function no
longer results in false Dialyzer warnings.
|
|
|
|
* 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.
|