| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |\ |
|
| | |
| |
| |
| | |
Partially reverts cdd868b44792e878be781e37ce3a38375f0b22e9.
|
| | | |
|
| |/ |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make connections to the Erlang Port Mapper Daemon (epmd) optional
in Jinterface when providing a custom transport factory, as is
possible for Erlang nodes with the -no_epmd -proto_dist options.
The existing Jinterface classes and interfaces have been designed
originally for transport protocols using a socket port number and
didn't support other protocols working without epmd.
To provide backward compatibility and avoid code duplication,
create a new OtpGenericTransportFactory abstract class which does
not expect a socket port number but use the peer and local nodes
instead as generic identifiers. This expands the Jinterface
compatibility to other protocols, for instance Unix Domain Sockets.
Adapt AbstractConnection, AbstractNode, OtpNode and OtpSelf to
accept factory subclasses of the new OtpGenericTransportFactory and
make them compatible with a wider set of alternative distribution
protocols. With such transport factory subclasses, epmd is not used
at all whereas the behavior remains unchanged for regular factories.
Add documentation and test case for OtpGenericTransportFactory
|
| |
|
|
|
| |
Option passed to avoid being dependent on machine-specific locale
which could assume pure ASCII source code for example.
|
| | |
|
| |\ |
|
| | |\
| | |
| | |
| | | |
sverker/jinterface/write_pid-fix/OTP-17887
|
| | | |
| | |
| | |
| | |
| | | |
in OtpOutputStream
for functions write_pid/4, write_port/3 and write_ref/3.
|
| | | | |
|
| | | | |
|
| | | | |
|
| |\ \ \
| |/ /
| | |
| | |
| | | |
* maint:
Update copyright year
|
| | | | |
|
| | | |
| | |
| | |
| | | |
by avoiding deprecated Double(double) constructor.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
During distribution connect setup between two nodes, the nodes exchange
flags words encoding their capabilities. The connection setup is aborted
if one of the node lacks a capability that the other node requires.
In version 5 of the protocol (introduced in OTP R6), there are 32
possible capabilities (each encoded in a single bit). Since it seemed
that we would soon run out of capabilitiy bits, protocol version 6
(introduced in OTP 23) expanded the number of possible capability bits
to 64.
To avoid having to extend the number of capabilites yet again from 64
to 128 in some future release, this commit introduces a scheme to
allow reusing the bit numbers for capabilities that are now
mandatory. The scheme is described in lib/kernel/include/dist.hrl.
There are 10 mandatory capability bits as of OTP 25. This scheme will
allow reusing 9 of those capability bits as early as in OTP 27.
|
| |/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The three applications that supports Erlang distribution (erts,
erl_interface, and jinterface), do not agree which the mandatory
distribution flags are.
For example, DFLAG_NEW_FLOATS (support for the "new" external format
for floats introduced in R11B-5) is considered mandatory in
erl_interface, but not in the Erlang emulator. jinterface does not
test the flag, but encodes all floats in the new external format.
Update erts, erl_interface, and jinterface to all use the same set of
mandatory distribution flags.
Also make the following distribution flags mandatory:
* DFLAG_EXPORT_PTR_TAG
* DFLAG_BIT_BINARIES
* DFLAG_MAP_TAG
Support for them in erl_interface and jinterface was added in OTP 22
or earlier. Making them mandatory allows us to remove ugly fallback
code.
|
| | |
| |
| |
| |
| |
| | |
After a call to close(), the socket is set to null which could
lead to a NullPointerException in the receive_loop when handling
tick messages. End the receive_loop instead in this case.
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
rickard/link-protocol-fix/master/OTP-17127
* rickard/link-protocol-fix/OTP-17127:
jinterface: Fix link protocol inconsistency bug
erts: Fix distribution_SUITE:bad_dist_fragments test case
erts: Fix link protocol inconsistency bug in distributed case
erts: Adjust link structure in distributed case
erts: Fix link protocol inconsistency bug in node local case
erts: Split link structure in node local case
erts: Add test cases for link protocol inconsistency bug
|
| | |/ |
|
| | |
| |
| |
| |
| |
| | |
Not being able to access the internals of OtpErlangExternalFun is problematic.
The real use case: performing some analysis of cerl from inside java/scala - the construct `fun module:fun/arity` is represented as "itself", and when accessing cerl forms from jinterface - it's represented as OtpErlangExternalFun correspondingly. Unfortunately, - the internals are private, - which makes some forms of Erlang core not analysable through jinterface.
Also, - since all `module`, `function` and `arity` fields are final/immutable - it doesn't make much sense to hide/incapsulate them.
|
| | | |
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* rickard/alias/OTP-16718:
User defined tag in monitor messages
Use alias in gen behaviours
Introduce aliases for processes
Introduce internal references containing pid of creator
Allow huge remote references
|
| | |/
| |
| |
| |
| | |
We previously only allowed references with 3 number words. This has
now been increased to 5.
|
| |/
|
|
|
| |
The code was already prepared to not mask away bits
so we just add DFLAG_BIG_PIDS.
|
| |
|
|
| |
In WSL binaries must be invoked with .exe extension.
|
| | |
|
| |\
| |
| |
| |
| |
| |
| | |
* maint:
Update java doc
Print last lines of configure log
Force xenial builds in travis
|
| | |
| |
| |
| | |
Replace deprecated <tt> with <code>
|
| |/
|
|
| |
This reverts revert-commit 440ef99ddcd3cddb5f8f7bd23ec282c8efe32bd3.
|
| |
|
|
| |
The implementation is already there (OtpErlangExternalFun).
|
| |
|
|
| |
This reverts commit 3c7a387c21d7b0d054c22509828142a80e509317.
|
| | |
|
| |
|
|
|
| |
I did not find any legitimate use of "can not", however skipped
changing e.g RFCs archived in the source tree.
|
| | |
|
| |
|
| |
The Java 9 module system requires a module name to be defined. If none is provided, a default one is used derived from the JAR name, but that one is not very unique and can create problems. The recommended module name is the longest common package name for the source code included.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |\
| |
| |
| |
| | |
* vladdu/jinterface_pom/ERL-67/PR-1005/OTP-13482:
jinterface: updated pom.xml.src
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | | |
* henrik/update-copyrightyear:
update copyright-year
|
| | |/ |
|
| | |
| |
| |
| |
| | |
to let future nodes know that we can handle
NEW_PID_EXT, NEW_PORT_EXT and NEWER_REFERENCE_EXT.
|