Age | Commit message (Collapse) | Author |
|
* maint:
compiler: Fix compiler crash introduced by OTP-15952
|
|
into maint
* john/compiler/fix-bad-try_catch-recv-fix/OTP-15953/ERL-999:
compiler: Fix compiler crash introduced by OTP-15952
|
|
An assertion in code generation would fail when the common exit
block was ?BADARG_BLOCK, as some operations expect to always "fail"
directly to that block (= throw an exception) and we had inserted
a dummy block in between.
Other operations could also get funny fail labels, jumping to
blocks that immediately jumped to {f,0}, but these were all cleaned
up by beam_jump, sweeping the bug under the rug.
|
|
* maint:
Updated OTP version
Prepare release
# Conflicts:
# OTP_VERSION
# make/otp_version_tickets_in_merge
|
|
* maint-22:
Updated OTP version
Prepare release
# Conflicts:
# make/otp_version_tickets
|
|
|
|
|
|
* rickard/test-fixes-21:
Fix unstable test dump_SUITE:signal_abort
Fix unstable node_container_SUITE:magic_ref test
Fix unstable node_container_SUITE:node_controller_refc test
Fix unstable tests process_SUITE:no_priority_inversion{,2}
|
|
* ingela/ssl/alert-error-enhancment/OTP-15943:
ssl: Enhance error handling
|
|
maint-22
* john/compiler/fix-fail-path-exceptions-bsm/OTP-15946:
beam_ssa_bsm: Leave ?BADARG_BLOCK alone when cloning fail path
|
|
* john/compiler/fix-unsafe-tuple_size-opt/OTP-15945:
beam_ssa_opt: Do not apply tuple_size optimization outside guards
|
|
* john/hipe/catch-miscompilation/OTP-15949:
dialyzer: Remove native code compilation
hipe: Disable compilation on encountering try/catch
|
|
* john/compiler/fix-try_catch-receives/OTP-15952:
compiler: Fix broken 'receive' in try/catch blocks
|
|
* maint:
compiler: Fix broken 'receive' in try/catch blocks
|
|
* john/compiler/fix-try_catch-receives/OTP-15952:
compiler: Fix broken 'receive' in try/catch blocks
|
|
This fix is rather ugly and tacked-on, but I'm not comfortable
refactoring the pass in an emergency patch.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* maint:
Refine test cases
Remove test code that fails on Windows
|
|
* raimo/udp-send-TOS/OTP-15422:
Refine test cases
Remove test code that fails on Windows
|
|
|
|
|
|
|
|
|
|
The function 'snmp:print_version_info/0' which prints
various (version) info, attempted to extract the
"compile time" of each module in the snmp app.
This info used to be availabe in the module_info of
each module, but has been removed (a "long" time ago).
This resulted in a pointless "Not Found" beeing printed.
This has now been removed from the into printed.
OTP-15330
|
|
|
|
|
|
OTP-15932
|
|
|
|
|
|
* maint:
Fix unstable test dump_SUITE:signal_abort
Fix unstable node_container_SUITE:magic_ref test
Fix unstable node_container_SUITE:node_controller_refc test
Fix unstable tests process_SUITE:no_priority_inversion{,2}
|
|
* rickard/test-fixes-21:
Fix unstable test dump_SUITE:signal_abort
Fix unstable node_container_SUITE:magic_ref test
Fix unstable node_container_SUITE:node_controller_refc test
Fix unstable tests process_SUITE:no_priority_inversion{,2}
|
|
Sometimes processes have not had the time to spread
from one scheduler. Force spread by using the undocumented
'scheduler' option.
|
|
* rickard/test-fixes-20:
Fix unstable node_container_SUITE:magic_ref test
Fix unstable node_container_SUITE:node_controller_refc test
Fix unstable tests process_SUITE:no_priority_inversion{,2}
|
|
|
|
|
|
Sometimes processes have not had the time to spread
from one scheduler. Force spread by using the undocumented
'scheduler' option.
|
|
Extend the compiler's type representation
|
|
* maint:
dialyzer: Remove native code compilation
hipe: Disable compilation on encountering try/catch
|
|
* john/hipe/catch-miscompilation/OTP-15949:
dialyzer: Remove native code compilation
hipe: Disable compilation on encountering try/catch
|
|
Eagerly extracting elements can be quite problematic now that we
have union types. Consider the following:
0:
%% _0 is {ok, #record{}} | {error,atom()}
_1 = get_tuple_element _0, literal 0
_2 = get_tuple_element _0, literal 1
switch _1, label 0, [ { literal ok, label 1 }, { literal error, label 2 } ]
1:
%% _0 is known to be {ok,#record{}} here
2:
%% _0 is known to be {error,atom()} here
The type pass is clever enough to see that _0 has the types noted
above, but because the type of _2 is set in the first block where
we didn't have that information yet, it's still #record{} | atom()
in both branches.
Sinking these instructions to when they are used greatly improves
the type information in many cases, but it does have a few
limitations and using it in both of the above branches would take
us back to square one.
|
|
If we know that the checked value is a singleton at the fail
block, it's safe to infer types as if we've made a direct
comparison against that value.
|
|
* sverker/hash-improve-shrink:
erts: Tweak hash shrink limit
erts: Improve hash shrinking
|
|
* Only shrink when we can remove one segment and still remain
below 50% table load.
* Only shrink down to two table segments. It just leads to a lot of
potentially "unnecessary" rehashing to have a chance of getting rid
of the last extra segment before the last delete op. I don't think
it's worth it.
|
|
|
|
* sverker/valgrind-hipe-suppression:
erts: Suppress valgrind warning in offset_heap_ptr
|