Age | Commit message (Collapse) | Author |
|
This patch allows checking for NIF API version in a way similar to
driver version. E.g. by calling erlang:system_info(nif_version).
Signed-off-by: Peter Lemenkov <[email protected]>
|
|
Need to include sys/ioctl.h for TIOCSWINSZ to be defined.
Seems this was broken when refactoring run_erl for OSE in OTP 17.0.
|
|
* sverk/etp-check-beam-ranges:
erts: Add gdb command etp-check-beam-ranges
|
|
|
|
Symptom: VM on OSX (darwin11.4.2) with +Meamin running sasl tests,
crashing when init:reboot() does erlang:purge_module(installer).
Problem: Off-by-one bug in beam_ranges:find_range, returning the wrong
range if the 'end' of one module is the 'start' of the next. This is only
possible if using sys_alloc (+Meamin) as our own allocators always put
block headers between allocated payload data.
|
|
* sverk/cpool_fetch-dc_list-bug/OTP-12249:
erts: Fix bug when delayed deallocated carrier is reused by cpool_fetch
|
|
* lukas/erts/win32-read_file_info-links/OTP-12269:
erts: Initialize links when reading file info
|
|
* sv/isfinite/OTP-12268:
Use isfinite() instead of finite() when available
|
|
OS X Mavericks builds result in a number of warnings about finite() being
deprecated, like these:
beam/erl_arith.c:451:7: warning: 'finite' is deprecated: first deprecated in OS X 10.9 [-Wdeprecated-declarations]
ERTS_FP_ERROR(p, f1.fd, goto badarith);
^
sys/unix/erl_unix_sys.h:319:33: note: expanded from macro 'ERTS_FP_ERROR'
^
sys/unix/erl_unix_sys.h:244:51: note: expanded from macro '__ERTS_FP_ERROR'
^
/usr/include/math.h:718:12: note: 'finite' has been explicitly marked deprecated here
extern int finite(double) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_9, __IPHONE_NA, __IPHONE_NA);
Add checks to use isfinite() instead of finite() where available. Verified
on OS X Mavericks 10.9.5 and Ubuntu 12.04.
|
|
OTP-12267
* pguyot/fix-freebsd-cpu-topology:
Fix bug in FreeBSD topology detection code
|
|
OTP-12266
* vinoski/erl-nif-init:
Fix missing field initializer in ERL_NIF_INIT macro
|
|
Running "erl -smp disable" on an emulator built with dirty scheduler
support caused problems such as segmentation violations and emulator status
line outputs containing garbage. For example:
$ erl -smp disable
Segmentation fault (core dumped)
and:
$ erl -smp disable
Erlang/OTP 17 [DEVELOPMENT] [erts-6.2] [source] [64-bit] [ds:10:4297895689:4299948152] [async-threads:280]
This problem also caused the emulator smoke_test_SUITE to hit these same
problems if run in an emulator started with the "-smp disable" option.
Fix this segmentation violation by ensuring that dirty scheduler
information is printed in the status line only when the emulator is
compiled with ERTS_SMP enabled.
With this fix in place, the smoke_test_SUITE now passes when the "-smp
disable" option is used, and the emulator status line prints correctly for
both "-smp enable" and "-smp disable":
$ erl -smp enable
Erlang/OTP 17 [DEVELOPMENT] [erts-6.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:10] [kernel-poll:false]
and:
$ erl -smp disable
Erlang/OTP 17 [DEVELOPMENT] [erts-6.2] [source] [64-bit] [async-threads:10] [kernel-poll:false]
|
|
* sverk/hipe-wrap-bif-disable-gc-fixes/OTP-12231:
erts: Fix bug when hipe tailcalls trapping BIF that disables GC
erts: Fix hipe bug when gc-disabling bif traps with gc enabled
|
|
* rickard/maint-17/eager-check-io/OTP-12117:
No eager check I/O on OSE
Introduce support for eager check I/O scheduling
|
|
* vinoski/crashdump-sigusr1:
Clarify the use of SIGUSR1 for forcing crash dumps
|
|
* vinoski/clarify-drv-async-return:
Clarify docs for driver_async() return value
|
|
Symptom: base64_SUITE:roundtrip crashes with hipe compiled stdlib.
Problem: HIPE_WRAPPER_BIF_DISABLE_GC pushed a "trap frame", but the frame
was only popped if the call was recursive.
Solution: Only reserve "trap frame" if BIF call is recursive.
|
|
The trap_frame got pushed twice, first by the wrapper then by
hipe_push_beam_trap_frame as it was looking at F_DISABLE_GC.
|
|
Set IN_POOL flag _after_ mbc has been actually inserted.
Earlier it did not matter if IN_POOL was set early as it was not possible
to find a carrier before is was fully inserted. Now when searching
pooled_list and traitor_list we must make sure a found carrier has been
fully inserted into cpool before removing it.
|
|
Code incorrectly relied on undefined C behavior. Clang and gcc 4.9 do not behave
as code expected. This affected cores and processors detection on FreeBSD.
|
|
The crash_dump document mentions indirectly that delivering a SIGUSR1 to a
running emulator process can force it to crash dump. Clarify that text to
make it clear SIGUSR1 can be used for that purpose, and also add a similar
note about using SIGUSR1 to the erl documentation.
|
|
The documentation for driver_async() still referred to the return value of
the function as a "handle", which is no longer meaningful since
driver_async_cancel() was deprecated and removed. Modify the documentation
to simply indicate that the driver_async() return value will be -1 if it
fails.
|
|
|
|
* sverk/port_get_data-race/OTP-12208:
erts: Mend port_set_data with non-immed data for halfword VM
erts: Add test case for port_set_data and port_get_data
erts: Fix race between port_set_data, port_get_data and port termination
erts: Fix erlang:port_set_data/2 for non immediate data
|
|
Clear both IN_POOL and BUSY flags when empty carrier is removed
is removed from pool to be destroyed.
Earlier it was enough to leave BUSY flag set but now with pooled_list
we must clear IN_POOL to avoid using it as cpool_entrance in cpool_fetch().
|
|
OTP-12222
* jjhoo/win32-fix-unreachable-code:
Fix if-clauses that make code to be unreachable
|
|
|
|
The delayed dealloc queue destroyes one word but cpool_fetch() is expected
to return healthy carriers.
So we restore that overwritten word with a little bit of hackish code.
|
|
|
|
In the ERL_NIF_INIT macro, add a missing static initializer for the new
options field which was added to the ErlNifEntry struct for 17.3. This fix
prevents compile-time errors in NIFs when the compiler is instructed to
treat missing field initializers as errors.
|
|
* sverk/etp-address-to-beam-opcode:
erts: Add gdb command etp-address-to-beam-opcode
|
|
* sverk/with-ssl-incl:
Correct SSL_RUNTIME_LIBDIR when erl_xcomp_sysroot ends with a /
Add configure option --with-ssl-incl=PATH
OTP-12215
OTP-12216
|
|
|
|
Always update prt->data with atomic xchg-op.
Check for NULL data to detect racing port terminator.
Use NULL, as THE_NON_VALUE can be a valid pointer on debug VM.
|
|
hsize field was not set leading to VM crash
|
|
Fix two cases where use of assigment operator instead of comparison
operator causes if-clauses to be always false and code to be unreachable.
|
|
|
|
rickard/maint-17/eager-check-io/OTP-12117
* rickard/eager-check-io/OTP-12117:
Introduce support for eager check I/O scheduling
Conflicts:
erts/emulator/beam/erl_bif_info.c
erts/emulator/beam/erl_init.c
erts/emulator/beam/erl_process.c
erts/preloaded/ebin/erlang.beam
|
|
|
|
* egil/fix-erts-app/OTP-12189:
erts: Fix erts app-file
|
|
|
|
* nox/fix-debug-hipe-lock-checking/OTP-12188:
Fix HiPE debug lock checking on OS X 64bit
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* sverk/dirty-sched-api-cleanup:
erts: Remove enif_have_dirty_schedulers()
erts: Correct dirty scheduler NIF API for Windows
|
|
and add 'dirty_scheduler_support' to ErlNifSysInfo
|