Release Notes
🚀 Updates
- Improved our atomic file writing implementation.
- Improved the performance of concurrent plugin calls. Cached function outputs and function existence checks are now read with a shared lock, instead of an exclusive one, so many concurrent calls to the same plugin no longer serialize on the cache. Under heavy CPU contention, this serialization could stall all calls for seconds.
- With 100 concurrent tasks calling the same plugin, cached calls are 45-76% faster (up to 4x the throughput). Under CPU contention, they are 31-66% faster, and the slowest samples dropped from up to 25ms to around 1ms.
- In moon's 1000 project graph benchmark under CPU contention, the slowest builds dropped from up to 500ms to 310ms, and builds that took over 2x the median dropped from 11 to 1 (across 400 builds).
⚙️ Internal
- Added benchmarks for concurrent plugin calls (
cargo bench -p warpgate). - Plugin loading and system dependency builds no longer hold an internal map lock while waiting for another load or build to finish, which blocked unrelated plugins or package managers that shared the same map bucket.
- Updated dependencies.
Install proto_cli 0.63.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/moonrepo/proto/releases/download/v0.63.1/proto_cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/moonrepo/proto/releases/download/v0.63.1/proto_cli-installer.ps1 | iex"Download proto_cli 0.63.1
| File | Platform | Checksum |
|---|---|---|
| proto_cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| proto_cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| proto_cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| proto_cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| proto_cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| proto_cli-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| proto_cli-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |