mirror of
https://github.com/RustPython/RustPython.git
synced 2026-10-28 10:44:36 +08:00
* ci: hold a CodSpeed run to the machine main's baseline was measured on CodSpeed compares a run against a base run and refuses to call the comparison meaningful when the two ran on different machines: the runner uploads a `SystemInfo` record beside the profile carrying the OS, the architecture, the CPU's vendor id, brand and flags, the physical core count and the installed memory, and a hosted pool hands out whatever machine is free. A simulated measurement is fixed against how fast the machine is, but not against what it makes the process execute -- glibc selects `memcpy` and the string routines through IFUNC on CPU flags, a new stable rustc emits different code, and these benchmarks run each program under CPython through pyo3 as well as under RustPython, so the runner's default interpreter is an input too. `scripts/codspeed-environment.py` records those fields plus the rustc, libc and CPython versions, and compares a run against a recording. The benchmark job now restores the recording main last wrote, records over it when the ref is main, and compares against it otherwise; the install, build and measure steps carry `if: steps.environment.outputs.match != 'false'`, so a run that drew a different machine finishes green having uploaded nothing. A missing or unfetchable recording is read as "nothing to disagree with" rather than as a mismatch. Assisted-by: Claude * ci: read an unreadable environment recording as not a match A cache miss, an eviction or a cache-service outage leaves the reference file absent, and the comparison then reported `match=true`: every guarded step ran and the run uploaded a measurement without having identified the machine it was taken on. An absent recording now reports `match=false`, and says so as a `::warning` rather than the `::notice` a mismatch emits, so a job that measures nothing because it has nothing to compare against is distinguishable from one that measures nothing because the machine differs. Assisted-by: Claude
34 lines
492 B
Plaintext
34 lines
492 B
Plaintext
/target
|
|
/*/target
|
|
**/*.rs.bk
|
|
**/*.bytecode
|
|
__pycache__/
|
|
**/*.pytest_cache
|
|
.*sw*
|
|
.repl_history.txt
|
|
.vscode/
|
|
wasm-pack.log
|
|
.idea/*
|
|
!.idea/icon.svg
|
|
!.idea/vcs.xml
|
|
.envrc
|
|
|
|
flame-graph.html
|
|
flame.txt
|
|
flamescope.json
|
|
/build/codspeed-environment*.json
|
|
/wapm.lock
|
|
/wapm_packages
|
|
/.cargo/config
|
|
|
|
extra_tests/snippets/resources
|
|
extra_tests/not_impl.py
|
|
|
|
Lib/_sysconfig_vars*.json
|
|
Lib/site-packages/*
|
|
!Lib/site-packages/README.txt
|
|
Lib/test/data/*
|
|
!Lib/test/data/README
|
|
cpython/
|
|
.claude/
|
|
docs/superpowers/ |