This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author ncoghlan
Recipients ncoghlan, vstinner
Date 2019-03-02.04:41:42
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1551501702.67.0.698783833737.issue36142@roundup.psfhosted.org>
In-reply-to
Content
Agreed - I think the biggest thing we learned from the pre-implementation in Python 3.7 is that the "Let's move as much config as we can to Python C API data types" fell down in a couple of areas:

1. The embedding application is likely to speak char* and/or wchar_* natively, not PyObject*, and this applies even for CPython's own current `Py_Main` implementation.

2. There's some core system libc interaction scaffolding that we need in place first, giving 3 phases, not two:

- initialise anything needed to read configuration settings from the environment and command line (i.e. memory allocators, interface encodings)
- initialise the things needed to execute builtin and frozen Python modules (core data types, random hash seed, etc)
- initialise the things needed to execute external Python modules (sys.path, etc)

I'll update PEP 432 so it at least mentions some of the lessons learned, and points to the current internal configuration API definitions in the CPython source tree.
History
Date User Action Args
2019-03-02 04:41:42ncoghlansetrecipients: + ncoghlan, vstinner
2019-03-02 04:41:42ncoghlansetmessageid: <1551501702.67.0.698783833737.issue36142@roundup.psfhosted.org>
2019-03-02 04:41:42ncoghlanlinkissue36142 messages
2019-03-02 04:41:42ncoghlancreate