Age | Commit message (Collapse) | Author |
|
|
|
=== OTP-18.3.1 ===
Changed Applications:
- erts-7.3.1
- inets-6.2.1
- mnesia-4.13.4
Unchanged Applications:
- asn1-4.0.2
- common_test-1.12
- compiler-6.0.3
- cosEvent-2.2
- cosEventDomain-1.2
- cosFileTransfer-1.2
- cosNotification-1.2.1
- cosProperty-1.2
- cosTime-1.2.1
- cosTransactions-1.3.1
- crypto-3.6.3
- debugger-4.1.2
- dialyzer-2.9
- diameter-1.11.2
- edoc-0.7.18
- eldap-1.2.1
- erl_docgen-0.4.2
- erl_interface-3.8.2
- et-1.5.1
- eunit-2.2.13
- gs-1.6
- hipe-3.15
- ic-4.4
- jinterface-1.6.1
- kernel-4.2
- megaco-3.18
- observer-2.1.2
- odbc-2.11.1
- orber-3.8.1
- os_mon-2.4
- ose-1.1
- otp_mibs-1.1
- parsetools-2.1.1
- percept-0.8.11
- public_key-1.1.1
- reltool-0.7
- runtime_tools-1.9.3
- sasl-2.7
- snmp-5.2.2
- ssh-4.2.2
- ssl-7.3
- stdlib-2.8
- syntax_tools-1.7
- test_server-3.10
- tools-2.8.3
- typer-0.9.10
- webtool-0.9.1
- wx-1.6.1
- xmerl-1.3.10
Conflicts:
OTP_VERSION
erts/emulator/test/save_calls_SUITE.erl
erts/vsn.mk
|
|
Test cases that write 4Gb to a file at once would fail on
OS X and FreeBSD.
By running a simple test program on OS X (El Capitan 10.11.4/Darwin
15.4.0), I found that writev() can handle more than 4Gb of data, while
write() only can handle less than 2Gb. (Note that efile_drv.c will use
write() if there is only one element in the io vector, and writev() if
there is more than one.)
It is tempting to attempt to piggy-back on the existing mechanism
for segmenting write operations in efile_drv.c, but because of the
complex code I find it too dangerous, both from a correctness and
performance perspective.
Instead do the change in unix_efile.c, which is considerably
simpler.
|
|
* bjorn/erts/clang-opt:
Fix unsafe transformation of apply/3 with fixed arguments
|
|
* egil/erts/fix-flatmap-get/OTP-13459:
erts: Don't search for non-existing Map keys twice
|
|
|
|
* sverker/erts/trap_exit-race/OTP-13452:
erts: Fix race for process_flag(trap_exit,true)
|
|
* rickard/proc-free-fix/OTP-13446:
Fix bad refc management of process struct
# Conflicts:
# erts/emulator/beam/erl_process.c
|
|
* rickard/port-sig-dropped-fix/OTP-13424:
Fix implementation of dropped signal to port
|
|
* rickard/ethr-event-futex-wait-timeout/OTP-13420:
Fix premature timeouts for ethread events on Linux
|
|
* rickard/last_calls/OTP-13418:
Unbreak process_info(Pid,last_calls)
|
|
and a concurrent exit signal.
We now actually guarantee that the process will not die
from exit signal *after* the call to process_flag(trap_exit,true)
has returned.
The race is narrow and probably quite hard to observe even if you
manage to provoke it. Has only been confirmed with the help of
return trace and a sleep in send_exit_signal().
Solution:
Seize status lock to prevent send_exit_signal() from reading
an old status (without TRAP_EXIT) and then writing PENDING_EXIT
after TRAP_EXIT has been set by process_flag_2().
|
|
* For maps:get/2,3 and maps:find/2, searching for an immediate key, e.g. an atom,
the search was performed twice if the key did not exist in the map.
|
|
* rickard/proc-free-fix/OTP-13446:
Fix bad refc management of process struct
Conflicts:
erts/emulator/beam/erl_process.c
|
|
|
|
|
|
62473daf introduced an unsafe optimization in the loader.
See the comments in the test case for an explanation of
the problem.
|
|
|
|
Bug introduced on master in a31eab5469b7740d.
|
|
Suppose we have some erlang system that uses systemd unit with
Type=notify - so this should send startup confirmation itself. But if
systemd-enabled epmd will be started as a first step of that system
startup, empd startup confirmation will be misinterpeted by systemd. And
our erlang service will be considered 'ready' to early. Also this will
interefere with systemd MAINPID detection: systemd will be monitoring
`epmd` process instead of `beam` one.
For example, rabbitmq works around this issue by starting epmd using
separate short-lived beam process, with NOTIFY_SOCKET environment
variable reset - only in this way we could be sure that epmd will not
interfere with rabbit startup sequence.
This patch disables indiscriminate confirmation sending, and does it
only when it was explicitly asked to do so.
|
|
* lukas/erts/etp-bigendian-pid-fix:
erts: Fix etp pid print on big endian
|
|
* lukas/erts/enif_trace_functions/OTP-13442:
erts: Fix bug in enif_send
erts: Fix windows nif port tests
erts: Fix bug in enif_term_to_binary
erts: Remove printout when dec_term fails in DEBUG
erts: Polish erl_nif docs
erts: Improve enif_binary_to_term
erts: Add enif_port_command
erts: Add enif_term_to_binary and enif_binary_to_term
erts: Add enif_is_process/port_alive
erts: Add enif_cpu/now_time and enif_make_unique_integer
|
|
Let cache_env() set env->heap_frag to same as MBUF(p)
as it is in any other case.
|
|
|
|
Wait until after dec_term and factory_close to do cache_env(),
otherwise we will cache the wrong state.
|
|
|
|
|
|
* Accept a raw data buffer instead of ErlNifBinary
* Accept option ERL_NIF_BIN2TERM_SAFE
* Return number of read bytes
|
|
|
|
|
|
|
|
|
|
* rickard/improve-psd/OTP-13428:
Improve process/port specific data management
|
|
* rickard/delayed-gc-fix:
Allow delayed gc while scheduled out
|
|
* rickard/port-sig-dropped-fix/OTP-13424:
Fix implementation of dropped signal to port
|
|
* lukas/erts/inline_tagvaldef/OTP-13440:
erts: inline tag_val_def
|
|
The tag_val_def function was called and multiple switch statements
had to be traversed in term.c, and then a big switch in the calling
code to branch on the term types. By inlining the switches are
merged by the compiler and a lot fewer branches have to be taken.
Benchmarks show that this increases performance of enc_term by as
much as 10%.
|
|
* lukas/erts/fix_pthread_setname_osx/OTP-13439:
erts: Fix pthread_setname_np warning on osx
|
|
* lukas/erts/low_write_freq_darwin/OTP-12345:
erts: Fix LOW_WRITE section for non llvm os x compilation
|
|
|
|
|
|
|
|
|
|
|
|
* bjorn/optimize-start-up/OTP-13368:
Update preloaded modules
init: Load modules in parallel using the new loader BIFs
systools_make: Add commonly used modules to mandatory_modules/0
compile: Pre-load compiler modules when invoked from 'erlc'
|
|
* bjorn/macosx-configure:
configure: Remove obsolete --enable-darwin-* options
|
|
* egil/fix-ttsl_drv-log:
Fix ttsl_drv logging without TERMCAP
|
|
|
|
* lukas/erts/scheduler_SUITE_compile_win/OTP-13428:
Fix dirty scheduler tc on windows
|
|
* lukas/erts/fix-vsyslog-freebsd/OTP-13427:
erts: Fix run_erl syslog prototypes for freebsd
Conflicts:
erts/etc/unix/run_erl.c
|