Commit Graph
100 Commits
Author SHA1 Message Date
Jeong, YunWon 6a064aad3b Drop for PySSLSocket (#6791) 2026-01-19 10:01:11 +09:00
Jeong, YunWon 130bb82a43 LoadClosure as pseudo op (#6789) 2026-01-19 02:45:00 +09:00
Jiseok CHOI 050db4725f sqlite3: fix Connection.cursor() factory argument handling (#6783)
Fix test_is_instance in CursorFactoryTests by properly handling the
factory argument in Connection.cursor() method. Now the factory can
be passed as both positional and keyword argument, and returns the
correct subclass type instead of always returning PyRef<Cursor>.

- Use FromArgs derive macro with CursorArgs struct for argument parsing
- Return PyObjectRef instead of PyRef<Cursor> to allow subclasses
- Use fast_issubclass to validate returned cursor is a Cursor subclass
- Properly differentiate between 'no argument' and 'None passed'
2026-01-18 23:37:47 +09:00
Jeong, YunWon 6f266651c0 better ssl write handling (#6763)
* ssl_write

* Fix thread count timing
2026-01-18 21:10:35 +09:00
Jeong, YunWon f5b44f505a Fix Exception.__init__ 2026-01-17 19:21:11 +09:00
Jeong, YunWon 746e71af87 reject SemLock reduce (#6738) 2026-01-16 10:18:31 +09:00
Lee DogeonandClaude Opus 4.5 3a702ac772 Improve json.loads performance (#6704)
* Parse JSON in Rust

* Reuse key when decoding JSON

* Unmark resolved test

* Parse null/true/false directly in call_scan_once

Parse JSON constants (null, true, false) directly in Rust within
call_scan_once() instead of falling back to Python scan_once.
This reduces Python-Rust boundary crossings for array/object values.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Parse numbers directly in call_scan_once

Parse JSON numbers starting with digits (0-9) directly in Rust within
call_scan_once() by reusing the existing parse_number() method.
This reduces Python-Rust boundary crossings for array/object values.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Parse NaN/Infinity/-Infinity in call_scan_once

Parse special JSON constants (NaN, Infinity, -Infinity) and negative
numbers directly in Rust within call_scan_once(). This handles:
- 'N' -> NaN via parse_constant callback
- 'I' -> Infinity via parse_constant callback
- '-' -> -Infinity or negative numbers via parse_constant/parse_number

This reduces Python-Rust boundary crossings for array/object values.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Correct wrong index access

* Leave more flame span

* Refactor json scanstring with byte index

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 19:53:46 +09:00
Shahar Naveh e3890f9b4a Bytecode pseudo opcodes (#6715) 2026-01-15 02:52:25 +09:00
Jeong, YunWon 3d4aaaa6c1 thread.setname and context (#6726) 2026-01-14 17:20:52 +09:00
Lee Dogeon 49e6931c7e Introduce flame_guard in rustpython-stdlib too (#6722) 2026-01-14 09:14:05 +09:00
Jeong, YunWon bb57724d3b flush on WantWrite (#6717) 2026-01-13 22:05:49 +09:00
Jeong, YunWon f9e2f9d273 Upgrade math,cmath to 3.14.2 and totally delegate to pymath (#6705)
* Upgrade test_math, test_cmath from 3.14.2

* pymath 0.1.5
2026-01-13 22:05:32 +09:00
dependabot[bot] 7e47212886 Bump flate2 from 1.1.5 to 1.1.8 (#6711)
Bumps [flate2](https://github.com/rust-lang/flate2-rs) from 1.1.5 to 1.1.8.
- [Release notes](https://github.com/rust-lang/flate2-rs/releases)
- [Commits](https://github.com/rust-lang/flate2-rs/compare/1.1.5...1.1.8)

---
updated-dependencies:
- dependency-name: flate2
  dependency-version: 1.1.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-13 17:19:38 +09:00
Shahar Naveh 6ff7b3ed27 LoadClassDeref -> LoadFromDictOrDeref (#6692) 2026-01-10 23:16:11 +09:00
Shahar Naveh a400386774 Remove _dis module (#6690)
* Remove `_dis` module

* Adjust CodeFlag
2026-01-10 22:11:53 +09:00
Jeong, YunWonandgithub-actions[bot] 2d3ef86231 fix SSL callback (#6688)
* fix SSL callback

* Auto-format: cargo fmt --all

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-10 19:49:40 +09:00
Jeong, YunWonandgithub-actions[bot] de0bc732c9 Replace CallMethod/LoadMethod opcodes with plain Call (#6674)
* implementing call the correct way

stack is [Option<PyObjectRef>]

* fix again

* list custom instructions

* Auto-format: cargo fmt --all

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-10 08:25:56 +09:00
Shahar Naveh c2bfdf30bd Assign opcode ids (#6637) 2026-01-09 22:52:47 +09:00
42cc59a90c Bump openssl-probe from 0.1.6 to 0.2.0 (#6663)
* Bump openssl-probe from 0.1.6 to 0.2.0

Bumps [openssl-probe](https://github.com/alexcrichton/openssl-probe) from 0.1.6 to 0.2.0.
- [Release notes](https://github.com/alexcrichton/openssl-probe/releases)
- [Commits](https://github.com/alexcrichton/openssl-probe/compare/0.1.6...0.2.0)

---
updated-dependencies:
- dependency-name: openssl-probe
  dependency-version: 0.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Fix openssl-probe 0.2.0 API compatibility (#6669)

* Bump openssl-probe from 0.1.6 to 0.2.0

Bumps [openssl-probe](https://github.com/alexcrichton/openssl-probe) from 0.1.6 to 0.2.0.
- [Release notes](https://github.com/alexcrichton/openssl-probe/releases)
- [Commits](https://github.com/alexcrichton/openssl-probe/compare/0.1.6...0.2.0)

---
updated-dependencies:
- dependency-name: openssl-probe
  dependency-version: 0.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Initial plan

* Fix openssl-probe 0.2.0 API compatibility

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: youknowone <69878+youknowone@users.noreply.github.com>
2026-01-07 10:13:13 +09:00
dependabot[bot] 985961b013 Bump rustls from 0.23.35 to 0.23.36 (#6666)
Bumps [rustls](https://github.com/rustls/rustls) from 0.23.35 to 0.23.36.
- [Release notes](https://github.com/rustls/rustls/releases)
- [Changelog](https://github.com/rustls/rustls/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rustls/rustls/compare/v/0.23.35...v/0.23.36)

---
updated-dependencies:
- dependency-name: rustls
  dependency-version: 0.23.36
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-07 08:54:10 +09:00
Shahar Naveh 4af869b121 Fix opcode args (#6649) 2026-01-05 22:24:56 +09:00
Jeong, YunWon fd27c2d78f Fix SSL handshake partial send (#6635)
* simplify test_ftplib

* mark flaky test

* better ssl handshake, pending tls output

* flush_all_pending

* deadline

* flush pending
2026-01-04 17:53:59 +09:00
Jeong, YunWon eee360822c Rework compiler about exception handling (#6638)
* asyncgen

* fix coroutine

* rewrite compiler

* tests

* set pyc magic number
2026-01-04 09:15:38 +09:00
Jeong, YunWon cff37af5f6 Fix locale.getencoding, overlapped.getresult, chdir for windows (#6629)
* locale getencoding

* overlapped.getresult

* Fix windows chdir

* mark flaky
2026-01-03 11:43:29 +09:00
Jeong, YunWon 0eddee500a fix fcntl, sslsocket traverse, super , excepthook (#6623)
* fix fcntl

* fix traverse

* fix super

* excepthook

* fix warn
2026-01-03 00:15:31 +09:00
Jeong, YunWon 546d35b8c1 impl multiprocessing SemLock (#6542) 2026-01-03 00:14:43 +09:00
Jeong, YunWon 2e2924801c __{get,set,del}item__ without pymethods (#6622)
* __getitem__ without pymethod

* __setitem__ __delitem__ without pymethod

* sort slot names
2026-01-02 08:29:42 +09:00
Jeong, YunWon 1f8ef0aa36 sequence, mapping slots and fix separate __delitem__ slots (#6621)
* fix call

* Remove repr pymethod

* Remove __get__ and __set__ pymethod

* Remove __contains__ pymethod

* Remove __len__ pymethod

* mapping priors sequence

* fix ctypes
2026-01-02 00:35:59 +09:00
Jeong, YunWon b19312b403 slot for numeric ops (#6619)
* fix sequence_repeat wrappers

* slot for numeric ops

* fix bpo-37619
2026-01-01 22:39:16 +09:00
Jeong, YunWon d3e2fa47cc Remove wrong Deref (#6620) 2026-01-01 18:50:34 +09:00
Jeong, YunWon e58cf84c71 Update dbm from 3.13.11, implement sqlite3 autocommit (#6616) 2026-01-01 14:44:53 +09:00
Jeong, YunWon d3afd465f3 fix concurrent socket close (#6612) 2025-12-31 17:52:24 +09:00
7b9f0d9657 More tkinter (#5784)
* fix build

* fix usage of Tcl_GetVar2Ex

Signed-off-by: Ashwin Naren <arihant2math@gmail.com>

* no panic on mainloop

Signed-off-by: Ashwin Naren <arihant2math@gmail.com>

* add static var

Signed-off-by: Ashwin Naren <arihant2math@gmail.com>

* fix getvar

Signed-off-by: Ashwin Naren <arihant2math@gmail.com>

* add globalgetvar support

Signed-off-by: Ashwin Naren <arihant2math@gmail.com>

* formatting

Signed-off-by: Ashwin Naren <arihant2math@gmail.com>

* address review

* fix build

* Auto-format: cargo fmt --all

---------

Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
Co-authored-by: Jeong YunWon <jeong@youknowone.org>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-30 17:07:03 +09:00
Jeong, YunWon 6ed0b4f0ac Add PythonFinallizationError and upgrade multiprocessing (#6592)
* PythonFinallizationError

* fix posixprocess

* upgrade multiprocessing from 3.13.11
2025-12-30 15:15:16 +09:00
Jeong, YunWon dac236dac0 more no_std clippy (#6587) 2025-12-30 15:15:02 +09:00
Terry Tianlin Luan 1464d5ca43 Adding + Fixing Clippy rules to better align with #[no_std] (#6570)
* * Added alloc_instead_of_core, std_instead_of_alloc, and std_instead_of_core clippy rules
* Manually changed part of the code to use core/alloc

* use clippy --fix to fix issues in stdlib

* * Used clippy --fix to fix issues in vm
* Imported Range in vm/src/anystr.rs

* * Used clippy --fix to fix issues in common
2025-12-30 13:10:14 +09:00
Jeong, YunWonandgithub-actions[bot] 489289f54a Fix subprocess and Update subprocess from Python 3.13.11 (#6583)
* fix test_subprocess

* fix posixsubprocess

* fix io warning

* Update subprocess from Python 3.13.11

* fix

* Auto-format: cargo fmt --all

* fix macos

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-30 12:28:47 +09:00
Jeong, YunWon f91ffe34d4 Fix pyexpat parse (#6582) 2025-12-30 00:36:52 +09:00
Jeong, YunWon 4ce6827916 various fix to support subprocess/multiprocessing (#6567)
* hashlib.UnsupportedDigestmodError

* mmap readonly

* thread _refcount

* fix os.statvfs

* apply review
2025-12-30 00:24:07 +09:00
Jeong, YunWon 39aa6f9524 use accept_raw (#6578) 2025-12-29 23:17:16 +09:00
Jeong, YunWon 183cebe8a1 Upgrade socket from 3.13.11 2025-12-29 11:27:08 +09:00
Jeong YunWon 5079ee8fe3 fix socket 2025-12-29 11:27:07 +09:00
Jeong YunWon 2271f74642 del for socket 2025-12-29 11:25:34 +09:00
Jeong YunWon 219b4e316b DEFAULT_TIMEOUT 2025-12-29 11:25:34 +09:00
Jeong YunWon 81c13347a4 CAN_ attrs 2025-12-29 11:25:31 +09:00
Jeong, YunWon a7d417cf63 Fix socket.getattrinfo 2025-12-29 11:25:14 +09:00
Jeong, YunWon d1ff2cde77 RichCompare contains pymethod. No AtomicCell for slots (#6562)
* slots: add comparison pymethods to Comparable trait

* No AtomicCell
2025-12-29 11:21:11 +09:00
Copilotandyouknowone 04a4d1e02f Prevent array.tofile re-entrant deadlock and add regression snippet (#6559)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: youknowone <69878+youknowone@users.noreply.github.com>
2025-12-28 14:48:27 +09:00
Jeong, YunWon 151f0746a3 Implement copyslot (#6505) 2025-12-25 16:56:41 +09:00
8443b2c97e Add POSIX shared memory module for multiprocessing on Unix (#6498)
---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: youknowone <69878+youknowone@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-25 14:54:44 +09:00