aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2017-11-15Remove faulty assertSverker Eriksson
Send may have failed, port exit with dist_entry cleaned up and then new pending connection with queued messages.
2017-11-15erts: Transcode tuple fallbacksSverker Eriksson
When finalizing outgoing distribution messages we transcode them into using tuple fallbacks if the receiver does not support bitstrings and export-funs. This can only happen if the message was first encoded toward a pending connection when the receiver was unknown. It's an optimistic approach optmimized for modern beam nodes, that expect real bitstrings and funs (since <R13). Only erl_interface/jinterface lack this support.
2017-11-15erts: Ensure enc_term_int() always do progressSverker Eriksson
even when reds <= 1 Removed micro optimization for first fun variable to make things simpler.
2017-11-15erl_interface: Add tuple fallback testsSverker Eriksson
DFLAG_EXPORT_PTR_TAG and DFLAG_BIT_BINARIES
2017-11-15erl_interface: Refactor ei_accept_SUITESverker Eriksson
in order to call ei_publish() separately.
2017-11-15Add optimistic DFLAG_DIST_HOPEFULLY for pending connectionsSverker Eriksson
to avoid tuple fallbacks for export funs and bitstrings. ToDo: Re-encode if receiver turn out to be erl_interface/jinterface.
2017-11-15erts: Fix auto-connect toward erl_interface/jinterfaceSverker Eriksson
2017-11-15erts: Let send(_,_,[noconnect]) enqueue msg on pending connection.Sverker Eriksson
The least bad behavior I think: * We cannot return 'noconnect' as caller might already have enqueued monitor/link that never triggers. * We cannot block waiting for connection as that can ruin latency when 'noconnect' is used to avoid blocking auto-connect (see gen_server and gen_statem). But there might be users getting more cases of bad latency waiting for a pendig connection, instead of a fast 'noconnect'.
2017-11-15Remove obsolete erlang:dgroup_leaderSverker Eriksson
2017-11-15Remove obsolete erlang:dexit/2Sverker Eriksson
2017-11-15Remove obsolete erlang:dlink/1, dunlink/1 and dist_exit/3Sverker Eriksson
2017-11-15Remove obsolete erlang:dsendSverker Eriksson
2017-11-15erts: Async auto-connect for monitor/2Sverker Eriksson
2017-11-15erts: Async auto-connect for group_leader/2Sverker Eriksson
2017-11-15erts: Async auto-connect for monitor_nodeSverker Eriksson
Removed distribution_SUITE:applied_monitor_node as it seems to test apply of trapping BIF and monitor_node does not trap anymore.
2017-11-15erts: Introduce asynchronous auto-connectSverker Eriksson
2017-11-15erts: Refactor connection_id in ErtsDistExternalSverker Eriksson
Break out from 'flags' into new dedicated 'connection_id' just for simplicity. Also changed flags to low bits and that affected enif_binary_to_term.
2017-11-15kernel: Move auto connect into net_kernel serverSverker Eriksson
as a preparation for async auto-connect requests.
2017-11-15erts: Make DFLAGS_NEW_FUN_TAGS mandatorySverker Eriksson
and remove ugly encoding fallback as {fun, ...} DFLAGS_NEW_FUN_TAGS has been supported by vm/erl_interface/jinterface since R13 or even older. Renamed test case obsolete_funs to term2bin_tuple_fallbacks and removed test for {fun,...} fallback and added missing test for bitstring fallback {Binary, Bits}.
2017-11-15jinterface: Silence some verbose testsSverker Eriksson
Runs much faster now.
2017-11-15erts: Refactoring in distribution_SUITESverker Eriksson
for set/get_internal_state calls.
2017-11-15erts: Change to #ifndef from #if !definedSverker Eriksson
2017-11-15erts: Remove some dead codeSverker Eriksson
2017-11-15erts: Remove obsolete code for latin1 in atom cacheSverker Eriksson
Distribution flag DFLAG_UTF8_ATOMS is supported since R16 and mandatory since 20.0.
2017-11-15erts TEST: Add missing ref to DistEntry from send contextSverker Eriksson
2017-11-15erts: Fix bug in DistEntry refc danceSverker Eriksson
to handle "lookup without refc++" correctly which was introduced in 4dcb2ae7810a507b701a30072b2f514cab7ebbdb. When decrementing refc to zero (in try_delete or prepare_try_delete) we must always wait thread progress to make sure no thread has done lookup without refc++ and is just about to do refc++ and thereby revive the DistEntry. That is, we wait for a potential other thread to either do refc++ or drop its pointer to the DistEntry. And if that other thread does refc++ (in erts_ref_dist_entry) it must also do the extra refc++ for the scheduled pending delete.
2017-11-15Merge branch 'maint'Hans Bolinder
* maint: edoc: The map type is denoted map()
2017-11-15Merge branch 'hasse/edoc/fix_map_type/OTP-14777' into maintHans Bolinder
* hasse/edoc/fix_map_type/OTP-14777: edoc: The map type is denoted map()
2017-11-15Merge pull request #1602 from sirihansen/siri/supervisor/store-children-in-mapSiri Hansen
Refactor supervisor, and store children in a map instead of a list OTP-14586
2017-11-15Merge PR-1605 from sverker/sverker/binary_to_term-used OTP-14780Sverker Eriksson
Add 'used' option for binary_to_term/2
2017-11-15Merge PR-1621 from margnus1/hipe-literal-tagSverker Eriksson
HiPE: Support for literal tag, tests and bugfixes
2017-11-15Merge branch 'maint'Sverker Eriksson
2017-11-15Merge branch 'sverker/test-cuddle' into maintSverker Eriksson
2017-11-14[supervisor] Add test of scaling on start/stop of many childrenSiri Hansen
2017-11-14edoc: The map type is denoted map()Hans Bolinder
The map type was erroneously displayed as "#{}", the empty map type.
2017-11-14Add ignore option to transform_table fun (#1614)Bernard Duggan
2017-11-14Merge branch 'maint'Hans Bolinder
* maint: dialyzer: Display error messages without call stack
2017-11-14Merge branch 'hasse/dialyzer/fix_crash_msg/OTP-14742' into maintHans Bolinder
* hasse/dialyzer/fix_crash_msg/OTP-14742: dialyzer: Display error messages without call stack
2017-11-13Merge pull request #1624 from bjorng/bjorn/add-beam-internal-docBjörn Gustavsson
Add internal documentation for the beam_makeops script OTP-14626
2017-11-13Update primary bootstrapBjörn Gustavsson
2017-11-13Merge branch 'maint'Björn Gustavsson
* maint: Recognize 'deterministic' when given in a -compile() attribute Conflicts: lib/compiler/src/beam_asm.erl
2017-11-13Merge branch 'bjorn/compiler/fix-deterministic-attribute/ERL-498' into maintBjörn Gustavsson
* bjorn/compiler/fix-deterministic-attribute/ERL-498: Recognize 'deterministic' when given in a -compile() attribute OTP-14773
2017-11-13Merge branch 'maint'Ingela Anderton Andin
2017-11-13Merge branch 'ingela/ssl/doc-link-fix' into maintIngela Anderton Andin
* ingela/ssl/doc-link-fix: ssl: Fix broken link in doc
2017-11-13Document beam_makeopsBjörn Gustavsson
2017-11-13Refuse to load "literals" that can be confused with registersBjörn Gustavsson
The 's' operand overloads the tags for pids and ports to represent X and Y registers, respectively. At load time, refuse to load the module if the "literal" term is not a pid or port, as it would be interpreted as a register. This does not happen with normally compiled code, but it can happen if the compiler (or beam_asm) is abused like in the following example: make_bad() -> Pid = self(), Forms = [{attribute, 0, module, bad_s_operand}, {attribute, 0, export, [{test, 0}]}, {function, 0, test, 0, [{clause, 0, [], [], [{call,0,{atom,0,tuple_size},[{integer, 0, Pid}]}]}]}], {ok, Module, Bin} = compile:forms(Forms, [no_copt,no_postopt,report_errors]), code:load_binary(Module, "bad_s_operand.erl", Bin). With this commit applied, the following message will be printed when make_bad() is run: =ERROR REPORT==== 10-Nov-2017::14:47:59 === Loading of bad_s_operand.erl failed: badfile =ERROR REPORT==== 10-Nov-2017::14:47:59 === beam/beam_load.c(2396): Error loading function bad_s_operand:test/0: op bif1_body: bsd: the term '<0.60.0>' would be confused with a register
2017-11-13ssl: Fix broken link in docIngela Anderton Andin
2017-11-10dialyzer: Display error messages without call stackHans Bolinder
As of commit 12b379 many of the reasons displayed after "Analysis failed with error:" erroneously include a call stack. The bug is now corrected. The bug was pointed out in http://erlang.org/pipermail/erlang-questions/2017-October/093838.html.
2017-11-10Merge branch 'maint'Ingela Anderton Andin
* maint: Updated OTP version Update release notes Update version numbers inets: Prepare for release inets: Add missing guard Avoid WindowBits=8 as per the manual Fix deflateParams on zlib 1.2.11 Ignore empty binaries in enif_inspect_iovec Emasculate writable binaries on entering an iovec Only apply EOS behaviors if there's pending data Conflicts: OTP_VERSION
2017-11-10Merge branch 'maint-20' into maintIngela Anderton Andin
* maint-20: Updated OTP version Update release notes Update version numbers inets: Prepare for release inets: Add missing guard Avoid WindowBits=8 as per the manual Fix deflateParams on zlib 1.2.11 Ignore empty binaries in enif_inspect_iovec Emasculate writable binaries on entering an iovec Only apply EOS behaviors if there's pending data Stop assuming that all schedulers are managed when updating msacc