Visitar URL original
Prepare Python 3.15 with rc3 libraries and native prerequisites by youknowdot · Pull Request #8954 · RustPython/RustPython · GitHub
Skip to content
Draft
Changes from 1 commit
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
82e7ccd
Implement the sentinel builtin from PEP 661
youknowdot Oct 2, 2026
006b50b
Add the eager-runtime importlib lazy-attribute hook
youknowdot Oct 2, 2026
85af9a1
Support compile module context across AST warning paths
youknowdot Oct 2, 2026
2e2bc87
Begin the Python 3.15 essential-library bootstrap
youknowdot Oct 2, 2026
90891df
Update import tests and builtin loader validation for Python 3.15
youknowdot Oct 2, 2026
8b0f966
Preserve the validated string key when creating builtins
youknowdot Oct 2, 2026
87aae87
Describe Python 3.15 as the migration target
youknowdot Oct 2, 2026
f443b3b
Upgrade venv and activation scripts to Python 3.15 rc2
youknowdot Oct 3, 2026
70d045e
Implement PEP 814 frozendict
youknowdot Oct 2, 2026
a8c898d
Use native frozendict in the migrated test support tables
youknowdot Oct 3, 2026
6f700f7
Update enum from CPython 3.15.0rc2
youknowdot Oct 2, 2026
ed0ff96
Keep the original RustPython executable across nested venv aliases
youknowdot Oct 3, 2026
916d768
Integrate the Python 3.15 rc2 runtime and standard library upgrade
youknowdot Oct 3, 2026
e18ef0a
Use an object receiver for the JSON array hook descriptor
youknowdot Oct 3, 2026
eb95d73
Complete rc2 copy migration and follow moved standard library tests
youknowdot Oct 3, 2026
a2ca12c
Bring upstream frozendict coverage into the rc2 dictionary suite
youknowdot Oct 3, 2026
f2c0b48
Resolve combined base16 wrapping and migrated test prerequisites
youknowdot Oct 3, 2026
422029a
Refresh core builtin and type regression suites from rc2
youknowdot Oct 3, 2026
4c7b36e
Include the rc2 cross-interpreter test definitions
youknowdot Oct 3, 2026
90303e1
Leave invalid lazy import source fixtures out of frozen bytecode
youknowdot Oct 3, 2026
c71cc02
Guard SET_ADD against rebound annotation tracking objects
youknowdot Oct 3, 2026
5319baa
Complete rc2 AST and core library runtime contracts
youknowdot Oct 3, 2026
dafd695
Cover RLock subclass constructor validation
youknowdot Oct 3, 2026
613b543
Keep AST replacement on the shared native call binding
youknowdot Oct 3, 2026
6d49a6a
Register slice aliases in the Python class implementation
youknowdot Oct 3, 2026
253202f
Clear migration lint findings and shorten weakref lock scopes
youknowdot Oct 3, 2026
ffd4095
Use canonical field shorthand in base-N decoding options
youknowdot Oct 3, 2026
c388522
Clear remaining codec and TLS introspection lint warnings
youknowdot Oct 3, 2026
c3d4816
Preserve runtime code filenames in marshal output
youknowdot Oct 3, 2026
1f90d2e
Refresh the CPython baseline and libraries to 3.15.0rc3
youknowdot Oct 3, 2026
de72441
Keep only distinct native regression coverage in added snippets
youknowdot Oct 3, 2026
2e3dea6
Align lazy imports and runtime prerequisites with Python 3.15 rc3
youknowdot Oct 3, 2026
392a1ba
Enable directory-relative chmod for rc3 temporary cleanup
youknowdot Oct 4, 2026
6ea5bbe
Align formatting and runtime contracts with Python 3.15
youknowdot Oct 4, 2026
1c38cec
Refresh complete Python 3.15 rc3 test sources
youknowdot Oct 4, 2026
521aca9
Implement runtime contracts exposed by complete rc3 tests
youknowdot Oct 4, 2026
7ddbeeb
Enable the passing Linux mmap resize expectation
youknowdot Oct 4, 2026
cc2921b
Follow lint conventions in rc3 runtime updates
youknowdot Oct 4, 2026
427188a
Align the builtin import snippet with Python 3.15
youknowdot Oct 4, 2026
960dd4b
Close Python 3.15 rc3 runtime and compiler test failures
youknowdot Oct 4, 2026
baaa686
Decode typed pointer arguments in ctypes callbacks
youknowdot Oct 4, 2026
d07c1a0
Repair rc3 CI setup and preserve embedding dependencies
youknowdot Oct 5, 2026
405134a
Keep the platform-dependent Expat callback cast explicit
youknowdot Oct 5, 2026
2c03db8
Align rc3 bytecode and remaining CI runtime contracts
youknowdot Oct 5, 2026
1c55e3b
Format the rebased mmap flag binding
youknowdot Oct 8, 2026
6b06759
Use rc3 opcode IDs and close canonical protocol gaps
youknowdot Oct 5, 2026
c1b18f6
Complete rc3 time protocols and remaining parser contracts
youknowdot Oct 5, 2026
cd74281
Keep lazy import hook regressions in stdlib_imp
youknowdot Oct 5, 2026
f593a38
Keep the import bootstrap identical to pinned CPython
youknowdot Oct 5, 2026
ca2ea5a
Repair supported runtime paths and separate C API test cohorts
youknowdot Oct 5, 2026
ac58ff2
Propagate configuration dictionary errors across platforms
youknowdot Oct 5, 2026
12629a5
Keep native fixture conversions explicit for Clippy
youknowdot Oct 5, 2026
631410d
Adapt 3.15 mapping paths to the upstream explicit-hash API
youknowdot Oct 5, 2026
02042ec
Enable the passing monitoring type-call regression
youknowdot Oct 5, 2026
e2cce5a
Run the complete frame test family with C API support
youknowdot Oct 5, 2026
bb0708f
Record CPython source-layout assumptions in Windows tests
youknowdot Oct 6, 2026
b518c42
Use checked conversion for Windows timestamp range
youknowdot Oct 6, 2026
f5ebda1
Export the existing frame-locals C API on Windows
youknowdot Oct 6, 2026
4ad01e8
Preserve CPython 3.15 diagnostics with Ruff 0.16.10
youknowdot Oct 7, 2026
384801d
Preserve wakeup option storage with WASI signal support
youknowdot Oct 7, 2026
d41aa43
Translate WASI signal dispositions through libc sentinels
youknowdot Oct 7, 2026
bfb4727
Preserve lazy import recursion diagnostics after the upstream rebase
youknowdot Oct 7, 2026
b678ea3
Isolate the C API monitoring test from parallel interpreter activity
youknowdot Oct 7, 2026
eeb7cd3
Prevent ContextVar cache hits after Context address reuse
youknowdot Oct 7, 2026
d54a29e
Use the rebased mmap flags binding for anonymous mappings
youknowdot Oct 8, 2026
1ba204e
Keep dev evaluator frames compact during native re-entry
youknowdot Oct 8, 2026
d336de5
Adapt C API method fixtures to native function returns
youknowdot Oct 8, 2026
e14427a
Verify manager XML-RPC regression under coverage
youknowdot Oct 8, 2026
8d4bafc
Ignore invalid descriptors in os.closerange
youknowdot Oct 8, 2026
8cc22f1
Use immediate exit for host process termination
youknowdot Oct 8, 2026
cf01240
Reject negative file descriptors before fstat
youknowdot Oct 8, 2026
cc05fc8
Refresh safe Python 3.15 sources and comparison pins to final
youknowdot Oct 9, 2026
43065e7
Align compile module snippet with merged canonical coverage
youknowdot Oct 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Reject negative file descriptors before fstat
Return EBADF for negative ordinary descriptors before calling rustix, avoiding debug-build assertions on canonical invalid-fd tests. Keep directory-fd sentinel and absolute-path handling unchanged.

Assisted-by: Codex:model-version-unavailable
  • Loading branch information
youknowdot committed Oct 8, 2026
commit cf01240d50f0bc0cfd737ad2f9855c7a1d199b9b
4 changes: 4 additions & 0 deletions crates/host_env/src/fileutils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ pub use windows::{StatStruct, fstat};

#[cfg(not(windows))]
pub fn fstat(fd: crate::crt_fd::Borrowed<'_>) -> std::io::Result<StatStruct> {
// Unlike a directory fd, fstat accepts no negative descriptor sentinels.
if fd.as_raw() < 0 {
return Err(std::io::Error::from_raw_os_error(libc::EBADF));
}
rustix::fs::fstat(fd).map_err(Into::into)
}

Expand Down
Loading