[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[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?