Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apply changes in the maint-0.5 branch #35

Merged
merged 37 commits into from
Sep 7, 2021
Merged

Conversation

tatsuya6502
Copy link
Member

@tatsuya6502 tatsuya6502 commented Sep 6, 2021

Apply recent changes in the maint-0.5 branch to the master branch. These changes include pull requests #28, #30, #32 #33 and #36.

It is currently failing because bitflags v1.3.1 is incompatible with the MSRV.
This issue will be addressed by another pull request.

(cherry picked from commit aa583ad)
The CI for the MSRV (1.46.0) is currently failing because parking_lot_core
v0.8.4 is incompatible. It seems it requires Rust 1.49.0 or newer. This CI
issue might be addressed later by another pull request.
- Remove the multiply operation (`max_capacity * 32`) when setting the
  capacity of the popularity estimator (`FrequencySketch`).
    - The implementation of the estimator was replaced in an older version
      of Moka and the multiply operation was not really needed since then.
- Add code to ensure that the capacity of the popularity estimator always
  fits within a range of `128u32..=u32::MAX`.
- Change the type of the internal fields of the estimator from `usize` to
  `u32` so that the estimator will work consistency on any platform with
  different pointer width.
- Reduce the max size of the popularity estimator on platforms with
  32-bit addressing.
- Change the type of the internal table of the estimator from `Vec<u64>`
  to `Box<[u64]>`.
- Add unit test to ensure overflows not to happen and the sizes of
  the population estimators are correct.
- Not a bug but for clarity, avoid a lossy cast from `u64` to `u32` before
  applying the table mask.
Handle `usize` overflow on big cache capacity
- Add the doc comments.
- Add reqwest crate to the dev-dependency because an example uses it.
Update the code examples in the doc comments.
Add examples to the doc for `get_or_insert_with` and `get_or_try_insert_with` methods
…insert_with`

- Add `Send` and `'static` bounds to the init futures.
- Add UI tests to ensure compile failures to occur for misuses of
  `get_or_(try_)insert_with`.
…insert_with`

Change the UI tests to run only when future feature is enabled.
Add `Send` and `'static` bounds to the init futures of `get_or_(try_)insert_with`
Downgrade crossbeam-epoch by downgrading moka-cht from v0.5.0 to v0.4.2.
moka-cht v0.4.2 has been published to crates.io.
Downgrade crossbeam-epoch from v0.9.x to v0.8.x
Conflicts:
    CHANGELOG.md
    Cargo.toml
    src/future/cache.rs
    src/sync/cache.rs
@tatsuya6502 tatsuya6502 added this to the v0.6.0 milestone Sep 6, 2021
@tatsuya6502 tatsuya6502 self-assigned this Sep 6, 2021
@tatsuya6502 tatsuya6502 marked this pull request as ready for review September 6, 2021 13:54
Copy link
Member Author

@tatsuya6502 tatsuya6502 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merging

@tatsuya6502 tatsuya6502 merged commit 0ef445a into master Sep 7, 2021
@tatsuya6502 tatsuya6502 deleted the merge-maint-0.5 branch September 7, 2021 01:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant