Age | Commit message (Collapse) | Author | |
---|---|---|---|
2016-01-08 | Merge branch 'maint' | Björn Gustavsson | |
* maint: beam_bool: Fix unsafe optimization | |||
2016-01-07 | Merge branch 'sverk/proc-dict-opt' | Sverker Eriksson | |
OTP-13167 * sverk/proc-dict-opt: erts: Add new test case pdict_SUITE:mixed erts: Add 'fill_heap' to erts_debug:state_internal_state erts: Rename proc dict size to arraySize erts: Refactor proc dict with 'usedSlots' erts: Add sizeMask for faster proc dict indexing erts: Remove ProcDict.used erts: Add proc dict macros ERTS_PD_START/SIZE erts: Optimize away function "array_put" in proc dict erts: Optimize hashing in process dictionary | |||
2016-01-07 | Merge branch 'sverk/hipe-mmap-config' | Sverker Eriksson | |
* sverk/hipe-mmap-config: erts: Add config test for MAP_NORESERVE for hipe on 64-bit | |||
2016-01-07 | erts: Add config test for MAP_NORESERVE for hipe on 64-bit | Sverker Eriksson | |
to get a nicer error on FreeBSD and others that does not support MAP_NORESERVE for mmap. Q: How to support this? A: Implement the "literal tag" in hipe or another way to reserve virtual address space in erl_mmap.c | |||
2016-01-07 | Merge branch 'sverk/float_SUITE-arith' | Sverker Eriksson | |
* sverk/float_SUITE-arith: erts: Add new test cases to float_SUITE | |||
2016-01-07 | Merge branch 'sverk/check_process_code-fix' | Sverker Eriksson | |
* sverk/check_process_code-fix: erts: Fix bug in check_process_code for literals | |||
2016-01-07 | Merge branch 'bjorn/compiler/beam_bool/OTP-13208' into maint | Björn Gustavsson | |
* bjorn/compiler/beam_bool/OTP-13208: beam_bool: Fix unsafe optimization | |||
2016-01-07 | beam_bool: Fix unsafe optimization | Björn Gustavsson | |
beam_bool would make the following code unsafe (which would be reported by beam_validator): scotland(Echo) -> found(case Echo of Echo when true; Echo, Echo, Echo -> Echo; echo -> [] end, Echo = placed). found(_, _) -> million. Basically, beam_bool would see that the 'case' would always return the value of Echo. Thus: scotland(Echo) -> found(Echo, Echo = placed). The only problem is that beam_bool would also remove a 'move' instruction that would save Echo to the stack. Here is the assembly code for part of the function: {allocate_zero,1,1}. {move,{x,0},{y,0}}. %% Save Echo on stack. {bif,'=:=',{f,7},[{x,0},{atom,true}],{x,1}}. {bif,'=:=',{f,7},[{x,0},{atom,true}],{x,2}}. {bif,'=:=',{f,7},[{x,0},{atom,true}],{x,3}}. {bif,'and',{f,7},[{x,2},{x,3}],{x,2}}. {bif,'and',{f,7},[{x,1},{x,2}],{x,1}}. {jump,{f,8}}. {label,7}. {move,{atom,false},{x,1}}. {label,8}. {bif,'or',{f,6},[{atom,true},{x,1}],{x,1}}. {test,is_eq_exact,{f,6},[{x,1},{atom,true}]}. %% Jump never taken. {jump,{f,5}}. {label,6}. {test,is_eq_exact,{f,9},[{x,0},{atom,echo}]}. {move,nil,{x,0}}. {jump,{f,5}}. {label,9}. {test_heap,3,0}. {put_tuple,2,{x,0}}. {put,{atom,case_clause}}. {put,{y,0}}. {line,[{location,"t.erl",5}]}. {call_ext,1,{extfunc,erlang,error,1}}. {jump,{f,5}}. {label,5}. {test,is_eq_exact,{f,12},[{atom,placed},{y,0}]}. beam_bool would see that the is_eq_exact test at label 8 would always succeed. It could therefore remove most of the code before the jump to label 5. Unfortunately it also removed the essential move of Echo to the stack: {allocate_zero,1,1}. %% Instruction incorrectly removed: {move,{x,0},{y,0}}. {jump,{f,5}}. {label,5}. {test,is_eq_exact,{f,12},[{atom,placed},{y,0}]}. The root cause of the problem is that the 'move' instruction is included in the block of 'bif' instructions before label 8. Normally the 'move' instruction would not have been discarded, but because the left operand to the 'or' BIF is 'true', the entire block with 'bif' instructions are dropped. As far as I can see, there is no gain by including 'move' instructions in the first place. There is no way that better code will be produced. In fact, the entire optimization can be given up if 'move' instructions are found in the block. Thus we can fix this bug by never including any 'move' instructions in the block of 'bif' instructions. We can also remove all the code that deals with 'move' instructions within blocks. Reported-by: Thomas Arts | |||
2015-12-30 | Merge branch 'maint' | Rickard Green | |
* maint: Light weight statistics of run queue lengths Conflicts: erts/preloaded/ebin/erlang.beam | |||
2015-12-30 | Merge branch 'rickard/rq-len/OTP-13201' into maint | Rickard Green | |
* rickard/rq-len/OTP-13201: Light weight statistics of run queue lengths | |||
2015-12-30 | Light weight statistics of run queue lengths | Rickard Green | |
- statistics(total_run_queue_lengths) - statistics(run_queue_lengths) - statistics(total_active_tasks) - statistics(active_tasks) Conflicts: erts/emulator/beam/erl_process.c | |||
2015-12-30 | Merge branch 'maint' | Rickard Green | |
* maint: Use monotonic time for call_time trace | |||
2015-12-30 | Merge branch 'rickard/trace_call_time/OTP-13216' into maint | Rickard Green | |
* rickard/trace_call_time/OTP-13216: Use monotonic time for call_time trace | |||
2015-12-30 | Merge branch 'rickard/ohmq-fixup/OTP-13047' | Rickard Green | |
* rickard/ohmq-fixup/OTP-13047: Fix asynchronous BIF timer cancellation message reply | |||
2015-12-29 | Fix asynchronous BIF timer cancellation message reply | Rickard Green | |
2015-12-28 | Merge branch 'maint' | Zandra | |
2015-12-28 | Merge branch 'zandra/update-java-versions-doc' into maint | Zandra | |
* zandra/update-java-versions-doc: update java version in documentation OTp-13221 | |||
2015-12-28 | Merge branch 'maint' | Zandra | |
2015-12-28 | Merge branch 'binarin/maint' into maint | Zandra | |
* binarin/maint: Don't wait for twice the delay_write timeout OTP-13220 | |||
2015-12-28 | Merge branch 'maint' | Zandra | |
2015-12-28 | Merge branch 'legoscia/tls_dist_error_reporting' into maint | Zandra | |
* legoscia/tls_dist_error_reporting: Report bad options for outgoing TLS distribution Save error reasons for TLS distribution connections Report bad options for TLS distribution connections OTP-13219 | |||
2015-12-28 | Merge branch 'maint' | Zandra | |
2015-12-28 | Merge branch 'josevalim/jv-map-fun-eval-maint' into maint | Zandra | |
* josevalim/jv-map-fun-eval-maint: Use full list of bindings when matching on map keys OTP-13218 | |||
2015-12-28 | Merge branch 'maint' | Zandra | |
2015-12-28 | Merge branch 'lucafavatella/dialyzer-fun-call' into maint | Zandra | |
* lucafavatella/dialyzer-fun-call: Teach Dialyzer call to funs `M:F/A` (literal M, F, A) OTP-13217 | |||
2015-12-23 | Use monotonic time for call_time trace | Rickard Green | |
2015-12-22 | Merge branch 'maint' | Anders Svensson | |
2015-12-22 | Merge branch 'maint-17' into maint | Anders Svensson | |
2015-12-22 | Merge branch 'maint' | Hans Nilsson | |
* maint: ssh: clean test specs | |||
2015-12-22 | Merge branch 'hans/ssh/ssh_benchmark_SUITE' into maint | Hans Nilsson | |
* hans/ssh/ssh_benchmark_SUITE: ssh: clean test specs | |||
2015-12-22 | ssh: clean test specs | Hans Nilsson | |
2015-12-22 | Merge branch 'maint' | Hans Nilsson | |
* maint: ssh: add econnaborted to disconnect msgs in test suite ssh: fix the check that open-ssh supports certain pubkeys in a test suite | |||
2015-12-22 | Merge branch 'hans/ssh/cuddle_tests' into maint | Hans Nilsson | |
* hans/ssh/cuddle_tests: ssh: add econnaborted to disconnect msgs in test suite ssh: fix the check that open-ssh supports certain pubkeys in a test suite | |||
2015-12-22 | Merge branch 'maint' | Hans Nilsson | |
* maint: ssh: fix error (wrong suite) in test/ssh.spec | |||
2015-12-22 | Merge branch 'hans/ssh/ssh_benchmark_SUITE' into maint | Hans Nilsson | |
* hans/ssh/ssh_benchmark_SUITE: ssh: fix error (wrong suite) in test/ssh.spec | |||
2015-12-22 | ssh: fix error (wrong suite) in test/ssh.spec | Hans Nilsson | |
2015-12-21 | Merge branch 'maint' | Anders Svensson | |
2015-12-21 | Merge branch 'maint-r16' into maint | Anders Svensson | |
2015-12-21 | Merge branch 'maint' | Hans Nilsson | |
* maint: ssh: benchmark all common kex and cipher algorithms New structure of the report ssh: ssh_benchmark_SUITE re-organized ssh: Add first version of ssh_benchmark_SUITE | |||
2015-12-21 | Merge branch 'hans/ssh/ssh_benchmark_SUITE' into maint | Hans Nilsson | |
* hans/ssh/ssh_benchmark_SUITE: ssh: benchmark all common kex and cipher algorithms New structure of the report ssh: ssh_benchmark_SUITE re-organized ssh: Add first version of ssh_benchmark_SUITE | |||
2015-12-21 | ssh: benchmark all common kex and cipher algorithms | Hans Nilsson | |
2015-12-21 | New structure of the report | Hans Nilsson | |
2015-12-21 | ssh: ssh_benchmark_SUITE re-organized | Hans Nilsson | |
2015-12-21 | ssh: Add first version of ssh_benchmark_SUITE | Hans Nilsson | |
2015-12-20 | Updated OTP versionOTP-17.5.6.7 | Erlang/OTP | |
2015-12-20 | Update release notes | Erlang/OTP | |
2015-12-20 | Merge branch 'anders/diameter/17.5.6.7/OTP-13211' into maint-17 | Erlang/OTP | |
* anders/diameter/17.5.6.7/OTP-13211: vsn -> 1.9.2.2 Update/fix appup for 17.5.6.7 Be resilient to diameter_service state upgrades | |||
2015-12-20 | Merge branch 'anders/diameter/request_leak/OTP-13137' into maint-17 | Erlang/OTP | |
* anders/diameter/request_leak/OTP-13137: Fix request table leak at retransmission Fix request table leak at exit signal | |||
2015-12-20 | Merge branch 'anders/diameter/17/watchdog/OTP-12969' into maint-17 | Erlang/OTP | |
* anders/diameter/17/watchdog/OTP-12969: Fix watchdog function_clause | |||
2015-12-20 | Merge branch 'anders/diameter/M-bit/OTP-12947' into maint-17 | Erlang/OTP | |
* anders/diameter/M-bit/OTP-12947: Add service_opt() strict_mbit |