Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PEP 756: The CPython 3.13 build system #5

Closed
wants to merge 17 commits into from

Conversation

erlend-aasland
Copy link
Owner

@erlend-aasland erlend-aasland commented Oct 9, 2023

This is an early draft.

@erlend-aasland
Copy link
Owner Author

We can include an Implementation section that lays out a high-level implementation plan.

@@ -0,0 +1,155 @@
PEP: 756
Title: The CPython 3.13 build system.
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need a more fancy title.

@erlend-aasland
Copy link
Owner Author

Meta: perhaps we should merge the two PRs into one.

erlend-aasland and others added 5 commits October 10, 2023 13:33
* PEP 654, 678, 680: Mark as Final
* PEP 654: Add Discussions-To
* PEP 654: Add Resolution
* PEP 678, 680: Update Post-History
* PEP 654, 678, 680: Link to canonical docs
* PEP 654, 707: Update Irit's email

---------

Co-authored-by: C.A.M. Gerlach <CAM.Gerlach@Gerlach.CAM>
Comment on lines +43 to +55
A build system will be implemented with the goals of PEP 755 in mind:

- a unified build system that works on all :pep:`11` supported platforms
- correct and fast incremental builds
- deterministic builds
- it should be easy to constrain external dependencies
- cross-compilation support

A new build system should also have the following traits:

- good quality documentation
- an active community
- being actively developed
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Put this into Rationale?

@erlend-aasland erlend-aasland marked this pull request as ready for review October 10, 2023 22:28
Comment on lines +113 to +114
Implementation
--------------
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps move this up in the hierarchy. Also: need to expand this section.

Suggested change
Implementation
--------------
Implementation
==============

Comment on lines +96 to +99
1. Compile and link the source files in :file:`Python/` into an object file.
This implies generating :file:`pyconfig.h` for macros needed in :file:`Python/`.
2. Locate dependencies for and compile the ``_sqlite3`` extension module
3. Add a target that regenerates Argument Clinic code
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Expand on these; add rationale for each point.

Comment on lines +116 to +117
The authors suggest to hire a developer to work full-time on the final implementation,
as it will be a time-consuming task.
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure this should be in the PEP, but I think it will be crucial that someone is allowed to work full-time on this. Similar to how the BPO => GitHub Issues transition was carried through.

freakboy3742 and others added 7 commits October 11, 2023 02:57
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Co-authored-by: T. Wouters <thomas@python.org>
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
standardize mod name

The PEP says that the module name is "sentinels" (plural) but the example imports Sentinel from the "sentinel" (singular) module.  Not absolutely sure which one is intended but recent standards (secrets, dataclasses) have used the plural.

CLA for Python signed, in case that's needed.

Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
* For most cases (including all PEP metadata), replace birth name with chosen name
* Birth name has been retained in parentheses when this makes other references
  substantially clearer (e.g. references to mailing list posts, elected members
  of the inaugural Steering Council)
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
@erlend-aasland erlend-aasland deleted the build-system/part2 branch January 18, 2024 01:08
@erlend-aasland
Copy link
Owner Author

I'm planning to revisit this as a single PEP draft.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
8 participants