diff options
| author | user <user@clank> | 2026-08-08 20:46:53 +0200 |
|---|---|---|
| committer | user <user@clank> | 2026-08-12 19:34:19 +0200 |
| commit | ddfc11c86e8bc9284860ff5ce4923c88a49fa95c (patch) | |
| tree | 6f47ef49979b5c3d6e1ff516619fa5619b141156 | |
| parent | sl0p: blank the padding ring too, fixing remaining resize ghosting (diff) | |
| download | sl0ppi-ddfc11c86e8bc9284860ff5ce4923c88a49fa95c.tar.gz sl0ppi-ddfc11c86e8bc9284860ff5ce4923c88a49fa95c.tar.xz sl0ppi-ddfc11c86e8bc9284860ff5ce4923c88a49fa95c.zip | |
sl0p: add fastdev build profile + SPEED.md (60x faster iteration)
Building this fork for local use took ~3 minutes per one-line change:
[profile.release] sets lto = true and codegen-units = 1, so every rebuild
redid whole-program optimization on a single core. That is right for a
shipped artifact and pure waste for a binary we just want to look at in a
terminal - zellij is bound on a human, not on codegen.
[profile.fastdev] inherits release, keeps opt-level 3, drops LTO, uses 16
codegen units and keeps the incremental cache:
cargo build --profile fastdev -p zellij ~2.8s incremental (was ~3min)
[profile.release] is deliberately untouched, so shipping/benchmarking builds
are unchanged.
.fastfeedback/SPEED.md records the narrow commands, measured timings, the
deploy loop, and - importantly - the PRE-EXISTING test failure baselines
(30 in zellij-server, 5 in zellij-utils) so a future session does not waste
time chasing failures it did not cause.
Rejected: the gold linker (rustc warns it is deprecated with known Rust
bugs) and clang+lld (no lld binary installed). Dropping LTO removed the
dominant cost anyway.
| -rw-r--r-- | sl0ppij/.fastfeedback/SPEED.md | 81 | ||||
| -rw-r--r-- | sl0ppij/.fastfeedback/fastdev-cold.cmd | 1 | ||||
| -rw-r--r-- | sl0ppij/.fastfeedback/fastdev-cold.exit | 1 | ||||
| -rw-r--r-- | sl0ppij/.fastfeedback/fastdev-cold.log | 800 | ||||
| -rw-r--r-- | sl0ppij/.fastfeedback/fastdev-cold.pid | 1 | ||||
| -rw-r--r-- | sl0ppij/Cargo.toml | 21 |
6 files changed, 905 insertions, 0 deletions
diff --git a/sl0ppij/.fastfeedback/SPEED.md b/sl0ppij/.fastfeedback/SPEED.md new file mode 100644 index 0000000..4643370 --- /dev/null +++ b/sl0ppij/.fastfeedback/SPEED.md @@ -0,0 +1,81 @@ +# SPEED — zellij (sl0p fork) + +_Read this BEFORE running anything slow._ + +The single biggest trap in this repo: **`cargo build --release` takes ~3 minutes for a +one-line change.** `[profile.release]` sets `lto = true` + `codegen-units = 1`, so every +rebuild redoes whole-program optimization on one core. That is correct for shipping and +absurd for iteration. + +Use the `fastdev` profile instead. Same `opt-level = 3`, no LTO, 16 codegen units, +incremental cache kept. + +--- + +## Commands + +```bash +# cheap gate — ALWAYS before test/build +cargo check -p zellij-server # ~7s incremental + +# narrow test — DEFAULT RUNG +cargo test -p zellij-server --lib ui::pane_boundaries_frame # ~5s incremental +cargo test -p zellij-utils --lib gap_and_padding_tests # ~5s incremental + +# deployable binary for looking at it in a terminal +cargo build --profile fastdev -p zellij # ~3s incremental -> target/fastdev/zellij + +# real release (shipping / benchmarking only) +cargo build --release -p zellij # ~3min <-- BACKGROUND ONLY + +# full suite — BACKGROUND ONLY, once, at the gate +bgrun run suite -- cargo test -p zellij-server --lib +bgrun check suite +``` + +## Measured timings + +| command | time | notes | +|---|---|---| +| `cargo build --profile fastdev -p zellij` (incremental) | **2.8s** | zellij-server edit + relink | +| `cargo build --profile fastdev -p zellij` (cold) | 2m29s | one-time, per profile | +| `cargo build --release -p zellij` (incremental) | **~3min** | LTO + codegen-units=1. Avoid in the loop. | +| `cargo test -p zellij-server --lib <filter>` (incremental) | 4.8s | compile dominates; run is ~0.0s | +| `cargo test -p zellij-server --lib` (full) | ~7s run | after compile; **30 pre-existing failures** | +| `cargo test -p zellij-utils --lib` (full) | ~0.3s run | **5 pre-existing failures** | + +## Deploy loop (what we actually do) + +```bash +cargo build --profile fastdev -p zellij \ + && rm -f ~/bin/zellij \ + && cp target/fastdev/zellij ~/bin/zellij # rm first: "Text file busy" if running +``` +Then start a **new session** — a running server keeps its old inode. Config-only changes +(`gap`/`padding`/`title_alignment`) hot-reload; renderer changes do not. + +## KNOWN-PRE-EXISTING FAILURES (not regressions — do not chase) + +- `zellij-server --lib`: **30 failures** on a pristine tree (mostly + `tab::tab_integration_tests::*`, `screen::screen_tests::*`). +- `zellij-utils --lib`: **5 failures** (`setup::setup_test::*` snapshot tests). + +Always compare against baseline before believing you broke something: +```bash +git stash && cargo test -p zellij-server --lib 2>&1 | tail -3 && git stash pop +``` + +## SLOW TRAPS + +- `cargo build --release` in the inner loop — 60x slower than `fastdev` for no benefit. +- `cargo clean` — forfeits the incremental cache; never without evidence of a stale artifact. +- `cargo check --workspace --all-targets` — fails on missing **debug-profile** wasm plugin + assets (`target/wasm32-wasip1/debug/*.wasm`). Not a real error. Use `-p <crate> --all-targets`. +- The gold linker "works" but rustc warns it is deprecated with known Rust bugs. `lld` is + NOT installed (only `rust-lld` inside the toolchain, which needs nightly flags to use). + Not worth it — dropping LTO already removed the dominant cost. + +## Fork context + +Branch `sl0p/base`. `main` tracks upstream and is left clean. +Custom options live in `ui { pane_frames { title_alignment, gap, padding } }`. diff --git a/sl0ppij/.fastfeedback/fastdev-cold.cmd b/sl0ppij/.fastfeedback/fastdev-cold.cmd new file mode 100644 index 0000000..24eb5bb --- /dev/null +++ b/sl0ppij/.fastfeedback/fastdev-cold.cmd @@ -0,0 +1 @@ +cargo build --profile fastdev -p zellij diff --git a/sl0ppij/.fastfeedback/fastdev-cold.exit b/sl0ppij/.fastfeedback/fastdev-cold.exit new file mode 100644 index 0000000..573541a --- /dev/null +++ b/sl0ppij/.fastfeedback/fastdev-cold.exit @@ -0,0 +1 @@ +0 diff --git a/sl0ppij/.fastfeedback/fastdev-cold.log b/sl0ppij/.fastfeedback/fastdev-cold.log new file mode 100644 index 0000000..130a84d --- /dev/null +++ b/sl0ppij/.fastfeedback/fastdev-cold.log @@ -0,0 +1,800 @@ + Compiling proc-macro2 v1.0.107 + Compiling quote v1.0.47 + Compiling unicode-ident v1.0.1 + Compiling libc v0.2.176 + Compiling cfg-if v1.0.0 + Compiling shlex v1.3.0 + Compiling find-msvc-tools v0.1.9 + Compiling once_cell v1.21.3 + Compiling log v0.4.33 + Compiling memchr v2.7.6 + Compiling bitflags v2.11.0 + Compiling pin-project-lite v0.2.14 + Compiling bytes v1.11.1 + Compiling autocfg v1.1.0 + Compiling futures-core v0.3.31 + Compiling version_check v0.9.4 + Compiling itoa v1.0.14 + Compiling pkg-config v0.3.25 + Compiling thiserror v1.0.61 + Compiling rustix v1.1.2 + Compiling fnv v1.0.7 + Compiling futures-io v0.3.31 + Compiling linux-raw-sys v0.11.0 + Compiling smallvec v1.13.2 + Compiling tracing-core v0.1.33 + Compiling stable_deref_trait v1.2.1 + Compiling typenum v1.20.1 + Compiling futures-sink v0.3.31 + Compiling vcpkg v0.2.15 + Compiling ppv-lite86 v0.2.16 + Compiling slab v0.4.6 + Compiling simd-adler32 v0.3.10 + Compiling crossbeam-utils v0.8.15 + Compiling serde_core v1.0.228 + Compiling rustix v0.38.44 + Compiling adler2 v2.0.1 + Compiling syn v2.0.96 + Compiling jobserver v0.1.31 + Compiling syn v3.0.3 + Compiling miniz_oxide v0.8.9 + Compiling http v1.3.1 + Compiling serde v1.0.228 + Compiling cc v1.2.57 + Compiling object v0.37.3 + Compiling linux-raw-sys v0.4.15 + Compiling thiserror v2.0.19 + Compiling anyhow v1.0.95 + Compiling getrandom v0.3.1 + Compiling mio v1.0.3 + Compiling signal-hook-registry v1.4.0 + Compiling socket2 v0.5.7 + Compiling openssl-src v300.5.4+3.5.4 + Compiling heck v0.5.0 + Compiling io-lifetimes v2.0.3 + Compiling gimli v0.32.3 + Compiling cmake v0.1.54 + Compiling openssl-sys v0.9.111 + Compiling libz-sys v1.1.8 + Compiling libnghttp2-sys v0.1.8+1.55.1 + Compiling futures-channel v0.3.31 + Compiling generic-array v0.14.5 + Compiling rustc-demangle v0.1.28 + Compiling equivalent v1.0.1 + Compiling writeable v0.6.2 + Compiling fs_extra v1.3.0 + Compiling litemap v0.8.1 + Compiling dunce v1.0.5 + Compiling aws-lc-sys v0.39.0 + Compiling getrandom v0.2.10 + Compiling synstructure v0.13.2 + Compiling icu_properties_data v2.1.2 + Compiling percent-encoding v2.3.1 + Compiling zeroize v1.8.1 + Compiling httparse v1.10.1 + Compiling io-extras v0.18.4 + Compiling icu_normalizer_data v2.1.1 + Compiling zerocopy v0.8.17 + Compiling scopeguard v1.1.0 + Compiling rand_core v0.6.3 + Compiling addr2line v0.25.1 + Compiling thiserror-impl v2.0.19 + Compiling curl-sys v0.4.68+curl-8.4.0 + Compiling cap-primitives v3.4.4 + Compiling ambient-authority v0.0.2 + Compiling zerofrom-derive v0.1.6 + Compiling tracing-attributes v0.1.28 + Compiling tokio-macros v2.5.0 + Compiling thiserror-impl v1.0.61 + Compiling yoke-derive v0.8.1 + Compiling tokio v1.44.2 + Compiling zerovec-derive v0.11.2 + Compiling zerofrom v0.1.6 + Compiling tracing v0.1.41 + Compiling displaydoc v0.2.5 + Compiling serde_derive v1.0.228 + Compiling backtrace v0.3.76 + Compiling yoke v0.8.1 + Compiling futures-macro v0.3.31 + Compiling rand_chacha v0.3.1 + Compiling zerotrie v0.2.3 + Compiling fs-set-times v0.20.1 + Compiling zerovec v0.11.5 + Compiling form_urlencoded v1.2.1 + Compiling rustix-linux-procfs v0.1.1 + Compiling http-body v1.0.1 + Compiling ahash v0.8.11 + Compiling lock_api v0.4.11 + Compiling memoffset v0.6.5 + Compiling ipnet v2.9.0 + Compiling leb128 v0.2.5 + Compiling aws-lc-rs v1.16.2 + Compiling tinystr v0.8.2 + Compiling potential_utf v0.1.4 + Compiling hashbrown v0.17.1 + Compiling pin-utils v0.1.0 + Compiling icu_locale_core v2.1.1 + Compiling icu_collections v2.1.1 + Compiling iana-time-zone v0.1.60 + Compiling unicode-width v0.1.14 + Compiling allocator-api2 v0.2.21 + Compiling parking_lot_core v0.9.9 + Compiling utf8parse v0.2.2 + Compiling futures-task v0.3.31 + Compiling maybe-owned v0.3.4 + Compiling icu_provider v2.1.1 + Compiling inotify-sys v0.1.8 + Compiling tower-service v0.3.3 + Compiling futures-util v0.3.31 + Compiling icu_normalizer v2.1.1 + Compiling icu_properties v2.1.2 + Compiling anstyle-parse v1.0.0 + Compiling indexmap v2.14.0 + Compiling wast v35.0.2 + Compiling tokio-util v0.7.15 + Compiling rand v0.8.5 + Compiling rand_core v0.9.0 + Compiling block-buffer v0.10.4 + Compiling crypto-common v0.1.6 + Compiling rustls-pki-types v1.12.0 + Compiling terminal_size v0.4.4 + Compiling hybrid-array v0.4.13 + Compiling num-traits v0.2.15 + Compiling crossbeam-epoch v0.9.8 + Compiling libm v0.2.15 + Compiling atomic-waker v1.1.2 + Compiling serde_json v1.0.140 + Compiling colorchoice v1.0.5 + Compiling zerocopy v0.7.34 + Compiling anstyle v1.0.14 + Compiling is_terminal_polyfill v1.70.2 + Compiling anstyle-query v1.1.5 + Compiling ryu v1.0.10 + Compiling cap-std v3.4.4 + Compiling syn v1.0.96 + Compiling mime v0.3.17 + Compiling anstream v1.0.0 + Compiling witx v0.9.1 + Compiling h2 v0.4.15 + Compiling digest v0.10.7 + Compiling rand_chacha v0.9.0 + Compiling idna_adapter v1.2.1 + Compiling pin-project-internal v1.1.3 + Compiling libsqlite3-sys v0.27.0 + Compiling concurrent-queue v2.2.0 + Compiling either v1.17.0 + Compiling wiggle-macro v36.0.12 + Compiling clap_lex v1.1.0 + Compiling cfg_aliases v0.2.2 + Compiling crossbeam-queue v0.3.5 + Compiling httpdate v1.0.3 + Compiling lazy_static v1.4.0 + Compiling cpufeatures v0.2.2 + Compiling utf8_iter v1.0.4 + Compiling signal-hook v0.3.18 + Compiling curl v0.4.44 + Compiling owo-colors v4.3.0 + Compiling same-file v1.0.6 + Compiling event-listener v2.5.2 + Compiling tower-layer v0.3.3 + Compiling strsim v0.11.1 + Compiling async-channel v1.8.0 + Compiling walkdir v2.5.0 + Compiling wiggle-generate v36.0.12 + Compiling idna v1.1.0 + Compiling clap_builder v4.6.2 + Compiling pin-project v1.1.3 + Compiling sha1 v0.10.6 + Compiling nix v0.30.1 + Compiling itertools v0.10.5 + Compiling parking_lot v0.12.1 + Compiling inotify v0.11.4 + Compiling rand v0.9.0 + Compiling hashbrown v0.14.5 + Compiling block-buffer v0.12.1 + Compiling crypto-common v0.2.2 + Compiling miette-derive v5.8.0 + Compiling async-trait v0.1.80 + Compiling hyper v1.11.0 + Compiling clap_derive v4.6.4 + Compiling socket2 v0.4.9 + Compiling dirs-sys v0.3.7 + Compiling aho-corasick v1.0.1 + Compiling notify-types v2.1.0 + Compiling base64 v0.22.1 + Compiling arc-swap v1.5.0 + Compiling regex-syntax v0.7.1 + Compiling wasmparser v0.239.0 + Compiling isahc v1.7.2 + Compiling is_ci v1.2.0 + Compiling minimal-lexical v0.2.1 + Compiling rustls v0.23.27 + Compiling openssl-probe v0.1.5 + Compiling unicode-linebreak v0.1.5 + Compiling utf-8 v0.7.6 + Compiling fastrand v1.7.0 + Compiling waker-fn v1.1.0 + Compiling option-ext v0.2.0 + Compiling cap-fs-ext v3.4.4 + Compiling unicode-width v0.2.2 + Compiling time-core v0.1.8 + Compiling names v0.14.0 + Compiling untrusted v0.9.0 + Compiling system-interface v0.27.2 + Compiling data-encoding v2.9.0 + Compiling crc32fast v1.5.0 + Compiling powerfmt v0.2.0 + Compiling num-conv v0.2.0 + Compiling sync_wrapper v1.0.2 + Compiling parking v2.0.0 + Compiling time-macros v0.2.27 + Compiling tungstenite v0.28.0 + Compiling futures-lite v1.13.0 + Compiling deranged v0.5.8 + Compiling regex v1.8.1 + Compiling textwrap v0.16.2 + Compiling dirs-sys v0.5.0 + Compiling nom v7.1.1 + Compiling supports-color v3.0.2 + Compiling clap v4.6.4 + Compiling notify v8.2.0 + Compiling derivative v2.2.0 + Compiling hyper-util v0.1.20 + Compiling dirs v4.0.0 + Compiling miette v5.8.0 + Compiling digest v0.11.3 + Compiling wasmi_core v1.1.0 + Compiling hashlink v0.8.4 + Compiling prost-derive v0.12.6 + Compiling chrono v0.4.39 + Compiling url v2.5.4 + Compiling crossbeam-deque v0.8.1 + Compiling tracing-futures v0.2.5 + Compiling sluice v0.5.5 + Compiling http-body-util v0.1.3 + Compiling backtrace-ext v0.2.1 + Compiling miette-derive v7.6.0 + Compiling crossbeam-channel v0.5.4 + Compiling polling v2.2.0 + Compiling thread-id v4.0.0 + Compiling include_dir_macros v0.7.3 + Compiling http v0.2.9 + Compiling cookie v0.18.1 + Compiling vte v0.14.1 + Compiling fs-err v3.1.0 + Compiling encoding_rs v0.8.34 + Compiling cpufeatures v0.3.0 + Compiling subtle v2.6.1 + Compiling arrayvec v0.7.6 + Compiling fallible-streaming-iterator v0.1.9 + Compiling castaway v0.1.2 + Compiling supports-hyperlinks v3.2.0 + Compiling supports-unicode v3.0.0 + Compiling fallible-iterator v0.3.0 + Compiling fastrand v2.1.0 + Compiling log-mdc v0.1.0 + Compiling doctest-file v1.0.0 + Compiling lev_distance v0.1.1 + Compiling time v0.3.47 + Compiling interprocess v2.3.1 + Compiling suggest v0.5.1 + Compiling tempfile v3.10.1 + Compiling log4rs v1.2.0 + Compiling miette v7.6.0 + Compiling sha2 v0.11.0 + Compiling strip-ansi-escapes v0.2.1 + Compiling include_dir v0.7.3 + Compiling crossbeam v0.8.1 + Compiling axum-core v0.5.6 + Compiling prost v0.12.6 + Compiling wiggle v36.0.12 + Compiling wasmi_ir v1.1.0 + Compiling kdl v4.5.0 + Compiling shellexpand v3.0.0 + Compiling clap_complete v4.6.8 + Compiling directories v6.0.0 + Compiling tokio-tungstenite v0.28.0 + Compiling tower v0.5.2 + Compiling serde_urlencoded v0.7.1 + Compiling cap-rand v3.4.4 + Compiling tokio-stream v0.1.18 + Compiling uuid v1.16.0 + Compiling serde_path_to_error v0.1.17 + Compiling cap-time-ext v3.4.4 + Compiling strum_macros v0.28.0 + Compiling terminal_size v0.1.17 + Compiling litrs v1.0.0 + Compiling colorsys v0.6.5 + Compiling foldhash v0.2.0 + Compiling strum v0.28.0 + Compiling matchit v0.8.4 + Compiling wasmi_collections v1.1.0 + Compiling spin v0.9.8 + Compiling humantime v2.1.0 + Compiling colored v3.1.1 + Compiling axum v0.8.8 + Compiling document-features v0.2.12 + Compiling hashbrown v0.16.1 + Compiling console v0.15.0 + Compiling wasi-common v36.0.12 + Compiling flate2 v1.1.9 + Compiling sixel-tokenizer v0.1.0 + Compiling signal-hook-mio v0.2.5 + Compiling futures-executor v0.3.31 + Compiling num_cpus v1.17.0 + Compiling daemonix v0.1.0 + Compiling fdeflate v0.3.7 + Compiling wasmi v1.1.0 + Compiling bitflags v1.3.2 + Compiling shell-words v1.1.0 + Compiling openssl-probe v0.2.1 + Compiling file-id v0.2.2 + Compiling rustls-native-certs v0.8.3 + Compiling notify-debouncer-full v0.5.0 + Compiling dialoguer v0.11.0 + Compiling png v0.17.16 + Compiling futures v0.3.31 + Compiling crossterm v0.29.0 + Compiling sixel-image v0.2.1 + Compiling kasuari v0.4.12 + Compiling axum-extra v0.12.5 + Compiling vte v0.15.0 + Compiling tower-http v0.6.4 + Compiling rustls-pemfile v2.2.0 + Compiling sysinfo v0.39.6 + Compiling close_fds v0.3.2 + Compiling urlencoding v2.1.3 + Compiling highway v1.2.0 + Compiling zellij v0.45.0 (/home/user/lol/zellij) + Compiling ansi_term v0.12.1 + Compiling byteorder v1.4.3 + Compiling wasmi_wasi v1.1.0 + Compiling rustls-webpki v0.103.13 + Compiling tokio-rustls v0.26.2 + Compiling axum-server v0.8.0 + Compiling rusqlite v0.30.0 + Compiling zellij-utils v0.45.0 (/home/user/lol/zellij/zellij-utils) +warning: use of deprecated associated function `plugin_api::generated_api::api::action::ActionName::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/action.rs:105:35 + | +105 | match ProtobufActionName::from_i32(protobuf_action.name) { + | ^^^^^^^^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated associated function `plugin_api::generated_api::api::input_mode::InputMode::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/action.rs:134:44 + | +134 | ProtobufInputMode::from_i32(switch_to_mode_payload.input_mode) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::input_mode::InputMode::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/action.rs:147:48 + | +147 | ... ProtobufInputMode::from_i32(switch_to_mode_payload.input_mode) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::resize::ResizeDirection::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/action.rs:184:50 + | +184 | ProtobufResizeDirection::from_i32(move_focus_payload) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::resize::ResizeDirection::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/action.rs:194:50 + | +194 | ProtobufResizeDirection::from_i32(move_focus_or_tab_payload) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::resize::ResizeDirection::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/action.rs:205:64 + | +205 | .and_then(|d| ProtobufResizeDirection::from_i32(d)) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::pane_frame_style::PaneFrameStyle::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/action.rs:313:51 + | +313 | match ProtobufPaneFrameStyle::from_i32(payload.pane_frame_style) { + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::resize::ResizeDirection::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/action.rs:332:64 + | +332 | .and_then(|d| ProtobufResizeDirection::from_i32(d)) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::resize::ResizeDirection::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/action.rs:350:64 + | +350 | .and_then(|d| ProtobufResizeDirection::from_i32(d)) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::resize::ResizeDirection::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/action.rs:401:64 + | +401 | .and_then(|d| ProtobufResizeDirection::from_i32(d)) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::action::UnblockCondition::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/action.rs:541:70 + | +541 | ... .and_then(|uc| ProtobufUnblockCondition::from_i32(uc)) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::action::MoveTabDirection::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/action.rs:621:74 + | +621 | let direction: Direction = ProtobufMoveTabDirection::from_i32(move_tab_payload) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::action::SearchDirection::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/action.rs:788:57 + | +788 | direction: ProtobufSearchDirection::from_i32(search_direction) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::action::SearchOption::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/action.rs:798:59 + | +798 | ... option: ProtobufSearchOption::from_i32(search_option) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::action::UnblockCondition::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/action.rs:1054:66 + | +1054 | .and_then(|uc| ProtobufUnblockCondition::from_i32(uc)) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::resize::ResizeDirection::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/action.rs:2108:52 + | +2108 | .and_then(|d| ProtobufResizeDirection::from_i32(d)) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::action::BareKey::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/action.rs:2262:47 + | +2262 | let bare_key = match ProtobufBareKey::from_i32(protobuf_key.bare_key) { + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::action::KeyModifier::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/action.rs:2311:59 + | +2311 | let key_modifier = match ProtobufKeyModifier::from_i32(modifier) { + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::action::UnblockCondition::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/action.rs:2413:41 + | +2413 | match ProtobufUnblockCondition::from_i32(value) { + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::resize::ResizeDirection::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/action.rs:2542:60 + | +2542 | .and_then(|d| ProtobufResizeDirection::from_i32(d)) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::action::LayoutConstraint::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/action.rs:2708:57 + | +2708 | let constraint_type = ProtobufLayoutConstraint::from_i32(protobuf.constraint_type) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::action::SplitDirection::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/action.rs:3077:37 + | +3077 | ProtobufSplitDirection::from_i32(protobuf.children_split_direction) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::event::EventType::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/event.rs:65:34 + | +65 | match ProtobufEventType::from_i32(protobuf_event.name) { + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::event::CopyDestination::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/event.rs:124:50 + | +124 | ProtobufCopyDestination::from_i32(copy_to_clipboard) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::input_mode::InputMode::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/event.rs:567:52 + | +567 | ... ProtobufInputMode::from_i32(imk.mode)?.try_into().ok()?; + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::event::HostTerminalThemeIndication::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/event.rs:590:69 + | +590 | let mode = ProtobufHostTerminalThemeIndication::from_i32(p.mode) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::event::MouseEventName::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/event.rs:1653:31 + | +1653 | match MouseEventName::from_i32(mouse_event_payload.mouse_event_name) { + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::input_mode::InputMode::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/event.rs:1956:32 + | +1956 | ProtobufInputMode::from_i32(protobuf_mode_update_payload.current_mode) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::input_mode::InputMode::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/event.rs:1961:48 + | +1961 | .and_then(|b_m| ProtobufInputMode::from_i32(b_m)?.try_into().ok()); + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::input_mode::InputMode::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/event.rs:1967:68 + | +1967 | let input_mode: InputMode = ProtobufInputMode::from_i32(k.mode) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::event::WebSharing::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/event.rs:1998:47 + | +1998 | .and_then(|w| ProtobufWebSharing::from_i32(w)) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::event::PaneFrameStyle::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/event.rs:2020:51 + | +2020 | .and_then(|p| ProtobufPaneFrameStyle::from_i32(p)) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::event::EventType::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/event.rs:2165:48 + | +2165 | .filter_map(|i| ProtobufEventType::from_i32(*i)) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::event::PaneType::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/event.rs:3111:33 + | +3111 | match ProtobufPaneType::from_i32(protobuf_pane_id.pane_type) { + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::event::WebServerStatusIndication::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/event.rs:3203:42 + | +3203 | match WebServerStatusIndication::from_i32( + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::input_mode::InputMode::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/input_mode.rs:55:28 + | +55 | ProtobufInputMode::from_i32(protobuf_input_mode.input_mode) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::key::key::NamedKey::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/key.rs:19:45 + | +19 | let key = ProtobufNamedKey::from_i32(key_index).ok_or("invalid_key")?; + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::key::key::KeyModifier::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/key.rs:90:38 + | +90 | ProtobufKeyModifier::from_i32(main_modifier) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::key::key::KeyModifier::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/key.rs:97:38 + | +97 | ProtobufKeyModifier::from_i32(key_modifier) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::pipe_message::PipeSource::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/pipe_message.rs:12:33 + | +12 | ProtobufPipeSource::from_i32(protobuf_pipe_message.source), + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::plugin_command::FixedOrPercent::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/plugin_command.rs:176:61 + | +176 | .and_then(|x| match ProtobufFixedOrPercent::from_i32(x.r#type) { + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::plugin_command::FixedOrPercent::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/plugin_command.rs:187:61 + | +187 | .and_then(|y| match ProtobufFixedOrPercent::from_i32(y.r#type) { + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::plugin_command::FixedOrPercent::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/plugin_command.rs:197:47 + | +197 | match ProtobufFixedOrPercent::from_i32(width.r#type) { + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::plugin_command::FixedOrPercent::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/plugin_command.rs:208:47 + | +208 | match ProtobufFixedOrPercent::from_i32(height.r#type) { + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::plugin_command::PaneType::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/plugin_command.rs:302:33 + | +302 | match ProtobufPaneType::from_i32(protobuf_pane_id.pane_type) { + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::input_mode::InputMode::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/plugin_command.rs:661:28 + | +661 | ProtobufInputMode::from_i32(key_to_rebind.input_mode)? + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::input_mode::InputMode::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/plugin_command.rs:677:28 + | +677 | ProtobufInputMode::from_i32(key_to_unbind.input_mode)? + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::plugin_command::CommandName::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/plugin_command.rs:687:28 + | +687 | match CommandName::from_i32(protobuf_plugin_command.name) { + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::input_mode::InputMode::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/plugin_command.rs:897:46 + | +897 | match ProtobufInputMode::from_i32(switch_to_mode_payload.input_mode) { + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::pane_frame_style::PaneFrameStyle::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/plugin_command.rs:1133:51 + | +1133 | match ProtobufPaneFrameStyle::from_i32(payload.pane_frame_style) { + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::plugin_permission::PermissionType::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/plugin_command.rs:1294:69 + | +1294 | ... .filter_map(|p| ProtobufPermissionType::from_i32(*p)) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::plugin_command::HttpVerb::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/plugin_command.rs:1402:56 + | +1402 | let verb = match ProtobufHttpVerb::from_i32(web_request_payload.verb) { + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::resize::ResizeAction::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/resize.rs:15:29 + | +15 | match ResizeAction::from_i32(protobuf_resize.resize_action) { + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::resize::ResizeDirection::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/resize.rs:41:44 + | +41 | .and_then(|r| ResizeDirection::from_i32(r)) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::resize::ResizeAction::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/resize.rs:49:42 + | +49 | let resize = match ResizeAction::from_i32(protobuf_resize.resize_action) { + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::resize::ResizeDirection::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/resize.rs:84:32 + | +84 | match ResizeDirection::from_i32(protobuf_move_direction.direction) { + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::style::ThemeHue::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/style.rs:208:42 + | +208 | theme_hue: ProtobufThemeHue::from_i32(protobuf_palette.theme_hue) + | ^^^^^^^^ + +warning: use of deprecated associated function `plugin_api::generated_api::api::style::ColorType::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/plugin_api/style.rs:318:34 + | +318 | match ProtobufColorType::from_i32(protobuf_color.color_type) { + | ^^^^^^^^ + +warning: use of deprecated associated function `client_server_contract::client_server_contract::BareKey::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/ipc/enum_conversions.rs:127:23 + | +127 | ProtoBareKey::from_i32(value).ok_or_else(|| anyhow!("Invalid BareKey value: {}", value))?; + | ^^^^^^^^ + +warning: use of deprecated associated function `client_server_contract::client_server_contract::KeyModifier::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/ipc/enum_conversions.rs:136:44 + | +136 | let proto_modifier = ProtoKeyModifier::from_i32(value) + | ^^^^^^^^ + +warning: use of deprecated associated function `client_server_contract::client_server_contract::ResizeCause::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/ipc/protobuf_conversion.rs:217:47 + | +217 | let cause = ProtoResizeCause::from_i32(resize.cause) + | ^^^^^^^^ + +warning: use of deprecated associated function `client_server_contract::client_server_contract::HostTerminalThemeIndication::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/ipc/protobuf_conversion.rs:309:68 + | +309 | let proto_mode = ProtoHostTerminalThemeIndication::from_i32(msg.mode) + | ^^^^^^^^ + +warning: use of deprecated associated function `client_server_contract::client_server_contract::ExitReason::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/ipc/protobuf_conversion.rs:444:58 + | +444 | let proto_exit_reason = ProtoExitReason::from_i32(exit.exit_reason) + | ^^^^^^^^ + +warning: use of deprecated associated function `client_server_contract::client_server_contract::OnForceClose::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/ipc/protobuf_conversion.rs:864:51 + | +864 | .map(|o| match ProtoOnForceClose::from_i32(o) { + | ^^^^^^^^ + +warning: use of deprecated associated function `client_server_contract::client_server_contract::Clipboard::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/ipc/protobuf_conversion.rs:876:48 + | +876 | .map(|c| match ProtoClipboard::from_i32(c) { + | ^^^^^^^^ + +warning: use of deprecated associated function `client_server_contract::client_server_contract::WebSharing::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/ipc/protobuf_conversion.rs:901:49 + | +901 | .map(|w| match ProtoWebSharing::from_i32(w) { + | ^^^^^^^^ + +warning: use of deprecated associated function `client_server_contract::client_server_contract::MobileLayout::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/ipc/protobuf_conversion.rs:931:51 + | +931 | .map(|m| match ProtoMobileLayout::from_i32(m) { + | ^^^^^^^^ + +warning: use of deprecated associated function `client_server_contract::client_server_contract::NestedSessionHandling::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/ipc/protobuf_conversion.rs:948:60 + | +948 | .map(|n| match ProtoNestedSessionHandling::from_i32(n) { + | ^^^^^^^^ + +warning: use of deprecated associated function `client_server_contract::client_server_contract::InputMode::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/ipc/protobuf_conversion.rs:3307:27 + | +3307 | match ProtoInputMode::from_i32(i) { + | ^^^^^^^^ + +warning: use of deprecated associated function `nested_session_contract::nested_session_contract::NestedCapability::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/nested_session.rs:107:57 + | +107 | |capability| match proto::NestedCapability::from_i32(*capability) { + | ^^^^^^^^ + +warning: use of deprecated associated function `nested_session_contract::nested_session_contract::NestedDirection::from_i32`: Use the TryFrom<i32> implementation instead + --> zellij-utils/src/nested_session.rs:128:35 + | +128 | match proto::NestedDirection::from_i32(direction) { + | ^^^^^^^^ + + Compiling zellij-client v0.45.0 (/home/user/lol/zellij/zellij-client) + Compiling zellij-server v0.45.0 (/home/user/lol/zellij/zellij-server) +warning: field `stacked_pane_list` is never read + --> zellij-server/src/panes/tiled_panes/mod.rs:76:5 + | +67 | pub struct TiledPanes { + | ---------- field in this struct +... +76 | stacked_pane_list: Rc<RefCell<bool>>, + | ^^^^^^^^^^^^^^^^^ + | + = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default + +warning: `zellij-utils` (lib) generated 71 warnings +warning: `zellij-server` (lib) generated 1 warning + Finished `fastdev` profile [optimized] target(s) in 2m 29s diff --git a/sl0ppij/.fastfeedback/fastdev-cold.pid b/sl0ppij/.fastfeedback/fastdev-cold.pid new file mode 100644 index 0000000..6d2b7cb --- /dev/null +++ b/sl0ppij/.fastfeedback/fastdev-cold.pid @@ -0,0 +1 @@ +223126 diff --git a/sl0ppij/Cargo.toml b/sl0ppij/Cargo.toml index fa78334..4277283 100644 --- a/sl0ppij/Cargo.toml +++ b/sl0ppij/Cargo.toml @@ -135,6 +135,27 @@ lto = true strip = true codegen-units = 1 +# sl0p: fast iteration profile for locally-deployed builds. +# +# `release` is tuned for shipping: fat LTO plus codegen-units = 1 means every +# rebuild redoes whole-program optimization on a single core, which costs ~3 +# minutes per one-line change. For a build we are only going to look at in a +# terminal that is pure waste - zellij is I/O bound on a human, not on codegen. +# +# This keeps opt-level 3 (so it still feels like a real build) but drops LTO, +# parallelises codegen across cores, and keeps the incremental cache. +# +# cargo build --profile fastdev -p zellij -> target/fastdev/zellij +# +# Use `--release` for anything you actually ship or benchmark. +[profile.fastdev] +inherits = "release" +lto = false +codegen-units = 16 +strip = false +incremental = true +debug = false + [package.metadata.deb] depends = "$auto" license-file = ["LICENSE.md", "4"] |
