Age | Commit message (Collapse) | Author |
|
both together.
Broken in OTP-20.0-rc1 by 7d161f5b475575bd79bd90977b3a79334a8ec658.
|
|
This happens for instance when a receive_trace is run in the
sys_msg_dispatcher thread when the trace_delivered trace message
is traced.
|
|
p->fvalue will be set by BIFs that generate exceptions
(such as throw/1), and it will not be cleared before another
exception is generated. Potentially, p->fvalue may contain a
huge term (e.g. after throw(HugeTerm)) which will be kept in
the heap.
We can shorten the lifetime of f->value by clearing it in
the instructions that handle catches: catch_end and try_end.
That is safe because BEAM code will never access p->fvalue.
If BEAM code needs to rethrow an exception it will use a
reference to the value passed in an X register.
The reason that p->fvalue must not be cleared already in
handle_error() is that native code trap handlers will use
it. (See the comment before handle_error() and the comment
at the end of handle_error() in beam_emu.c for some more
information about exception handling.)
|
|
Local trace on first function in module
made code:is_module_native/1 return true.
Use new erts_is_function_native() to make a proper check.
|
|
|
|
|
|
|
|
Support hashing terms from NIF code
|
|
No need for the xor-trick, to be order independent, as both
flatmaps and hashmaps have a constant key-value order internally.
|
|
OTP-14380
* rickard/ds-stack-size:
Suggested stack size options for dirty schedulers
|
|
OTP-14356
* rickard/debug-timer-fix:
Fix assert in dbg_verify_empty_later_slots()
|
|
|
|
* sverker/refactor:
erts: Introduce struct binary_internals
erts: Introduce erts_bin_release
erts: Init refc=1 in erts_bin_drv_alloc*
erts: Init refc=1 in erts_bin_nrml_alloc
erts: Remove deliberate leak of hipe fun entries
erts: Remove hipe_bifs:remove_refs_from/1
Refactor hipe specific code to use ErtsCodeInfo
erts: Refactor ErtsCodeInfo.native
|
|
* lukas/erts/list_to_port/OTP-14348:
erts: Add erlang:list_to_port/1 debug bif
erts: Auto-import port_to_list for consistency
erts: Polish off erlang:list_to_ref/1
|
|
|
|
|
|
|
|
* dgud/stdlib/unicode-string/OTP-10289:
Handle chardata in string:to_float and string:to_list
New unicode aware string module that works with unicode:chardata()
Add nf(k)d, nf(k)c conversion functions to unicode module
Reorder code and whitespace fixes
Add unicode_util
|
|
|
|
* lukas/erts/fix_non-smp_scheduler_data_init/OTP-14152:
erts: Initialize esdp->type in non-smp to normal
|
|
Allow for expanding support to 64-bit hashes without breaking the
interface.
|
|
|
|
OTP-14356
* rickard/timer-improvements:
Fix of later timer wheel
Minimum timeout position in each timer wheel
Manage timers to trigger at once in a slot similar to other timers
Introduce timer slot range counters
Timer wheel divided into a "soon wheel" and a "later wheel"
Remove unnecessary cancel callback from timer-wheel timers
Rearrange timer struct fields in order to simplify
Use timer wheel for short BIF timers
Use magic refs for BIF timers
Remove accessor BIF timer implementation
Fix aux-work timer implementation
|
|
A more generic hashing function which can also hash terms based on
`make_internal_hash'.
|
|
|
|
The previous code worked through luck because the memory
returned from erts_alloc was zero:ed and SCHED_NORMAL
is 0. But if you run with +Meamin that is not always the
case which is how this error was detected.
|
|
* lukas/erts/20_minor_fixes:
erts: Rebuild etc executables if config.h changes
erts: Fix new gcc warning in check io
kernel: Add mem check to prim_file:large_write tc
erts: Fix two compiler warnings on OS X
erts: Fix erts_debug:df function info output
erts: Get rid of some unused function warnings on os x
|
|
These allow one to hash VM terms from NIF code.
|
|
Add re:version/0
OTP-14347
|
|
|
|
Minimum known timeout position is saved in bot far and near
wheel. This information is used to avoid scanning from current
position in the cases were we know the minimum timeout position.
|
|
|
|
Timer counters for ranges of slots in order to be able
to avoid inspecting large ranges of slots without timers.
|
|
The old single wheel implementation handled about 65 seconds. The
new dual wheel implementation handles more than 37 hours. The dual
wheels have also been shrunk compared to the single wheel, so the
total memory consumption for timer wheels have been cut in half.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
to replace macro ERTS_INTERNAL_BINARY_FIELDS
as header in Binary and friends.
|
|
* sverker/remove-latin1-atom-encoding:
kernel: Fix erl_distribution_wb_SUITE:whitebox
kernel: Remove pg2_SUITE:compat
erts: Remove fun_r13_SUITE
stdlib: Remove test cases for R12 io protocol
kernel: Make DFLAG_UTF8_ATOMS mandatory
kernel: Rewrite distribution flag verification
tools: Update assumptions in lcnt about external atom format
stdlib: Tweak beam_lib_SUITE whitebox assumptions
orber: Remove hard dependency to external atom format
kernel: Try mend disk_log whitebox tests
erts: Mark latin1 atom encoding as deprecated
jinterface: Do not generate atoms on old latin1 external format
erl_interface: Do not generate atoms on old latin1 ext format
erts: Do not generate atoms on old latin1 external format
erts: Fix faulty ASSERT for failed dec_term
|
|
* rickard/ds-fixes:
Fix dirty GC implementation
Fix multi-scheduling with only one normal scheduler
Fix +SDPcpu
|
|
|
|
* rickard/pd-hash:
Fix type of MAKE_HASH
|
|
* rickard/sched_type_tests:
Fix dirty scheduler type tests
|
|
|
|
|
|
|
|
|