Age | Commit message (Collapse) | Author |
|
Passing NULL is undefined behavior and unconditionally executing these
may result in the compiler optimizing away a later NULL check. It can
often work since the pointer isn't touched when the length is 0, but
it's a major footgun. See ERL-573.
|
|
* maint:
ERL-558 Add the missing function clause for string:prefix (#1702)
|
|
OTP-14942
|
|
|
|
* siri/cuddle:
[cdv] Fix test of size limit reached on crash dump, again
|
|
Inline more type test BIFs in HiPE
|
|
* maint:
ssh: Insert missing ssh:stop() etc in test suites
ssh: Fix acceptor sup testcase
ssh: Fix cli testcase
ssh: Misspelling in test suite
ssh: Clearify links in ssh_sftp:read_file_info/2
ssh: Put common user_dir setup in ssh_options_SUITE:init_per_testcases/2
|
|
* hans/ssh/cuddle_doc:
ssh: Clearify links in ssh_sftp:read_file_info/2
|
|
* hans/ssh/cuddle_tests:
ssh: Insert missing ssh:stop() etc in test suites
ssh: Fix acceptor sup testcase
ssh: Fix cli testcase
ssh: Misspelling in test suite
ssh: Put common user_dir setup in ssh_options_SUITE:init_per_testcases/2
|
|
|
|
* peterdmv/stdlib/improve_uri_string_api/OTP-14910:
stdlib: Update uri_string documentation (HTML 5.2)
stdlib: Improve URI normalization in uri_string
Change-Id: I1b85e125ae3bc64e04b04ab884ca603217123167
|
|
|
|
Fix example MIB in the documentation
|
|
* john/erts/allow-opening-device-files/OTP-11462:
Allow opening device files and FIFOs with file:open/2
|
|
* john/erts/binary-bin_to_list-performance-fix/OTP-14741:
Replace binary:bin_to_list CIF implementation with binary_to_list
|
|
* maint:
Skip testing unavailable interfaces in inet_SUITE:getifaddrs
Make re_SUITE:sub_binaries less unstable
|
|
* john/kernel/skip-testing-unavailable-interfaces:
Skip testing unavailable interfaces in inet_SUITE:getifaddrs
|
|
* john/stdlib/regex-test-stability:
Make re_SUITE:sub_binaries less unstable
|
|
|
|
|
|
* sverker/erts/more-crash-dump-info/OTP-14820:
erts,observer: Add port-suspended pids to crash dump
erts,observer: Add port states and flags to crash dump
erts,observer: Add dirty schedulers to crash dump
observer: Refactor get_schedulerinfo1
erts,observer: Add more port info to crash dump
erts: Cleanup dump_process_info()
erts: Include failing garbing process in crash dump
erts: Remove unused args to collect_live_heap_frags
erts: Add binary vheap sizes to crash dump
|
|
|
|
|
|
|
|
|
|
|
|
This test consistently failed on Windows when an interface was
enabled but unplugged, as the interface was 'up' but not 'running'.
|
|
The small sub-binary conversion trick in the GC broke this test
pretty often on some machines.
|
|
|
|
* sverker/enif_self-doc:
erts: Clarify enif_self docs
|
|
|
|
* lukas/kernel/dist_SUITE_corefile_ignore:
kernel: Ignore cores in erl_distribution_SUITE
|
|
Conflicts:
erts/emulator/beam/erl_trace.c
|
|
* maint:
Update advanced.xml
|
|
* lukas/erts/dirty_trace_clean_fix/OTP-14938:
erts: Delay cleanup of removed tracer on dirty scheds
|
|
binary:bin_to_list had a poor implementation that resulted in
excessive garbage collection. binary_to_list is almost identical and
has a generally better implementation, so I've replaced
binary:bin_to_list's CIF with a thin wrapper around binary_to_list.
Granted, binary_to_list has a deprecated indexing scheme, but we're
unlikely to ever remote it entirely and it's somewhat easy to move
it to the 'binary' module later on.
|
|
It is not simple to do the correct de-allocation on
a dirty schedulers, so we just delay it until this
process runs on a normal scheduler.
|
|
Update advanced.xml with correct default for number of processes
|
|
dialyzer: Compute MD5s using the .beam file (OTP-14937)
|
|
To the best of our knowledge this was introduced since file operations
on device files/FIFO:s could hang the emulator forever back when the
emulator was single-threaded and lacked IO threads; a read operation
could block all progress preventing the write operation it waited for
from occurring.
Granted, this could still happen through starving all dirty IO
schedulers, but the same issue can arise with NFS files which we've
always allowed.
Removing this restriction also lets us remove a stat(2) call that was
added to specifically allow `/dev/null`.
|
|
* john/erts/nif-binary-iovec-fixes/OTP-14845/OTP-14931/OTP-14932:
Suggest using enif_make_new_binary when possible
Make enif_make_binary return heap binaries if possible
Expand ErlNifBinary by another word for future additions
Unconditionally transfer ownership to the created term
Tweak asserts and explain why the copy buf doesn't use the tmp obj list
Free temporary iovecs through the tmp object list
Add a helper function for attaching tmp objects to NIF environments
|
|
While enif_make_binary will create heap-binaries from ErlNifBinaries
when possible now, enif_alloc_binary still allocates a Binary* off-heap
which is avoided entirely with enif_make_new_binary.
|
|
This does not avoid allocating a ProcBin since we still need to
release the binary somehow (and using the tmp obj list is slightly
slower since it's an unavoidable off-heap allocation), but it does give
us a hard limit on how long said ProcBin will live, which is a lot
better than before.
OTP-14845
|
|
When fixing OTP-14931/14932 we had to settle for a solution that
decreased performance in a few corner cases like multiple calls to
enif_make_binary, as the other options on the table required extra
fields which would have broken ABI compatibility.
This is ABI-compatible since the fields are unused and at the end.
|
|
This fixes two corner-cases:
1) We will no longer return an invalid term when a binary inspected
on environment A is used in enif_make_binary on environment B
2) A double-free in this sequence of events:
* enif_alloc_binary(size, &bin);
* enif_ioq_enq_binary(ioq, &bin, skip);
* enif_make_binary(env, &bin);
* enif_make_binary(env, &bin);
OTP-14931
OTP-14932
|
|
|
|
Attaching to a ProcBin is the fastest way to delay the release of an
already allocated Binary, but alloc_tmp_obj is a lot faster when
starting from scratch since it usually uses temp_alloc.
|
|
The EX1-MIB cannot be compiled because of the missing IMPORT of "experimental".
The other instances EX1-MIB.mib (otp/lib/snmp/examples/ex1, lib/snmp/test/snmp_test_data)
are correct. I synchronized the documentation with them.
|
|
|
|
|