Age | Commit message (Collapse) | Author |
|
|
|
* lukas/erts/port_control_emasculate_binary/OTP-14231:
erts: Fix emasculation of binaries in port_control
|
|
|
|
|
|
In many cases sub-binaries costs more memory than converting them to heap-binaries.
Sub-binaries also has a hidden cost of pinning larger binaries in memory.
By converting binaries this cost is reduced.
Byte aligned sub-binaries upto 24 bytes (64-bit) or 12 bytes (32-bit) are converted.
|
|
|
|
When a pattern a type do not match, opaque warnings were given
precedence before structure mismatches.
This is no longer always the case.
Mentioned by Nick Marino on erlang-questions.
|
|
|
|
An opaque bug that would crash Dialyzer has been fixed.
The bug was reported by Nick Marino.
|
|
|
|
* maint:
stdlib: Add maps to term traversal
|
|
* hasse/stdlib/fix_term_traversal:
stdlib: Add maps to term traversal
|
|
Better error descriptions for ASN.1 encoding/decoding failures
|
|
Make sure that zip:extract() and zip:create() closes the zip
file if there is an error.
ERL-349
|
|
There is unfinished code in the zip module to handle the
extra field in the central-directory header for each
file. The code to extract an Unix extra subfield is incorrect
and always causes a bad_unix_extra_field error. A further
flaw in the code is that it expects that there is only
a single subfield.
Correcting the code for extracting extra subfields will not do any
good, because the extracted data is ignored. In fact, not even the
file times extracted from DOS file times are used for some reason.
Therefore, don't correct the unfinished code. Remove it completely.
(If needed, extending zip to use file times and to use the information
in the extra field should be done in a major release, not in a
maintenance release.)
ERL-348
|
|
* maint:
Ensure prim_eval:'receive' wont clobber def_arg_reg[0]
Conflicts:
erts/preloaded/ebin/prim_eval.beam
|
|
OTP-14241
* rickard/prim_eval_receive:
Ensure prim_eval:'receive' wont clobber def_arg_reg[0]
|
|
Symptom: Throughput of base64:mime_decode/1 significantly lower than
base64:decode/1.
Problem: tail_contains_more/2 prevents compiler from delaying creation
of sub binaries.
Solution: Restructure mime_decode_binary/2 to use binary matching best
practices from the Efficiency Guide.
See ERL-366
|
|
* maint:
Documentation: use behaviour(ssh_daemon_channel)
Fix minor typo in compile:forms/1 doc
|
|
Fix minor typo in compile:forms/1 doc
OTP-14240
|
|
|
|
|
|
* bjorn/compiler/opt-binary-strings/OTP-14125:
v3_core: Combine binary strings to larger integers
|
|
Documentation: use behaviour(ssh_daemon_channel)
|
|
Binary construction that mixes long literal strings with variables
will make Dialyzer slow. Example:
<<"long string (thousand of characters)",T/binary>>
The string literals in binary construction is translated to one binary
segment per character; all those segments will slow down Dialyzer.
We can speed up Dialyzer if we combine several characters (up to 256)
to a signle segment in the binary. It will also slightly speed up the
compiler.
This optimization will make core listings file with binary strings
harder to read, but they were not that easy to read before this
change.
ERL-308
|
|
Not setting it correctly will cause the swapin later
to fail in debug build as REDS_IN will overwrite
the value in reg[5].
|
|
* egil/pretty-print-maps-smaller/OTP-14239:
stdlib: Use erts_internal:maps_to_list/2 in io_lib_pretty
Update preloaded erts_internal.beam
erts: Test erts_internal:maps_to_list/2
erts: Introduce erts_internal:maps_to_list/2
|
|
This fixes a bug introduced in 3671dd2d
|
|
|
|
In the SSH User's Guide, section 2.8 'Creating a Subsystem' uses
behaviour(ssh_subsystem) but should use behaviour(ssh_daemon_channel).
The renaming was updated in the Reference Manual but never reflected
in the User's Guide.
|
|
|
|
ErLLVM: Drop support for LLVM<3.9 in R20
|
|
|
|
Commit 9a878743 addressed inefficiency at failover, but introduced
inefficiency in the sending of outgoing requests in so doing: each
outgoing request added an request table entry keyed on a transport pid,
then looked for a specific element with this key, and then (later)
removed the inserted element. Since the request table is a bag, this
results in linear searches over a potentially long list of element
keyed on the same pid. The higher the rate of outgoing calls, the more
costly it becomes.
Instead of writing entries to the request table, the peer_up/down calls
to diameter_traffic that mirror transitions to and from the OKAY state
in the RFC 3539 watchdog state machine now result in a process for
request processes to monitor in order to detect failover.
|
|
* maint:
filename: Add safe_relative_path/1
Conflicts:
lib/stdlib/src/filename.erl
|
|
filename: Add safe_relative_path/1
OTP-14215
|
|
* bjorn/stdlib/misc-fixes:
c: Reintroduce support for non-list options in c/2
c: Remove unused import of lists:concat/1
|
|
* sverker/enif_select: (31 commits)
Remove debug printout and comment
Fix nif_SUITE:select for old linux
Add docs for enif_compare_monitors and ErlNifMonitor
Fix ErlNifMonitor handling
Remove faulty debug ASSERT
erts: Skip nif_SUITE:select on windows
Fix enif_select for windows
Fix whitebox monitor tests
Fix erl_nif doc
Expand nif_SUITE:monitor_frenzy to verify dtor calls
Expand nif_SUITE:monitor_frenzy with binary_to_term
erts: Avoid revival of dying resource by dec_term
erts: Add enif_compare_monitors
erts: Try fix enif_select for windows
erts: Change return value for enif_select
erts: Add pid argument to enif_select
erts: Beautify enif_select
erts: Fix bad_fd_in_pollset error case for enif_select
erts: Add enif_monitor_process and enif_demonitor_process
erts: Rename ErlNifResource as ErtsResource
...
|
|
|
|
|
|
again
* sverker/include-module-literal-size:
erts: Beautify loaded()
erts: Fix literal size bug when only old instance exists
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* hasse/stdlib/sofs_opt/OTP-14157:
stdlib: Simplify error handling of the sofs module
|
|
with pipe capacity equal to PIPE_BUF
meaning pipe must be empty to be writable.
|