What's Changed
- introduce iterator helpers that manage recursion / time by @davidhewitt in #454
- fix interactions with global names, function scopes & repl by @davidhewitt in #469
- experiment with
StringBuilderto guard strings under construction by @davidhewitt in #448 - fix type-object marshalling across the sandbox boundary by @samuelcolvin in #478
FromArgsslots cleanup by @samuelcolvin in #484- fix(file): release the buffered-file OS-call pin on all paths by @arkuhn in #485
- add
__name__et al. by @samuelcolvin in #495 - f-strings improvements by @samuelcolvin in #494
- fix: return error instead of panicking in
ForIterheap read by @tontinton in #493 - Move execution to a subprocess pool by @samuelcolvin in #500
- Add 'Part of the Pydantic Stack' footer to README by @strawgate in #502
- fix(asyncio): raise RuntimeError on cross-gather coroutine reuse by @samuelcolvin in #503
- fix CI since subprocesses by @samuelcolvin in #505
- Async memory limits by @samuelcolvin in #504
- uprev ruff and ty crates by @samuelcolvin in #506
- move
py_eqto accept&Valuefor RHS by @davidhewitt in #508 - use published ruff and ty crates by @samuelcolvin in #512
- reintroduce
feed_startAPI to both python & JS by @davidhewitt in #507 - use stable clippy in ci by @samuelcolvin in #513
- Publish all library crates to crates.io by @samuelcolvin in #514
- websocket protocol by @samuelcolvin in #509
- Support multi-level (transitive) closure capture by @samuelcolvin in #516
- move recursion count from heap to VM by @davidhewitt in #511
- monty-cpython: rich sandbox tracebacks with source previews and carets by @samuelcolvin in #517
- fix various bugs with global name scoping by @davidhewitt in #510
- ci: try newer manylinux version by @davidhewitt in #519
- Add
unicodedatamodule, refactor and improveFromArgsmacros by @samuelcolvin in #522 - rename and change behaviour of
external_lookupby @samuelcolvin in #520 encodeanddecodecodecs and error types by @samuelcolvin in #523- Fix wasm CI by @samuelcolvin in #526
- Add
resume_auto()to iteratively drivefeed_startsnapshots by @samuelcolvin in #527 - User-defined classes by @samuelcolvin in #515
- small perf wins by @samuelcolvin in #528
- Add benchmarks covering real agent workloads by @samuelcolvin in #530
- Bound native
evaluate_functionre-entry to prevent infinite recursion by @samuelcolvin in #529 - Restrict
git commitandgit pushfor claude by @samuelcolvin in #532 - Regex perf improvements by @samuelcolvin in #531
- String cheap wins (perf track 3) by @samuelcolvin in #537
- add ci stage for browser testing by @davidhewitt in #539
- prep for beta release by @samuelcolvin in #540
- Fixing CI for
0.0.19-beta.2by @samuelcolvin in #542 - merge
DropWithHeap/DropWithVMby @davidhewitt in #521 - fix interned longint ops by @davidhewitt in #547
- Add per-crate READMEs, rename
monty-clitomonty-runtimeby @samuelcolvin in #544 - migrate from ava to vitest by @davidhewitt in #548
- use web workers for browser wasm by @davidhewitt in #525
- remove cargo config by @davidhewitt in #546
- Monty-proto moves by @samuelcolvin in #549
- JSON error data, and type conversion to cpython by @samuelcolvin in #552
- Prep for
0.0.19-beta.3by @samuelcolvin in #555 - monty-wasm-runtime publish false, prep 0.0.19-beta.4 by @samuelcolvin in #559
- clean up js packaging / smoke test by @davidhewitt in #550
- build and release the
monty-cpythoncontainer by @samuelcolvin in #563 - remove mod eq optimization by @davidhewitt in #565
- Add pytest-style assert failure messages by @samuelcolvin in #556
- remove monty-cpython by @samuelcolvin in #571
- improve error messages from suspensions in
evaluate_functionby @davidhewitt in #573 - inline
clone_immediateintoclone_with_heapby @davidhewitt in #578 - Make an existing iterator self-iterable by @rewitt94 in #579
- Move mounting to the host-side and move
fstomonty-fsby @samuelcolvin in #576 - Arg fixes,
int(),str(),round()by @samuelcolvin in #584 - Public API fixes by @samuelcolvin in #587
- add iterator to
PyTraitby @davidhewitt in #575 - Support class decorators by @rewitt94 in #582
- Implement iter(callable, sentinel) by @rewitt94 in #581
- Retain the OS-call payload in suspended state and drop
OsFunctionCall::Usedby @samuelcolvin in #583 - avoid collisions in
idby @davidhewitt in #580 - migrate iterator callsites to
py_iterby @davidhewitt in #588 - stop uninstalling workspace in
make install-pyby @davidhewitt in #595 - use web-time for the resource-tracker clock so max_duration works on wasm32-unknown-unknown by @Butch78 in #554
- Allow any iterable after
*, not just five container types by @rewitt94 in #589 monty-typescrate by @samuelcolvin in #592- Teach the type checker about iter/next by @rewitt94 in #596
- Bump version to 0.0.19-beta.5 by @samuelcolvin in #597
- fix npm publish by @davidhewitt in #603
- Fix leaks and panics on
MontyObjectconversion error paths by @samuelcolvin in #600 - release 0.0.19b6 by @davidhewitt in #604
- make
dev-pyinstall python dev deps by @davidhewitt in #606 - Cap CollectString/CollectStreams so print loops can't OOM the host by @Shaurya-Sethi in #558
- Remove
ResourceError::Exceptionand fixcheck_replace_sizeshrinking bypass by @samuelcolvin in #610 - Remove
max_allocationsfrom resource limits by @samuelcolvin in #611 - Reject action-less open modes, fix mixed-indent traceback dedent by @samuelcolvin in #612
- use same build profile for codspeed as release by @samuelcolvin in #614
- Prep for v0.0.19 by @samuelcolvin in #616
New Contributors
- @arkuhn made their first contribution in #485
- @tontinton made their first contribution in #493
- @strawgate made their first contribution in #502
- @rewitt94 made their first contribution in #579
- @Shaurya-Sethi made their first contribution in #558
Full Changelog: v0.0.18...v0.0.19