Fix AtomicPtr accidentally not being available when not polyfilled.
1.0.0 - 2022-08-12
Update to critical-section v1.0
0.1.11 - 2022-11-29
Bump critical-section dependency from 0.2 to 1.0.
This is a breaking change if you were relying on the default implementations available on critical-section 0.2.7 and earlier.
They have been removed in critical-section 0.2.8 because they were unsound, since there's no way to guarantee they're correct for the
target in use (for example for multi-core embedded targets). Since critical-section 0.2.8 just forwards to 1.0 now, we decided to change atomic-polyfill to use 1.0 directly.
If you're seeing a linker error like undefined symbol: _critical_section_1_0_acquire, you're affected. To fix it:
If your target supports std: Add the critical-section dependency to Cargo.toml enabling the std feature.
[dependencies]
critical-section = { version = "1.1", features = ["std"]}
For single-core Cortex-M targets in privileged mode:
[dependencies]
cortex-m = { version = "0.7.6", features = ["critical-section-single-core"]}
For single-hart RISC-V targets in privileged mode:
[dependencies]
riscv = { version = "0.10", features = ["critical-section-single-hart"]}
For other targets: check if your HAL or architecture-support crate has a critical-section 1.0 implementation available. Otherwise, provide your own.
0.1.10 - 2022-08-12
Fix AtomicPtr accidentally not being available when not polyfilled.
0.1.9 - 2022-08-12
Switch to only two polyfill levels.
The "CAS" level which uses atomic load/store and critical-section based CAS was not
sound, because critical-section guarantees only "no other critical section can run concurrently",
not "no other code can run concurrently". Therefore a CS-based CAS can still race a native atomic store.
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 ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Updates the requirements on atomic-polyfill to permit the latest version.
Changelog
Sourced from atomic-polyfill's changelog.
... (truncated)
Commits
591e44f
Release v1.0.1f41ac87
Add changelog.277489e
Release v1.0.0ba8984a
Update to critical-section 1.0ac8f678
Drop support for the very old nightlies for AVR.88f6e05
Update vscode settings.5e4bea6
Switch to only two polyfill levels.dae0c34
Merge pull request #17 from danbev/minor_typo_readme5c61cd3
Fix typo in README.mda154960
Release 0.1.8Dependabot 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 ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)