| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|\
| |
| | |
Fix bug in private-append transform
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change stops the compiler from generating invalid code when
bs_create_bin is given a literal <<>> as its first fragment. As the
type analyzer considers a literal <<>> an appendable bitstring, code
sequences such as:
_6 = bs_create_bin `append`, `[8,{segment,1}]`, `<<>>`, `all`
...
_14 = bs_create_bin `append`, `[8,{segment,1}]`, _6, `all`
would be rewritten to:
_6 = bs_create_bin `private_append`, `[8,{segment,1}]`, `<<>>`, `all`
...
_14 = bs_create_bin `private_append`, `[8,{segment,1}]`, _6, `all`
which is not legal, as private_append on a literal will crash the
runtime system.
By inserting a bs_init_writable in front of bs_create_bin instructions
with a literal <<>> as the first fragment, and then using the freshly
created writable binary instead of the literal, the code sequence
becomes valid:
_1 = bs_init_writable `256`
_6 = bs_create_bin `private_append`, `[8,{segment,1}]`, _1, `all`
...
_14 = bs_create_bin `private_append`, `[8,{segment,1}]`, _6, `all`
|
| |
| |
| |
| |
| | |
Fix a bug in the SSA-checker where it trashes the environment after
matching a literal bitstring.
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
* maint:
Updated OTP version
Prepare release
Update copyright year
|
| | | |
|
| | | |
|
| |\ \
| | | |
| | | |
| | | |
| | | | |
* bjorn/compiler/beam_validator/25/GH-7147/OTP-18565:
Fix two type-related bugs
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Issue #7147 uncovered two bugs in the compiler.
The first one is in the swapping of operands for commutative operands,
that the compiler does to simplify for the JIT. When the operands
were swapped, types for the operands in the annotation were not
updated.
The second one is in `beam_validator`, which assumed that if the
binary construction `<<F/float>>` succeeded, then `F` must be a
float. That is not correct, because `F` could also be an integer.
Closes #7147
|
|\ \ \ \
| | | | |
| | | | | |
Eliminate crash in beam_types
|
| | |_|/
| |/| |
| | | |
| | | | |
Closes #7198
|
|/ / /
| | |
| | |
| | | |
Closes #7197
|
|\ \ \
| | | |
| | | | |
Eliminate unsafe sharing optimization in beam_jump
|
| | | |
| | | |
| | | |
| | | | |
Closes #7180
|
|\ \ \ \
| | | | |
| | | | | |
Eliminate crash in beam_ssa_type
|
| |/ / /
| | | |
| | | |
| | | | |
Closes #7179
|
|/ / /
| | |
| | |
| | | |
Closes #7178
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
* maint:
Updated OTP version
Prepare release
Update copyright year
|
| | | |
|
| | | |
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
into maint-25
* john/erts/fix-hd-tl-loader-transformations/GH-7024/OTP-18519:
jit: Fix hd/1 and tl/1 BIF specialization
|
| |\ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
maint-25
* john/compiler/fix-inert-update-type/GH-6969/OTP-18516:
beam_validator: Skip unnecessary type updates
|
| |\ \ \ \
| | |_|_|/
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | | |
maint-25
* bjorn/compiler/fix-lost-map-exception/GH-6960/OTP-18497:
Fix lost exception from map update
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Eliminate compiler crash in beam_ssa_codegen
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Closes #7170
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
jhogberg/john/compiler/improve-validator-range-inference/GH-7171
beam_validator: Improve arithmetic range inference
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | | |
Fixes #7171
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
bjorng/bjorn/compiler/beam_validator/26/GH-7147/OTP-18565
Fix two type-related bugs
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Issue #7147 uncovered two bugs in the compiler.
The first one is in the swapping of operands for commutative operands,
which the compiler does to simplify for the JIT. When the operands
were swapped, types for the operands in the annotation were not
updated.
The second one is in `beam_validator`, which assumed that if the
binary construction `<<F/float>>` succeeded, then `F` must be a
float. That is not correct, because `F` could also be an integer.
Closes #7147
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
jhogberg/john/compiler/fix-private-append-issue/GH-7142
beam_ssa_private_append: Fix crash on oddly structured code
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
The private append pass didn't expect to append anything
to literals other than `<<>>`. Rare interactions with the type
or bool passes could sneak in things like atoms in unexpected
places, crashing the pass.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Fixes #7145
|
| |/ / / / /
|/| | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
kikofernandez/kiko/dbg/deprecate-stop_clear-function/GH-6903/OTP-18478
Deprecate `stop_clear` function
OTP-18478
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
function `dbg:stop_clear/1` is not documented in the API but was kept
for compatibility reasons. in this commit we make a step forward to
deprecating its use such that it will be eventually removed.
closes GH-6903.
|
|\ \ \ \ \ \ \
| |/ / / / / /
|/| | | | | | |
Fix broken `make clean && make`
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
4006e3719403d1 broke `make clean && make`.
Closes #7134
|
|/ / / / /
| | | | |
| | | | |
| | | | | |
Closes #7128
|
| | | | |
| | | | |
| | | | |
| | | | | |
Fixes #7121
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Eliminate make warning about ignored old recipe
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The makefiles for lib/compiler/ and lib/stdlib/ both include
$(ERL_TOP)/make/app_targets.mk and defines their own `test` target. As
this leads to warnings about:
Makefile:48: warning: overriding recipe for target 'test'
$ERL_TOP/make/app_targets.mk:26:warning: ignoring old recipe for target 'test'
which are annoying as even a clean build produces warnings, this patch
conditionally avoids defining the default target in app_targets.mk
when included from lib/compiler/Makefile and lib/stdlib/Makefile.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
compiler: Ignore generated file
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Commit 4006e3719403d15438e87f5a1bbcbed94a675e18 solved a make race
condition by using a flag file which wasn't added to .gitignore.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This reverts commit d4e4511b19f4126d9271a6e3a8fa2eb716da7e85.
|
| | | | | | |
|
|/ / / / / |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
OTP 26 introduced a new version 2 type table format. This change
deserializes the OTP 25 version 1 type table format as well within
'beam_disasm'. This fixes crashes when running 'beam_disasm:file/1'
on BEAM file created by the OTP 25 compiler.
Co-authored-by: John Högberg <john@erlang.org>
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
* maint:
jit: Fix hd/1 and tl/1 BIF specialization
|