Age | Commit message (Collapse) | Author |
|
* 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
|
|
Now that dialyzer has been optimized for memory usage,
we can combine the dialyzer invocations that use the same
options.
|
|
* 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.
|
|
* sverker/delete_module-error-msg:
erts: Fix error report message for erlang:delete/1
|
|
|
|
* sverker/cuddle-port_SUITE:
erts: Fix some compile warnings for port_SUITE
erts: Add missing make rules for port_SUITE
|
|
OTP-14122
* rickard/ds-fixes:
Fix VM global GC info for dirty schedulers
Leave dirty work in dirty run-queues on multi scheduling block
Fix premature removal of process struct
Fix crash due to GC of node entry on dirty scheduler
|
|
OTP-14121
* rickard/msb-fixes:
Multi scheduling block bug-fixes
|
|
|
|
|
|
|
|
|
|
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
|
|
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
|