Age | Commit message (Collapse) | Author |
|
|
|
|
|
fmt_double() may write up to 8 characters into its format_str[]
buffer, which however only has room for 7 characters.
This case could be triggered by a call to erts_printf_format() with
any floating-point format that also includes #, and + or a space,
which may be uncommon, but a nif or driver could issue it.
|
|
|
|
Sign character was not accounted for.
Ex:
float_to_list(-3.1265538967899625e+69, [{decimals,16}]).
|
|
* maint:
Bump version of crash dumps to 0.4
Verify that binaries of different sizes are dumped correctly
Don't dump literal areas that are not referenced at all
Dump literals separately to avoid incomplete heap data
Implement dumping of maps in crash dumps
Buffer writing of crash dumps
Conflicts:
erts/emulator/beam/erl_alloc.types
|
|
Writing of crash dumps were done using unbuffered IO. This
is slow since many small writes are done.
Use a FILE* with an allocated buffer to obtain buffered IO.
I wrote a small test program that created 50000 binaries of 200 bytes
each and then created a crash dump. The crash dumping was an order of
magnitude faster with buffered IO than without.
|
|
|
|
This refactor was done using the unifdef tool like this:
for file in $(find erts/ -name *.[ch]); do unifdef -t -f defile -o $file $file; done
where defile contained:
#define ERTS_SMP 1
#define USE_THREADS 1
#define DDLL_SMP 1
#define ERTS_HAVE_SMP_EMU 1
#define SMP 1
#define ERL_BITS_REENTRANT 1
#define ERTS_USE_ASYNC_READY_Q 1
#define FDBLOCK 1
#undef ERTS_POLL_NEED_ASYNC_INTERRUPT_SUPPORT
#define ERTS_POLL_ASYNC_INTERRUPT_SUPPORT 0
#define ERTS_POLL_USE_WAKEUP_PIPE 1
#define ERTS_POLL_USE_UPDATE_REQUESTS_QUEUE 1
#undef ERTS_HAVE_PLAIN_EMU
#undef ERTS_SIGNAL_STATE
|
|
|
|
This behaviour has been seen when using docker together with --cpuset-cpus.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The OSE port is no longer supported and this commit removed it
and any changes related to it. The things that were general
improvements have been left in the code.
|
|
|
|
|
|
|
|
A pool size of 4000 is too excessive for the common case.
Change ERTS_TS_EV_ALLOC_DEFAULT_POOL_SIZE to 2048
Change ERTS_TS_EV_ALLOC_POOL_SIZE to 32
|
|
* rickard/time_api/OTP-11997: (22 commits)
Update primary bootstrap
inets: Suppress deprecated warning on erlang:now/0
inets: Cleanup of multiple copies of functions Add inets_lib with common functions used by multiple modules
inets: Update comments
Suppress deprecated warning on erlang:now/0
Use new time API and be back-compatible in inets Remove unused functions and removed redundant test
asn1 test SUITE: Eliminate use of now/0
Disable deprecated warning on erlang:now/0 in diameter_lib
Use new time API and be back-compatible in ssh
Replace all calls to now/0 in CT with new time API functions
test_server: Replace usage of erlang:now() with usage of new API
Replace usage of erlang:now() with usage of new API
Replace usage of erlang:now() with usage of new API
Replace usage of erlang:now() with usage of new API
Replace usage of erlang:now() with usage of new API
otp_SUITE: Warn for calls to erlang:now/0
Replace usage of erlang:now() with usage of new API
Multiple timer wheels
Erlang based BIF timer implementation for scalability
Implement ethread events with timeout
...
Conflicts:
bootstrap/bin/start.boot
bootstrap/bin/start_clean.boot
bootstrap/lib/compiler/ebin/beam_asm.beam
bootstrap/lib/compiler/ebin/compile.beam
bootstrap/lib/kernel/ebin/auth.beam
bootstrap/lib/kernel/ebin/dist_util.beam
bootstrap/lib/kernel/ebin/global.beam
bootstrap/lib/kernel/ebin/hipe_unified_loader.beam
bootstrap/lib/kernel/ebin/inet_db.beam
bootstrap/lib/kernel/ebin/inet_dns.beam
bootstrap/lib/kernel/ebin/inet_res.beam
bootstrap/lib/kernel/ebin/os.beam
bootstrap/lib/kernel/ebin/pg2.beam
bootstrap/lib/stdlib/ebin/dets.beam
bootstrap/lib/stdlib/ebin/dets_utils.beam
bootstrap/lib/stdlib/ebin/erl_tar.beam
bootstrap/lib/stdlib/ebin/escript.beam
bootstrap/lib/stdlib/ebin/file_sorter.beam
bootstrap/lib/stdlib/ebin/otp_internal.beam
bootstrap/lib/stdlib/ebin/qlc.beam
bootstrap/lib/stdlib/ebin/random.beam
bootstrap/lib/stdlib/ebin/supervisor.beam
bootstrap/lib/stdlib/ebin/timer.beam
erts/aclocal.m4
erts/emulator/beam/bif.c
erts/emulator/beam/erl_bif_info.c
erts/emulator/beam/erl_db_hash.c
erts/emulator/beam/erl_init.c
erts/emulator/beam/erl_process.h
erts/emulator/beam/erl_thr_progress.c
erts/emulator/beam/utils.c
erts/emulator/sys/unix/sys.c
erts/preloaded/ebin/erlang.beam
erts/preloaded/ebin/erts_internal.beam
erts/preloaded/ebin/init.beam
erts/preloaded/src/erts_internal.erl
lib/common_test/test/ct_hooks_SUITE_data/cth/tests/empty_cth.erl
lib/diameter/src/base/diameter_lib.erl
lib/kernel/src/os.erl
lib/ssh/test/ssh_basic_SUITE.erl
system/doc/efficiency_guide/advanced.xml
|
|
|
|
* lukas/erts/non-blocking-shell:
erts: Fix big-endian issue with printf_putc
|
|
On little-endian machines, doing &int will give the smallest
byte which is what we want to give to write. But on big-endian
it will give the highest byte, which will always be \000 here
which results in write never doing any writes.
So we have to cast c to an unsigned char before passing it to
write.
|
|
* lukas/erts/non-blocking-shell:
erts: Make sure IOV_MAX is enforced for writev
erts: Make erts_printf work with non-blocking
|
|
Now that stdout can be set as non-blocking by the ttsl driver
we can no longer use putc and friends for the stdout/stderr
streams. Therefore we fallback on write.
OTP-12239
|
|
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 commit adb5dc0090bc419e2c4c1250653badbddeb6263b (ETHR_FORCE_INLINE)
broke some platforms without adequate thread support.
|
|
* sverk/ethr_aux-cache-align-bug:
erts: Fix cache line alignment bug for ts_event_pool
|
|
|
|
Some win32 specific code does not compile with gcc (mingw-w64) since
'__forceinline' is not supported by gcc. This can be avoided by
defining a new macro ETHR_FORCE_INLINE similar to ETHR_INLINE.
|
|
|
|
|
|
This port has support for both non-smp and smp.
It contains a new way to do io checking in which erts_poll_wait
receives the payload of the polled entity. This has implications
for all linked-in drivers.
|
|
|
|
* sverk/win-64-pointer-fix:
erts: Correct term type for printf %T
erts: Correct internal printf integer type for win64
erts: Correct some printf type formatting
erts: Fix type bug in get_proc_affinity for windows
OTP-10887
Forgot this ticket for sverk/erlang_pid-revert:
OTP-10885
|
|
|
|
|
|
|
|
|
|
This reverts commit 624751813b30a367c8255e86f26f7342aeb33cbc.
Overzealous removal of vxworks includes
|
|
The following are deliberately left, as I have only a list of compiler
warnings and no system to test on:
hipe/hipe_x86_signal.c:264:5: warning: no previous prototype for function '_sigaction' [-Wmissing-prototypes]
int __SIGACTION(int signum, const struct sigaction *act, struct sigaction *oldact)
^
hipe/hipe_x86_signal.c:222:21: note: expanded from macro '__SIGACTION'
^
1 warning generated.
sys/unix/sys_float.c:835:16: warning: declaration of 'struct exception' will not be visible outside of this function [-Wvisibility]
matherr(struct exception *exc)
^
sys/unix/sys_float.c:835:1: warning: no previous prototype for function 'matherr' [-Wmissing-prototypes]
matherr(struct exception *exc)
^
2 warnings generated.
drivers/unix/unix_efile.c:1504:11: warning: implicit declaration of function 'sendfile' [-Wimplicit-function-declaration]
retval = sendfile(in_fd, out_fd, *offset, SENDFILE_CHUNK_SIZE,
^
1 warning generated.
|
|
On architectures where cpu topology was unavailable,
warnings erupted due to unused static functions.
Those warnings are now silenced.
|
|
|
|
|
|
Valgrind complains "Conditional jump or move depends on uninitialised value"
when strlen steps past given string maxlen (precision).
|
|
|
|
|