Decouple workspace from call (#3380)
This PR decouples `call2` from `workspace2` in order to improve our compile times. Why pick such a small, innocent crate as `call`? It depends on `live_kit_client`, which is not-so-innocent and is in fact stalling our clean builds. In this PR, `call2` depends on `workspace2`; workspace crate defines a `CallHandler` trait for which the implementation resides in `call`; it it then all tied together in `zed`, which passes a factory of `Box<dyn CallHandler>` into workspace's `AppState`. Clean debug build before this change: ~1m45s Clean debug build after this change: ~1m25s Clean release build before this change: ~6m30s Clean release build after this change: ~4m30s ~Gonna follow up with release timings where I expect the change to be more impactful (as this allows 2/3 of the infamous trio of "project-workspace-editor" long pole to proceed quicker, without being blocked on live-kit-client build script)~. This should have little effect (if any) in incremental scenarios, where live_kit_client is already built. [release timings.zip](https://github.com/zed-industries/zed/files/13431121/release.timings.zip) Release Notes: - N/A
This commit is contained in:
commit
6da57cbc6e
8 changed files with 242 additions and 108 deletions
|
@ -180,6 +180,7 @@ fn main() {
|
|||
user_store,
|
||||
fs,
|
||||
build_window_options,
|
||||
call_factory: call::Call::new,
|
||||
// background_actions: todo!("ask Mikayla"),
|
||||
workspace_store,
|
||||
node_runtime,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue