Age | Commit message (Collapse) | Author |
|
* maint:
Fix passing large integers as base to integer_to_X/2
|
|
I noticed this seconds after merging... :(
|
|
* maint:
Implement integer_to_list/2 and integer_to_binary/2 as CIFs
Accept base in all integer-printing functions
Document cleanup semantics for atomics and counters
|
|
This makes them roughly as fast as integer_to_list/1 and
integer_to_binary/1.
|
|
|
|
* sverker/erts/doc-sorted-modules:
erts: Sort module list in alphabetic order
|
|
Document cleanup semantics for atomics and counters
|
|
* maint:
Remove an unused variable
Spawn prim_file helper as a system process
|
|
* john/erts/prim_file-init-restart/OTP-15495/ERL-821:
Remove an unused variable
Spawn prim_file helper as a system process
|
|
|
|
|
|
Custom message format for enif_select
|
|
|
|
* lukas/erts/persistent_term_test_fix:
erts: Fix persistent_term testcases
|
|
|
|
|
|
Use microops for BIFs
|
|
|
|
* maint:
Updated OTP version
Prepare release
|
|
* maint-20:
Updated OTP version
Prepare release
|
|
|
|
* sverker/big-band-bug/ERL-804/OTP-15487:
erts: Fix bug in 'band' of two negative numbers, one big
|
|
|
|
|
|
* lukas/erts/inet_pktopts_old_linux/OTP-15494:
erts: Fix inet pktopts on very old linux kernels
|
|
* maint:
Updated OTP version
Prepare release
|
|
* maint-21:
Updated OTP version
Prepare release
|
|
|
|
|
|
* sverker/big-band-bug/ERL-804/OTP-15487:
erts: Fix bug in 'band' of two negative numbers, one big
|
|
maint-21
* sverker/fix-atomics-get-large-unsigned/PR-2061/OTP-15486:
erts: Fix possible heap corruption getting atomics
|
|
Conflicts:
erts/preloaded/ebin/atomics.beam
erts/preloaded/ebin/counters.beam
erts/preloaded/ebin/erl_prim_loader.beam
erts/preloaded/ebin/erl_tracer.beam
erts/preloaded/ebin/erlang.beam
erts/preloaded/ebin/erts_code_purger.beam
erts/preloaded/ebin/erts_dirty_process_signal_handler.beam
erts/preloaded/ebin/erts_internal.beam
erts/preloaded/ebin/erts_literal_area_collector.beam
erts/preloaded/ebin/init.beam
erts/preloaded/ebin/otp_ring0.beam
erts/preloaded/ebin/persistent_term.beam
erts/preloaded/ebin/prim_buffer.beam
erts/preloaded/ebin/prim_eval.beam
erts/preloaded/ebin/prim_file.beam
erts/preloaded/ebin/prim_inet.beam
erts/preloaded/ebin/prim_zip.beam
erts/preloaded/ebin/zlib.beam
|
|
|
|
* lukas/erts/fix-seq_trace-reset_trace/OTP-15490:
erts: Fix seq_trace:reset_trace dirty gc bug
erts: Use sys_memcpy in copy_one_frag
|
|
* maint:
Updated OTP version
Prepare release
|
|
=== OTP-20.2.0.1 ===
Changed Applications:
- erts-9.2.0.1
Unchanged Applications:
- asn1-5.0.4
- common_test-1.15.3
- compiler-7.1.4
- cosEvent-2.2.2
- cosEventDomain-1.2.2
- cosFileTransfer-1.2.2
- cosNotification-1.2.3
- cosProperty-1.2.3
- cosTime-1.2.3
- cosTransactions-1.3.3
- crypto-4.2
- debugger-4.2.4
- dialyzer-3.2.3
- diameter-2.1.3
- edoc-0.9.2
- eldap-1.2.3
- erl_docgen-0.7.2
- erl_interface-3.10.1
- et-1.6.1
- eunit-2.3.5
- hipe-3.17
- ic-4.4.3
- inets-6.4.5
- jinterface-1.8.1
- kernel-5.4.1
- megaco-3.18.3
- mnesia-4.15.2
- observer-2.6
- odbc-2.12.1
- orber-3.8.4
- os_mon-2.4.4
- otp_mibs-1.1.2
- parsetools-2.1.6
- public_key-1.5.2
- reltool-0.7.5
- runtime_tools-1.12.3
- sasl-3.1.1
- snmp-5.2.9
- ssh-4.6.3
- ssl-8.2.3
- stdlib-3.4.3
- syntax_tools-2.1.4
- tools-2.11.1
- wx-1.8.3
- xmerl-1.3.16
* tag 'OTP-20.2.0.1':
Updated OTP version
Prepare release
|
|
|
|
|
|
* sverker/big-band-bug/ERL-804/OTP-15487:
erts: Fix bug in 'band' of two negative numbers, one big
|
|
maint
* sverker/fix-atomics-get-large-unsigned/PR-2061/OTP-15486:
erts: Fix possible heap corruption getting atomics
|
|
* sverker/erts/prim_file-perm-own-bigendian/OTP-15485:
erts: Fix warning and potential big-endian-bug in prim_file
|
|
Make length/1 yielding
|
|
The guard BIF `length/1` would calculate the length of the list in one
go without yielding, even if the list was were long. To make it even
worse, the call to `length/1` would only cost a single reduction.
This commit reimplements `length/1` so that it eats a number of
reductions proportional to the length of the list, and yields if the
available reductions run out.
|
|
|
|
Similar bug as for bxor fixed by abc4fd372d476821448dfb9
Ex:
1> io:format("~.16B\n", [-16#1110000000000000000 band (-1)]).
-1120000000000000000
Wrong result for
(-X bsl WS) band -Y.
where
X is any positive integer
WS is erlang:system_info(wordsize)*8*N where N is 1 or larger
Y is any positive integer smaller than (1 bsl WS)
Fix:
The subtraction of 1 (for 2-complement conversion)
must be carried along all the way to the last words.
|
|
This allows bif1/2/3 to share the main part of the code.
The price is that we always need to copy all three temporary registers
when error handling in bodies, but that should be infrequent.
Additionally it makes it a bit harder to read the disasembly since now
the arguments to BIFs are in the reverse order.
|
|
Add missing annotations in instrs.tab
|
|
|
|
* lukas/erts/fix_lit_msg_copy_in_gc:
erts: Use ptr_val for pointer in gc msg copy
|
|
Due to comparison as a signed integer, when getting an unsigned atomic
in the range 2^63-1..2^64-1 (when the most significant bit was set), the
heap could get corrupted when the integer was retrieved: hsz would get
set to zero, but the code proceeded to build a bignum.
Steps to reproduce (at least on x86_64):
$ erl
1> A = atomics:new(1,[{signed,false}]).
2> atomics:put(A,1,18446744073709551615).
3> atomics:get(A,1).
At the last step, the shell would print some garbage and hang.
|