This fixes new lints that have come up in the latest edition of clippy and moves
.cargo/config to .cargo/config.toml as the previous filename is now deprecated.
Apparently rustflag configs don't stack, so we need to re-specify the
whole list.
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
- move `tokio_unstable` to cargo config, so all we can use it within
our code (e.g. for #7982)
- disable incremental builds for prod docker builds. this was tried
before but got lost at some point because build params weren't passed
to docker correclty
- fix `CARGO_NET_GIT_FETCH_WITH_CLI` for docker builds (env wasn't
passed through)
Not having frame pointers on x64 is a painful for profiling and debugging.
Sure we can use DWARF, but it is slow, memory-hungry (you easily need
gigabytes just for a simple benchmark), and often broken.
In constrat to 32bit x86, x64 has enough general purpose registers and
the processor likely has even more physical ones that it can access through
register renaming. One register more won't make the difference for
us.
Prior art:
- Go: https://github.com/golang/go/issues/15840
- RustC: https://github.com/rust-lang/rust/pull/107689 (not merged yet)
- Fedora tried: https://lwn.net/Articles/919940/
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* refactor: replace `croaring` with `roaring`
With the read buffer gone, roaring bitmaps are only used to calculate
series sets and these calculations are pretty much possible with the
pure-Rust version. Also I don't deem that that performance-critical
(compared to the roaring bitmaps in the read buffer core).
This removes a bunch of dependencies, mostly because `bindgen` is gone.
This also removes our "croaring architecture detection" hack.
* refactor: replace manual roaring sets with arrow
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* chore: always pass `ROARING_ARCH`
Always pass the `ROARING_ARCH` that we would use for our prod builds.
Otherwise this can easily be missed during testing, profiling or build
system changes (e.g. should we ever move aways for our `Dockerfile`).
This feature was introduced with Rust/Cargo 1.56.
* docs: explain env passing
Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
Use cargo-deny in CI instead of cargo-audit.
Does the same job, but cargo-deny has more features, in particular the
"deny" functionality is helpful to prevent accidentally pulling in
dependencies we don't want (I'm looking at you OpenSSL).