salsa-rs / salsa

A generic framework for on-demand, incrementalized computation. Inspired by adapton, glimmer, and rustc's query system.
https://salsa-rs.netlify.app/
Apache License 2.0
2.13k stars 152 forks source link

introduce parallel salsa #568

Open davidbarsky opened 2 months ago

davidbarsky commented 2 months ago

Initial pass; very much not ready. Putting it up for initial feedback; I'm still figuring out how to wrap &Db reasonably.

netlify[bot] commented 2 months ago

Deploy Preview for salsa-rs canceled.

Name Link
Latest commit 0102ffb852d6a90ca509dc991b1a3c0cc3cf183a
Latest deploy log https://app.netlify.com/sites/salsa-rs/deploys/67118638fd98680008254f64
codspeed-hq[bot] commented 2 months ago

CodSpeed Performance Report

Merging #568 will not alter performance

Comparing davidbarsky/push-lqummkkxvkzn (0102ffb) with master (710691d)

Summary

✅ 8 untouched benchmarks

davidbarsky commented 2 months ago

The Miri errors appear to be coming from crossbeam-epoch, but I'm not sure how bad of an error that is.

Veykril commented 2 months ago

The Miri errors appear to be coming from crossbeam-epoch, but I'm not sure how bad of an error that is.

Judging from the issue tracker that crate seems to have a couple stacked borrows violations

nikomatsakis commented 2 months ago

Does miri have a way to add 'known failures'...

nikomatsakis commented 2 months ago

@davidbarsky I'd be ok moving the miri tests to "warn only" for the time being and then trying to investigate the use of crossbeam-epoch more closely.

davidbarsky commented 2 months ago

@davidbarsky I'd be ok moving the miri tests to "warn only" for the time being and then trying to investigate the use of crossbeam-epoch more closely.

Lemme see about doing that. I think I still need to port over a test or two over as well.

davidbarsky commented 1 month ago

Added a cancellation test.

MichaReiser commented 2 days ago

@davidbarsky what's the status of this PR? We now have a use case where the hacky hand rolled concurrency no longer works :laughing: