Do not raise exception on close() on account of socket attribute still being None:

>>> import asyncore
>>> d = asyncore.dispatcher()
>>> d.close()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.4/asyncore.py", line 401, in close
    self.socket.close()
AttributeError: 'NoneType' object has no attribute 'close'
>>>
merge heads
Add fast-path in PyUnicode_DecodeCharmap() for pure 8 bit encodings:
cp037, cp500 and iso8859_1 codecs
Use PyUnicode_READ() instead of PyUnicode_READ_CHAR()

"PyUnicode_READ_CHAR() is less efficient than PyUnicode_READ() because it calls
PyUnicode_KIND() and might call it twice." according to its documentation.
Optimize make_bloom_mask(), used by str.strip(), str.lstrip() and str.rstrip()

Write specialized functions per Unicode kind to avoid the expensive
PyUnicode_READ() macro.
Optimize PyUnicode_DecodeCharmap()

Avoid expensive PyUnicode_READ() and PyUnicode_WRITE(), manipulate pointers
instead.
Fix _PyUnicode_XStrip()

Inline the BLOOM_MEMBER() to only call PyUnicode_READ() only once (per loop
iteration). Store also the length of the seperator in a variable to avoid calls
to PyUnicode_GET_LENGTH().
Fix do_strip(): don't call PyUnicode_READ() in Py_UNICODE_ISSPACE() to not call
it twice
Don't calls macros in PyUnicode_WRITE() parameters

PyUnicode_WRITE() expands some parameters twice or more.
Write super-fast version of str.strip(), str.lstrip() and str.rstrip() for pure ASCII
replace(): only call PyUnicode_DATA(u) once
Issue #17093,17566,17567: Methods from classes in importlib.abc now raise/return
the default exception/value when called instead of raising/returning
NotimplementedError/NotImplemented (except where appropriate).
This should allow for the ABCs to act as the bottom/end of the MRO with expected
default results.

As part of this work, also make importlib.abc.Loader.module_repr()
optional instead of an abstractmethod.
What's new entry for issue #17093
merge
Issue #17615: On Windows (VS2010), Performances of wmemcmp() to compare Unicode
strings are not convincing. For UCS2 (16-bit wchar_t type), use a dummy loop
instead of wmemcmp(). The dummy loop is as fast, or a little bit faster.

wchar_t is only 16-bit long on Windows. wmemcmp() is still used for 32-bit
wchar_t.
Close #14439: Python now prints the traceback on runpy failure at startup.
Fix issue #17675: make socket repr() provide local and remote addresses (if any).