aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
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-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.
2016-12-21stdlib: Allow characters in types and constant patternsHans Bolinder
Characters ($char) can be used in constant pattern expressions. They can also be used in types and contracts.
2016-12-21inets: httpc - Prevent hanging user processIngela Anderton Andin
Input should be checked and httpc_handler process shall terminate gracefully on errors so that user process will in hang in gen_server:call.
2016-12-21inets: httpc - clean codeIngela Anderton Andin
Remove dead code and redundant debug macros. Better to use tracing for debugging.
2016-12-21Merge branch 'ingela/inets/httpc-stream/ERL-116/OTP-13571' into maintIngela Anderton Andin
* ingela/inets/httpc-stream/ERL-116/OTP-13571: inets: httpc - Chunk size decoding could fail
2016-12-20inets: httpc - Chunk size decoding could failIngela Anderton Andin
Correct chunk decoding by adding missing argument to match. The symptom was that chunk decoding sometimes failed depending on stream data arrival timing.
2016-12-20Merge branch 'siri/cdv/multi-line-slogan/ERL-318/OTP-14093' into maintSiri Hansen
* siri/cdv/multi-line-slogan/ERL-318/OTP-14093: [crashdump_viewer] Allow multiple lines in Slogan
2016-12-20Merge branch 'siri/etop/cpu-per-interval/OTP-14090' into maintSiri Hansen
* siri/etop/cpu-per-interval/OTP-14090: [etop] Show CPU utilization for last interval only
2016-12-19Merge branch 'legoscia/remove-watchdog-vestiges/PR-1255/OTP-14112' into maintBjörn-Egil Dahlberg
* legoscia/remove-watchdog-vestiges/PR-1255/OTP-14112: Remove vestiges of watchdog support in heart
2016-12-19Merge branch 'rickard/stacktrace-bugs' into maintRickard Green
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
2016-12-19Fix stactrace for apply on error/[1,2], exit/1, or throw/1Rickard Green
2016-12-19Merge branch 'ingela/ssl/terminate/OTP-14100' into maintIngela Anderton Andin
* ingela/ssl/terminate/OTP-14100: ssl: Correct terminate behaviour
2016-12-19ssl: Correct terminate behaviourIngela Anderton Andin
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.
2016-12-16Merge pull request #1270 from kostis/hipe-testSverker Eriksson
hipe: one more test file and some cleanups
2016-12-16Merge pull request #1275 from pjhades/fix/escriptBjörn Gustavsson
Allow escripts with only two lines OTP-14098
2016-12-16Merge branch 'hans/eldap/cover_spec' into maintHans Nilsson
2016-12-16Merge branch 'ingela/inets/httpc-redirect-host-header/ERL-316/OTP-14097' ↵Ingela Anderton Andin
into maint * ingela/inets/httpc-redirect-host-header/ERL-316/OTP-14097: inets: httpc - Correct redirection host header
2016-12-16Merge branch 'ingela/inets/httpc-PATCH-doc' into maintIngela Anderton Andin
* ingela/inets/httpc-PATCH-doc: inets: httpc - patch method missing in doc
2016-12-15eldap: add cover spec for nightly testsHans Nilsson
2016-12-14inets: httpc - Correct redirection host headerIngela Anderton Andin
RFC2616 Sect 14.23: The Host request-header field specifies the Internet host AND port number.
2016-12-14[crashdump_viewer] Allow multiple lines in SloganSiri Hansen
2016-12-14ssh: [test] property test cuddlingHans Nilsson
2016-12-14ssh: [test] remove 'known_hosts' interference in test suiteHans Nilsson
2016-12-14ssh: [test] Move fn random_chars/1 to ssh_test_libHans Nilsson
2016-12-14ssh: [test] Put tstflg values in a proplistHans Nilsson
2016-12-14ssh: [test] Extend timetrap in test caseHans Nilsson
2016-12-13Allow escripts with only two linesJing Peng
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.
2016-12-13inets: httpc - patch method missing in docIngela Anderton Andin
2016-12-12[etop] Show CPU utilization for last interval onlySiri Hansen
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.
2016-12-09Prepare releaseErlang/OTP
2016-12-08Merge branch 'egil/erl_interface/fix-warning-in-erl_call/OTP-14086' into maintBjörn-Egil Dahlberg
* egil/erl_interface/fix-warning-in-erl_call/OTP-14086: erl_interface: Fix compile warning in erl_call
2016-12-07erl_interface: Fix compile warning in erl_callBjörn-Egil Dahlberg
2016-12-07Update copyright-yearErlang/OTP
2016-12-06Add some tests for numeric BIFsKostis Sagonas
2016-12-06Substitute export_all with proper exportKostis Sagonas