aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2017-01-13Merge pull request #1285 from bjorng/bjorn/compiler/type-specsBjörn Gustavsson
Add types and specs for all compiler modules
2017-01-13Merge branch 'maint'Lars Thorsen
2017-01-13Merge pull request #1261 from smangelsdorf/default_attrs_bugLars Thorsén
Include explicit attrs when default_attrs=true
2017-01-13Merge branch 'hasse/stdlib/check_type_constraints/OTP-14070/PR-1214'Hans Bolinder
* hasse/stdlib/check_type_constraints/OTP-14070/PR-1214: stdilb: Check for bad type constraints in function types
2017-01-12Merge branch 'maint'Hans Bolinder
* maint: stdlib: Correct signatures of functions in erl_parse
2017-01-12Merge branch 'hasse/stdlib/fix_anno_types/OTP-14131' into maintHans Bolinder
* hasse/stdlib/fix_anno_types/OTP-14131: stdlib: Correct signatures of functions in erl_parse
2017-01-12Makefile: Warn for missings specBjörn Gustavsson
2017-01-12Add specs for the beam_*:module/2 functionsBjörn Gustavsson
2017-01-12beam_trim: Add types and specsBjörn Gustavsson
2017-01-12beam_listing: Add types and specsBjörn Gustavsson
2017-01-12beam_jump: Add types and specsBjörn Gustavsson
2017-01-12beam_except: Add types and specsBjörn Gustavsson
2017-01-12beam_dict: Add missing types and specsBjörn Gustavsson
2017-01-12beam_clean: Add types and specsBjörn Gustavsson
2017-01-12beam_bsm: Add missing types and specsBjörn Gustavsson
Also slightly refactor the code to simplify the types.
2017-01-12v3_codegen: Add missing types and specsBjörn Gustavsson
2017-01-12sys_pre_attributes: Correct and add missing types and specsBjörn Gustavsson
2017-01-12core_scan: Add missing types and specsBjörn Gustavsson
2017-01-12compile: Add missing types and specsBjörn Gustavsson
2017-01-12cerl: Add missing types and specsBjörn Gustavsson
2017-01-12v3_kernel_pp: Correct spec for format/1Björn Gustavsson
2017-01-12v3_life: Add types and specsBjörn Gustavsson
2017-01-12v3_life.hrl: Add types for all fieldsBjörn Gustavsson
2017-01-12beam_utils: Add types and specsBjörn Gustavsson
2017-01-12beam_asm: Add common types to describe operandsBjörn Gustavsson
2017-01-12sys_pre_attributes: Remove unnecessary flexibilityBjörn Gustavsson
The compiler passes always Options as list to parse_transform/2. There is no need accept a non-list. There is also no need to handle an improper Options list. The compiler itself will crash if the Options list is improper.
2017-01-12beam_dict: Simplify the internal format of the lambda tableBjörn Gustavsson
Since Index =:= OldIndex and OldUniq =:= 0, there is no need to store OldIndex and OldUniq in the internal data structure for the lambda table.
2017-01-12Merge branch 'maint'Hans Bolinder
* maint: 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-12Merge pull request #1300 from bjorng/bjorn/compiler/fix-case-optBjörn Gustavsson
Improve compilation speed for huge literal case expressions
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-12Merge pull request #1303 from bjorng/bjorn/kernel-stdlib-docBjörn Gustavsson
Kernel/STDLIB: Remove references to OTP R12B and earlier
2017-01-11gen_{server,fsm}.xml: Remove superfluous reference to R12BBjörn Gustavsson
2017-01-11ets: Remove superfluous reference to R11BBjörn Gustavsson
2017-01-11config.xml: Remove superfluous reference to R10BBjörn Gustavsson
2017-01-11code.xml: Remove superfluous reference to R12BBjörn Gustavsson
2017-01-11seq_trace: Remove superfluous reference to R3BBjörn Gustavsson
Reported-by: Loïc Hoguin
2017-01-11Merge branch 'maint'Siri Hansen
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.