* posix: add os.forkpty
pty.fork prefers forkpty so a nested spawn is a new session with its
own controlling tty. The openpty+login_tty fallback hung the
jsontests collector.
Assisted-by: Claude
* select: rebuild fd sets after EINTR
select(2) updates the sets in place. Retrying an interrupted call
with empty sets and a NULL timeout blocks forever.
Assisted-by: Claude
* http.server: keep CGI off the body-read timeout
A millisecond handler timeout races the client thread writing the
request and is inherited across CGI fork, which RSTs the client
under load.
Assisted-by: Claude
* Revert "http.server: keep CGI off the body-read timeout"
Lib edits outside a CPython copy are not allowed.
Assisted-by: Claude
* host_env: note why forkpty is libc not nix
Assisted-by: Claude
* benches: run deepcopy 10x more iterations
Assisted-by: Claude
Add dependency-free CPU-bound workloads adapted from pyperformance 1.14.0 to cover interpreter, standard-library serialization, regex, numeric, and garbage-collection paths under the existing Criterion and CodSpeed harnesses. Keep inputs deterministic and scale expensive cases for simulation while checking that benchmark execution does not leak interpreter state.
Assisted-by: Codex:gpt-5.6-sol