aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2018-03-09Check the arguments to sys_memcpy and friendsJohn Högberg
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.
2018-03-01Merge branch 'maint'Dan Gudmundsson
* maint: ERL-558 Add the missing function clause for string:prefix (#1702)
2018-03-01ERL-558 Add the missing function clause for string:prefix (#1702)Seyed Mirsadeghi
OTP-14942
2018-03-01Merge branch 'maint'Siri Hansen
2018-03-01Merge branch 'siri/cuddle' into maintSiri Hansen
* siri/cuddle: [cdv] Fix test of size limit reached on crash dump, again
2018-03-01Merge PR-1718 from michalmuskala/hipe-inline-bifs OTP-14941Sverker Eriksson
Inline more type test BIFs in HiPE
2018-03-01Merge branch 'maint'Hans Nilsson
* 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
2018-03-01Merge branch 'hans/ssh/cuddle_doc' into maintHans Nilsson
* hans/ssh/cuddle_doc: ssh: Clearify links in ssh_sftp:read_file_info/2
2018-03-01Merge branch 'hans/ssh/cuddle_tests' into maintHans Nilsson
* 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
2018-02-28ssh: Insert missing ssh:stop() etc in test suitesHans Nilsson
2018-02-28Merge branch 'peterdmv/stdlib/improve_uri_string_api/OTP-14910'Péter Dimitrov
* 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
2018-02-28Merge branch 'maint'Raimo Niskanen
2018-02-28Merge pull request #1726 from gotthardp/maintRaimo Niskanen
Fix example MIB in the documentation
2018-02-28Merge branch 'john/erts/allow-opening-device-files/OTP-11462'John Högberg
* john/erts/allow-opening-device-files/OTP-11462: Allow opening device files and FIFOs with file:open/2
2018-02-28Merge branch 'john/erts/binary-bin_to_list-performance-fix/OTP-14741'John Högberg
* john/erts/binary-bin_to_list-performance-fix/OTP-14741: Replace binary:bin_to_list CIF implementation with binary_to_list
2018-02-28Merge branch 'maint'John Högberg
* maint: Skip testing unavailable interfaces in inet_SUITE:getifaddrs Make re_SUITE:sub_binaries less unstable
2018-02-28Merge branch 'john/kernel/skip-testing-unavailable-interfaces' into maintJohn Högberg
* john/kernel/skip-testing-unavailable-interfaces: Skip testing unavailable interfaces in inet_SUITE:getifaddrs
2018-02-28Merge branch 'john/stdlib/regex-test-stability' into maintJohn Högberg
* john/stdlib/regex-test-stability: Make re_SUITE:sub_binaries less unstable
2018-02-27Merge branch 'maint'Sverker Eriksson
2018-02-27Merge branch 'sverker/master/erts/more-crash-dump-info/OTP-14820'Sverker Eriksson
2018-02-27Merge branch 'sverker/erts/more-crash-dump-info/OTP-14820' into maintSverker Eriksson
* 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
2018-02-27ssh: Fix acceptor sup testcaseHans Nilsson
2018-02-27ssh: Fix cli testcaseHans Nilsson
2018-02-27ssh: Misspelling in test suiteHans Nilsson
2018-02-27ssh: Clearify links in ssh_sftp:read_file_info/2Hans Nilsson
2018-02-27ssh: Put common user_dir setup in ssh_options_SUITE:init_per_testcases/2Hans Nilsson
2018-02-27Skip testing unavailable interfaces in inet_SUITE:getifaddrsJohn Högberg
This test consistently failed on Windows when an interface was enabled but unplugged, as the interface was 'up' but not 'running'.
2018-02-27Make re_SUITE:sub_binaries less unstableJohn Högberg
The small sub-binary conversion trick in the GC broke this test pretty often on some machines.
2018-02-26Merge branch 'maint'Sverker Eriksson
2018-02-26Merge branch 'sverker/enif_self-doc' into maintSverker Eriksson
* sverker/enif_self-doc: erts: Clarify enif_self docs
2018-02-26Merge branch 'maint'Lukas Larsson
2018-02-26Merge branch 'lukas/kernel/dist_SUITE_corefile_ignore' into maintLukas Larsson
* lukas/kernel/dist_SUITE_corefile_ignore: kernel: Ignore cores in erl_distribution_SUITE
2018-02-26Merge branch 'maint'Lukas Larsson
Conflicts: erts/emulator/beam/erl_trace.c
2018-02-26Merge branch 'maint'John Högberg
* maint: Update advanced.xml
2018-02-26Merge branch 'lukas/erts/dirty_trace_clean_fix/OTP-14938' into maintLukas Larsson
* lukas/erts/dirty_trace_clean_fix/OTP-14938: erts: Delay cleanup of removed tracer on dirty scheds
2018-02-26Replace binary:bin_to_list CIF implementation with binary_to_listJohn Högberg
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.
2018-02-26erts: Delay cleanup of removed tracer on dirty schedsLukas Larsson
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.
2018-02-26Merge pull request #1715 from erlang/KennethL-patch-1Kenneth Lundin
Update advanced.xml with correct default for number of processes
2018-02-26Merge pull request #1719 from josevalim/jv-faster-dialyzer-md5Hans Bolinder
dialyzer: Compute MD5s using the .beam file (OTP-14937)
2018-02-26Allow opening device files and FIFOs with file:open/2John Högberg
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`.
2018-02-26Merge branch 'john/erts/nif-binary-iovec-fixes/OTP-14845/OTP-14931/OTP-14932'John Högberg
* 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
2018-02-26Suggest using enif_make_new_binary when possibleJohn Högberg
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.
2018-02-26Make enif_make_binary return heap binaries if possibleJohn Högberg
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
2018-02-26Expand ErlNifBinary by another word for future additionsJohn Högberg
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.
2018-02-26Unconditionally transfer ownership to the created termJohn Högberg
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
2018-02-26Tweak asserts and explain why the copy buf doesn't use the tmp obj listJohn Högberg
2018-02-26Free temporary iovecs through the tmp object listJohn Högberg
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.
2018-02-24Fix example MIB in the documentationPetr Gotthard
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.
2018-02-23Add a helper function for attaching tmp objects to NIF environmentsJohn Högberg
2018-02-23erts: Clarify enif_self docsSverker Eriksson