Age | Commit message (Collapse) | Author |
|
OTP-14527
|
|
All operations will now yield appropriately, allowing them to be used
freely in concurrent applications. This commit also deprecates the
functions listed below, although they won't raise deprecation
warnings until OTP 21:
zlib:adler32
zlib:crc32
zlib:inflateChunk
zlib:getBufSize
zlib:setBufSize
The behavior of throwing an error when a dictionary is required for
decompression has also been deprecated.
|
|
This fixes the issue with the function `move_cursor` described in #1536 and that causes the bug described in https://github.com/elixir-lang/elixir/issues/6504.
The function `cp_pos_to_col` maps the current position in the buffer to the correct column on the screen, but it didn't handle ANSI escape codes. Since the ANSI escape codes aren't visible, the `cp_pos_to_col` now skips them when executing the calculations using `ansi_escape_width`. This new function only considers color escape codes, but also handles invalid codes.
|
|
* maint:
Fix ANSI support in the console
|
|
The ANSI support doesn't work properly with edlin, the issue can be noticed when you try to use the history of the shell and the prompt prefix has ANSI (https://github.com/elixir-lang/elixir/issues/6448). The problem is that when a `\e` character appears, it handles it like a new line, dropping the buffer before it.
The solution is to always add the `\e` to the buffer like a regular character and handle it when writing the buffer instead.
|
|
* maint:
stdlib: Improve edlin handling of unicode chars
|
|
* dgud/stdlib/edit-unicode:
stdlib: Improve edlin handling of unicode chars
OTP-14542
|
|
Let edlin handle grapheme clusters instead of codepoints to
improve the handling multi-codepoints characters.
The ttsl driver (and protocol) still expects all lengths as
codepoints.
Previously it was expected that each codepoint used (at least) one
terminal column for each codepoint, and a hack was made for wide
characters (multicolumn) by patching in TAGGED characters to occupy
the extra space so that codepoint index was equal column index.
This didn't work at all for combining codepoints that do not occupy any
more space than the previous character.
Improved this handling by calculating column positions in move_cursor.
This is based on wcwidth() and is not perfect, wcwidth() is wrong for
some codepoints and wcwidth() can not know with Hangul graphemes for
example. But it works better than before without making a major change
in the protocol.
|
|
* maint:
Updated OTP version
Update release notes
Update version numbers
Fix doc for the 'quiet' option; it defaults to false
asn1: Fix missing quotes of external encoding call
Add a dedicated close function for TCP ports to prevent issues like ERL-430/448
Close TCP ports properly on send timeout
erts: Add missing release note
|
|
* maint-20:
Updated OTP version
Update release notes
Update version numbers
Fix doc for the 'quiet' option; it defaults to false
asn1: Fix missing quotes of external encoding call
Add a dedicated close function for TCP ports to prevent issues like ERL-430/448
Close TCP ports properly on send timeout
erts: Add missing release note
|
|
* john/erts/fix-tcp-send-timeout/OTP-14509/ERL-448:
Add a dedicated close function for TCP ports to prevent issues like ERL-430/448
Close TCP ports properly on send timeout
|
|
This refactor was done using the unifdef tool like this:
for file in $(find erts/ -name *.[ch]); do unifdef -t -f defile -o $file $file; done
where defile contained:
#define ERTS_SMP 1
#define USE_THREADS 1
#define DDLL_SMP 1
#define ERTS_HAVE_SMP_EMU 1
#define SMP 1
#define ERL_BITS_REENTRANT 1
#define ERTS_USE_ASYNC_READY_Q 1
#define FDBLOCK 1
#undef ERTS_POLL_NEED_ASYNC_INTERRUPT_SUPPORT
#define ERTS_POLL_ASYNC_INTERRUPT_SUPPORT 0
#define ERTS_POLL_USE_WAKEUP_PIPE 1
#define ERTS_POLL_USE_UPDATE_REQUESTS_QUEUE 1
#undef ERTS_HAVE_PLAIN_EMU
#undef ERTS_SIGNAL_STATE
|
|
|
|
|
|
* john/erts/runtime-lcnt:
Document rt_mask and add warnings about copy_save
Add an emulator test suite for lock counting
Break erts_debug:lock_counters/1 into separate BIFs
Allow toggling lock counting at runtime
Move lock flags to a common header
Enable register_SUITE for lcnt builds
Enable lcnt smoke test on all builds that have lcnt enabled
Make lock counter info independent of the locks being counted
OTP-14412
OTP-13170
OTP-14413
|
|
The implementation is still hidden behind ERTS_ENABLE_LOCK_COUNT, and
all categories are still enabled by default, but the actual counting can be
toggled at will.
OTP-13170
|
|
* john/erts/fix-port-leak/OTP-13939/ERL-193:
Add a testcase for OTP-13939/ERL-193
Mark socket disconnected on tcp_send_or_shutdown_error
# Conflicts:
# lib/kernel/test/gen_tcp_misc_SUITE.erl
|
|
* maint-19:
Updated OTP version
Update release notes
Update version numbers
Fix statistics(wall_clock) and statistics(runtime) implementation
fixup! erts: Cleanup dropped port tasks correctly
erts: Add tests to detect port close race
Add a testcase for OTP-13939/ERL-193
erts: Cleanup dropped port tasks correctly
Mark socket disconnected on tcp_send_or_shutdown_error
|
|
* john/erts/fix-port-leak/OTP-13939/ERL-193:
Add a testcase for OTP-13939/ERL-193
Mark socket disconnected on tcp_send_or_shutdown_error
# Conflicts:
# lib/kernel/test/gen_tcp_misc_SUITE.erl
|
|
The socket left lingering due to {exit_on_close, false} will accept writes
in a confusing way, returning either enotconn or blocking. This fix allows
socket to know that it has been closed recently, and new writes won't pass.
|
|
* maint:
Updated OTP version
Update release notes
Update version numbers
erts: Fix so that 81b628 (sigterm=kill) works
Updated OTP version
Prepare release
Unconditionally clear IO buffers on send/shutdown errors
Conflicts:
OTP_VERSION
erts/emulator/sys/unix/sys.c
erts/vsn.mk
|
|
* john/erts/fix-zombie-tcp-ports/ERL-430/OTP-14441:
Unconditionally clear IO buffers on send/shutdown errors
|
|
* lukas/erts/sendfile_sunos_fix/OTP-14424:
erts: Fix sendfile closeduring scenario on sunos
|
|
On Solaris, giving a too long sfv_len results in an
EINVAL error, but data is still transmitted and len is
correctly. So we translate this to a success with that
amount of data sent. This may hide some other errors
that causes EINVAL, but it is the best we can do for now.
|
|
This fixes a bug where a send/shutdown error on an active-mode socket results
in the port never being properly closed.
|
|
|
|
|
|
bind to device is needed to properly support VRF-Lite under
Linux (see [1] for details).
[1]: https://www.kernel.org/doc/Documentation/networking/vrf.txt
|
|
Conflicts:
OTP_VERSION
erts/vsn.mk
lib/crypto/c_src/crypto.c
lib/crypto/src/crypto.erl
lib/ssh/src/ssh.erl
|
|
* goeldeepak/erts/fix_inet_gethost_long/ERL-61/PR-1345/OTP-14310:
This patch fixes the issue in which erlang fails to start if the hostname is 64 characters on a linux system.
|
|
|
|
if the hostname is 64 characters on a linux system.
|
|
|
|
Conflicts:
OTP_VERSION
|
|
|
|
Work around broken build system by checking
actual zlib version in runtime.
|
|
ERL_DRV_USE_NO_CALLBACK only meaningful when deselecting.
|
|
|
|
|
|
|
|
* g-andrade/kernel/fetch_ztream_dictionary/PR-1139/OTP-13842:
Update preloaded modules
Specify min zlib ver on inflateGetDictionary doc
Skip inflateGetDictionary test case if unsupported
zlib: Only link inflateGetDictionary if available
zlib: Add test case for inflateGetDictionary
zlib: support extraction of inflation dictionary
|
|
Which at the moment means zlib versions >= 1.2.8.
|
|
|
|
|
|
|
|
|
|
* saleyn/uds/PR-612/OTP-13572:
AF_UNIX is more portable
|
|
Fix dialyzer warning for improper list in prim_inet
by not using an improper list.
|
|
* saleyn/uds/PR-612/OTP-13572:
Rewrite inet* for address family 'local'
Rewrite inet_drv for AF_LOCAL
Assign externally open fd to gen_tcp (UDS support)
Conflicts:
erts/preloaded/ebin/prim_inet.beam
lib/kernel/doc/src/gen_tcp.xml
lib/kernel/doc/src/gen_udp.xml
lib/kernel/src/inet6_sctp.erl
lib/kernel/test/inet_SUITE.erl
|
|
|