The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
## [1.11.2](https://github.com/ordo-one/package-benchmark/compare/1.11.1...1.11.2) (2023-09-22)
## [1.11.1](https://github.com/ordo-one/package-benchmark/compare/1.11.0...1.11.1) (2023-09-14)
### Bug Fixes
* **patch:** Show exact deviations if rounded are zero ([#188](https://github.com/ordo-one/package-benchmark/issues/188)) ([6e0cdf8](https://github.com/ordo-one/package-benchmark/commit/6e0cdf8c310a873a9a688c41eedfaf75c2752077))
## [1.11.0](https://github.com/ordo-one/package-benchmark/compare/1.9.2...1.11.0) (2023-09-14)
### Features
Its desirable to be able to signal from CI if a threshold has been improved too and not only regressed, so we now return exit code 0 only for exact equal checks and 2 for regressions and 4 for improvements for baseline checks and absolute threshold comparisons.
Added support for signposts (https://github.com/ordo-one/package-benchmark/issues/183) which makes profiling from Instruments easier to analyze.
The easiest way to access Instruments and profile a benchmark, is to simply quit Xcode and open the package with:
`open --env BENCHMARK_DISABLE_JEMALLOC=1 Package.swift`
This works around the Xcode bug that makes it impossible to use jemalloc and one can simply build for Profile and use instruments as usual - now with signpost information per benchmark run:

Added new `objectAllocCount` ARC stat counter and fixed the delta calculation to also take this initial refcount into account so retain/release deltas should be closer to reality (still sometimes non-zero due to some missing runtime hooks).
Also added support for optionally returning setupState from the benchmark setup hooks, to allow access to state that can be reused per benchmark iteration which is provided as an additional second parameter to the benchmark closure.
This can easily be done like this:
```swift
Benchmark("SetupTeardown6") { benchmark, setupState in
print("Array of integers: \(setupState)")
} setup: {
[1, 2, 3]
}
```
### Bug Fixes
* **minor:** Add support for CI detection of absolute threshold improvements + signposts for Instruments ([#182](https://github.com/ordo-one/package-benchmark/issues/182)) ([1e3568b](https://github.com/ordo-one/package-benchmark/commit/1e3568bbb4c3fd1da308a750e169a74b12b3f531))
* **minor:** Fix incorrect syscalls ([#187](https://github.com/ordo-one/package-benchmark/issues/187)) ([8e6ffd9](https://github.com/ordo-one/package-benchmark/commit/8e6ffd99562b8aa149c34e510dfebdf9a9030d2b))
## [1.9.2](https://github.com/ordo-one/package-benchmark/compare/1.9.1...1.9.2) (2023-09-13)
### Bug Fixes
* **patch:** quote test names with comma in output CSV ([#185](https://github.com/ordo-one/package-benchmark/issues/185)) ([d7a1343](https://github.com/ordo-one/package-benchmark/commit/d7a1343d463cefd079ea4558a19a7c93c0bbec37))
## What's Changed
* feat(patch): support bytesRead/bytesWritten on macOS by @dimlio in https://github.com/ordo-one/package-benchmark/pull/181
**Full Changelog**: https://github.com/ordo-one/package-benchmark/compare/1.9.0...1.9.1
## [1.9.0](https://github.com/ordo-one/package-benchmark/compare/1.8.2...1.9.0) (2023-08-24)
This provides better out-of-the-box experience for absolute checks and is geared towards CI checking of e.g. malloc/syscall deviations. The thresholds can e.g. be put be in a "Thresholds" directory.
To generate a new baseline, run e.g.
```bash
swift package --allow-writing-to-package-directory benchmark --format metricP90AbsoluteThresholds --path Thresholds/
```
To run a check vs. the saved thresholds, run:
```bash
swift package benchmark baseline check --check-absolute-path /relative/or/absolute/path/to/Thresholds
```
### Features
* **minor:** Add support for metricP90AbsoluteThresholds export format ([#180](https://github.com/ordo-one/package-benchmark/issues/180)) ([3549c2b](https://github.com/ordo-one/package-benchmark/commit/3549c2b9d4ab2be0f57f522339fe622e8ae9e5d8))
## [1.8.2](https://github.com/ordo-one/package-benchmark/compare/1.8.1...1.8.2) (2023-08-22)
### Bug Fixes
* **patch:** Use @_optimize(none) instead of [@inline](https://github.com/inline)(never) for blackHole to ensure it's not broken by cross-module optimisation in Swift 5.8 ([#179](https://github.com/ordo-one/package-benchmark/issues/179)) ([82cd144](https://github.com/ordo-one/package-benchmark/commit/82cd144c4159f74177a434fb943c06a59ffe1eeb))
## [1.8.1](https://github.com/ordo-one/package-benchmark/compare/1.8.0...1.8.1) (2023-08-16)
### Bug Fixes
* **patch:** Sort benchmarks in lexical order so that run order is consistent with output order ([#177](https://github.com/ordo-one/package-benchmark/issues/177)) ([8cc2be5](https://github.com/ordo-one/package-benchmark/commit/8cc2be5e4d0c91feea6d41ba20c05ee1a053d456))
## [1.8.0](https://github.com/ordo-one/package-benchmark/compare/1.7.0...1.8.0) (2023-08-16)
Improved ergonomics for choosing metrics slightly, now it's possible to write e.g.
```swift
let metrics = [.wallClock, .throughput] + .memory + .arc
```
instead of
```swift
let metrics = [.wallClock, .throughput] + BenchmarkMetric.memory + BenchmarkMetric.arc
```
### Features
* **minor:** Improve metric api ergonomics ([#175](https://github.com/ordo-one/package-benchmark/issues/175)) ([#176](https://github.com/ordo-one/package-benchmark/issues/176)) ([b0f6d12](https://github.com/ordo-one/package-benchmark/commit/b0f6d12345ea535112fb5dd06d81c9e727409cf1))
## [1.7.0](https://github.com/ordo-one/package-benchmark/compare/1.6.5...1.7.0) (2023-07-11)
### Features
* **minor:** Errors thrown no longer fail entire benchmark process ([#166](https://github.com/ordo-one/package-benchmark/issues/166)) ([9e010e2](https://github.com/ordo-one/package-benchmark/commit/9e010e286ac7f0f268d8c89a338ba6b0ecab0244))