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

Build Errors when interfacing with the evmap crate #181

Open
pratikfegade opened this issue Apr 7, 2021 · 2 comments
Open

Build Errors when interfacing with the evmap crate #181

pratikfegade opened this issue Apr 7, 2021 · 2 comments

Comments

@pratikfegade
Copy link

Hi,

I'm trying to build Noria on the following system:

OS and distribution: Lubuntu 20.10, Linux kernel 5.8.0-25-generic
Rust: rustc 1.53.0-nightly (c051c5ddd 2021-04-06)
Noria commit: cd639f5. This is the master's HEAD at the time of writing this issue.

I get the following compile errors. It seems all have to do with interfacing with the evmap crate

   Compiling noria-dataflow v0.7.0 (/home/ppf/Documents/noria/noria/server/dataflow)
error[E0603]: struct `ReadHandle` is private
   --> server/dataflow/src/backlog/multir.rs:7:19
    |
7   |     Single(evmap::ReadHandle<DataType, Vec<DataType>, i64, RandomState>),
    |                   ^^^^^^^^^^ private struct
    |
note: the struct `ReadHandle` is defined here

error[E0603]: struct `ReadHandle` is private
   --> server/dataflow/src/backlog/multir.rs:8:19
    |
8   |     Double(evmap::ReadHandle<(DataType, DataType), Vec<DataType>, i64, RandomState>),
    |                   ^^^^^^^^^^ private struct
    |
note: the struct `ReadHandle` is defined here

error[E0603]: struct `ReadHandle` is private
   --> server/dataflow/src/backlog/multir.rs:9:17
    |
9   |     Many(evmap::ReadHandle<Vec<DataType>, Vec<DataType>, i64, RandomState>),
    |                 ^^^^^^^^^^ private struct
    |
note: the struct `ReadHandle` is defined here

error[E0603]: struct `WriteHandle` is private
   --> server/dataflow/src/backlog/multiw.rs:7:19
    |
7   |     Single(evmap::WriteHandle<DataType, Vec<DataType>, i64, RandomState>),
    |                   ^^^^^^^^^^^ private struct
    |
note: the struct `WriteHandle` is defined here

error[E0603]: struct `WriteHandle` is private
   --> server/dataflow/src/backlog/multiw.rs:8:19
    |
8   |     Double(evmap::WriteHandle<(DataType, DataType), Vec<DataType>, i64, RandomState>),
    |                   ^^^^^^^^^^^ private struct
    |
note: the struct `WriteHandle` is defined here

error[E0603]: struct `WriteHandle` is private
   --> server/dataflow/src/backlog/multiw.rs:9:17
    |
9   |     Many(evmap::WriteHandle<Vec<DataType>, Vec<DataType>, i64, RandomState>),
    |                 ^^^^^^^^^^^ private struct
    |
note: the struct `WriteHandle` is defined here

warning: unnecessary trailing semicolon
   --> server/dataflow/src/ops/topk.rs:224:10
    |
224 |         };
    |          ^ help: remove this semicolon
    |
    = note: `#[warn(redundant_semicolons)]` on by default

error[E0308]: mismatched types
  --> server/dataflow/src/backlog/mod.rs:55:39
   |
55 |             (multir::Handle::$variant(r), multiw::Handle::$variant(w))
   |                                       ^ expected struct `ReadHandle`, found struct `evmap::handles::WriteHandle`
...
61 |         1 => make!(Single),
   |              ------------- in this macro invocation
   |
   = note: expected struct `ReadHandle<noria_common::DataType, Vec<noria_common::DataType>, i64, ahash::RandomState>`
              found struct `evmap::handles::WriteHandle<_, _, {integer}, ahash::RandomState>`
   = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0308]: mismatched types
  --> server/dataflow/src/backlog/mod.rs:55:68
   |
55 |             (multir::Handle::$variant(r), multiw::Handle::$variant(w))
   |                                                                    ^ expected struct `evmap::handles::WriteHandle`, found struct `ReadHandle`
...
61 |         1 => make!(Single),
   |              ------------- in this macro invocation
   |
   = note: expected struct `evmap::handles::WriteHandle<noria_common::DataType, Vec<noria_common::DataType>, i64, ahash::RandomState>`
              found struct `ReadHandle<_, _, {integer}, ahash::RandomState>`
   = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0308]: mismatched types
  --> server/dataflow/src/backlog/mod.rs:55:39
   |
