Age | Commit message (Collapse) | Author | |
---|---|---|---|
2018-01-17 | Merge branch 'maint' | Björn Gustavsson | |
* maint: asn1_SUITE: Fix failure in xref_export_all/1 | |||
2018-01-17 | asn1_SUITE: Fix failure in xref_export_all/1 | Björn Gustavsson | |
The variable 'S' was used twice. If the test case failed because there were unused functions in asn1_SUITE, there would be an ugly badmatch exception instead of the intended nice error message. | |||
2018-01-17 | Merge branch 'maint' | Lukas Larsson | |
2018-01-17 | Merge pull request #1686 from angelhof/documentation_broken_link_fix | Lukas Larsson | |
Fix a broken erlang:trace/3 link in doc | |||
2018-01-17 | Fix a broken erlang:trace/3 link in doc | Konstantinos Kallas | |
2018-01-16 | Merge branch 'sverker/build-proc-bin' | Sverker Eriksson | |
2018-01-16 | Merge branch 'ingela/ssl/remove-rsa-keyexchange-from-default/OTP-14769' | Ingela Anderton Andin | |
* ingela/ssl/remove-rsa-keyexchange-from-default/OTP-14769: ssl: RSA key exchange is considered broken do not support by default | |||
2018-01-16 | ssl: RSA key exchange is considered broken do not support by default | Ingela Anderton Andin | |
2018-01-16 | Merge branch 'hasse/stdlib/limit_gen_bench' | Hans Bolinder | |
* hasse/stdlib/limit_gen_bench: stdlib: Spend less time in gen_server benchmarks | |||
2018-01-16 | Merge branch 'maint' | Hans Bolinder | |
* maint: stdlib: Handle Unicode when formatting stacktraces | |||
2018-01-16 | Merge branch 'hasse/stdlib/unicode_stacktrace/OTP-14847/ERL-553' into maint | Hans Bolinder | |
* hasse/stdlib/unicode_stacktrace/OTP-14847/ERL-553: stdlib: Handle Unicode when formatting stacktraces | |||
2018-01-15 | Merge branch 'maint' | Sverker Eriksson | |
2018-01-15 | Merge branch 'sverker/cuddle-big-bin-tests' into maint | Sverker Eriksson | |
2018-01-15 | Merge branch 'sverker/term_to_binary-spec/ERL-548/OTP-14876' into maint | Sverker Eriksson | |
2018-01-15 | Merge branch 'sverker/ic-test-cuddle' into maint | Sverker Eriksson | |
2018-01-15 | Merge branch 'bjorn/compiler/cuddle-with-tests' | Björn Gustavsson | |
* bjorn/compiler/cuddle-with-tests: beam_match_SUITE: Eliminate warnings for unused variables bs_match_SUITE: Add tests case written when walking into a dead end | |||
2018-01-15 | Merge branch 'maint' | Hans Bolinder | |
* maint: stdlib: Correct a filelib test case stdlib: Let filelib:find_source() search subdirs | |||
2018-01-15 | Merge branch 'hasse/stdlib/find_src/OTP-14832/ERL-527' into maint | Hans Bolinder | |
* hasse/stdlib/find_src/OTP-14832/ERL-527: stdlib: Correct a filelib test case stdlib: Let filelib:find_source() search subdirs | |||
2018-01-15 | stdlib: Spend less time in gen_server benchmarks | Hans Bolinder | |
Limit the time used for the benchmarks introduced in b8f16f0. | |||
2018-01-15 | Merge branch 'maint' | Ingela Anderton Andin | |
* maint: ssl: Call clean version function | |||
2018-01-15 | Merge branch 'ingela/ssl/test-cuddle' into maint | Ingela Anderton Andin | |
* ingela/ssl/test-cuddle: ssl: Call clean version function | |||
2018-01-15 | ssl: Call clean version function | Ingela Anderton Andin | |
Make sure tests are run with intended version settings. | |||
2018-01-15 | stdlib: Handle Unicode when formatting stacktraces | Hans Bolinder | |
See also ERL-553 and ERL-544 (commit c3ddb0f). | |||
2018-01-15 | Merge branch 'maint' | John Högberg | |
2018-01-15 | Merge branch ↵ | John Högberg | |
'john/runtime_tools/reduce-sysinfo-to_file-memory-use/OTP-14816' into maint | |||
2018-01-12 | Merge branch 'maint' | Hans Nilsson | |
* maint: crypto: Disable RSA sslv23 padding for LibreSSL >= 2.6.1 | |||
2018-01-12 | Merge branch 'hans/crypto/no_rsa_pad_sym/ERL-546/OTP-14873' into maint | Hans Nilsson | |
* hans/crypto/no_rsa_pad_sym/ERL-546/OTP-14873: crypto: Disable RSA sslv23 padding for LibreSSL >= 2.6.1 | |||
2018-01-12 | Merge branch 'maint' | Siri Hansen | |
Conflicts: lib/observer/src/crashdump_viewer.erl | |||
2018-01-12 | crypto: Disable RSA sslv23 padding for LibreSSL >= 2.6.1 | Hans Nilsson | |
Not supported in newer LibreSSL. | |||
2018-01-12 | beam_match_SUITE: Eliminate warnings for unused variables | Björn Gustavsson | |
2018-01-12 | bs_match_SUITE: Add tests case written when walking into a dead end | Björn Gustavsson | |
Add some tests cases written when attempting some new optimizations that turned out to be unsafe. | |||
2018-01-12 | Merge branch 'siri/cdv/many-links/OTP-14725' into maint | Siri Hansen | |
* siri/cdv/many-links/OTP-14725: [observer] Improve performance for many links or monitors | |||
2018-01-12 | Merge pull request #1645 from Zorbash/document-inet-i | Raimo Niskanen | |
OTP:13713: Add documentation and typespecs for inet:i/0 | |||
2018-01-12 | Merge pull request #1680 from bjorng/bjorn/compiler/beam_block | Björn Gustavsson | |
Run beam_block a second time | |||
2018-01-12 | Merge pull request #1679 from bjorng/bjorn/compiler/sys_core_fold | Björn Gustavsson | |
Clean up and improve sys_core_fold optimizations | |||
2018-01-12 | Merge pull request #1663 from bjorng/bjorn/compiler/refactor-annotations | Björn Gustavsson | |
Refactor '%live' and '%def' annotations | |||
2018-01-12 | Merge branch 'maint' | Ingela Anderton Andin | |
2018-01-12 | Merge branch 'ingela/ssl/rc4-suites/OTP-14871' into maint | Ingela Anderton Andin | |
* ingela/ssl/rc4-suites/OTP-14871: ssl: Correct function for listing RC4 suites | |||
2018-01-11 | Merge branch 'maint' | Rickard Green | |
* maint: Fix encoding of filenames in stacktraces | |||
2018-01-11 | Merge branch 'rickard/file-encoding-stacktraces/OTP-14847/ERL-544' into maint | Rickard Green | |
* rickard/file-encoding-stacktraces/OTP-14847/ERL-544: Fix encoding of filenames in stacktraces | |||
2018-01-11 | Fix encoding of filenames in stacktraces | Rickard Green | |
2018-01-11 | Merge branch 'maint' | Rickard Green | |
* maint: Do not add -lz to LIBS; keep it in Z_LIB | |||
2018-01-11 | Merge branch 'rickard/libs-libz/ERL-529/OTP-14840' into maint | Rickard Green | |
* rickard/libs-libz/ERL-529/OTP-14840: Do not add -lz to LIBS; keep it in Z_LIB | |||
2018-01-11 | ssl: Correct function for listing RC4 suites | Ingela Anderton Andin | |
2018-01-11 | Run beam_block again after other optimizations have been run | Björn Gustavsson | |
Running beam_block again after the other optimizations have run will give it more opportunities for optimizations. In particular, more allocate_zero/2 instructions can be turned into allocate/2 instructions, and more get_tuple_element/3 instructions can store the retrieved value into the correct register at once. Out of a sample of about 700 modules in OTP, 64 modules were improved by this commit. | |||
2018-01-11 | beam_bsm: Insert introduced 'move' instructions into block | Björn Gustavsson | |
If possible, when adding move/2 instructions, try to insert them into a block. That could potentially allow them to be optimized. | |||
2018-01-11 | Prepare beam_utils to run again after beam_split | Björn Gustavsson | |
beam_utils:live_opt/1 is currently only run early (from beam_block). Prepare it to be run after beam_split when instructions with failure labels have been taken out of blocks. While we are it, also improve check_liveness/3. That will improve the optimizations in beam_record (replacing tuple matching instructions with an is_tagged_tuple instruction). | |||
2018-01-11 | beam_utils: Correct handling of liveness for select_val | Björn Gustavsson | |
Since the select_val instruction never transfer directly to the next instruction, the incoming live registers should be ignored. This bug have not caused any problems yet, but it will in the future if we are to run the liveness optimizations again after the optimizations in beam_dead and beam_jump. | |||
2018-01-11 | beam_block: Reorder element/2 calls in guards | Björn Gustavsson | |
In a guard, reorder two consecutive calls to the element/2 BIF that access the same tuple and have the same failure label so that highest index is fetched first. That will allow the second element/2 to be replace with the slightly cheaper get_tuple_element/3 instruction. | |||
2018-01-11 | Improve code generation for a 'case' with exported variables | Björn Gustavsson | |
Consider a 'case' that exports variables and whose return value is ignored: foo(N) -> case N of 1 -> Res = one; 2 -> Res = two end, {ok,Res}. That code will be translated to the following Core Erlang code: 'foo'/1 = fun (_@c0) -> let <_@c5,Res> = case _@c0 of <1> when 'true' -> <'one','one'> <2> when 'true' -> <'two','two'> <_@c3> when 'true' -> primop 'match_fail'({'case_clause',_@c3}) end in {'ok',Res} The exported variables has been rewritten to explicit return values. Note that the original return value from the 'case' is bound to the variable _@c5, which is unused. The corresponding BEAM assembly code looks like this: {function, foo, 1, 2}. {label,1}. {line,[...]}. {func_info,{atom,t},{atom,foo},1}. {label,2}. {test,is_integer,{f,6},[{x,0}]}. {select_val,{x,0},{f,6},{list,[{integer,2},{f,3},{integer,1},{f,4}]}}. {label,3}. {move,{atom,two},{x,1}}. {move,{atom,two},{x,0}}. {jump,{f,5}}. {label,4}. {move,{atom,one},{x,1}}. {move,{atom,one},{x,0}}. {label,5}. {test_heap,3,2}. {put_tuple,2,{x,0}}. {put,{atom,ok}}. {put,{x,1}}. return. {label,6}. {line,[...]}. {case_end,{x,0}}. Because of the test_heap instruction following label 5, the assignment to {x,0} cannot be optimized away by the passes that optimize BEAM assembly code. Refactor the optimizations of 'let' in sys_core_fold to eliminate the unused variable. Thus: 'foo'/1 = fun (_@c0) -> let <Res> = case _@c0 of <1> when 'true' -> 'one' <2> when 'true' -> 'two' <_@c3> when 'true' -> primop 'match_fail'({'case_clause',_@c3}) end in {'ok',Res} The resulting BEAM code will look like: {function, foo, 1, 2}. {label,1}. {line,[...]}. {func_info,{atom,t},{atom,foo},1}. {label,2}. {test,is_integer,{f,6},[{x,0}]}. {select_val,{x,0},{f,6},{list,[{integer,2},{f,3},{integer,1},{f,4}]}}. {label,3}. {move,{atom,two},{x,0}}. {jump,{f,5}}. {label,4}. {move,{atom,one},{x,0}}. {label,5}. {test_heap,3,1}. {put_tuple,2,{x,1}}. {put,{atom,ok}}. {put,{x,0}}. {move,{x,1},{x,0}}. return. {label,6}. {line,[...]}. {case_end,{x,0}}. |