ZIm/crates
Piotr Osiewicz 080e25dd45 chore: Merge zed lib with zed binary.
TL;DR:
- shaves off about 0.5 seconds from most of our debug builds.
- It would've slightly regressed release build due to preventing build pipelining, but as a tradeoff I've bumped up codegen-units for zed.

\# What did you come up with this time Piotr
In our zed repository I've noticed that merely *loading dependencies* in each crate takes non-trivial amount of time (~800ms in case of editor).
That is to say, the moment you \`use editor\`, your build time increases by 800ms - this happens just once in crate though, as it looks like compiler has to load .rlibs of all of the referenced dependencies.
This is visible under rustc's self-profile. Repro steps on twitter: https://twitter.com/PiotrOsiewicz/status/1762845413072101567

\# How does this commit alleviate this?
zed lib + zed bin are on critical path of every build and cumulatively take about 3s to build. This commit bundles all of this up into ~2.2s of bin build time instead.

\# Wait, splitting binary targets is good, no?
Splitting up a binary target into lib + bin is generally considered to be a good practice, as you can then reuse the lib part elsewhere if needed.
It also allows the build to kick off the moment metadata for all of the dependencies is available (thus, you don't need to wait for codegen).

However, we do not really use zed as a lib, so the first benefit is not really a thing for us.
The latter *is* indeed something we lose out on in release mode (in dev codegen phase of leaf-ish crates is insignificant, as we use shared generics - thus we don't spend much time codegening).
That's why I've bumped codegen units for zed crate to 16 in release mode to keep build times in tact.
2024-03-19 10:54:36 +01:00
..
activity_indicator Show formatting failure (#9229) 2024-03-12 16:30:08 +01:00
ai Enable clippy::derive_ord_xor_partial_ord (#9371) 2024-03-14 17:55:57 -04:00
assets Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
assistant Enable clippy::never_loop (#9006) 2024-03-14 14:07:50 -04:00
audio Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
auto_update markdown preview: highlight code blocks (#9087) 2024-03-12 12:54:12 +02:00
breadcrumbs Encode rem values derived from pixels using rems_from_px (#9367) 2024-03-14 16:39:55 -04:00
call Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
channel Fix joining hosted projects (#9038) 2024-03-07 19:56:41 -07:00
cli Make the cli crate depend on workspace clap (#9507) 2024-03-18 20:00:37 +01:00
client Remove wezterm fork from dependencie (#8998) 2024-03-12 21:27:40 +02:00
clock Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
collab Bump collab min version (#9521) 2024-03-18 16:59:51 -06:00
collab_ui ui: Refine TitleBar component (#9415) 2024-03-15 15:48:07 -04:00
collections Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
color Fix hex_to_hsla inside the color crate (#9412) 2024-03-15 16:58:46 -04:00
command_palette Encapsulate CommandPaletteFilter and CommandPaletteInterceptor (#9402) 2024-03-15 12:37:25 -04:00
command_palette_hooks Encapsulate CommandPaletteFilter and CommandPaletteInterceptor (#9402) 2024-03-15 12:37:25 -04:00
copilot Encapsulate CommandPaletteFilter and CommandPaletteInterceptor (#9402) 2024-03-15 12:37:25 -04:00
copilot_ui Add a setting for custom associations between languages and files (#9290) 2024-03-13 10:23:30 -07:00
db Always remember the last window size and position (#9416) 2024-03-15 14:24:44 -07:00
diagnostics Fix flickering (#9012) 2024-03-11 10:45:57 +01:00
editor Fix file git status refresh on .gitignore update (#9466) 2024-03-18 20:35:38 -06:00
extension Add ability to specify binary path/args for rust-analyzer (#9293) 2024-03-13 18:42:03 +01:00
extension_api Provide wasm extensions with APIs needed for using pre-installed LSP binaries (#9085) 2024-03-08 17:18:06 -05:00
extensions_ui Encode rem values derived from pixels using rems_from_px (#9367) 2024-03-14 16:39:55 -04:00
feature_flags Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
feedback Remove wezterm fork from dependencie (#8998) 2024-03-12 21:27:40 +02:00
file_finder Rename 'project_core' crate to 'worktree', make it just about worktrees (#9189) 2024-03-11 11:35:27 -07:00
fs Windows: implement symlink (#9508) 2024-03-18 14:27:39 -07:00
fsevent Add rs-notify implementation of fs::watch (#9040) 2024-03-08 22:18:44 -08:00
fuzzy Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
git Properly display deleted diff hunks (#9182) 2024-03-11 17:53:45 +02:00
go_to_line Restore --all-targets for clippy (#9346) 2024-03-14 12:39:45 -04:00
gpui linux: scrolling improvements (#9103) 2024-03-18 14:50:29 -07:00
gpui_macros Fix flickering (#9012) 2024-03-11 10:45:57 +01:00
install_cli Fix flickering (#9012) 2024-03-11 10:45:57 +01:00
journal Add --add/--new to control CLI behaviour (#9202) 2024-03-12 14:27:58 -06:00
language Fix panic loading language queries (#9506) 2024-03-18 14:25:26 -06:00
language_selector Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
language_tools Enable clippy::eq_op (#9369) 2024-03-14 17:05:07 -04:00
languages Add Vue language server auto update (#9474) 2024-03-19 09:58:07 +01:00
live_kit_client Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
live_kit_server Merge prost dependecies (#9522) 2024-03-18 20:33:20 -06:00
lsp Always resolve code action if needed (#8904) 2024-03-05 23:42:12 +02:00
markdown_preview Add a setting for custom associations between languages and files (#9290) 2024-03-13 10:23:30 -07:00
media Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
menu Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
multi_buffer Enable clippy::never_loop (#9006) 2024-03-14 14:07:50 -04:00
node_runtime Implement updating for node-based language servers (#9361) 2024-03-15 11:40:28 -04:00
notifications Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
outline Restore --all-targets for clippy (#9346) 2024-03-14 12:39:45 -04:00
picker Clean up Picker constructor signature (#9500) 2024-03-18 12:27:51 -04:00
prettier Fix prettier plugins does not seem to be picked up (#9193) 2024-03-12 11:38:30 +01:00
project Don't panic on missing mtime (#9513) 2024-03-18 14:19:33 -06:00
project_panel Fix file git status refresh on .gitignore update (#9466) 2024-03-18 20:35:38 -06:00
project_symbols Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
quick_action_bar Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
recent_projects chore: Wrap WorkspaceId in newtype (#9492) 2024-03-18 12:39:03 +01:00
refineable Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
release_channel Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
rich_text Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
rope rope: Preallocate chunks buffer 2024-03-11 13:28:10 +01:00
rpc Merge prost dependecies (#9522) 2024-03-18 20:33:20 -06:00
search Limit project search to avoid unresponsive app (#9404) 2024-03-18 10:49:27 +01:00
semantic_index Add a setting for custom associations between languages and files (#9290) 2024-03-13 10:23:30 -07:00
settings Add a setting for custom associations between languages and files (#9290) 2024-03-13 10:23:30 -07:00
snippet Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
sqlez Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
sqlez_macros Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
story Enable clippy::eq_op (#9369) 2024-03-14 17:05:07 -04:00
storybook windows: Add manifest for storybook (#9453) 2024-03-18 10:14:01 -04:00
sum_tree Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
task Small improvements of the task terminal spawn behavior (#9399) 2024-03-15 18:32:59 +02:00
tasks_ui task: Add ZED_PACKAGE task variable in Rust files. (#9491) 2024-03-18 12:18:42 +01:00
telemetry_events Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
terminal linux: scrolling improvements (#9103) 2024-03-18 14:50:29 -07:00
terminal_view Small improvements of the task terminal spawn behavior (#9399) 2024-03-15 18:32:59 +02:00
text Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
theme Allow overriding font style and weight via experimental.theme_overrides in settings (#9122) 2024-03-11 12:21:37 -04:00
theme_importer Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
theme_selector Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
time_format notification panel: rework time formatting (#8997) 2024-03-12 21:02:04 -06:00
ui Allow loading "Segoe Fluent Icons" font on macOS (#9421) 2024-03-15 17:35:10 -04:00
util Bump collab min version (#9521) 2024-03-18 16:59:51 -06:00
vcs_menu Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
vim Encapsulate CommandPaletteFilter and CommandPaletteInterceptor (#9402) 2024-03-15 12:37:25 -04:00
welcome Fix panic in open urls (#9032) 2024-03-07 13:52:50 -07:00
workspace chore: Wrap WorkspaceId in newtype (#9492) 2024-03-18 12:39:03 +01:00
worktree Fix file git status refresh on .gitignore update (#9466) 2024-03-18 20:35:38 -06:00
zed chore: Merge zed lib with zed binary. 2024-03-19 10:54:36 +01:00
zed_actions Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00