| 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 |