aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2015-09-07Merge branch 'egil/fix-compiler-map-register/OTP-12967' into maintBjörn-Egil Dahlberg
2015-09-07Merge branch 'hb/dialyzer/fix_abs_bug/OTP-12948' into maintHans Bolinder
* hb/dialyzer/fix_abs_bug/OTP-12948: dialyzer: Fix erlang:abs/1
2015-09-04compiler: Fix get_map_elements register corruptionBjörn-Egil Dahlberg
Instruction get_map_elements might destroy target registers when the fail-label is taken. Only seen for patterns with two, and only two, target registers. Specifically: we copy one register, and then jump. foo(A,#{a := V1, b := V2}) -> ... foo(A,#{b := V}) -> ... call foo(value, #{a=>whops, c=>42}). corresponding assembler: {test,is_map,{f,5},[{x,1}]}. {get_map_elements,{f,7},{x,1},{list,[{atom,a},{x,1},{atom,b},{x,2}]}}. %% if 'a' exists but not 'b' {x,1} is overwritten, jump {f,7} {move,{integer,1},{x,0}}. {call_only,3,{f,10}}. {label,7}. {get_map_elements,{f,8},{x,1},{list,[{atom,b},{x,2}]}}. %% {x,1} (src) is read with a corrupt value {move,{x,0},{x,1}}. {move,{integer,2},{x,0}}. {call_only,3,{f,10}}. The fix is to remove 'opt_moves' pass for get_map_elements instruction in the case of two or more destinations. Reported-by: Valery Tikhonov
2015-09-04compiler: Add extra checks for get_map_elements in validatorBjörn-Egil Dahlberg
2015-09-04compiler: Add test for corrupt register in get_map_elementsBjörn-Egil Dahlberg
2015-09-04dialyzer: Fix erlang:abs/1Hans Bolinder
Fix the range type of erlang:abs/1.
2015-08-31Merge branch 'sverk/hipe-fix-literal-crc' into maintSverker Eriksson
* sverk/hipe-fix-literal-crc: erts,hipe,dialyzer: Fix hipe checkum of target runtime system erts: Change THE_NON_VALUE to not be hard coded in hipe compiler OTP-12962 OTP-12963 OTP-12964
2015-08-31erts,hipe,dialyzer: Fix hipe checkum of target runtime systemSverker Eriksson
Main problem: A faulty HIPE_LITERAL_CRC was not detected by the loader. Strangeness #1: Dialyzer should ask the hipe compiler about the target checksum, not an internal bif. Strangeness #2: The HIPE_SYSTEM_CRC checksum was based on the HIPE_LITERALS_CRC checksum. Solution: New HIPE_ERTS_CHECKSUM which is an bxor of the two (now independent) HIPE_LITERALS_CRC and HIPE_SYSTEM_CRC. HIPE_LITERALS_CRC represents values that are assumed to stay constant for different VM configurations of the same arch, and are therefor hard coded into the hipe compiler. HIPE_SYSTEM_CRC represents values that may differ between VM variants. By default the hipe compiler asks the running VM for this checksum, in order to create beam files for the same running VM. The hipe compiler can be configured (with "make XCOMP=yes ...") to create beam files for another VM variant, in which case HIPE_SYSTEM_CRC is also hard coded. ToDo: Treat all erts properties the same. Either ask the running VM or hard coded into hipe (if XCOMP=yes). This will simplify and reduce the risk of dangerous mismatches. One concern might be the added overhead from more frequent calls to hipe_bifs:get_rts_param.
2015-08-31Merge branch 'sverk/hipe-maps-merge-wrapper' into maintSverker Eriksson
* sverk/hipe-maps-merge-wrapper: erts: Fix hipe bug for maps:merge/2 erts: Beautify hipe wrapper macro OTP-12965
2015-08-31Merge branch 'hans/ssh/more_dh_group/OTP-12937' into maintHans Nilsson
* hans/ssh/more_dh_group/OTP-12937: ssh: dh_gex defautl values increased. Groups added
2015-08-30ssh: dh_gex defautl values increased. Groups addedHans Nilsson
2015-08-30Merge branch 'hans/ssh/test_reorg/OTP-12230' into maintHans Nilsson
* hans/ssh/test_reorg/OTP-12230: ssh: Reorganize and extend the test suites
2015-08-30ssh: Reorganize and extend the test suitesHans Nilsson
Add ssh_trpt_test_lib:instantiate/2, ssh_test_lib:default_algoritms/2 and algo_intersection/2 ssh_to_openssh_SUITE uses only algos that sshd and ssh client supports raised timeout limit in ssh_basic_SUITE:ssh_connect_arg4_timeout Break out ssh_renegotiate_SUITE from ssh_basic_SUITE Move std_daemon/4 to ssh_test_lib.erl Add ssh_algorithms_SUITE Add ssh_options_SUITE Add assymetric testing of algorithms Add openssh tests to ssh_algorithms_SUITE Remove algo tests from ssh_sftp_SUITE (now in ssh_algorithms_SUITE) Removed kex algo tests from in ssh_basic_SUITE because they are now in ssh_algorithm_SUITE. fixed test case ssh_protocol_SUITE:no_common_alg_server_disconnects/1
2015-08-29Merge branch 'hans/ssh/kex_ecdh/OTP-12622' into maintHans Nilsson
* hans/ssh/kex_ecdh/OTP-12622: ssh: Elliptic Curve Diffie-Hellman (ECDH)
2015-08-29ssh: Elliptic Curve Diffie-Hellman (ECDH)Hans Nilsson
Adds ecdh-sha2-nistp256 ecdh-sha2-nistp384 ecdh-sha2-nistp512 and OTP-12938 hmac-sha2-512
2015-08-28erts: Fix hipe bug for maps:merge/2Sverker Eriksson
Add forgotten HIPE_WRAPPER_BIF_DISABLE_GC which could lead to stack-heap overrun if unlucky with the yielding during maps:merge when called by native hipe code.
2015-08-28erts: Beautify hipe wrapper macroSverker Eriksson
2015-08-28Merge branch 'hans/ssh/update_vsn.mk' into maintHans Nilsson
2015-08-28ssh: update vsn.mkHans Nilsson
2015-08-26Merge branch 'dgud/stdlib/zip-optimize/OTP-12950' into maintDan Gudmundsson
* dgud/stdlib/zip-optimize/OTP-12950: Optimize zip:unzip/2 when uncompressing to memory
2015-08-26Merge branch 'dgud/debugger/fix-case-clause/OTP-12911' into maintDan Gudmundsson
* dgud/debugger/fix-case-clause/OTP-12911: debugger: Fix broken debugger:quick/3 start
2015-08-26Merge branch 'dgud/wx/fix-test' into maintDan Gudmundsson
* dgud/wx/fix-test: wx: Fix assert log test
2015-08-26Merge branch 'dgud/mnesia/use_now_in_tests' into maintDan Gudmundsson
* dgud/mnesia/use_now_in_tests: Remove erlang:now() and random usage in tests
2015-08-26Merge branch 'hans/ssh/random_extra_padding/OTP-12831' into maintHans Nilsson
* hans/ssh/random_extra_padding/OTP-12831: ssh: add extra random length padding in packets
2015-08-25ssh: add extra random length padding in packetsHans Nilsson
A new experimental option 'max_random_length_padding', not documented so it might change...
2015-08-25Merge branch 'hans/ssh/deps_in_src_Makefile' into maintHans Nilsson
* hans/ssh/deps_in_src_Makefile: ssh: dependencies added in ssh/src/Makefile
2015-08-25Merge branch 'hans/ssh/prolong_short_timetrap' into maintHans Nilsson
* hans/ssh/prolong_short_timetrap: ssh: doubled short timetrap in testcase
2015-08-25Merge branch 'eksperimental/patch-1' into maintHenrik Nord
* eksperimental/patch-1: Improve success message when 2 tests have passed OTP-12952
2015-08-25Merge branch 'hb/dialyzer/recursive_opaque_types/OTP-12865' into maintHans Bolinder
* hb/dialyzer/recursive_opaque_types/OTP-12865: dialyzer: Correct the timing of the phase called 'remote' dialyzer: Optimize expansion of parameters of opaque types dialyzer: Optimize the expansion of parameterized types somewhat dialyzer: Improve the handling of recursive parameterized opaque types dialyzer: Generalize an argument of erl_types:t_from_form()
2015-08-25dialyzer: Correct the timing of the phase called 'remote'Hans Bolinder
2015-08-25dialyzer: Optimize expansion of parameters of opaque typesHans Bolinder
Opaque recursive parameters are expanded faster.
2015-08-25dialyzer: Optimize the expansion of parameterized types somewhatHans Bolinder
Expand parameters when needed only. The opaqueness is removed from types expanded to any().
2015-08-25dialyzer: Improve the handling of recursive parameterized opaque typesHans Bolinder
2015-08-25dialyzer: Generalize an argument of erl_types:t_from_form()Hans Bolinder
Add more information about the caller of t_from_form(). Instead of just the module, also provide name of the type, spec, or record where the type form resides.
2015-08-24ssh: doubled short timetrap in testcaseHans Nilsson
2015-08-24erts: Change THE_NON_VALUE to not be hard coded in hipe compilerSverker Eriksson
Instead ask running VM for the value of THE_NON_VALUE, which is different between opt and debug VM. Same hipe compiler can now compile for both opt and debug VM.
2015-08-24ssh: dependencies added in ssh/src/MakefileHans Nilsson
2015-08-24Optimize zip:unzip/2 when uncompressing to memoryDan Gudmundsson
Optimize the case where we are appending to the end of the binary, use binary syntax to create binaries with room for expansion in the next loop, instead of using iolist_to_binary which creates a binary of the exact size and needs to be copied in each loop. Also remove support the unused Acc as iolists.
2015-08-24Merge branch 'hb/hipe/keydelete_fix/OTP-12949' into maintHans Bolinder
* hb/hipe/keydelete_fix/OTP-12949: hipe/dialyzer: Fix a bug concerning opaque types and keydelete/3
2015-08-21hipe/dialyzer: Fix a bug concerning opaque types and keydelete/3Hans Bolinder
Thanks to ILYA Khlopotov for pointing the bug out.
2015-08-21Merge branch 'hb/stdlib/fix_qlc_bug/OTP-12946' into maintHans Bolinder
* hb/stdlib/fix_qlc_bug/OTP-12946: stdlib: fix a qlc bug introduced in 18.0
2015-08-21stdlib: fix a qlc bug introduced in 18.0Hans Bolinder
As pointed out by roowe, qlc does not handle errors in early compiler (scanner, parser) well in OTP 18.0.
2015-08-20Merge branch 'maint-18' into maintHenrik Nord
2015-08-19Merge branch 'ia/ssl/doc/duplicate' into maintIngela Anderton Andin
* ia/ssl/doc/duplicate: ssl: Remove duplicate documentation
2015-08-19ssl: Remove duplicate documentationIngela Anderton Andin
Correct merge that went wrong.
2015-08-19Merge branch 'hb/dialyzer/bugfix_opaque_parms/OTP-12940' into maintHans Bolinder
* hb/dialyzer/bugfix_opaque_parms/OTP-12940: dialyzer: Fix a bug concerning parameterized opaque types
2015-08-19dialyzer: Fix a bug concerning parameterized opaque typesHans Bolinder
The example is provided by James Fish in http://erlang.org/pipermail/erlang-questions/2014-December/082204.html. Note that warnings with text such as "the _ variable breaks opaqueness" are still possible.
2015-08-18Merge branch 'lukas/erts/process_priority_unlock/OTP-12943' into maintLukas Larsson
* lukas/erts/process_priority_unlock/OTP-12943: erts: Make sure to unlock status lock when setting process prio
2015-08-18Updated OTP versionOTP-18.0.3Erlang/OTP
2015-08-18Prepare releaseErlang/OTP