55 |             (multir::Handle::$variant(r), multiw::Handle::$variant(w))
   |                                       ^ expected struct `ReadHandle`, found struct `evmap::handles::WriteHandle`
...
62 |         2 => make!(Double),
   |              ------------- in this macro invocation
   |
   = note: expected struct `ReadHandle<(noria_common::DataType, noria_common::DataType), Vec<noria_common::DataType>, i64, ahash::RandomState>`
              found struct `evmap::handles::WriteHandle<_, _, {integer}, ahash::RandomState>`
   = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0308]: mismatched types
  --> server/dataflow/src/backlog/mod.rs:55:68
   |
55 |             (multir::Handle::$variant(r), multiw::Handle::$variant(w))
   |                                                                    ^ expected struct `evmap::handles::WriteHandle`, found struct `ReadHandle`
...
62 |         2 => make!(Double),
   |              ------------- in this macro invocation
   |
   = note: expected struct `evmap::handles::WriteHandle<(noria_common::DataType, noria_common::DataType), Vec<noria_common::DataType>, i64, ahash::RandomState>`
              found struct `ReadHandle<_, _, {integer}, ahash::RandomState>`
   = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0308]: mismatched types
  --> server/dataflow/src/backlog/mod.rs:55:39
   |
55 |             (multir::Handle::$variant(r), multiw::Handle::$variant(w))
   |                                       ^ expected struct `ReadHandle`, found struct `evmap::handles::WriteHandle`
...
63 |         _ => make!(Many),
   |              ----------- in this macro invocation
   |
   = note: expected struct `ReadHandle<Vec<noria_common::DataType>, Vec<noria_common::DataType>, i64, ahash::RandomState>`
              found struct `evmap::handles::WriteHandle<_, _, {integer}, ahash::RandomState>`
   = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0308]: mismatched types
  --> server/dataflow/src/backlog/mod.rs:55:68
   |
55 |             (multir::Handle::$variant(r), multiw::Handle::$variant(w))
   |                                                                    ^ expected struct `evmap::handles::WriteHandle`, found struct `ReadHandle`
...
63 |         _ => make!(Many),
   |              ----------- in this macro invocation
   |
   = note: expected struct `evmap::handles::WriteHandle<Vec<noria_common::DataType>, Vec<noria_common::DataType>, i64, ahash::RandomState>`
              found struct `ReadHandle<_, _, {integer}, ahash::RandomState>`
   = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0599]: no method named `read` found for reference `&ReadHandle<noria_common::DataType, Vec<noria_common::DataType>, i64, ahash::RandomState>` in the current scope
  --> server/dataflow/src/backlog/multir.rs:28:29
   |
28 |                 let map = h.read()?;
   |                             ^^^^ method not found in `&ReadHandle<noria_common::DataType, Vec<noria_common::DataType>, i64, ahash::RandomState>`

error[E0599]: no method named `read` found for reference `&ReadHandle<(noria_common::DataType, noria_common::DataType), Vec<noria_common::DataType>, i64, ahash::RandomState>` in the current scope
  --> server/dataflow/src/backlog/multir.rs:57:33
   |
57 |                     let map = h.read()?;
   |                                 ^^^^ method not found in `&ReadHandle<(noria_common::DataType, noria_common::DataType), Vec<noria_common::DataType>, i64, ahash::RandomState>`

error[E0599]: no method named `read` found for reference `&ReadHandle<Vec<noria_common::DataType>, Vec<noria_common::DataType>, i64, ahash::RandomState>` in the current scope
  --> server/dataflow/src/backlog/multir.rs:64:29
   |
64 |                 let map = h.read()?;
   |                             ^^^^ method not found in `&ReadHandle<Vec<noria_common::DataType>, Vec<noria_common::DataType>, i64, ahash::RandomState>`

warning: use of deprecated associated function `evmap::handles::WriteHandle::<K, V, M, S>::empty`: Renamed to remove_entry
  --> server/dataflow/src/backlog/multiw.rs:38:19
   |
