Age | Commit message (Collapse) | Author |
|
Multiplying a signed char by 256 is undefined behavior and caused
problems on some platforms when the length was long enough. We
could cast it to an unsigned int to make it work, but it's best not
to reinvent the wheel.
Fixes OTP-15034
|
|
|
|
* rickard/+zebwt/OTP-12830:
ETS busy wait option
|
|
Conflicts:
erts/emulator/beam/erl_init.c
erts/etc/common/erlexec.c
|
|
* sverk/map-merge-trap:
erts: Optimize maps:merge
erts: Yield in maps:merge
erts: Refactor arg swapping for maps:merge
erts: Add save/restore for PSTACK
erts: Fix magic binary alignment on 32-bit
erts: Add maps to send_term_SUITE
erts: Fix calculation of reclaimed data during full gc
erts: Fix warning about const pointer to make_boxed and make_list
erts: Fix typo in etp-carrier-blocks
|
|
* rickard/delayed-delete-node/OTP-12802:
Delayed node table GC
|
|
|
|
* richcarl/warnings-by-default/OTP-12781:
stdlib: Use warning channel in test qlc_SUITE:otp_6964/1
stdlib: Fix testcase for qlc_SUITE
kernel: Fix code_SUITE with respect to new logger default
Map error logger warnings to warning messages by default
|
|
Also fix and document the broken +We option.
|
|
|
|
Given some pointer *x, calling sizeof(x) will give us
the size of the pointer (4/8 bytes) not the size fo the
underlying dereferenced structure. Use coccinelle to
search for these occurrences in the source code, and
correct them one by one. In the case of
erl_node_tables.c, the erts_snprintf() calls used a
much too small buffer.
- run_erl.c: Use the size of the signal type, not
its pointer.
- erl_node_tables.c: Use the size of the _BUFFER in
erts_snprintf() to make sure we can use the full space.
|
|
Conflicts:
OTP_VERSION
erts/vsn.mk
lib/test_server/src/erl2html2.erl
|
|
OTP-12704
|
|
|
|
* egil/core-on-heart-tmo/OTP-12613:
kernel: Document heart environment HEART_KILL_SIGNAL
erts: Enable different abort signal from heart
|
|
By using environment variable HEART_KILL_SIGNAL, heart can now use
a different signal to kill the old running Erlang.
By default the signal is SIGKILL but SIGABRT may also be used by
setting environment variable: HEART_KILL_SIGNAL=SIGABRT
|
|
|
|
for a correct (non)value regardless of build type.
|
|
Use '+hpds size' to set initial process dictionary size for spawned processes.
|
|
* 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
|
|
The old time API is based on erlang:now/0. The major issue with
erlang:now/0 is that it was intended to be used for so many
unrelated things. This tied these unrelated operations together
and unnecessarily caused performance, scalability as well as
accuracy, and precision issues for operations that do not need
to have such issues. The new API spreads different functionality
over multiple functions in order to improve on this.
The new API consists of a number of new BIFs:
- erlang:convert_time_unit/3
- erlang:monotonic_time/0
- erlang:monotonic_time/1
- erlang:system_time/0
- erlang:system_time/1
- erlang:time_offset/0
- erlang:time_offset/1
- erlang:timestamp/0
- erlang:unique_integer/0
- erlang:unique_integer/1
- os:system_time/0
- os:system_time/1
and a number of extensions of existing BIFs:
- erlang:monitor(time_offset, clock_service)
- erlang:system_flag(time_offset, finalize)
- erlang:system_info(os_monotonic_time_source)
- erlang:system_info(time_offset)
- erlang:system_info(time_warp_mode)
- erlang:system_info(time_correction)
- erlang:system_info(start_time)
See the "Time and Time Correction in Erlang" chapter of the
ERTS User's Guide for more information.
|
|
* egil/process_dictionary-initial-size/OTP-12535:
erts: Document option 'hpds'
erts: Enable command line argument for initial pd size
|
|
Use '+hpds size' to set initial process dictionary size for spawned processes.
|
|
|
|
|
|
Conflicts:
erts/vsn.mk
|
|
Conflicts:
OTP_VERSION
|
|
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
|
|
|
|
* egil/fix-instruction-counter:
erts: Fix SMP for ERTS_OPCODE_COUNTER_SUPPORT
erts: Add icount build type for opcode counter
|
|
* rickard/master/eager-check-io/OTP-12117:
No eager check I/O on OSE
Introduce support for eager check I/O scheduling
|
|
* rickard/maint-17/eager-check-io/OTP-12117:
No eager check I/O on OSE
Introduce support for eager check I/O scheduling
|
|
|
|
OTP-12222
* jjhoo/win32-fix-unreachable-code:
Fix if-clauses that make code to be unreachable
|
|
|
|
* sverk/etp-address-to-beam-opcode:
erts: Add gdb command etp-address-to-beam-opcode
|
|
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/master/eager-check-io/OTP-12117
* rickard/maint-17/eager-check-io/OTP-12117:
No eager check I/O on OSE
Introduce support for eager check I/O scheduling
Conflicts:
erts/preloaded/ebin/erlang.beam
|
|
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
|
|
|
|
* sverk/bin-alloc-refactor:
erts: Fix gdb command etp-carrier-blocks for 32-bit
erts: Refactor binary allocation interface to also initialize Binary
|
|
|
|
Enables ERTS_OPCODE_COUNTER_SUPPORT.
|
|
|
|
|
|
|
|
|
|
|