42 Commits
Author SHA1 Message Date
1ndahous3 0f7c1843a4 Fix benchmark execution and library dependency reports (#9264)
* Fix benchmark execution and library dependency reports

Assisted-by: Codex:GPT-6

* Clarify relative benchmark interpreter paths

Assisted-by: Codex:GPT-6
2026-10-21 11:58:17 +09:00
1ndahous3 89bc9d99d9 Exclude setup cleanup from microbenchmark measurements (#9244)
Assisted-by: Codex:GPT-6
2026-10-20 19:57:06 +09:00
codspeed[bot]andCodSpeed Bot ba54cce23a Pin the hash seed in the microbenchmark harness (#9126)
Settings::default() leaves hash_seed = None, so every benchmark process
draws a random str hash secret. That changes globals-dict probe lengths
between runs and makes dict/loop/string microbenchmarks swing by 10-17%
with no code change. Use a fixed seed so results only move when the
code does.

Co-authored-by: CodSpeed Bot <no-reply@codspeed.io>
2026-10-15 10:28:43 +09:00
1ndahous3 3af5f8a153 Run benchmark workloads with consistent script namespaces (#9027)
Assisted-by: Codex:gpt-6
2026-10-10 09:25:57 +09:00
Joshua Megnauth 86c7fa20c4 Fix missing workspace lints & fix lints (#8781)
Some of the workspace packages were missing the `[lints]` table. I
enabled the lints then fixed the resulting errors.
2026-09-24 07:49:50 +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
Shahar Naveh 7da696661b Reduce number of string clones when compiling python source code (#8103) 2026-06-15 11:20:48 +09:00
Jeong, YunWon 1863b9c788 Lazy locals dict for NEWLOCALS frames (#7307)
Defer locals dict allocation for function frames until first access.
Most function frames only use fastlocals and never touch the locals
dict, so this skips one dict heap allocation per function call.

Also remove a redundant code.clone() in invoke_with_locals.

Func call ~23% faster, method call ~15% faster in benchmarks.
2026-03-03 09:17:17 +09:00
Jeong YunWon 20376451eb Implement Py_mod_create slot support in multi-phase init 2026-01-22 11:21:42 +09:00
Jeong YunWon bc02b2318c module_exec 2026-01-21 22:39:40 +09:00
Jeong, YunWon c71c78c1a0 Upgrade pyo3 (#6389) 2025-12-10 10:29:20 +09:00
Shahar Naveh 141ed72693 Dependencies cleanup (#6151)
* Update deps

* Remove some unused deps

* Update lockfile
2025-09-17 09:10:35 +09:00
Ashwin Naren a7ad848270 Rust dependency updates (#5651) 2025-04-15 08:50:29 +09:00
Ashwin Naren b81ae9b954 More cspell fixes (#5670) 2025-04-11 09:37:20 +09:00
Ashwin Naren b870b0e1b5 2024 edition formatting
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
2025-02-26 11:48:22 -08:00
Noa 37dc28a69d Update deps (#5417)
* Upgrade nix

* Update deps

* Upgrade pyo3, winreg

* Fix errors from upgrading
2024-09-27 13:11:00 +09:00
Jeong YunWon 24f57dde2f Align Settings to PyConfig 2024-04-30 23:18:14 +09:00
Daniel Chiquito ea1f72e92d Replace rust-cpython with pyo3 in benches
Update the actual benchmark harnesses.

Because the internal APIs previously used are no longer available, I
opted to use `compile` and `exec` from within the CPython context to
compile and execute code. There's probably more overhead to that than
the internal API had, but that overhead should be consistent per
benchmark.

If anyone cares about hyperoptimizing benchmarks then they can optimize
the harness as well.
2024-02-09 16:12:47 -05:00
Jim Fasarakis-Hilliard 06c6244599 Fix failures in the cron ci. (#5002) 2023-06-11 14:23:17 +03:00
Jeong YunWon d94f638784 Fix nightly clippy warnings 2022-10-16 02:38:50 +09:00
Noa 33e848e32e Fix benches 2022-08-18 20:52:11 -05:00
Jeong Yunwon 9b2a9d2377 TypeZoo uses &'static Py<PyType> 2022-05-27 10:35:01 +09:00
Jeong Yunwon 6fd5094c05 Remove Interpreter::default() not to trap users init without stdlib 2022-04-30 05:09:33 +09:00
Jeong Yunwon ab7d921772 PySettings is not a python object 2022-04-23 07:56:20 +09:00
Jeong Yunwon c4b80b3a24 IntoObject::into_object() and PyValue::into_pyobject(vm) 2022-04-19 00:38:18 +09:00
Jeong Yunwon 6357a1acbe clean up imports and useless allow attributes 2022-04-15 23:58:20 +09:00
Kangzhi Shi 9a2eef6fab fix compile 2021-11-27 13:49:05 +02:00
Padraic Fanning a50b91bb0e Make benchmark work with act, and fix import
This doesn't remedy a certain benchmark's possible memory consumption.
2021-10-24 01:47:12 -04:00
jfh 6ce591d90c Use as_object in benchmark locals. 2021-10-19 16:50:27 +03:00
Jeong YunWon a42d547a3f new_{utf8_str, ascii_literal} -> new_str again 2021-10-11 21:28:14 +09:00
Jeong YunWon 741cfea565 vm.ctx.new_int returns PyInt 2021-10-11 01:05:38 +09:00
Jeong YunWon 44f7bc468a vm::utils::ascii! -> common::ascii! 2021-09-28 15:47:54 +09:00
Jeong YunWon 5fab0771ae expose ascii! macro as pub 2021-09-26 12:27:03 +09:00
Jeong YunWon 795738d32b ascii! macro 2021-09-21 18:14:42 +09:00
Jeong YunWon 7395959f5f Fix PyStr operations to be safe 2021-09-21 00:32:26 +09:00
Jeong YunWon 48dc5c96b6 PyStrKind 2021-09-16 03:35:44 +09:00
Noah 99104faaf7 Re-export pyobject::* from the root of the crate 2021-05-20 10:24:07 -05:00
Noah db6fa17ffe Don't recompile CPython microbenchmarks every time 2021-04-05 09:49:16 -05:00
Noah 3c9bcf3a5e Don't recompile cpython code at each run 2021-03-21 21:23:54 -05:00
Noah 66ae84981b Fix cpython microbenchmarks failing 2021-03-21 20:43:44 -05:00
Tom Forbes 7818fd2083 Fix micro benchmarks 2020-12-13 20:36:11 +00:00
Tom Forbes dde8af14f4 Add microbenchmarks 2020-12-13 17:06:21 +00:00