[Python-Dev] Status of PEP 397 - Python launcher for Windows
> The launcher was slightly controversial when the pep was initially
> written 12 months ago.
So what were the objections?
>> Assuming you are proposing some future action for CPython,
>> I'm opposed to the notion that the implementation of the
>> launcher is the specification. The specification needs to be
>> in the PEP. It may leave room, in which case the remaining
>> details need to be specified in the documentation.
> I'm really not sure what you are trying to say here.
Let me try again: I dislike the phrase "written in C, which defines
the detailed implementation". That means that in order to find out
what the launcher does, you have to read its source code. I also
dislike the phrase "but instead to offer guidelines the launcher
should adhere to"; the PEP should not just be guidelines, but a
clear, prescriptive specification.
I admit that I had difficulties to find the places in the PEP
where it specifies things, as opposed to explaining things. It
seems that all of the sections
- An overview of the launcher.
- Guidelines for a Python launcher.
- Shebang line parsing
- Virtual commands in shebang lines:
- Customized Commands:
- Python Version Qualifiers
- Command-line handling
- Process Launching
are specification, so it may help to group them as subsections of
a top-level heading "Specification".
OTOH, "Process Launching" has 4 paragraphs of discussion, then
two sentences of specification, then 1,5 sentences of discussion.
I wish it was easier to find out what the PEP actually says.
> That the PEP should remove all references to an implementation
> specification, or that the PEP simply should be withdrawn?
Having references to the implementation is fine; saying that you
have to read the code to understand what it does, and that the
code takes precedence over the PEP is not.
>> If it comes with the Python distribution,
>> how get multiple copies of the launcher coordinated?
> This may not be specified as well as it could, but: "Future versions
> of the launcher should remain backwards compatible with older
> versions, so later versions of Python can install an updated version
> of the launcher without impacting how the previously installed
> version of the launcher is used."
That's not really my concern. I didn't originally find the place where
it said that the launcher goes into the Windows directory. Now that I
see it: how do you prevent deinstallation of py.exe when some version
of Python is uninstalled, but other versions remain?