Python 3.6 introduced warnings about invalid-in-future usage of async and await. Documentation of valid usage: https://docs.python.org/3.6/reference/compound_stmts.html#coroutines In Portage: $ export PYTHONWARNINGS="d,i::ImportWarning" $ python3.6 -m compileall -fq * pym/portage/sync/controller.py:117: DeprecationWarning: 'async' and 'await' will become reserved keywords in Python 3.7 def async(self, emerge_config=None, repo=None, master_hooks=True): $ grep -r "\.async" * RELEASE-NOTES: SyncRepos.async: group sync and callback as composite task RELEASE-NOTES: - Bug 561234 SyncManager.async: initialize attributes before fork pym/portage/emaint/modules/sync/sync.py: return self._sync_manager.async( Probably this "async" function should be renamed. Probably "sync" function defined below also should be renamed for consistency.
The method has been renamed to sync_async: https://gitweb.gentoo.org/proj/portage.git/commit/?id=a99414cc781b35d8089472f3c4d7916e4eeb494c Tests are enabled for Python 3.6 in travis now: https://gitweb.gentoo.org/proj/portage.git/commit/?id=ab8217c8ebb6bf340c62b195168015c8d8c4a7ab
Fixed in portage-2.3.5.