38 |                 h.empty(key_to_single(k).into_owned());
   |                   ^^^^^
   |
   = note: `#[warn(deprecated)]` on by default

warning: use of deprecated associated function `evmap::handles::WriteHandle::<K, V, M, S>::empty`: Renamed to remove_entry
  --> server/dataflow/src/backlog/multiw.rs:41:19
   |
41 |                 h.empty(key_to_double(k).into_owned());
   |                   ^^^^^

warning: use of deprecated associated function `evmap::handles::WriteHandle::<K, V, M, S>::empty`: Renamed to remove_entry
  --> server/dataflow/src/backlog/multiw.rs:44:19
   |
44 |                 h.empty(k.into_owned());
   |                   ^^^^^

error[E0599]: no method named `refresh` found for mutable reference `&mut evmap::handles::WriteHandle<noria_common::DataType, Vec<noria_common::DataType>, i64, ahash::RandomState>` in the current scope
  --> server/dataflow/src/backlog/multiw.rs:67:19
   |
67 |                 h.refresh();
   |                   ^^^^^^^ method not found in `&mut evmap::handles::WriteHandle<noria_common::DataType, Vec<noria_common::DataType>, i64, ahash::RandomState>`

error[E0599]: no method named `refresh` found for mutable reference `&mut evmap::handles::WriteHandle<(noria_common::DataType, noria_common::DataType), Vec<noria_common::DataType>, i64, ahash::RandomState>` in the current scope
  --> server/dataflow/src/backlog/multiw.rs:70:19
   |
70 |                 h.refresh();
   |                   ^^^^^^^ method not found in `&mut evmap::handles::WriteHandle<(noria_common::DataType, noria_common::DataType), Vec<noria_common::DataType>, i64, ahash::RandomState>`

error[E0599]: no method named `refresh` found for mutable reference `&mut evmap::handles::WriteHandle<Vec<noria_common::DataType>, Vec<noria_common::DataType>, i64, ahash::RandomState>` in the current scope
  --> server/dataflow/src/backlog/multiw.rs:73:19
   |
73 |                 h.refresh();
   |                   ^^^^^^^ method not found in `&mut evmap::handles::WriteHandle<Vec<noria_common::DataType>, Vec<noria_common::DataType>, i64, ahash::RandomState>`

error[E0599]: no method named `read` found for reference `&evmap::handles::WriteHandle<noria_common::DataType, Vec<noria_common::DataType>, i64, ahash::RandomState>` in the current scope
  --> server/dataflow/src/backlog/multiw.rs:85:29
   |
85 |                 let map = h.read()?;
   |                             ^^^^ method not found in `&evmap::handles::WriteHandle<noria_common::DataType, Vec<noria_common::DataType>, i64, ahash::RandomState>`

error[E0599]: no method named `read` found for reference `&evmap::handles::WriteHandle<(noria_common::DataType, noria_common::DataType), Vec<noria_common::DataType>, i64, ahash::RandomState>` in the current scope
   --> server/dataflow/src/backlog/multiw.rs:114:33
    |
114 |                     let map = h.read()?;
    |                                 ^^^^ method not found in `&evmap::handles::WriteHandle<(noria_common::DataType, noria_common::DataType), Vec<noria_common::DataType>, i64, ahash::RandomState>`

error[E0599]: no method named `read` found for reference `&evmap::handles::WriteHandle<Vec<noria_common::DataType>, Vec<noria_common::DataType>, i64, ahash::RandomState>` in the current scope
   --> server/dataflow/src/backlog/multiw.rs:121:29
    |
121 |                 let map = h.read()?;
    |                             ^^^^ method not found in `&evmap::handles::WriteHandle<Vec<noria_common::DataType>, Vec<noria_common::DataType>, i64, ahash::RandomState>`
@jonhoo
Copy link
Contributor

jonhoo commented Apr 8, 2021

Ah, yes, this is probably because evmap has changed a fair amount since the latest commit on master, but it did so using additional alpha versions. I think you can fix this by changing the evmap dependency in Cargo.toml to start with a leading = so that you pin to that specific version of evmap!

@pratikfegade
Copy link
Author

Thanks! That worked.

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

No branches or pull requests

2 participants