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

Allow loading and saving intermediate state for BddSwarm. #6

Open
tangentstorm opened this issue Sep 28, 2019 · 1 comment
Open

Allow loading and saving intermediate state for BddSwarm. #6

tangentstorm opened this issue Sep 28, 2019 · 1 comment
Assignees
Milestone

Comments

@tangentstorm
Copy link
Owner

tangentstorm commented Sep 28, 2019

Right now, this is configured by the definition of BDDBase in rs:

pub type BDDBase = BddBase<S,SimpleBddWorker<S>>;

I want to say this instead:

pub type BDDBase = BddBase<S,BddSwarm<S>>;

... But that is prevented because the two BddSwarm needs a custom Deserialize implementation, because it has fields that can't be deserialized (the inter-thread communication channels), and these also can't be easily ignored with #[serde(skip)] because they don't have reasonable Default values. Possibly these could be wrapped in Option, but I think it's probably better to refactor so that all WIP information is separated into its own struct.

@tangentstorm
Copy link
Owner Author

After #7 (enable swarming by default), this typechecks and runs, but so far, I only implemented serialization / deserialization for the completed work. That's fine for now, because BddSwarm never returns an unfinished query, but I'm leaving this open because soon we'll WIPBase<T>, where nodes don't need to be fully evaluated, and I'll want to capture much more of the intermediate state.

@tangentstorm tangentstorm self-assigned this Sep 28, 2019
@tangentstorm tangentstorm added this to the bex-0.1.4 milestone Sep 28, 2019
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

1 participant