sys_core_fold: Remove a redundant word in a comment
Teach sys_core_fold:eval_case/2 to cope with handwritten Core Erlang

Starting in e12b7d5331c58b41db06cadfa4af75b78b62a2b1,
sys_core_fold:eval_case/2 will crash on handwritten but legal
Core Erlang programs such as:

   case let <Var> = Arg in {'x',Var} of
      {x,X} -> X
   end

The problem is that the only clause *is* guaranteed to match, but
cerl_clauses:match_list/2 does not understand that; all it can say is
that the clause *may* match. In those circumstances, we will need to
keep the case.

Also make sure that we keep the case if the guard is something else
than 'true'. That is not strictly necessary, because in a legal Core
Erlang program the guard in the last clause in a case must always
evaluate to 'true', so removing the guard test would still leave the
program correct. Keeping the guard, however, will make it somewhat
easier to debug an incorrect Core Erlang program. (The unsafe_case
test case has guard test in the only clause in a case, so we don't
need to write a new test case to test that.)

Reported-by: Anthony Ramine
make clean should not remove SKIP files

Add new make target 'distclean' that removes
files created by configure.

SKIP files are created by configure for instance
if configured  --without-javac.  They should only
be removed if one has to reconfigure, otherwise
'make clean; make' breaks.
Merge branch 'larsr/distclean'

* larsr/distclean:
  make clean should not remove SKIP files

OTP-11683
Allow persistent option on set_env/4 and unset_env/3

An environment key set with the persistent option will not
be overridden by the ones configured in the application resource
file on load. This means persistent values will stick after the
application is loaded and also on application reload.
Merge branch 'fenollp/shell-expand-0arity-completely'

* fenollp/shell-expand-0arity-completely:
  Shell: expand 0-arity functions all the way to closing parenthesis

OTP-11684
Merge branch 'tuncer/fix-public_key-specs'

* tuncer/fix-public_key-specs:
  public_key(3): fix private_key/0 type definition

OTP-11627
cover: Support running cover on itself

We want to see at least some coverage of cover itself.
Fix problem with verification for parallel groups in ct_telnet_SUITE
jinterface: implement support for maps

The API and implementation are simplistic, like for lists and tuples,
using arrays and without any connection to java.util.Map.
Handle nonempty list types in docgen_edoc_xml_cb
Handle map types in docgen_edoc_xml_cb
Merge branch 'nox/maps-improve-erl_eval'

* nox/maps-improve-erl_eval:
  Handle map fields in their own function in erl_eval
Merge branch 'nox/maps-erl_prettypr'

* nox/maps-erl_prettypr:
  stdlib: Add tests for Maps in erl_prettypr
  Support maps in erl_prettypr
Merge branch 'bjorn/compiler/optimizations/OTP-11584'

* bjorn/compiler/optimizations/OTP-11584:
  Teach sys_core_fold:eval_case/2 to cope with handwritten Core Erlang
  sys_core_fold: Remove a redundant word in a comment
gs: Minor doc fix, gs is deprecated
sasl: Fix testcase which didn't work on windows

Quoting on Windows is strange
dbg: Remove debug printouts and fix file dialog

Use default positions when open windows.
Remove io:formats() for unhandled events.
Fix file dialog completion window which didn't invoke refrash
Update appups and appup tests for kernel, stdlib and sasl

Appups now only support one major release back, and the tests are
updated accordingly.

Support is also added in tests for giving previous releases in a ct
config file, e.g.

{otp_releases,[{r15,"/path/to/r15/bin/erl"},
	       {r16,"/path/to/r16/bin/erl"},
	       {'17',"/path/to/17/bin/erl"}]}.
crypto: Fix bug when using old hmac context

Symptom: Using an old context (that had already been passed as argument to either
hmac_upgrade or hmac_final) could cause VM crash or worse.

Reason: Only a shallow copy (memcpy) of the context was made causing
a new context to partly mutate its parent context into an inconsistent
state.

Problem: Only OpenSSL v1.0 supports deep copy of hmac context. It is thus
not possible to implement a functional interface for older OpenSSL
versions (0.9.8) which still have wide spread use.

Solution: Change hmac contexts into a mutable state using NIF resources.
Document reuse of old contexts as undefined.

Future: If a need for reusing old context variables arise, a new hmac_copy
function could be introduced that is only supported for OpenSSL v1.0.