Nick Coghlan <ncogh...@gmail.com> added the comment:

Directly addressing the topic of the bug:

Py_SetProgramName() should be a relative or absolute path that can be used to 
set sys.executable and other values appropriately. This is used in 
Programs/_testembed.c for example.

I didn't know it didn't work the same way on Windows as it does on other 
platforms, and I have no idea why it's different there. (The divergence between 
the Windows and *nix implementations of getpath predates my own involvement in 
startup sequence modifications, and I've never even read the Windows version of 
the code)

On the startup sequence refactoring in general:

Yeah, eventually being able to eliminate getpath.c in favour of a froze 
_getpath.py module has been one of my long term hopes for the PEP 432 startup 
sequence refactoring. The underlying issue making that difficult that is that 
it's always been murky as to exactly what Python code could safely execute at 
the point where that path information needs to be calculated, and the tests of 
path configuration are weak enough that it's easy to introduce regressions even 
with small changes, let alone a wholesale rewrite.


If a new setting is genuinely needed, then where to put things in the new 
config is still open for discussion - at the moment, it's pretty much just a 
straight transcription of the way CPython has historically done things, and is 
hence heavy on the use of low level C data types (especially wchar* where paths 
are concerned).

This means that the CoreConfig struct currently still contains a lot of things 
that aren't actually needed if all you want is a running Python interpreter and 
can live without a fully populated sys module.

The *advantage* of that approach is that it means it still maps pretty easily 
to the existing Py_Initialize approach: the PySet_* API writes to a global copy 
of a the CoreConfig struct, and then Py_Initialize reads that in to the active 
runtime state.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue34725>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to