aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2017-01-12Merge branch 'rickard/ds-fixes' into maintRickard Green
OTP-14122 * rickard/ds-fixes: Fix call time tracing with dirty schedulers
2017-01-12Updated OTP versionOTP-19.2.1Erlang/OTP
2017-01-12Prepare releaseErlang/OTP
2017-01-12Merge branch 'sverker/make-export-fun-race/OTP-14144' into maint-19Erlang/OTP
* sverker/make-export-fun-race/OTP-14144: erts: Fix race bug between export fun creation and code loading
2017-01-12Travis: Simplify running of dialyzerBjörn Gustavsson
Now that dialyzer has been optimized for memory usage, we can combine the dialyzer invocations that use the same options.
2017-01-12ssl: Make crls valid for a week instead of 24 hoursIngela Anderton Andin
With the 24 option we might be unlucky and get failing tests just because cert expired before the test is run.
2017-01-12erts: Fix race bug between export fun creation and code loadingSverker Eriksson
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.
2017-01-12Merge branch 'hasse/dialyzer/memory_opt/OTP-14126' into maintHans Bolinder
* 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
2017-01-11Fix call time tracing with dirty schedulersRickard Green
2017-01-11Merge branch 'rickard/nif-call-time-trace-bug' into maintRickard Green
OTP-14136 * rickard/nif-call-time-trace-bug: Fix call_time trace for NIFs
2017-01-11Merge branch 'rickard/abandoned-heap-bugs' into maintRickard Green
OTP-14134 OTP-14135 * rickard/abandoned-heap-bugs: Fix issues with abandoned heap
2017-01-11Merge branch 'rickard/test-fix' into maintRickard Green
* rickard/test-fix: Fix processes() BIF test cases
2017-01-11Merge branch 'rickard/debug-fix' into maintRickard Green
* rickard/debug-fix: Fix faulty assertion
2017-01-11Merge branch 'rickard/crashdump-timer-fix' into maintRickard Green
OTP-14133 * rickard/crashdump-timer-fix: Fix printout of timer data in crash dump
2017-01-11Merge branch 'siri/ct/add_app_tests' into maintSiri Hansen
* siri/ct/add_app_tests: Add ct_default_gl to common_test.app.src [ct] Add tests for .app and .appup files
2017-01-11dialyzer: Compact 'file' annotations in Core codeHans Bolinder
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.
2017-01-11dialyzer: Try to reduce memory usageHans Bolinder
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.
2017-01-11dialyzer: Use less memory when translating contractsHans Bolinder
2017-01-11dialyzer: Use maps instaed of dictHans Bolinder
2017-01-11dialyzer: Use maps instead of dict for module contracts mapHans Bolinder
2017-01-11dialyzer: Compress a few more ETS tablesHans Bolinder
2017-01-11dialyzer: Optimize memory consumptionHans Bolinder
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.
2017-01-11dialyzer: Reduce memory consumption during 'remote' phaseHans Bolinder
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.
2017-01-11dialyzer: Update code for finding parallelismHans Bolinder
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.
2017-01-11compiler: Do not spawn process when dialyzingHans Bolinder
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.
2017-01-11dialyzer: Reduce ETS usage during the typesig phaseHans Bolinder
The condensed graph of SCCs occupies less ETS memory. A table translating to and from SCC to a unique integer is introduced.
2017-01-11dialyzer: Optimize graph condensationHans Bolinder
By not using ETS when calculating the condensation of graphs, peak heap memory consumption is reduced.
2017-01-11dialyzer: Do not send full PLTs as messagesHans Bolinder
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).
2017-01-11Merge branch 'hasse/dialyzer/fix_opaque_parms/OTP-14130' into maintHans Bolinder
* hasse/dialyzer/fix_opaque_parms/OTP-14130: dialyzer: Fix check of parameterized opaque types
2017-01-10Fix call_time trace for NIFsRickard Green
2017-01-10Fix issues with abandoned heapRickard Green
2017-01-10Fix processes() BIF test casesRickard Green
2017-01-10stdlib: Correct signatures of functions in erl_parseHans Bolinder
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.
2017-01-10Add ct_default_gl to common_test.app.srcSiri Hansen
2017-01-10Merge branch 'hasse/stdlib/char_as_integer/ERL-313/OTP-14103' into maintHans Bolinder
* hasse/stdlib/char_as_integer/ERL-313/OTP-14103: stdlib: Allow characters in types and constant patterns
2017-01-10dialyzer: Fix check of parameterized opaque typesHans Bolinder
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.
2017-01-09Merge branch 'sverker/delete_module-error-msg/ERL-334' into maintSverker Eriksson
* sverker/delete_module-error-msg: erts: Fix error report message for erlang:delete/1
2017-01-09erts: Fix error report message for erlang:delete/1Sverker Eriksson
2017-01-05erts: Fix GC tracing to use temp heapSverker Eriksson
Can't use HAlloc as it might consume part of callers 'need'.
2017-01-05erts: Assert sufficient space need after GCSverker Eriksson
2017-01-03Merge branch 'sverker/cuddle-port_SUITE' again into maintSverker Eriksson
* sverker/cuddle-port_SUITE: erts: Fix some compile warnings for port_SUITE erts: Add missing make rules for port_SUITE
2017-01-02Merge branch 'rickard/ds-fixes' into maintRickard Green
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
2017-01-02Merge branch 'rickard/msb-fixes' into maintRickard Green
OTP-14121 * rickard/msb-fixes: Multi scheduling block bug-fixes
2017-01-02Fix faulty assertionRickard Green
2016-12-30Multi scheduling block bug-fixesRickard Green
2016-12-28Fix VM global GC info for dirty schedulersRickard Green
2016-12-28Leave dirty work in dirty run-queues on multi scheduling blockRickard Green
2016-12-28Fix premature removal of process structRickard Green
Refc on process struct could reach zero while it was still referred by dirty scheduler
2016-12-28Fix crash due to GC of node entry on dirty schedulerRickard Green
The dirty scheduler failed to set a timer. Dispatch this job to an ordinary scheduler.
2016-12-28Merge branch 'reith/erts/c_port_driver_tutorial_fix/PR-1281' into maintLukas Larsson
* reith/erts/c_port_driver_tutorial_fix/PR-1281: fix library open error in linked-in port driver tutorial