aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2017-10-27Eliminate the v3_life passBjörn Gustavsson
The v3_life pass does not do enough to be worth being its own pass. Essentially it does two things: * Calculates life-time information starting from the annotations that v3_kernel provides. That part can be moved into v3_codegen. * Rewrites the Kernel Erlang records to similar plain tuples (for example, #k_cons{hd=Hd,tl=Tl} is rewritten to {cons,Hd,Tl}). That rewriting is not needed and can be eliminated.
2017-10-23Merge branch 'bjorn/compiler/match-literals'Björn Gustavsson
* bjorn/compiler/match-literals: Optimize instructions for comparing a register with a literal Optimize matching of literals for single-valued types
2017-10-23Merge branch 'maint'Dan Gudmundsson
* maint: fix win32 share filename join/split (#1604) Correct io_vec handling
2017-10-23Merge branch 'dgud/wx/fix-empty-binaries/OTP-14688' into maintDan Gudmundsson
* dgud/wx/fix-empty-binaries/OTP-14688: Correct io_vec handling
2017-10-23fix win32 share filename join/split (#1604)Bikram Chatterjee
Handle UNC (shared) path on win32, previously "//dir/.." and "\\\\dir\.." was cleaned up to "/dir/.." which was not correct. OTP-14693
2017-10-23Merge branch 'maint'Ingela Anderton Andin
Conflicts: lib/ssl/src/inet_tls_dist.erl
2017-10-23Merge branch 'ingela/ssl/dist-crl' into maintIngela Anderton Andin
* ingela/ssl/dist-crl: ssl: Do not provide IP address to ssl:connect in erlang distribution over TLS
2017-10-23Merge branch 'maint'Ingela Anderton Andin
2017-10-23Merge branch 'ingela/public_key/ecc-keys/RRL-482/OTP-14620' into maintIngela Anderton Andin
* ingela/public_key/ecc-keys/RRL-482/OTP-14620: public_key: Handle formatting of ECC params from DER to crypto API
2017-10-21public_key: Handle formatting of ECC params from DER to crypto APIIngela Anderton Andin
Solves ERL-482
2017-10-21Optimize instructions for comparing a register with a literalBjörn Gustavsson
We can avoid calling eq() from the is_eq_exact_literal/3 and is_ne_exact_literal/3 instructions if the source operand is an immediate (since a literal is either a boxed or a list, never an immediate).
2017-10-21Optimize matching of literals for single-valued typesBjörn Gustavsson
If a type only has one clause and if the pattern is literal, the matching can be done more efficiently by directly comparing with the literal. Example: find(String, "") -> String; find(String, <<>>) -> String; find(String, SearchPattern) -> . . . Without this optimization, the relevant part of the code would look this: {test,bs_start_match2,{f,3},2,[{x,1},0],{x,2}}. {test,bs_test_tail2,{f,4},[{x,2},0]}. return. {label,3}. {test,is_nil,{f,4},[{x,1}]}. return. {label,4}. . . . That is, if {x,1} is a binary, a match context will be built to test whether {x,1} is an empty binary. With the optimization, the code will look this: {test,is_eq_exact,{f,3},[{x,1},{literal,<<>>}]}. return. {label,3}. {test,is_nil,{f,4},[{x,1}]}. return. {label,4}. . . .
2017-10-20ssl: Do not provide IP address to ssl:connect in erlang distribution over TLSIngela Anderton Andin
As TLS clients will perform a hostname check against certificates the IP-address does not make much sense.
2017-10-20Merge branch 'maint'Björn Gustavsson
* maint: Bump version of crash dumps to 0.4 Verify that binaries of different sizes are dumped correctly Don't dump literal areas that are not referenced at all Dump literals separately to avoid incomplete heap data Implement dumping of maps in crash dumps Buffer writing of crash dumps Conflicts: erts/emulator/beam/erl_alloc.types
2017-10-20Merge branch 'bjorn/improve-crash-dumps/OTP-14685' into maintBjörn Gustavsson
* bjorn/improve-crash-dumps/OTP-14685: Bump version of crash dumps to 0.4 Verify that binaries of different sizes are dumped correctly Don't dump literal areas that are not referenced at all Dump literals separately to avoid incomplete heap data Implement dumping of maps in crash dumps Buffer writing of crash dumps
2017-10-20Merge pull request #1593 from srenatus/patch-1Hans Bolinder
typo in OTP Design Principles
2017-10-18Merge pull request #1574 from RaimoNiskanen/raimo/stdlib/rand-uniformityRaimo Niskanen
OTP-13764 Implement uniform floats with decreasing distance towards 0.0
2017-10-18Merge branch 'bjorn/erts/cuddle-with-tests'Björn Gustavsson
* bjorn/erts/cuddle-with-tests: Eliminate use of deprecated functions in string Eliminate warnings for ignoring the result of an expression
2017-10-18Bump version of crash dumps to 0.4Björn Gustavsson
2017-10-18Verify that binaries of different sizes are dumped correctlyBjörn Gustavsson
2017-10-18Don't dump literal areas that are not referenced at allBjörn Gustavsson
2017-10-18Dump literals separately to avoid incomplete heap dataBjörn Gustavsson
When a literal was used from several processes, the literal would be dumped in only one of the processes. The other processes that referenced the literals would have incomplete heap data.
2017-10-18Implement dumping of maps in crash dumpsBjörn Gustavsson
Maps would be dumped as the atom 'undefined', which is not very informative.
2017-10-18Buffer writing of crash dumpsBjörn Gustavsson
Writing of crash dumps were done using unbuffered IO. This is slow since many small writes are done. Use a FILE* with an allocated buffer to obtain buffered IO. I wrote a small test program that created 50000 binaries of 200 bytes each and then created a crash dump. The crash dumping was an order of magnitude faster with buffered IO than without.
2017-10-18Scale down measure roundsRaimo Niskanen
2017-10-18Implement uniform_real/0 and uniform_real_s/1Raimo Niskanen
2017-10-18Merge branch 'maint'Hans Nilsson
2017-10-18Merge branch 'hans/public_key/cuddle_docs' into maintHans Nilsson
2017-10-18public_key: Correct spelling errorHans Nilsson
2017-10-18Merge branch 'maint'Lukas Larsson
2017-10-18Merge branch 'lukas/erts/win_user_home_dir/OTP-14691' into maintLukas Larsson
* lukas/erts/win_user_home_dir/OTP-14691: erts: Use PROFILE dir as home on windows
2017-10-18Merge branch 'maint'Ingela Anderton Andin
2017-10-18Merge branch 'ingela/dtls/no-packet-upd/OTP-14664' into maintIngela Anderton Andin
* ingela/dtls/no-packet-upd/OTP-14664: ssl: No support for packet option over unreliable transport
2017-10-17Merge branch 'sverker/on_load-nonblocking/OTP-14680'Sverker Eriksson
* sverker/on_load-nonblocking/OTP-14680: erts: Remove scheduler blocking during finish_after_on_load_2
2017-10-17Merge branch 'maint'Sverker Eriksson
2017-10-17Merge branch 'sverker/dist-send-noreply-opt/OTP-14689' into maintSverker Eriksson
* sverker/dist-send-noreply-opt/OTP-14689: erts: Improve distribution send operations
2017-10-17Merge branch 'maint'Ingela Anderton Andin
2017-10-17Merge branch 'ingela/ssl/extend-hostname-check/OTP-14632/OTP-14655' into maintIngela Anderton Andin
* ingela/ssl/extend-hostname-check/OTP-14632/OTP-14655: ssl: Fix test cases to work on all test platforms public_key: Fix dialyzer spec ssl: Sessions must be registered with SNI if exists ssl: Extend hostname check to fallback to checking IP-address public_key, ssl: Handles keys so that APIs are preserved correctly
2017-10-17Merge branch 'siri/observer/multiple-ms-clauses/ERL-489' into maintSiri Hansen
* siri/observer/multiple-ms-clauses/ERL-489: Allow multiple clauses in match spec
2017-10-17Merge branch 'maint'Hans Bolinder
* maint: stdlib: Make ets:i/1 exit cleaner upon ^D (old Erlang shell)
2017-10-17Merge branch 'hasse/stdlib/fix_ets_i_1/OTP-14663' into maintHans Bolinder
* hasse/stdlib/fix_ets_i_1/OTP-14663: stdlib: Make ets:i/1 exit cleaner upon ^D (old Erlang shell)
2017-10-17Correct io_vec handlingDan Gudmundsson
Can not depend on internal knowledge of binaries any more it changed and caused at least opengl to crash in OTP-20.1
2017-10-17ssl: No support for packet option over unreliable transportIngela Anderton Andin
2017-10-17Merge branch 'maint'Lukas Larsson
2017-10-17Merge branch 'lukas/jinterface/disable-travis' into maintLukas Larsson
* lukas/jinterface/disable-travis: jinterface: Skip tests when hostname cannot be resolved
2017-10-17Merge branch 'dgud/dot_erlang/OTP-14439'Dan Gudmundsson
* dgud/dot_erlang/OTP-14439: fixup! Do not load .erlang from current dir erlc: Do not load .erlang escript: Do not load .erlang dialyzer: Do not load .erlang reltool: Add no_dot_erlang bootfiles Enable usage of no_dot_erlang in bootstrap Do not load .erlang from current dir
2017-10-17Merge branch 'dgud/kernel/get_chars_raw_echo_off'Dan Gudmundsson
* dgud/kernel/get_chars_raw_echo_off: Let io:get_chars/2 (echo off) fetch chars without eol
2017-10-16Merge branch 'maint'Sverker Eriksson
2017-10-16Merge branch 'sverker/cerl-rr' into maintSverker Eriksson
* sverker/cerl-rr: erts: Add -rr option to cerl start script
2017-10-16jinterface: Skip tests when hostname cannot be resolvedLukas Larsson
Check that the hostname can be resolved by the native resolver. What normally has happened when it cannot is that gethostname() returned a fqdn and `hostname -s` is not part of /etc/hosts. This is solved on the erlang side by adding `hostname -s` to inet_db, but java does not have a similar mechanism, so it fails when it tries to connect to `hostname -s`. This caused jinterface tests to fail when run in such an environment, and travis-ci recently started doing this.