| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
install: parallelize package unpack and refactor worker controls Switch --parallel-processing from a boolean to a worker count capped by CPU cores, and use it to run unpack_package() concurrently in wait_downloads_and_unpack() with a hard limit of six unpack workers. Signed-off-by: Wu Fengguang <wfg@mail.ustc.edu.cn> | 4 个月前 | |
vm: unify lifecycle management with vm_keep_timeout and remove reuse_vm/vm_reuse_connect ## Problem/Purpose The reuse_vm and vm_reuse_connect flags had confusing semantics that made the code hard to understand and maintain. VM lifecycle control was scattered across multiple flags and conditional checks. ## Background/Context Session file is the cross-process coordination mechanism. When a VM session exists, it MUST be reused ("能reuse就必须reuse"). The VM lifecycle is independent from epkg run lifecycle (VM lifecycle >= epkg run). ## Solution Unified VM lifecycle control through vm_keep_timeout (Option<u32>): - None: VM shuts down immediately after command completes - Some(0): VM never times out (persistent) - Some(N) > 0: VM shuts down after N seconds idle Key changes: 1. Changed VmConfig.timeout from u32 to Option<u32> 2. Removed reuse_vm and vm_reuse_connect fields from RunOptions 3. Removed --reuse CLI flag (reuse is now always attempted) 4. Made session file registration UNCONDITIONAL for cross-process discovery 5. Guest daemon decides lifecycle based solely on vm_keep_timeout_secs 6. Removed unused functions: is_vm_reuse_active_for_env, send_command_to_running_qemu_guest ## Usage - epkg run --isolate=vm /bin/ls: VM shuts down immediately (timeout=None) - epkg run --isolate=vm --vm-keep-timeout=30 /bin/ls: VM idle 30s then shutdown - epkg vm start --set timeout=60: VM persistent for 60s idle timeout - epkg vm start --set timeout=0: VM never shuts down until manual stop - Concurrent epkg run automatically discovers and reuses existing session Signed-off-by: Wu Fengguang <wfg@mail.ustc.edu.cn> | 2 个月前 | |
install: parallelize package unpack and refactor worker controls Switch --parallel-processing from a boolean to a worker count capped by CPU cores, and use it to run unpack_package() concurrently in wait_downloads_and_unpack() with a hard limit of six unpack workers. Signed-off-by: Wu Fengguang <wfg@mail.ustc.edu.cn> | 4 个月前 | |
docs: update symlink API references to new explicit names Replace lfs::symlink() with appropriate explicit API names in documentation: - docs/zh/plan/cross-platform.md: symlink design principles - docs/zh/architecture/dpkg-database.md: code example Signed-off-by: Wu Fengguang <wfg@mail.ustc.edu.cn> | 4 个月前 | |
install: parallelize package unpack and refactor worker controls Switch --parallel-processing from a boolean to a worker count capped by CPU cores, and use it to run unpack_package() concurrently in wait_downloads_and_unpack() with a hard limit of six unpack workers. Signed-off-by: Wu Fengguang <wfg@mail.ustc.edu.cn> | 4 个月前 | |
docs: add WSL2 debugging essentials to libkrun-vm-troubleshooting.md Add three critical debugging sections at the top of the document: 1. WSL2 environment variable passing (WSLENV) - Shows how to pass EPKG_DEBUG_LIBKRUN and RUST_LOG to Windows exe - Required for getting debug output from epkg.exe in WSL2 2. Windows cross-compilation (make cross-windows) - Standard command for building Windows binary in WSL2 3. Kernel log analysis (latest-console.log path) - Location of VM kernel logs on Windows - Essential for diagnosing init segfaults, virtio issues These are prerequisite steps before attempting to debug any VM issues. Signed-off-by: Wu Fengguang <wfg@mail.ustc.edu.cn> | 3 个月前 | |
docs: sync getting-started.md with README quick start changes Updates: - Install: curl|bash with platform labels (Linux/macOS/WSL2), add Windows PowerShell section - Example env name: myenv -> alpine for consistency with README - Run command: add --isolate=env|fs|vm examples showing three isolation modes Signed-off-by: Wu Fengguang <wfg@mail.ustc.edu.cn> | 3 个月前 | |
docs: restructure docs, consolidate intro into README, add developer quick start - Replace long README with concise overview: use cases, features, quick start, supported distros, main commands table, installation layout, how-it-works (run namespaces, install stages). - Add docs/index.md as doc index - Add docs/user-guide/developer-quick-start.md: build deps, standard/static build, dev loop, try a channel, testing (unit, solver, lua, e2e). - Add docs/user-guide/: getting-started, environments, package-operations, advanced. Align examples with current epkg output (e.g. DEPTH/SIZE/PACKAGE, env list columns). Add dependency resolution note, best practices. - Add docs/reference/: commands, repositories, paths. Document PATHS from epkg help; clarify cache vs store in paths.md. Signed-off-by: Wu Fengguang <wfg@mail.ustc.edu.cn> | 5 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 4 个月前 | ||
| 2 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 5 个月前 |