| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
chore: isolate story examples from test-support (#2985) ## Description Running story examples enables the gallery's `gpui-kit/test-support` development dependency. GPUI's `App::flush_effects()` then synchronously draws dirty windows during updates, adding work to interactive execution. Move all eight story examples into standalone `example-*` workspace packages that depend on the gallery normally. Their GPUI dependency graphs exclude `test-support` and `leak-detection`. Move fixtures with them, update shared fixture references, and update the documented commands. Editor behavior and story test configuration are preserved. This is a temporary workaround for the reported Linux stuttering, not a fix for GPUI's test-support performance. Why the slowdown is particularly severe on Linux still needs profiling and an upstream investigation; no before/after frame-time measurements or cross-platform performance verification are claimed here. ## Break Changes Launch the migrated examples by package name: ```diff - cargo run --example editor + cargo run -p example-editor - cargo run --example stream_markdown + cargo run -p example-stream-markdown ``` The same convention applies to brush, dock, html, large-text, markdown, and tiles. ## How to Test - Build all eight packages with `cargo build -p example-editor -p example-brush -p example-dock -p example-html -p example-large-text -p example-markdown -p example-stream-markdown -p example-tiles`. - `cargo test -p example-markdown`: 10 tests. - Inspect each package with `cargo tree -p example-editor -e features -i gpui-pre` (substitute each package): no `test-support` or `leak-detection` features. - Rust formatting, diff whitespace, fixture paths, and source-move equivalence checked. Interactive Linux scrolling and macOS/Windows performance have not been tested. ## Checklist - [x] Read the contributing guidelines. - [x] Reviewed the migration diff; AI-assisted implementation. - [ ] Ran interactive examples and verified scrolling. - [ ] Tested macOS, Windows and Linux performance. | 30 天前 | |
kit: Add optional gpui-fast backend (#3375) Add an optional `gpui-fast` feature across GPUI Kit’s existing crates: ```toml gpui-kit = { version = "0.7", features = ["gpui-fast"] } ``` No new crates. Preserve the existing `gpui-pre-*` workspace dependencies and default backend; optional Fast dependencies and internal conditional aliases select the engine. Existing application imports and macros continue to work. This is additive, with no breaking changes. Upstream packages still compile because Cargo features are additive. ## Public API - **gpui-kit:** `gpui-fast` selects Fast for core, platforms, and enabled layers. - **gpui-base, gpui-component, gpui-kit-assets, gpui-fps, gpui-wry, gpui-shell, gpui-component-shell:** `gpui-fast` selects the matching backend for standalone consumers. - **gpui-component-macros:** `#[derive(IntoPlot)]` additionally recognizes direct Fast dependencies. - Gallery and examples expose the same feature for comparisons. ## Validation 27 focused UI/macro/assets tests and 9 documentation tests pass. Default/Fast configurations, examples, WebView, Shell, benchmarks, and nightly WebAssembly compile. Clippy, formatting, dependency, and snapshot-pin checks pass. CI adds native and WebAssembly coverage. AI-assisted with Codex. | 12 小时前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 30 天前 | ||
| 12 小时前 |