Merge branch 'bjorn/asn1/cleanup/OTP-11727'

* bjorn/asn1/cleanup/OTP-11727:
  Clean up reporting of errors in IMPORTS
  asn1ct_check: Clean up error checking for INSTANCE OF
  asn1ct_check: Rewrite error checking for INTEGER and BIT STRING
  asn1ct_check: Remove unreachable clauses handling {identifier,_,_}
  asn1ct_check: Let asn1_error/3 throw its result
Merge branch 'bjorn/erts/fix-lingering-tracer'

* bjorn/erts/fix-lingering-tracer:
  Teach the call_time trace to notice when the trace dies (non-SMP system)
Merge branch 'ks/cerl-type-fixes'

* ks/cerl-type-fixes:
  Restore the alphabetical order of Core Erlang records
  Clean up the types of cerl
wx: Fix listCtrl sort callback
Fix some Dialyzer warnings

Dialyzer recognizes a certain pattern that makes it possible to get
rid of 'The created fun has no local return' warnings.
Correct the contract of io:getopts()
test_server: Fix a Dialyzer warning
Merge branch 'hb/spec_related_fixes'

* hb/spec_related_fixes:
  test_server: Fix a Dialyzer warning
  Correct the contract of io:getopts()
  Fix some Dialyzer warnings
Return warnings for unknown types and functions in Erlang Mode

The warnings about unknown types and functions are now returned
when calling Dialyzer from Erlang, in particular from an escript.

When calling Dialyzer from the command line the warnings about unknown
types and functions are output last as before; and when using the GUI
the warnings are displayed in a pop-up window, as before.
Introduce a new warning option, 'no_unknown'

Not (yet) documented.
Merge branch 'vinoski/ds-enif-send'

* vinoski/ds-enif-send:
  enable enif_send to work from a dirty scheduler
Merge branch 'hb/dialyzer/unknown_warnings'

* hb/dialyzer/unknown_warnings:
  Introduce a new warning option, 'no_unknown'
  Return warnings for unknown types and functions in Erlang Mode
Bump versions and ensure that all are "normal" versions

Ensure all are "normal" versions according to the new version scheme
introduced in OTP 17.0
Introduce runtime_dependencies in .app files

Most dependencies introduced are exactly the dependencies to other
applications found by xref. That is, there might be real dependencies
missing. There might also be pure debug dependencies listed that
probably should be removed. Each application has to be manually
inspected in order to ensure that all real dependencies are listed.

All dependencies introduced are to application versions used in
OTP 17.0. This since the previously used version scheme wasn't
designed for this, and in order to minimize the work of introducing
the dependencies.
Add test-case verifying runtime dependencies found by xref
Verify runtime_dependencies when running 'otp_build patch_app'
Introduce system_information:sanity_check()
Merge branch 'rickard/runtime-dep/OTP-11773'

* rickard/runtime-dep/OTP-11773:
  Introduce system_information:sanity_check()
  Verify runtime_dependencies when running 'otp_build patch_app'
  Add test-case verifying runtime dependencies found by xref
  Introduce runtime_dependencies in .app files
  Bump versions and ensure that all are "normal" versions
Fix pick_peer case clause failure

In the case of {call_mutates_state, true} configuration on the service
in question, any peer selection that failed to select a peer resulted in
a case clause failure in diameter_service:pick_peer/5, when the call to
the service process returned false. This was noticed in the case of a
peer failover in which an alternate peer wasn't available.

The explicit matching is intentional, to match exactly what's expected.
Fix unicode path failure in diameter_make:codec/2

A dictionary path containing a unicode codepoint > 255 caused the
function to fail when iolist_to_binary/1 was applied to the path.