(#248): If the Command's path was a simple command name like echo, cat, the path was interpreted as relative path instead of searched in the $PATH. Relative paths like ./echo are now interpreted as relative to the current directory. If running the Command in a Sandbox, this is the root directory of the Sandbox. Otherwise, it is the directory which is set by cargo bench.
!!! IMPORTANT The default to run binary benchmarks in a sandbox has been changed from true to false. The setup and teardown of the binary_benchmark_group! are not executed in the sandbox anymore !!!
The way to set up binary benchmarks has completely changed and has been rewritten from scratch! The api for binary and library benchmarks is now consistent and most features from library benchmarks which were missing for binary benchmarks are now available in binary benchmarks, too. For example comparison of benchmarks by id. If you are using library benchmarks but not binary benchmarks, this release doesn't change much. There are no breaking changes for library benchmarks and you can jump right to the changes section of
this release. Otherwise, here's a small introduction to the new api and the changes for binary benchmarks.
There are a lot of advantages for you and honestly for us, too, because we don't have to maintain two completely different apis. Binary benchmarks and library benchmarks can now be written in a similar fashion what makes writing benchmarks for a crate's binaries just easier and faster. No need to learn a completely different api if you already used library benchmarks and vice versa! Also, the feature set between library benchmarks and binary benchmarks diverged over time. For example comparison by id of benchmarks within the same group was available in library benchmarks via the library_benchmark_group! macro but not in binary benchmarks. Such differences are gone, now. Also, if you find out the new #[binary_attribute] does not provide you with the same power as the old builder api, you can still use a low level api and can even intermix the two styles. The new low level api is more intuitive than the old builder api, just more powerful and mirrors the binary_benchmark attribute as much as possible.
For example if the crate's binary is named my-binary:
use iai_callgrind::{binary_benchmark, binary_benchmark_group};
(#221): If the
Command's path was a simple command name like echo, cat, the path was
interpreted as relative path instead of searched in the $PATH. Relative
paths like ./echo are now interpreted as relative to the current directory.
If running the Command in a Sandbox, this is the root directory of the
Sandbox. Otherwise, it is the directory which is set by cargo bench.
[0.13.0] - 2024-08-19
!!! IMPORTANT The default to run binary benchmarks in a sandbox has been
changed from true to false. The setup and teardown of the
binary_benchmark_group! are not executed in the sandbox anymore !!!
The way to set up binary benchmarks has completely changed and has been
rewritten from scratch! The api for binary and library benchmarks is now
consistent and most features from library benchmarks which were missing for
binary benchmarks are now available in binary benchmarks, too. For example
comparison of benchmarks by id. If you are using library benchmarks but not
binary benchmarks, this release doesn't change much. There are no breaking
changes for library benchmarks and you can jump right to the changes section of
this release. Otherwise, here's a small introduction to the new api and the
changes for binary benchmarks.
There are a lot of advantages for you and honestly for us, too, because we don't
have to maintain two completely different apis. Binary benchmarks and library
benchmarks can now be written in a similar fashion what makes writing benchmarks
for a crate's binaries just easier and faster. No need to learn a completely
different api if you already used library benchmarks and vice versa! Also, the
feature set between library benchmarks and binary benchmarks diverged over time.
For example comparison by id of benchmarks within the same group was available
in library benchmarks via the library_benchmark_group! macro but not in binary
benchmarks. Such differences are gone, now. Also, if you find out the new
#[binary_attribute] does not provide you with the same power as the old
builder api, you can still use a low level api and can even intermix the two
styles. The new low level api is more intuitive than the old builder api, just
more powerful and mirrors the binary_benchmark attribute as much as possible.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the cargo group with 5 updates:
4.5.13
4.5.16
1.0.204
1.0.209
0.6.2
0.6.6
0.12.3
0.13.1
1.38.1
1.40.0
Updates
clap
from 4.5.13 to 4.5.16Release notes
Sourced from clap's releases.
Changelog
Sourced from clap's changelog.
Commits
cedb1f0
chore: Releasec22a510
docs(complete): Fix registration commands050b6c5
chore: Release5e61bd4
docs: Update changelog6f88091
Merge pull request #5671 from epage/envc402ec6
feat(complete): Env hook for dynamic completions6288e11
test(complete): Specialize tests84cfd92
Merge pull request #5667 from a-kenji/fix-typo70d8334
Merge pull request #5669 from epage/reorgcddbb56
fix(complete): Correct version checkUpdates
serde
from 1.0.204 to 1.0.209Release notes
Sourced from serde's releases.
Commits
30752ac
Release 1.0.209b84e6ca
Improve wording of PR 2805 comments87a2fb0
Wrap comments from PR 2805 to 80 columns9eaf7b9
Merge pull request #2805 from Mingun/untagged-tests7bde100
Replace MapRefDeserializer with value::MapDeserializerda7fc79
Fix deserialization of empty struct variant in untagged enums4c5fec1
Test special cases that reaches SeqRefDeserializer::deserialize_any len==0 co...6588b0a
Cover Content::Seq case in VariantRefDeserializer::struct_variant0093f74
Split test newtype_enum into four tests for each variant171c6da
Complete coverage of ContentRefDeserializer::deserialize_newtype_structUpdates
quick_cache
from 0.6.2 to 0.6.6Release notes
Sourced from quick_cache's releases.
Commits
Updates
iai-callgrind
from 0.12.3 to 0.13.1Release notes
Sourced from iai-callgrind's releases.
... (truncated)
Changelog
Sourced from iai-callgrind's changelog.
... (truncated)
Commits
492e1a1
Merge branch 'release'e79e7f9
tests(helper): Try another impl of echo helper to fix ci issues61fd5d5
Bump version v0.13.0 -> v0.13.18b1ffaa
chore: Remove README from version bump configuratione64ec6b
Update CHANGELOG59e91fb
Merge pull request #251 from iai-callgrind/renovate/cc-1.x-lockfile960df73
Merge pull request #253 from gamma0987/groups-in-justfile983cc63
chore(just): Group recipes in Justfile. Fix output of command not founde10ee57
chore(deps): update rust crate cc to v1.1.1596bcfdc
Merge pull request #248 from gamma0987/fix-pathUpdates
tokio
from 1.38.1 to 1.40.0Release notes
Sourced from tokio's releases.
... (truncated)
Commits
ea6d652
chore: prepare Tokio v1.40.0 (#6806)11f66f4
chore: replaceready!
withstd::task::ready!
(#6804)479a56a
time: eliminate timer wheel allocations (#6779)b37f0de
runtime: implement initial set of task hooks (#6742)c9fad08
codec: fix typo in the docs forEncoder::Error
(#6800)cc70a21
task: addjoin_all
method toJoinSet
(#6784)1ac8dff
task: addAbortOnDropHandle
type (#6786)ff3f2a8
io: addSimplexStream
(#6589)5b9a290
io: clarify zero remaining capacity case (#6790)70569bd
task: fix typo inTaskTracker
docs (#6792)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show