Mention map trees in erl_syntax:type/1 documentation
Add support for IPv6 connections

Currently, eldap assumes that only IPv4 will be used. This change
enables callers to use IPv6 by including the [inet6] option in the
eldap:open/2 options list. This adds inet6 to the gen_tcp or ssl
connect.  For backward compatibility, [inet] is the default if inet6 is
omitted.
lib/inets/src/ftp/ftp.erl: Check the filenames, usernames, passwords etc.
    for <CR> and <LF> in them and return error if these offending chars
    are found. See http://erlang.org/pipermail/erlang-bugs/2014-January/003998.html
    for details.
lib/inets/test/ftp_suite_lib.erl: Added checks for <CR><LF> in file and directory
    names.
Merge branch 'ia/public_key/specs'

* ia/public_key/specs:
  public_key: Export some dialyzer types
Merge branch 'egil/compiler/maps-fix-codegen'

* egil/compiler/maps-fix-codegen:
  compiler: Fix codegen multiple updates for Maps
  erts,compiler: Correct and amend tests for Maps
Merge branch 'egil/compiler/maps-fix-sys_core_fold'

* egil/compiler/maps-fix-sys_core_fold:
  compiler: Fix sys_core_fold let optimization
  compiler: Add debug listing after sys_core_fold
Truly test debugger in erl_eval_SUITE copy

The module was not interpreted.

This surfaced two bugs, related to shadowed variables in binary patterns in
comprehension generators, and guard filters not properly detected. The guard
detection code from dbg_iload is deleted in favor of erl_lint:is_guard_test/1.
The erl_lint module is now safe to use because it can handle all expressions
emitted by sys_pre_expand, the following warning is thus obsolete and has been
removed from code:

	%% Cannot use erl_lint here as sys_pre_expand has transformed source.
Merge branch 'maint-r15' into maint-r16
Merge branch 'maint-r16' into maint
Merge branch 'maint'
Merge branch 'nox/debugger/erl_eval_SUITE/OTP-11676'

* nox/debugger/erl_eval_SUITE/OTP-11676:
  Truly test debugger in erl_eval_SUITE copy
Merge branch 'peppe/common_test/init_per_testcase_problem'

* peppe/common_test/init_per_testcase_problem:
  Fix problem with logging exits that happen in init_per_testcase

OTP-11643
Merge branch 'josevalim/suppress-all-auto-imports'

* josevalim/suppress-all-auto-imports:
  Allow all auto imports to be suppressed at once

OTP-11682
Optimise case arguments in sys_core_fold

If the argument of a case expression is a let, a seq or a case with two clauses
where the second one is a failing clause; it can be moved outside the case and
further optimisations can be performed.

module 'foo' ['t'/4]
  attributes []
't'/4 =
  fun (_cor14,Sub0,_cor15,_cor16) ->
    let Ssa = call 'erlang':'get' ('foo') in
      case let Ssa = {'ssa',_cor14,Sub0,_cor15,_cor16} in
           let _rec11 = call 'erlang':'+' (_cor14, 1) in
           let _cor4 = call 'erlang':'setelement' (2, Ssa, _rec11) in
             {{'tmp',_cor14},_cor4} of
        {NewReg,Foo} when 'true' ->
          {NewReg,Foo,Ssa}
        _cor20 when 'true' ->
          primop 'match_failure' ({'case_clause',_cor20})
      end
end

  ==>

module 'foo' ['t'/4]
  attributes []
't'/4 =
  fun (_cor14,Sub0,_cor15,_cor16) ->
    let Ssa = call 'erlang':'get' ('foo') in
    let _fol0 = {'ssa',_cor14,Sub0,_cor15,_cor16} in
    let _rec11 = call 'erlang':'+' (_cor14, 1) in
    let _cor4 = call 'erlang':'setelement' (2, _fol0, _rec11) in
    let NewReg = {'tmp',_cor14} in
      {NewReg,_cor4,Ssa}
end
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