Commit Graph
143 Commits
Author SHA1 Message Date
youknowdotandJeong, YunWon 06007c81fa Begin the Python 3.15 target and essential-library migration (#8950)
* Target Python 3.15 using the final upstream reference

Update active version and comparison configuration to Python 3.15.0. Preserve the alpha implementation status, actual bytecode format, and existing libraries pending separate migration. Align generated library-upgrade workflow pins without changing permissions or actions.

Assisted-by: OpenAI Codex:model identifier unavailable

* Adapt essential snippet contracts to Python 3.15 final

Preserve existing coverage while following verified final behavior for script metadata, builtin signatures and loading, AST fixture construction, memoryview diagnostics, mmap search bounds, and struct format errors. The unchanged final comparator exposes the earlier expectations; focused native baseline failures establish the required implementation changes.

Assisted-by: OpenAI Codex:model identifier unavailable

* Keep final-reference regression paths and remove expired sysconfig argument

Preserve reverse multiplication syntax and native exact overflow diagnostics. Accept the two source-proven CPython 3.15 specialization messages only in affected reverse str/bytes/tuple cases. Use an actually out-of-range Windows datetime errno fixture. Remove the sysconfig check_home argument at its existing canonical 3.15 removal test boundary.

Assisted-by: OpenAI Codex:model identifier unavailable

* Keep README wording unchanged in Python 3.15 transition

Assisted-by: OpenAI Codex:model identifier unavailable

* Match Python 3.15 repetition specialization and keep universal tests

Use exact sequence-type guards and preserve generic fallback diagnostics. Validate both cold and warmed expressions without implementation-specific assertions. Reject stale CPython source checkouts and cross-version library caches.

Assisted-by: OpenAI Codex:model identifier unavailable

* Limit in-place specialization additions to exact sequence repetition

Assisted-by: OpenAI Codex:model identifier unavailable

* Keep subclass regression scoped to repetition dispatch

Assisted-by: OpenAI Codex:model identifier unavailable

* Provision final CPython 3.15 with pinned uv builds

Assisted-by: OpenAI Codex:model identifier unavailable

* Enforce Python 3.15 AST constructor requirements

Reject retired missing-field and arbitrary-keyword forms while preserving defaults and explicit placeholders. Sync only matching final CPython constructor test hunks.

Assisted-by: OpenAI Codex:model identifier unavailable

* Keep seeded Python ahead of its Windows DLL directory

Assisted-by: OpenAI Codex:model identifier unavailable

* Keep opcode metadata tied to the implemented bytecode format

The interpreter target and reference tests use Python 3.15.0, but the current Rust opcode enum retains the 3.14 bytecode format. Generate metadata from its matching source rather than importing unsupported instruction families.

Assisted-by: OpenAI Codex:model identifier unavailable

* Align CSV, logarithm and decimal formatting with Python 3.15

Propagate dialect lookup errors except AttributeError, retry integer logarithms after float overflow, and update the decimal conversion diagnostic. Exercise the final reference contracts without implementation-specific branches.

Assisted-by: OpenAI Codex:model identifier unavailable

* Bind the logarithm index result before borrowing its integer

Assisted-by: OpenAI Codex:model identifier unavailable

* Align required canonical test expectations with Python 3.15

Take only demonstrated contract changes from CPython v3.15.0, d220409a13b77de7a6c30abe16ea90db01528edc: removed module __cached__, Struct format exception classes, and decimal-format diagnostic. Preserve unrelated tests and expectations.

Assisted-by: OpenAI Codex:model identifier unavailable

* Track pending frozendict pickle support during the 3.15 transition

Keep the two existing frozendict pickle tests running as expected failures until #8951 supplies the builtin. Unexpected success will signal removal of these temporary markers.

Assisted-by: OpenAI Codex:model identifier unavailable

* Support final Python 3.15 Windows negative timestamps

Use FILETIME for pre-epoch conversions and preserve precise Windows timestamp errors.

Assisted-by: OpenAI Codex:model identifier unavailable

* Derive historical Windows timezone offsets from wall time

FILETIME reports historical DST as unknown, so calculate the actual offset rather than selecting standard-time bias.

Assisted-by: OpenAI Codex:model identifier unavailable

* Identify decimal formatting arguments in Python 3.15 errors

Track consumed positional arguments, including star width and precision, and preserve mapping key representations in decimal conversion diagnostics.

Assisted-by: OpenAI Codex:model identifier unavailable

* Reuse mapping format keys for lookup and error context

Assisted-by: OpenAI Codex:model identifier unavailable

* Borrow mapping diagnostic keys as Python objects

Assisted-by: OpenAI Codex:model identifier unavailable

* Avoid empty components in the reference Python library path

Assisted-by: OpenAI Codex:model identifier unavailable

* Isolate RustPython bytecode caches during the 3.15 transition

Assisted-by: OpenAI Codex:model identifier unavailable

* Sync final Windows timestamp test expectations

Import only the final CPython platform-limit guards and mktime roundtrip expectation required by the existing Windows CI suite.

Assisted-by: OpenAI Codex:model identifier unavailable

* Restore official Python setup for 3.15 final

Use the existing pinned setup-python action now that its official catalog supplies CPython 3.15.0. Remove the temporary standalone provisioning action and its sparse-checkout entry while retaining interpreter outputs and requested versions.

Assisted-by: OpenAI Codex:model identifier unavailable

* Align merged runtime contracts with Python 3.15 final

Restrict mappingproxy ordering, use final codec registry normalization, and prefer index conversion before float conversion for sleep. Retain universal Python assertions and import the matching final codec/time canonical test hunks plus the non-ASCII codec-name deprecation warning.

Upstream source: CPython d220409a13b77de7a6c30abe16ea90db01528edc. The existing codec normalization implementation and bytecode contract remain unchanged.

Assisted-by: OpenAI Codex:model identifier unavailable

* Limit Windows launcher version check to its interpreter

Exclude only the CPython py.exe version-identity case from RustPython CI. The installed launcher reports its own final version, while RustPython correctly remains alpha. Preserve the other 45 launcher cases and all RustPython version assertions without modifying Lib.

Assisted-by: OpenAI Codex:model identifier unavailable

---------

Co-authored-by: Jeong, YunWon <69878+youknowone@users.noreply.github.com>
2026-10-11 12:57:49 +09:00
Jeong, YunWon 23fcb8d913 Format the README JIT example for ruff-format (#8785)
ruff-format 0.16.7 formats Python fences in Markdown and wants two
blank lines after a top-level function.

Assisted-by: Grok:4.6
2026-09-22 10:49:05 +09:00
codspeed-hq[bot]andCodSpeed Bot 062bd72c60 Add CodSpeed continuous benchmarking (#8613)
Alias criterion to codspeed-criterion-compat so the existing benchmark suites can be measured by CodSpeed with CPU simulation on every pull request, and add the workflow running them.

Co-authored-by: CodSpeed Bot <no-reply@codspeed.io>
2026-08-30 15:18:33 +09:00
Jeong, YunWon ed62d4a62b replace wasmer --dir -> --volume (#8572) 2026-08-22 14:34:11 +09:00
Copilotandyouknowone b304919a63 Replace deleted README demo script reference (#8492)
* Initial plan

* Fix stale README example

Assisted-by: Copilot: GPT-5.6

Co-authored-by: youknowone <69878+youknowone@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: youknowone <69878+youknowone@users.noreply.github.com>
2026-08-11 22:07:02 +09:00
Jeong, YunWon 024201c050 rename ssl-vendor (#7989) 2026-05-28 09:37:44 +03:00
Shahar Naveh e675d698da [META] AI policy (#7914)
* Add `CONTRIBUTING.md` and link it in the readme

* Add TBD PR template

* Merge `DEVELOPMENT.md` -> `CONTRIBUTING.md`

* Revise `PULL_REQUEST_TEMPLATE.md`

* Have checkboxes
2026-05-28 12:43:43 +09:00
Joshua MegnauthandJeong, YunWon f347ae4fbb Support custom rustls providers (#7657)
* Modularize rustls as work towards providers

`rustls`'s architecture is very clean and trait-driven. There are many
providers for `rustls` including the built-in `aws-lc-rs` and `ring` as
well as backends for `boringssl`, `graviola`, `openssl`, `mbedtls`, etc.

This commit removes the hard dependency on `aws-lc-rs` and adds support
for `ring`. It works towards #7059 as well.

* Clean up rustls features

* Remove ring as an explicit feature
* ssl-rustls is the default and implies aws-lc

* Support custom rustls crypto providers

The new feature, `ssl-rustls-no-provider`, enables custom rustls
providers. By default, `aws-lc-rs` is enabled which matches the old
behavior and keeps backward compatibility.

I wrote a new type that abstracts what we need from crypto providers.
CryptoExt encapsulates the ticketer as well as cipher suites and KX
groups. I wrote fallbacks to help select a reasonable default if a
provider is missing features (they all seem to support the same things
though).

I also wrote an example to show how to actually use custom providers.

* Fix duplicate VERIFY_X509 constants and unused imports in ssl module

Remove duplicate VERIFY_X509_STRICT/VERIFY_X509_PARTIAL_CHAIN definitions
from compat.rs (already defined in _ssl module with #[pyattr]).
Remove unused imports: ClientConnection, ServerConnection.

* no-provider as default

* Fix CI failures: openssl build, wasm target, cargo-shear

- Update openssl.rs to use renamed sock_wait/SockWaitKind and add vm parameter
- Add skip_ssl for wasm32-wasip2 target (aws-lc-sys cannot build for wasm)
- Remove unused workspace dependency aws-lc-rs
- Fix foreign-types-shared version to match openssl's dependency (0.1)
- Restore Cargo.lock from upstream/main

---------

Co-authored-by: Jeong, YunWon <jeong@youknowone.org>
2026-05-28 11:07:09 +09:00
Jeong, YunWon c490a357fd relocate scripts (#6753) 2026-01-17 21:52:53 +09:00
Jeong, YunWon ea1e60e9ca mark version to 3.14 2026-01-17 19:21:10 +09:00
Jeong, YunWon 6cc103bad3 Update README with venv and PIP instructions (#6127) 2026-01-05 01:35:56 +09:00
Jeong, YunWon 1a783fc9ec Replace SSL backend to rustls (#6244) 2025-11-16 22:17:35 +09:00
Ashwin NarenandJeong YunWon 125f14190a Remove unnecessary uv runin README (#5792)
* Update README.md

Remove unnecessary `uv run`

* uv comment

---------

Co-authored-by: Jeong YunWon <jeong@youknowone.org>
2025-06-15 16:10:27 +09:00
Ashwin NarenandJeong, YunWon 9bd7f1810b Update README.md
Co-authored-by: Jeong, YunWon <69878+youknowone@users.noreply.github.com>
2025-05-08 14:59:46 +09:00
Ashwin Naren 31e6cca916 Update README.md 2025-05-08 14:59:46 +09:00
Rex Ledesma b8095b84ff chore: allow uv run python -I ./whats_left.py 2025-05-08 14:51:52 +09:00
Ashwin Naren 64a0721616 Remove broken badge from readme 2025-04-01 08:08:16 -07:00
Ashwin Naren a46ce8ec3a Mark version 3.13.0 (#5495)
* bump to 3.13.1
* fix some tests
* strip left whitespace from doc
* remove specific difflib test that was causing issues
* fix test_enum

Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
2025-02-13 14:11:01 +09:00
Jeong, YunWon a5e6ade9cb Merge pull request #5454 from coolreader18/rust-1.83
Bump MSRV to 1.83
2025-01-07 13:13:42 +09:00
苏向夜 bb0480e978 docs(readme): fix installation command for cargo 2025-01-07 00:52:16 +08:00
Noa 8ac7e34be2 Updates for Rust 1.83 2024-12-03 17:05:24 -06:00
Jeong, YunWon 5d6d1a6da7 OpenSSL3 in README 2024-05-20 13:07:36 +09:00
Jeong YunWon a392d8425e Fix wasmer example 2024-04-26 20:57:32 +09:00
Olivier Lemasle 4dacbc51e2 Remove outdated info about yanked crates (#5111)
The `rustpython-*` crates have been published since this message was added.
2023-11-06 21:12:21 -08:00
Jeong, YunWonandCPython developers af884cb284 First step for Python 3.12 support (#5078)
* Mark 3.12

* Update importlib from Python 3.12.0

* Update test_importlib from Python3.12

* Mark failings tests from importlib

* Update test.support from Python3.12

* Fix unsupported parser feature

* mark failing test

* Update functools from Python 3.12

* manual type annotation

* slice behavior changed in 3.12

* empty unittest.main returns non-zero

* test_decimal from CPython 3.12

* Mark failing tests

* Update test_unicode from CPython 3.12

* Update test_functools from Python 3.12

* Update enum from Python 3.12

* enum

* Doc format changed

* Update test_module from CPython

---------

Co-authored-by: CPython developers <>
2023-10-22 19:19:05 -07:00
4721b7df92 Architecture overview (#2528)
* Add architecture document
---------

Co-authored-by: Eric van der Toorn <e.a.vandertoorn@student.tudelft.nl>
Co-authored-by: Pluriscient <erictoorn@gmail.com>
Co-authored-by: Jeong YunWon <youknowone@users.noreply.github.com>
Co-authored-by: DimitrisJim <d.f.hilliard@gmail.com>
Co-authored-by: fanninpm <fanninpm@miamioh.edu>
2023-06-11 18:35:15 +03:00
Jeong, YunWon a05842d051 Add --features ssl to README 2023-03-31 12:08:01 +09:00
Jim Fasarakis-Hilliard 0a8fa3a8ba attach links to images
closes #4577
2023-02-26 08:00:34 +02:00
Jim Fasarakis-HilliardandJeong YunWon 64f95fec69 fix typo.
Co-authored-by: Jeong YunWon <69878+youknowone@users.noreply.github.com>
2023-02-24 16:19:30 +02:00
Dimitris Fasarakis Hilliard e45536ae93 Address feedback, clean up readme. 2023-02-23 11:15:40 +02:00
Ellie 20b408ff3e Update install rustup 2023-02-23 10:38:47 +02:00
Jeong YunWon e79b1398b0 trying to go with CPython 3.11 2023-02-17 23:33:04 +09:00
Jeong YunWon e7064049d1 Gitter -> Discord 2022-11-21 20:58:26 +09:00
Jim Fasarakis-Hilliard 21f6c598a4 Merge pull request #4277 from discord9/update_readme
doc: add greptimedb's use case to README
2022-11-17 23:32:58 +02:00
discord9 87fd65553f doc: add usecase 2022-11-17 12:52:29 +08:00
Jeong YunWon ff605a6cf1 Occasional README update for minimal rust version requirements 2022-11-10 15:41:21 +09:00
Jeong YunWon a3664dba4a Merge pull request #4189 from DarkGuySM/main
Update README.md
2022-11-04 22:16:44 +09:00
Charlie Marsh ab2a638c66 Add Ruff as a use-case in the README 2022-10-15 11:08:11 -04:00
DarkGuySM 118707272b Update README.md
Corrected grammatical error.
2022-10-01 13:58:11 +05:30
Jeong YunWon c5ab11bbe6 fix ci and documents to use new script 2022-07-24 03:40:07 +09:00
Jeong Yunwon 39e3f8faff Add document for wasi 2022-05-08 15:24:58 +09:00
Shanin Roman 33d48bd5e8 Fix online documentation URL in README.md 2022-02-18 15:00:13 +03:00
Jeong YunWon 9570e9d7ad try 3.10 2022-02-05 14:53:52 -05:00
jfh afbe1f80da Add a link for good first issues. [skip ci] 2021-10-14 15:09:00 +03:00
Jeong YunWon 6795bb48ad bump up reference CPython 3.9 2021-10-03 23:24:59 +09:00
Jeong YunWon c123ea382e Add RUSTPYTHONPATH note for windows users. 2021-10-02 13:30:36 +09:00
Padraic Fanning 0ea56025ec Replace master with main
Fixes #3067
2021-09-15 17:54:54 -04:00
Jeong YunWon 0834ae3039 Merge pull request #2212 from pmp-p/patch-1
WASI: add a note for rust wasm target setup
2021-08-18 02:00:48 +09:00
Rahul Kumaresan eef4c47269 fix markup 2021-05-20 20:56:56 +05:30
Rahul Kumaresan 1dfc7832f3 add user guide link in README 2021-05-20 20:27:32 +05:30