Issue #19218: Rename collections.abc to _collections_abc in order to speed up interpreter start
diff --git a/Lib/collections/abc.py b/Lib/_collections_abc.py
similarity index 100%
rename from Lib/collections/abc.py
rename to Lib/_collections_abc.py
diff --git a/Lib/collections/__init__.py b/Lib/collections/__init__.py
index 0f19f30..02bdc57 100644
--- a/Lib/collections/__init__.py
+++ b/Lib/collections/__init__.py
@@ -3,9 +3,9 @@
 
 # For backwards compatibility, continue to make the collections ABCs
 # available through the collections module.
-from collections.abc import *
-import collections.abc
-__all__ += collections.abc.__all__
+from _collections_abc import *
+import _collections_abc
+__all__ += _collections_abc.__all__
 
 from _collections import deque, defaultdict
 from operator import itemgetter as _itemgetter, eq as _eq
diff --git a/Lib/os.py b/Lib/os.py
index 1b1ce18..e9880a1 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -631,7 +631,7 @@
 
 
 # Change environ to automatically call putenv(), unsetenv if they exist.
-from collections.abc import MutableMapping
+from _collections_abc import MutableMapping
 
 class _Environ(MutableMapping):
     def __init__(self, data, encodekey, decodekey, encodevalue, decodevalue, putenv, unsetenv):
diff --git a/Lib/random.py b/Lib/random.py
index 4a9fbd1..808175a 100644
--- a/Lib/random.py
+++ b/Lib/random.py
@@ -41,7 +41,7 @@
 from math import log as _log, exp as _exp, pi as _pi, e as _e, ceil as _ceil
 from math import sqrt as _sqrt, acos as _acos, cos as _cos, sin as _sin
 from os import urandom as _urandom
-from collections.abc import Set as _Set, Sequence as _Sequence
+from _collections_abc import Set as _Set, Sequence as _Sequence
 from hashlib import sha512 as _sha512
 
 __all__ = ["Random","seed","random","uniform","randint","choice","sample",
diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py
index 20e1868..3ada0a6 100644
--- a/Lib/test/test_site.py
+++ b/Lib/test/test_site.py
@@ -445,6 +445,11 @@
         self.assertNotIn('locale', modules, stderr)
         # http://bugs.python.org/issue19209
         self.assertNotIn('copyreg', modules, stderr)
+        # http://bugs.python.org/issue19218>
+        collection_mods = {'_collections', 'collections', 'functools',
+                           'heapq', 'itertools', 'keyword', 'operator',
+                           'reprlib', 'types', 'weakref'}
+        self.assertFalse(modules.intersection(re_mods), stderr)
 
 
 if __name__ == "__main__":