Skip to content

Commit

Permalink
Updates
Browse files Browse the repository at this point in the history
  • Loading branch information
erlend-aasland committed Oct 10, 2023
1 parent 6146cf9 commit 4a44f60
Showing 1 changed file with 32 additions and 9 deletions.
41 changes: 32 additions & 9 deletions peps/pep-0756.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@ Python-Version: 3.13
Abstract
========

:pep:`!755` summarized the problems with the CPython 3.12 build system.
PEP 755 summarized the problems with the CPython 3.12 build system.
This PEP suggests a new build system be implemented for CPython 3.13,


Motivation
==========

According to :pep:`!755`, the biggest pain with the CPython 3.12 build system,
According to PEP 755, the biggest pain with the CPython 3.12 build system,
is that consists of *two* hard-to-comprehend build systems:

- The Windows build --- a collection of XML and BAT files
Expand All @@ -27,7 +27,7 @@ is that consists of *two* hard-to-comprehend build systems:
Developers in the Windows camp find the GNU Autoconf code incomprehensible;
developers in the \*nix camp find the XML files of the Windows build cryptic.

Also according to :pep:`!755`,
Also according to PEP 755,
the number one goal for a future build system is a unified build system.


Expand All @@ -40,7 +40,7 @@ Rationale
Specification
=============

A build system will be implemented with the goals of :pep:`!755` in mind:
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
Expand All @@ -51,11 +51,34 @@ A build system will be implemented with the goals of :pep:`!755` in mind:
- an active community
- being actively developed


Implementation
--------------

In order to be able to decide which build system,
we suggest implementing a proof-of-concept implementation of each contender.
This proof-of-concept implementation should follow these specific guidelines,
so that it will be possible to do a fair comparison:

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

The proof-of-concept implementation should work on the following platforms:

- macOS (ARM)
- Windows (32-bit)
- Windows (64-bit)
- Ubuntu 22.04
- FreeBSD 14


Contenders
==========
----------

CMake
-----
^^^^^

CMake is implemented in C++,
and is being actively developed as an open source project by Kitware
Expand All @@ -64,7 +87,7 @@ It has been around since 2000, and is currently at release 3.27.7.


Meson
-----
^^^^^

Meson is implemented in Python,
and is being actively developed as an open source project on GitHub
Expand All @@ -73,7 +96,7 @@ It has been around since 2013, and is currently at release 1.2.1.


Bazel
-----
^^^^^

Bazel is implemented in Java,
and is being actively developed as an open source project on GitHub by Google
Expand All @@ -92,7 +115,7 @@ A bootstrapping guide will be written for the devguide in order to mitigate this
Security Implications
=====================

*TODO*
None known.


How to Teach This
Expand Down

0 comments on commit 4a44f60

Please sign in to comment.