aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2017-12-04Merge branch 'bjorn/compiler/clean-up-codegen'Björn Gustavsson
* bjorn/compiler/clean-up-codegen: bs_match_SUITE: Cover more clauses in v3_codegen:bs_rename_ctx/4 Clean up and comment code generation for basic blocks Stop trying to maximize the use of x(0) Clean up collection of basic blocks
2017-12-04bs_match_SUITE: Cover more clauses in v3_codegen:bs_rename_ctx/4Björn Gustavsson
2017-12-04Clean up and comment code generation for basic blocksBjörn Gustavsson
2017-12-01Merge branch 'maint'Hans Nilsson
* maint: crypto: engine_SUITE update crypto: fix pubkey_to_privkey
2017-12-01Merge branch 'hans/crypto/fix_wrong_error_return_privkey_to_pubkey' into maintHans Nilsson
* hans/crypto/fix_wrong_error_return_privkey_to_pubkey: crypto: engine_SUITE update crypto: fix pubkey_to_privkey
2017-12-01Merge branch 'maint'Hans Nilsson
* maint: public_key: Separated failing gen_ec_param test case into two because two different curve classes were tested in one TC and on one test machine only one was supported
2017-12-01Merge branch 'hans/public_key/cuddle_tests' into maintHans Nilsson
* hans/public_key/cuddle_tests: public_key: Separated failing gen_ec_param test case into two because two different curve classes were tested in one TC and on one test machine only one was supported
2017-12-01public_key: Separated failing gen_ec_param test case into twoHans Nilsson
because two different curve classes were tested in one TC and on one test machine only one was supported
2017-12-01crypto: engine_SUITE updateHans Nilsson
2017-12-01crypto: fix pubkey_to_privkeyHans Nilsson
2017-12-01Merge branch 'maint'Lars Thorsen
2017-12-01Merge branch 'lars/crypto/valgrind-fixes/OTP-14800' into maintLars Thorsen
* lars/crypto/valgrind-fixes/OTP-14800: [crypto] Fix memory leak
2017-12-01[crypto] Fix memory leakLars Thorsen
Fix memory leak in engine load code found by valgrind.
2017-12-01Merge branch 'maint'Ingela Anderton Andin
2017-12-01Merge branch 'ingela/ssl/timing' into maintIngela Anderton Andin
* ingela/ssl/timing: ssl: Align timing just in case
2017-12-01Merge branch 'peterdmv/inets/fix-httpc/OTP-14799'Péter Dimitrov
* peterdmv/inets/fix-httpc/OTP-14799: inets: Fix httpc path handling
2017-12-01Merge branch 'john/erts/efile-nif'John Högberg
OTP-14256 OTP-14797
2017-11-30Merge branch 'maint'Rickard Green
* maint: Clarification in doc of unicode:characters_to_list/2
2017-11-30Merge branch 'rickard/unicode-doc/ERL-516/OTP-14798' into maintRickard Green
* rickard/unicode-doc/ERL-516/OTP-14798: Clarification in doc of unicode:characters_to_list/2
2017-11-30Clarification in doc of unicode:characters_to_list/2Rickard Green
2017-11-30Don't assume efile driver is presentJohn Högberg
2017-11-30Make file:sendfile/5 follow its documented error behaviorJohn Högberg
2017-11-30Remove doc for sendfile/5 use_threads optionJohn Högberg
The option no longer does anything; systems that lack support for non-blocking sendfile(2) will use the Erlang fallback.
2017-11-30Update file performance adviceJohn Högberg
The parts relating to drivers/ports are now obsolete, and the provided example was far noisier than it had to be; the only relevant metric is the number of calls and it's up to the user to decide how those will be reduced. One could argue for its complete removal, but I'm inclined to leave it be.
2017-11-30Use tcp_inet as an example driver instead of efileJohn Högberg
2017-11-30Remove all mention of efile_drv from DTrace docsJohn Högberg
efile_drv is gone and so is the need for file-specific DTrace. The new implementation works fine with the normal tracing mechanism so there's nothing preventing anyone from making an erl_tracer nif that forward these events to DTrace.
2017-11-30Stop testing use_threads in sendfile_SUITEJohn Högberg
The option no longer does anything at all.
2017-11-30Skip efile_SUITE:iter_max_files on WindowsJohn Högberg
2017-11-30Tighten timings in dirty_*if_SUITE:dirty_scheduler_exitJohn Högberg
There doesn't seem to be any science behind the long delays, and the (newly introduced) dry run forces us to eat them twice, so they've been shortened to more reasonable values.
2017-11-30Fix dirty_*if_SUITE after file rewriteJohn Högberg
Code loading is done through dirty IO now, causing the dirty_scheduler_exit tests to fail as they block their own progress by invoking erts_debug:dirty_io(wait, _); the spawned processes will exit normally before we have a chance to kill them. To get around this, we perform a dry run to ensure that all required code is loaded. It isn't particularly pretty (or fast) but it saves us the hassle of maintaining a module list (cf. embedded mode).
2017-11-30Stop testing the artificial size limit on writesJohn Högberg
The old driver didn't fall back to using write(2) if writev(2) failed due to the combined length of the iov overflowing a ssize_t, but the new one doesn't have any problems with it so we failed this test with a case_clause error on 32-bit machines.
2017-11-30Stop using prim_file directly in test_serverJohn Högberg
Files opened with the file module are not guaranteed to work with prim_file, even when opened in raw mode.
2017-11-30get_cwd/1 on non-existent drives should error outJohn Högberg
2017-11-30Reads that draw from both buffer and file must workJohn Högberg
2017-11-30Fix incorrect assumption about process activityJohn Högberg
The tests assume that the most active process will be the current one, which is no longer true since the delayed_write option now uses a wrapper process for much of its work. The timeout for this test has been increased to account for the lack of delayed_write; 60s was enough for everything except the debug build on some machines.
2017-11-30Volume-relative paths must work on WindowsJohn Högberg
2017-11-30Operations on closed raw files should return EINVALJohn Högberg
2017-11-30Use lexemes/2 instead of the deprecated tokens/2John Högberg
2017-11-30Remove port subtest in qlc_SUITE:sortJohn Högberg
This subtest revolves around the possibility that the underlying port can be killed, which is nonsense now that the file suite no longer uses ports for anything.
2017-11-30Remove disk_log_SUITE:evilJohn Högberg
This test revolves around the possibility that the underlying port can be killed, which is nonsense now that the file suite no longer uses ports for anything.
2017-11-30Remove efile_SUITE:async_distJohn Högberg
This test is irrelevant as the new implementation doesn't use async threads.
2017-11-30Ensure that trailing slashes are ignored on list_dirJohn Högberg
2017-11-30Ensure that root paths are translated to our preferred formJohn Högberg
2017-11-30Tighten timings in delayed_writeJohn Högberg
The cumulative wait time was as long as the delay itself in the flush-on-size test, causing the test to pass because the write managed to time out.
2017-11-30pread/2 must always return a list of resultsJohn Högberg
2017-11-30Test opening raw files in the same manner as regular onesJohn Högberg
2017-11-30Add microbenchmarks for file:read/2 and file:write/2John Högberg
2017-11-30Account for new behavior in tests that touch prim_fileJohn Högberg
This also hides the module behind ?PRIM_FILE to make testing new implementations less painful.
2017-11-30Reimplement efile_drv as a dirty NIFJohn Högberg
This improves the latency of file operations as dirty schedulers are a bit more eager to run jobs than async threads, and use a single global queue rather than per-thread queues, eliminating the risk of a job stalling behind a long-running job on the same thread while other async threads sit idle. There's no such thing as a free lunch though; the lowered latency comes at the cost of increased busy-waiting which may have an adverse effect on some applications. This behavior can be tweaked with the +sbwt flag, but unfortunately it affects all types of schedulers and not just dirty ones. We plan to add type-specific flags at a later stage. sendfile has been moved to inet_drv to lessen the effect of a nasty race; the cooperation between inet_drv and efile has never been airtight and the socket dying at the wrong time (Regardless of reason) could result in fd aliasing. Moving it to the inet driver makes it impossible to trigger this by closing the socket in the middle of a sendfile operation, while still allowing it to be aborted -- something that can't be done if it stays in the file driver. The race still occurs if the controlling process dies in the short window between dispatching the sendfile operation and the dup(2) call in the driver, but it's much less likely to happen now. A proper fix is in the works. -- Notable functional differences: * The use_threads option for file:sendfile/5 no longer has any effect. * The file-specific DTrace probes have been removed. The same effect can be achieved with normal tracing together with the nif__entry/nif__return probes to track scheduling. -- OTP-14256
2017-11-30Add a mutable binary buffer type (prim_buffer)John Högberg