| Jul |
AUG |
Sep |
|
08 |
|
| 2022 |
2023 |
2024 |
About this capture
The Wayback Machine - http://web.archive.org/web/20230808153416/https://github.com/python/cpython
Skip to content
n
Sign up
●
Actions
Automate any workflow
Packages
Host and manage packages
Security
Find and fix vulnerabilities
Codespaces
Instant dev environments
Copilot
Write better code with AI
Code review
Manage code changes
Issues
Plan and track work
Discussions
Collaborate outside of code
Explore
●
●
●
●
●
For
●
●
●
●
By Solution
●
●
●
Resources
●
●
●
●
GitHub Sponsors
Fund open source developers
The ReadME Project
GitHub community articles
Repositories
●
●
●
●
Search or jump to...
Clear
Search syntax tips
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
To see all available qualifiers, see our documentation.
You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.
You switched accounts on another tab or window. Reload to refresh your session.
{{ message }}
python
/
cpython
Public
●
Notifications
●
Fork
27.4k
Star
55k
The Python programming language
www.python.org/
License
View license
55k
stars
27.4k
forks
Activity
Star
Notifications
●
Code
●
Issues
5k+
●
Pull requests
1.6k
●
Actions
●
Projects
28
●
Security
●
Insights
More
●
Code
●
Issues
●
Pull requests
●
Actions
●
Projects
●
Security
●
Insights
python/cpython
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Could not load branches
Nothing to show
ranches
Could not load tags
Nothing to show
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
6
branches
551
tags
Code
●
●
Clone
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI.
Learn more about the CLI.
●
Open with GitHub Desktop
●
Download ZIP
Sign In Required
Please
sign in
to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
fatihkabakk
gh-91795: Update build optimization part of PCbuild/readme.txt (GH-91849
906b73b
Aug 8, 2023
gh-91795: Update build optimization part of PCbuild/readme.txt (GH-91849
)
906b73b
Git stats
●
118,156
commits
Files
Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
.azure-pipelines
CI: Remove docs build from Azure Pipelines (#105823)
June 16, 2023 14:04
.devcontainer
Fix umask test failures under Codespaces (#104913)
May 25, 2023 13:03
.github
Remove newlines from bug template (#107525)
August 1, 2023 01:47
Doc
gh-86457" class="Link--secondary" href="/web/20230808153416/https://github.com/python/cpython/commit/a9aeb99579f24bbce1dd553d605a5a5e2f37a3a2">: Add docs for Argument Clinic @text_signature directive (#10…
August 8, 2023 08:42
Grammar
gh-107015: Remove async_hacks from the tokenizer (#107018)
July 26, 2023 16:34
Include
gh-107630: Initialize Each Interpreter's refchain Properly (gh-107733)
August 7, 2023 13:14
Lib
gh-106368: Argument clinic: add tests for more failure paths (#107731)
August 8, 2023 12:12
Mac
Update macOS installer screens to 3.13. (GH-107475)
July 31, 2023 06:05
Misc
gh-107659: Add docstrings for ctypes.pointer and ctypes.POINTER (#107660
August 8, 2023 08:20
Modules
gh-107659: Add docstrings for ctypes.pointer and ctypes.POINTER (#107660
August 8, 2023 08:20
Objects
gh-86457: Fix signature for code.replace() (GH-23199)
August 7, 2023 23:34
PC
gh-106869 to get offsetof() function.
* Update Parser/asdl_c.py to regenerate Python/Python-ast.c.
* Replace:
* T_SHORT => Py_T_SHORT
* T_INT => Py_T_INT
* T_LONG => Py_T_LONG
* T_FLOAT => Py_T_FLOAT
* T_DOUBLE => Py_T_DOUBLE
* T_STRING => Py_T_STRING
* T_OBJECT => _Py_T_OBJECT
* T_CHAR => Py_T_CHAR
* T_BYTE => Py_T_BYTE
* T_UBYTE => Py_T_UBYTE
* T_USHORT => Py_T_USHORT
* T_UINT => Py_T_UINT
* T_ULONG => Py_T_ULONG
* T_STRING_INPLACE => Py_T_STRING_INPLACE
* T_BOOL => Py_T_BOOL
* T_OBJECT_EX => Py_T_OBJECT_EX
* T_LONGLONG => Py_T_LONGLONG
* T_ULONGLONG => Py_T_ULONGLONG
* T_PYSSIZET => Py_T_PYSSIZET
* T_NONE => _Py_T_NONE
* READONLY => Py_READONLY
* PY_AUDIT_READ => Py_AUDIT_READ
* READ_RESTRICTED => Py_AUDIT_READ
* PY_WRITE_RESTRICTED => _Py_WRITE_RESTRICTED
* RESTRICTED => (READ_RESTRICTED | _Py_WRITE_RESTRICTED)" class="Link--secondary" href="/web/20230808153416/https://github.com/python/cpython/commit/1a3faba9f15e0c03c6cc0d225d377b8910b5379f">: Use new PyMemberDef constant names (#106871 to get offsetof() function.
* Update Parser/asdl_c.py to regenerate Python/Python-ast.c.
* Replace:
* T_SHORT => Py_T_SHORT
* T_INT => Py_T_INT
* T_LONG => Py_T_LONG
* T_FLOAT => Py_T_FLOAT
* T_DOUBLE => Py_T_DOUBLE
* T_STRING => Py_T_STRING
* T_OBJECT => _Py_T_OBJECT
* T_CHAR => Py_T_CHAR
* T_BYTE => Py_T_BYTE
* T_UBYTE => Py_T_UBYTE
* T_USHORT => Py_T_USHORT
* T_UINT => Py_T_UINT
* T_ULONG => Py_T_ULONG
* T_STRING_INPLACE => Py_T_STRING_INPLACE
* T_BOOL => Py_T_BOOL
* T_OBJECT_EX => Py_T_OBJECT_EX
* T_LONGLONG => Py_T_LONGLONG
* T_ULONGLONG => Py_T_ULONGLONG
* T_PYSSIZET => Py_T_PYSSIZET
* T_NONE => _Py_T_NONE
* READONLY => Py_READONLY
* PY_AUDIT_READ => Py_AUDIT_READ
* READ_RESTRICTED => Py_AUDIT_READ
* PY_WRITE_RESTRICTED => _Py_WRITE_RESTRICTED
* RESTRICTED => (READ_RESTRICTED | _Py_WRITE_RESTRICTED)" class="Link--secondary" href="/web/20230808153416/https://github.com/python/cpython/commit/1a3faba9f15e0c03c6cc0d225d377b8910b5379f">)
July 25, 2023 15:28
PCbuild
gh-91795: Update build optimization part of PCbuild/readme.txt (GH-91849
August 8, 2023 13:47
Parser
GH-107263: Increase C stack limit for most functions, except `_PyEval…
August 4, 2023 10:10
Programs
GH-77273: Better bytecodes for f-strings (GH-6132)
June 14, 2023 16:15
Python
gh-107758`.
- The lltrace-like feature for uops wrote to `stderr`, while the one in `ceval.c` writes to `stdout`;
I changed the uops to write to stdout as well." class="Link--secondary" href="/web/20230808153416/https://github.com/python/cpython/commit/328d925244511b2134d5ac926e307e4486ff4500">: Improvements to lltrace feature (#107757`.
- The lltrace-like feature for uops wrote to `stderr`, while the one in `ceval.c` writes to `stdout`;
I changed the uops to write to stdout as well." class="Link--secondary" href="/web/20230808153416/https://github.com/python/cpython/commit/328d925244511b2134d5ac926e307e4486ff4500">)
August 7, 2023 21:36
Tools
gh-106368: Argument clinic: add tests for more failure paths (#107731)
August 8, 2023 12:12
.coveragerc
gh-106368: Improve coverage reports for argument clinic (#107693)
August 6, 2023 20:40
.editorconfig
bpo-44854: Add .editorconfig file to help enforce make patchcheck (G…
August 10, 2021 18:30
.gitattributes
GH-105481: Mark more files as generated (GH-107598)
August 3, 2023 21:37
.gitignore
gh-104780: Remove 2to3 program and lib2to3 module (#104781)
May 23, 2023 19:40
.mailmap
" class="Link--secondary" href="/web/20230808153416/https://github.com/python/cpython/commit/4b10ecc29f6ae69e599a5475a62d8e96a8711f90">Update name in acknowledgements and add mailmap (#103696" class="Link--secondary" href="/web/20230808153416/https://github.com/python/cpython/commit/4b10ecc29f6ae69e599a5475a62d8e96a8711f90">)
April 30, 2023 03:21
.pre-commit-config.yaml
gh-106978: Bump sphinx-lint to 0.6.8 (#106990)
July 22, 2023 09:38
.readthedocs.yml
Co-authored-by: Manuel Kaufmann
Co-authored-by: Oleg Iarygin " class="Link--secondary" href="/web/20230808153416/https://github.com/python/cpython/commit/c3204ed72755042f4727754903e9e6d53b424bb1">RtD docs previews: Cancel building PRs if no changes in Doc dir (#104100
May 24, 2023 16:54
LICENSE
Update copyright years to 2023. (gh-100848)
January 8, 2023 09:13
Makefile.pre.in
gh-105481: combine regen-opcode-targets with regen-opcode to avoid ca…
August 1, 2023 21:05
README.rst
README: remove unmaintained sections (#107703)
August 8, 2023 16:37
aclocal.m4
GH-89886" class="Link--secondary" href="/web/20230808153416/https://github.com/python/cpython/commit/8a8ebf2e3ddb880806237c7a5983f9744f7c215f">: Bump to GNU Autoconf v2.71 (#104925" class="Link--secondary" href="/web/20230808153416/https://github.com/python/cpython/commit/8a8ebf2e3ddb880806237c7a5983f9744f7c215f">)
June 1, 2023 23:44
config.guess
bpo-33393: Update config.guess and config.sub (GH-29781)
November 25, 2021 20:55
config.sub
bpo-33393: Update config.guess and config.sub (GH-29781)
November 25, 2021 20:55
configure
gh-106881" class="Link--secondary" href="/web/20230808153416/https://github.com/python/cpython/commit/11c055f5ff1a353de6d2e77f2af24aaa782878ba">: Check for linux/limits.h before including it (#107397" class="Link--secondary" href="/web/20230808153416/https://github.com/python/cpython/commit/11c055f5ff1a353de6d2e77f2af24aaa782878ba">)
July 28, 2023 15:08
configure.ac
gh-106881" class="Link--secondary" href="/web/20230808153416/https://github.com/python/cpython/commit/11c055f5ff1a353de6d2e77f2af24aaa782878ba">: Check for linux/limits.h before including it (#107397" class="Link--secondary" href="/web/20230808153416/https://github.com/python/cpython/commit/11c055f5ff1a353de6d2e77f2af24aaa782878ba">)
July 28, 2023 15:08
install-sh
main rename (GH-25860)" class="Link--secondary" href="/web/20230808153416/https://github.com/python/cpython/commit/2fc857a5721a5b42bcb696c9cae1bbcc82a91b17">Update CI files to account for the master -> main rename (GH-25860 main rename (GH-25860)" class="Link--secondary" href="/web/20230808153416/https://github.com/python/cpython/commit/2fc857a5721a5b42bcb696c9cae1bbcc82a91b17">)
May 3, 2021 23:36
pyconfig.h.in
gh-106881" class="Link--secondary" href="/web/20230808153416/https://github.com/python/cpython/commit/11c055f5ff1a353de6d2e77f2af24aaa782878ba">: Check for linux/limits.h before including it (#107397" class="Link--secondary" href="/web/20230808153416/https://github.com/python/cpython/commit/11c055f5ff1a353de6d2e77f2af24aaa782878ba">)
July 28, 2023 15:08
This is Python version 3.13.0 alpha 0


Copyright © 2001-2023 Python Software Foundation. All rights reserved.
See the end of this file for further copyright and license information.
Contents
●General Information
●Contributing to CPython
●Using Python
●Build Instructions
●Profile Guided Optimization
●Link Time Optimization
●What's New
●Documentation
●Converting From Python 2.x to 3.x
●Testing
●Installing multiple versions
●Release Schedule
●Copyright and License Information
●Website: https://www.python.org
●Source code: https://github.com/python/cpython
●Issue tracker: https://github.com/python/cpython/issues
●Documentation: https://docs.python.org
●Developer's Guide: https://devguide.python.org/
For more complete instructions on contributing to CPython development,
see the Developer Guide.
Installable Python kits, and information about using Python, are available at
python.org.
On Unix, Linux, BSD, macOS, and Cygwin:
./configure
make
make test
sudo make install
This will install Python as python3.
You can pass many options to the configure script; run ./configure --help
to find out more. On macOS case-insensitive file systems and on Cygwin,
the executable is called python.exe; elsewhere it's just python.
Building a complete Python installation requires the use of various
additional third-party libraries, depending on your build platform and
configure options. Not all standard library modules are buildable or
useable on all platforms. Refer to the
Install dependencies
section of the Developer Guide for current detailed information on
dependencies for various Linux distributions and macOS.
On macOS, there are additional configure and build options related
to macOS framework and universal builds. Refer to Mac/README.rst.
On Windows, see PCbuild/readme.txt.
If you wish, you can create a subdirectory and invoke configure from there.
For example:
mkdir debug
cd debug
../configure --with-pydebug
make
make test
(This will fail if you also built at the top-level directory. You should do
a make clean at the top-level first.)
To get an optimized build of Python, configure --enable-optimizations
before you run make. This sets the default make targets up to enable
Profile Guided Optimization (PGO) and may be used to auto-enable Link Time
Optimization (LTO) on some platforms. For more details, see the sections
below.
PGO takes advantage of recent versions of the GCC or Clang compilers. If used,
either via configure --enable-optimizations or by manually running
make profile-opt regardless of configure flags, the optimized build
process will perform the following steps:
The entire Python directory is cleaned of temporary files that may have
resulted from a previous compilation.
An instrumented version of the interpreter is built, using suitable compiler
flags for each flavor. Note that this is just an intermediary step. The
binary resulting from this step is not good for real-life workloads as it has
profiling instructions embedded inside.
After the instrumented interpreter is built, the Makefile will run a training
workload. This is necessary in order to profile the interpreter's execution.
Note also that any output, both stdout and stderr, that may appear at this step
is suppressed.
The final step is to build the actual interpreter, using the information
collected from the instrumented one. The end result will be a Python binary
that is optimized; suitable for distribution or production installation.
Enabled via configure's --with-lto flag. LTO takes advantage of the
ability of recent compiler toolchains to optimize across the otherwise
arbitrary .o file boundary when building final executables or shared
libraries for additional performance gains.
We have a comprehensive overview of the changes in the What's New in Python
3.13 document. For a more
detailed change log, read Misc/NEWS, but a full
accounting of changes can only be gleaned from the commit history.
If you want to install multiple versions of Python, see the section below
entitled "Installing multiple versions".
Documentation for Python 3.13 is online,
updated daily.
It can also be downloaded in many formats for faster access. The documentation
is downloadable in HTML, PDF, and reStructuredText formats; the latter version
is primarily for documentation authors, translators, and people with special
formatting requirements.
For information about building Python's documentation, refer to Doc/README.rst.
Significant backward incompatible changes were made for the release of Python
3.0, which may cause programs written for Python 2 to fail when run with Python
3. For more information about porting your code from Python 2 to Python 3, see
the Porting HOWTO.
To test the interpreter, type make test in the top-level directory. The
test set produces some output. You can generally ignore the messages about
skipped tests due to optional features which can't be imported. If a message
is printed about a failed test or a traceback or core dump is produced,
something is wrong.
By default, tests are prevented from overusing resources like disk space and
memory. To enable these tests, run make testall.
If any tests fail, you can re-run the failing test(s) in verbose mode. For
example, if test_os and test_gdb failed, you can run:
make test TESTOPTS="-v test_os test_gdb"
If the failure persists and appears to be a problem with Python rather than
your environment, you can file a bug report and include relevant output from
that command to show the issue.
See Running & Writing Tests
for more on running tests.
On Unix and Mac systems if you intend to install multiple versions of Python
using the same installation prefix (--prefix argument to the configure
script) you must take care that your primary python executable is not
overwritten by the installation of a different version. All files and
directories installed using make altinstall contain the major and minor
version and can thus live side-by-side. make install also creates
${prefix}/bin/python3 which refers to ${prefix}/bin/python3.X. If you
intend to install multiple versions using the same prefix you must decide which
version (if any) is your "primary" version. Install that version using make
install. Install all other versions using make altinstall.
For example, if you want to install Python 2.7, 3.6, and 3.13 with 3.13 being the
primary version, you would execute make install in your 3.13 build directory
and make altinstall in the others.
See PEP 719 for Python 3.13 release details.
Copyright © 2001-2023 Python Software Foundation. All rights reserved.
Copyright © 2000 BeOpen.com. All rights reserved.
Copyright © 1995-2001 Corporation for National Research Initiatives. All
rights reserved.
Copyright © 1991-1995 Stichting Mathematisch Centrum. All rights reserved.
See the LICENSE for
information on the history of this software, terms & conditions for usage, and a
DISCLAIMER OF ALL WARRANTIES.
This Python distribution contains noGNU General Public License (GPL) code,
so it may be used in proprietary projects. There are interfaces to some GNU
code but these are entirely optional.
All trademarks referenced herein are property of their respective holders.
About
The Python programming language
www.python.org/
Resources
Readme
License
View license
Code of conduct
Code of conduct
Security policy
Security policy
Activity
Stars
55k
stars
Watchers
1.5k
watching
Forks
27.4k
forks
Report repository
551
tags
Sponsor this project
●
https://www.python.org/psf/donations/python-dev/
Learn more about GitHub Sponsors
No packages published
+ 2,356 contributors
Languages
●
Python
63.4%
●
C
34.6%
●
C++
0.6%
●
M4
0.5%
●
HTML
0.4%
●
Batchfile
0.1%
●
Other
0.4%
Footer
© 2023 GitHub, Inc.
●Terms
●Privacy
●Security
●Status
●Docs
●Contact GitHub
●Pricing
●API
●Training
●Blog
●About
You can’t perform that action at this time.