Age | Commit message (Collapse) | Author |
|
Reword docs related to the runtime system mode
|
|
* emj/stdlib/tar-repro/PR-1608/OTP-14834:
Add options for creating reproducible tars
Return error when unable to make dir
|
|
|
|
The existing wording may be interpreted as saying that embedded mode
eager loads all modules. This revision makes clear embedded mode only
disables module auto loading.
Since I was on it, I have reordered a couple of places to describe
interactive first, and then embedded. It feels natural to cover first
the default and positive mode (auto loads), and then its negation.
|
|
Eliminate get_list/3 internally in the compiler
|
|
Fix incorrect handling of floating point instructions
|
|
* maint:
Fix incorrect type interference of integer ranges
Conflicts:
lib/compiler/src/beam_type.erl
|
|
* bjorn/compiler/fix-beam_type-bug/OTP-14898:
Fix incorrect type interference of integer ranges
|
|
|
|
1a029efd1ad47f started to run the beam_block pass a second time.
Since it is run after introduction of the optimized floating point
instructions, it must handle those instructions correctly.
In particular, it must be careful when hoisting allocation
instructions. For example, the following code:
{test_heap,{alloc,[{words,0},{floats,1}]},5}.
.
.
.
{fmove,{fr,2},{x,0}}.
{allocate_zero,1,4}.
must not be rewritten to:
{test_heap,{alloc,[{words,0},{floats,1}]},5}.
.
.
.
{allocate_zero,1,4}.
{fmove,{fr,2},{x,0}}.
because beam_validator will not consider it safe. (The code may
actually be safe depending on what the code between the two allocation
instructions do.)
https://bugs.erlang.org/browse/ERL-555
|
|
runtime_tools: Add scheduler module
|
|
|
|
Currently HiPE amd64 assumes the runtime system code is loaded into
the low 2G of the address space. However, this is not the case when
PIE is enabled, it is loaded into a random location. So trampolines
are required to call BIFs, and also we have first to load the address
of sse2_fnegate_mask to a regisiter before xorpd in fchs.
|
|
|
|
|
|
Make hipe compile option verify_gcsafe the default
|
|
* bjorn/compiler/integer-encoding:
Speed up misc_SUITE:integer_encoding/1
beam_asm: Encode big numbers as literals
|
|
|
|
* maint:
ssh: Disable test failing if docker command exists
ssh: Skeleton of build scripts for DropBear image
ssh: Can use DropBear SSH dockers
ssh: Remove duplicate test cases from ssh_to_openssh_SUITE
ssh: Add more tests
ssh: Change the default list of ssh and ssl version images
ssh: Enable building openssh 0.9.8[a-l]
ssh: Add LibreSSL to compat tests
|
|
* hans/ssh/docker_compat_tests/OTP-14194:
ssh: Disable test failing if docker command exists
ssh: Skeleton of build scripts for DropBear image
ssh: Can use DropBear SSH dockers
ssh: Remove duplicate test cases from ssh_to_openssh_SUITE
ssh: Add more tests
ssh: Change the default list of ssh and ssl version images
ssh: Enable building openssh 0.9.8[a-l]
ssh: Add LibreSSL to compat tests
|
|
Instructions that produce more than one result complicate
optimizations. get_list/3 is one of two instructions that
produce multiple results (get_map_elements/3 is the other).
Introduce the get_hd/2 and get_tl/2 instructions
that return the head and tail of a cons cell, respectively,
and use it internally in all optimization passes.
For efficiency, we still want to use get_list/3 if both
head and tail are used, so we will translate matching pairs
of get_hd and get_tl back to get_list instructions.
|
|
|
|
* ingela/ssl/no-dsa-libressl:
ssl: Check OpenSSL version for DSS (DSA) support
|
|
This test is just to get a marking in test result listings where a docker system is installed
|
|
|
|
|
|
misc_SUITE:integer_encoding/1 was written to make sure
that big integers were encoding correctly in a reasonable
amount of time. Now that beam_asm will encode big integers
as literals, we can reduce the scope of integer_encode/1.
That will make it significantly faster, especially when
cover is running.
|
|
|
|
|
|
Numbers that clearly are not smalls can be encoded as
literals. Conservatively, we assume that integers whose
absolute value is greater than 1 bsl 128 are bignums and
that they can be encoded as literals.
Literals are slightly easier for the loader to handle than
huge integers.
|
|
Do local common sub expression elimination (CSE)
|
|
Do some minor optimizations of binary matching
|
|
|
|
|
|
|
|
|
|
|
|
* ingela/DTLS-supported:
ssl: Fix typo
dtls: Add DTLS handling to utility functions
ssl: Document enhancment
ssl: Document DTLS
|
|
|
|
LibreSSL-2.6.3 dropped DSS (DSA) support
|
|
* dgud/wx/fix-driver-usage:
wx: open_port doesn't allow 0 terminated strings anymore
|
|
Optimize away unnecessary test_unit instructions that verify that
binaries are byte-aligned. In a tight loop, eliminating an
instruction can have a small but measurable improvement of the
execution time.
|
|
Separate the simplification of instructions from updating of the
type data base.
|
|
Conflicts:
lib/stdlib/src/gen_statem.erl
|
|
* raimo/stdlib/optimize-gen_statem:
Optimize plain call response time
Correct typo in design principles for gen_statem
|
|
|
|
* ingela/ssl/record-version-check/OTP-14892:
ssl: Add record version sanity check
|
|
|
|
|
|
Extend an existing optimization in beam_dead to avoid
creating a match context when matching an empty binary.
|