Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
RFC3339 mentions in paragraph 5.1 that if certain conditions are
fulfilled, then sorting date and time strings results in a
time-ordered sequence. One of the conditions is that the strings must
have the same number of fractional second digits. This commits makes
sure this is indeed the case.
|
|
* lukas/ssl/dist_benchmarks:
stdlib: Adjust binary bench to be faster
ssl: Add scheduler utilization benchmark of plain/tls dist
ssl: Link to tstsrvr to group_leader in test
ssl: Add some benchmarks to test
|
|
When benchmarking releases before OTP-22 the
binary:match function is very slow so it takes
a long time to run the benchmarks. This commit
makes the benchmark run for a shorter time which
will make the results a bit less stable, but it
will cut 1 hour from the benchmark regression so
we will have to live with that.
|
|
|
|
|
|
* maint:
Fix inadvertently suppressed warning for unused variable
|
|
An external fun could inadvertently suppress warnings for
unused variables, such as in this example:
bug() ->
BugVar = foo(),
if true ->
fun m:f/1
end.
There would be no warning that `BugVar` was unused.
The bug was introduced in ff432e262e652, which was the commit
that extended external funs to allow variables.
https://bugs.erlang.org/browse/ERL-762
|
|
|
|
Did fail on really slow unlucky machines.
|
|
gc_zwj sent binaries recursivly to gc_extend/3 which didn't handle
can't handle them.
ERL-777
|
|
Before this patch the following call resulted in the below error
```
1> dbg:fun2ms(fun(_) -> m:f() end).
Error: Unknown error code {122,m,f}
```
Now it is properly formatted as
```
1> dbg:fun2ms(fun(_) -> m:f() end).
Error: fun containing the remote function call 'm:f/0' (called in body) cannot be translated into match_spec
```
|
|
Also fix erts_debug:get_internal_status(node_and_dist_references)
for catree to also search route node keys for offheap stuff.
|
|
|
|
|
|
|
|
|
|
|
|
Abstract out Latest-N-Log functions to this to nlog_*.
Fix sys:log(Name, get) to strip the internal formatting funs.
|
|
* john/erts/plusplus-trapping/OTP-15427:
Don't use too many reductions in lists:reverse/2
Make '++'/2 trapping
|
|
* maint:
Updated OTP version
Prepare release
Optimize operator '--' and yield on large inputs
|
|
* maint-18:
Updated OTP version
Prepare release
Optimize operator '--' and yield on large inputs
Conflicts:
OTP_VERSION
erts/doc/src/notes.xml
erts/emulator/beam/erl_alloc.types
erts/emulator/beam/erl_bif_lists.c
erts/vsn.mk
lib/stdlib/doc/src/notes.xml
lib/stdlib/vsn.mk
make/otp_version_tickets
otp_versions.table
|
|
|
|
* john/erts/OTP-18.3.4/minusminus_trapping/OTP-15371:
Optimize operator '--' and yield on large inputs
|
|
* maint:
Updated OTP version
Prepare release
Optimize operator '--' and yield on large inputs
|
|
* maint-20:
Updated OTP version
Prepare release
Optimize operator '--' and yield on large inputs
Conflicts:
OTP_VERSION
erts/doc/src/notes.xml
erts/emulator/beam/erl_alloc.types
erts/emulator/beam/erl_bif_lists.c
erts/vsn.mk
lib/ssl/doc/src/notes.xml
lib/ssl/vsn.mk
lib/stdlib/doc/src/notes.xml
lib/stdlib/vsn.mk
make/otp_version_tickets
otp_versions.table
|
|
|
|
* sverker/erts/ordered_set-select-improvements/OTP-15325:
erts: Tidy some ordered_set iteration code
erts: Fix bug for catree iteration
|
|
|
|
* john/erts/OTP-20.3.8/minusminus_trapping/OTP-15371:
Optimize operator '--' and yield on large inputs
|
|
The removal set now uses a red-black tree instead of an array on
large inputs, decreasing runtime complexity from `n*n` to
`n*log(n)`. It will also exit early when there are no more items
left in the removal set, drastically improving performance and
memory use when the items to be removed are present near the head
of the list.
This got a lot more complicated than before as the overhead of
always using a red-black tree was unacceptable when either of the
inputs were small, but this compromise has okay-to-decent
performance regardless of input size.
Co-authored-by: Dmytro Lytovchenko <[email protected]>
|
|
The removal set now uses a red-black tree instead of an array on
large inputs, decreasing runtime complexity from `n*n` to
`n*log(n)`. It will also exit early when there are no more items
left in the removal set, drastically improving performance and
memory use when the items to be removed are present near the head
of the list.
This got a lot more complicated than before as the overhead of
always using a red-black tree was unacceptable when either of the
inputs were small, but this compromise has okay-to-decent
performance regardless of input size.
Co-authored-by: Dmytro Lytovchenko <[email protected]>
|
|
* maint:
Optimize operator '--' and yield on large inputs
Inline erts_cmp
Clarify a magical allocation size
Fix trapping in lists:reverse/2
|
|
* john/erts/minusminus_trapping/OTP-15371:
Optimize operator '--' and yield on large inputs
Inline erts_cmp
Clarify a magical allocation size
Fix trapping in lists:reverse/2
|
|
with keys containing off-heap terms.
The passed key may actually be the one already saved
(if nodes have been joined), in which case we do nothing.
Calling destroy_route_key() may destroy off-heap data.
|
|
|
|
Even more scalable ETS ordered_set with write_concurrency
|
|
to provoke iteration over a moving ordered_set with write_concurrency
and make sure we hit all "stable" keys.
|
|
to generate a routing tree with keys that fit each test case.
|
|
* maint:
fix extra parameter in <type>
Update profiling.xml
Fix docs on gen_event optional callback
|
|
The removal set now uses a red-black tree instead of an array on
large inputs, decreasing runtime complexity from `n*n` to
`n*log(n)`. It will also exit early when there are no more items
left in the removal set, drastically improving performance and
memory use when the items to be removed are present near the head
of the list.
This got a lot more complicated than before as the overhead of
always using a red-black tree was unacceptable when either of the
inputs were small, but this compromise has okay-to-decent
performance regardless of input size.
Co-authored-by: Dmytro Lytovchenko <[email protected]>
|
|
The original implementation did not do this due to fear of bad
performance. But we think the negative effect of "leaking" empty
base nodes is more important to fix.
To get the bad performance a special kind of access patterns is
needed where base nodes are frequently emptied and then repopulated
soon again. ets_SUITE:throughput_benchmark for example did not show
any negative effect from this commit at all.
|
|
It returns `ok`, instead of `noreply`.
|
|
* maint:
beam_lib: Remove obsolete module() from the beam() type
hipe: Don't use beam_lib:info/1 with an atom as filename
Honor the max heap size when copying literals after purging
|
|
beam_lib: Clarify the beam() type in code and documentation
OTP-15378
|
|
|