Blog: 2023-08-01

From razwiki
Jump to navigation Jump to search


Hacking on rust and having fun, while trying to debug this fish issue https://github.com/fish-shell/fish-shell/issues/7944

In this commit https://github.com/fish-shell/fish-shell/commit/7fea321b3e58f5801bf7544d7e73cedbed5221df

I see a tmux test, good example of how to do this; useful idea for my editor-testing scheme.

Side quest meanwhile involves getting neovim config in lua - I wanted to use the clientserver feature to avoid having to do special handling to get the :drop command through to the parent vim in a vim terminal.

Now that fish is moving more to rust (rust overtook c++ in the last 2 weeks) I have renewed interest in that. Here's a tiny grep program from a rust commandline guide:

https://rust-cli.github.io/book/tutorial/impl-draft.html

use clap::Parser;

#[derive(Parser)]
struct Cli {
    /// The pattern to look for
    pattern: String,

    /// The file being searched
    path: std::path::PathBuf,
}


fn main() {
    let args = Cli::parse();
    println!("so you tryna search {} in {}", args.pattern, args.path.display());

    let content = std::fs::read_to_string(&args.path).expect("unable to read file");

    for line in content.lines() {
        if line.contains(&args.pattern) {
            println!("{}", line)
        }
    }
}

Just now I got vagrant working by disabling systemd in /etc/wsl.conf. But downloading a debian image is slow on slow internet! The use case here is to try to build fish in a virtual machine - right now I'm getting an error about cstddef:

fish-shell $ make
cmake --build build
gmake[1]: Entering directory '/home/razzi/forks/fish-shell/build'
gmake[2]: Entering directory '/home/razzi/forks/fish-shell/build'
gmake[3]: Entering directory '/home/razzi/forks/fish-shell/build'
gmake[3]: Leaving directory '/home/razzi/forks/fish-shell/build'
[  0%] Built target cargo-prebuild_fish-rust
gmake[3]: Entering directory '/home/razzi/forks/fish-shell/build'
gmake[3]: Leaving directory '/home/razzi/forks/fish-shell/build'
gmake[3]: Entering directory '/home/razzi/forks/fish-shell/build'
   Compiling fish-rust v0.1.0 (/home/razzi/forks/fish-shell/fish-rust)
error: failed to run custom build command for `fish-rust v0.1.0 (/home/razzi/forks/fish-shell/fish-rust)`

Caused by:
  process didn't exit successfully: `/home/razzi/forks/fish-shell/build/./cargo/build/release/build/fish-rust-e27caf59c3454b92/build-script-build` (exit status: 101)
  --- stdout
  TARGET = Some("x86_64-unknown-linux-gnu")
  OPT_LEVEL = Some("3")
  HOST = Some("x86_64-unknown-linux-gnu")
  cargo:rerun-if-env-changed=CC_x86_64-unknown-linux-gnu
  CC_x86_64-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=CC_x86_64_unknown_linux_gnu
  CC_x86_64_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=HOST_CC
  HOST_CC = None
  cargo:rerun-if-env-changed=CC
  CC = None
  cargo:rerun-if-env-changed=CFLAGS_x86_64-unknown-linux-gnu
  CFLAGS_x86_64-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=CFLAGS_x86_64_unknown_linux_gnu
  CFLAGS_x86_64_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=HOST_CFLAGS
  HOST_CFLAGS = None
  cargo:rerun-if-env-changed=CFLAGS
  CFLAGS = None
  cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some("false")
  CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
  running: "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-Wall" "-Wextra" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/src/compat.o" "-c" "src/compat.c"
  exit status: 0
  cargo:rerun-if-env-changed=AR_x86_64-unknown-linux-gnu
  AR_x86_64-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=AR_x86_64_unknown_linux_gnu
  AR_x86_64_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=HOST_AR
  HOST_AR = None
  cargo:rerun-if-env-changed=AR
  AR = None
  cargo:rerun-if-env-changed=ARFLAGS_x86_64-unknown-linux-gnu
  ARFLAGS_x86_64-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=ARFLAGS_x86_64_unknown_linux_gnu
  ARFLAGS_x86_64_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=HOST_ARFLAGS
  HOST_ARFLAGS = None
  cargo:rerun-if-env-changed=ARFLAGS
  ARFLAGS = None
  running: "ar" "cq" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/libcompat.a" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/src/compat.o"
  exit status: 0
  running: "ar" "s" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/libcompat.a"
  exit status: 0
  cargo:rustc-link-lib=static=compat
  cargo:rustc-link-search=native=/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out
  cargo:rustc-link-search=/usr/local/lib
  cargo:rerun-if-env-changed=CMAKE_WITH_GETTEXT
  OPT_LEVEL = Some("3")
  TARGET = Some("x86_64-unknown-linux-gnu")
  HOST = Some("x86_64-unknown-linux-gnu")
  cargo:rerun-if-env-changed=CC_x86_64-unknown-linux-gnu
  CC_x86_64-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=CC_x86_64_unknown_linux_gnu
  CC_x86_64_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=HOST_CC
  HOST_CC = None
  cargo:rerun-if-env-changed=CC
  CC = None
  cargo:rerun-if-env-changed=CFLAGS_x86_64-unknown-linux-gnu
  CFLAGS_x86_64-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=CFLAGS_x86_64_unknown_linux_gnu
  CFLAGS_x86_64_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=HOST_CFLAGS
  HOST_CFLAGS = None
  cargo:rerun-if-env-changed=CFLAGS
  CFLAGS = None
  cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some("false")
  CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
  cargo:rerun-if-env-changed=CC_x86_64-unknown-linux-gnu
  CC_x86_64-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=CC_x86_64_unknown_linux_gnu
  CC_x86_64_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=HOST_CC
  HOST_CC = None
  cargo:rerun-if-env-changed=CC
  CC = None
  cargo:rerun-if-env-changed=CFLAGS_x86_64-unknown-linux-gnu
  CFLAGS_x86_64-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=CFLAGS_x86_64_unknown_linux_gnu
  CFLAGS_x86_64_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=HOST_CFLAGS
  HOST_CFLAGS = None
  cargo:rerun-if-env-changed=CFLAGS
  CFLAGS = None
  cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS
  CRATE_CC_NO_DEFAULTS = None
  CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
  cargo:rustc-cfg=feature="gettext"
  cargo:CXXBRIDGE_PREFIX=fish-rust
  cargo:CXXBRIDGE_DIR0=/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include
  cargo:CXXBRIDGE_DIR1=/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate
  TARGET = Some("x86_64-unknown-linux-gnu")
  OPT_LEVEL = Some("3")
  HOST = Some("x86_64-unknown-linux-gnu")
  cargo:rerun-if-env-changed=CXX_x86_64-unknown-linux-gnu
  CXX_x86_64-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=CXX_x86_64_unknown_linux_gnu
  CXX_x86_64_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=HOST_CXX
  HOST_CXX = None
  cargo:rerun-if-env-changed=CXX
  CXX = None
  cargo:rerun-if-env-changed=CXXFLAGS_x86_64-unknown-linux-gnu
  CXXFLAGS_x86_64-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=CXXFLAGS_x86_64_unknown_linux_gnu
  CXXFLAGS_x86_64_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=HOST_CXXFLAGS
  HOST_CXXFLAGS = None
  cargo:rerun-if-env-changed=CXXFLAGS
  CXXFLAGS = None
  cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some("false")
  CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
  cargo:rerun-if-env-changed=CXX_x86_64-unknown-linux-gnu
  CXX_x86_64-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=CXX_x86_64_unknown_linux_gnu
  CXX_x86_64_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=HOST_CXX
  HOST_CXX = None
  cargo:rerun-if-env-changed=CXX
  CXX = None
  cargo:rerun-if-env-changed=CXXFLAGS_x86_64-unknown-linux-gnu
  CXXFLAGS_x86_64-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=CXXFLAGS_x86_64_unknown_linux_gnu
  CXXFLAGS_x86_64_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=HOST_CXXFLAGS
  HOST_CXXFLAGS = None
  cargo:rerun-if-env-changed=CXXFLAGS
  CXXFLAGS = None
  cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS
  CRATE_CC_NO_DEFAULTS = None
  CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-abbrs.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/abbrs.rs.cc"
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/be9f9ba659b2b3bf-function.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/builtins/function.rs.cc"
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-common.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/common.rs.cc"
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-env_dispatch.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/env_dispatch.rs.cc"
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-ast.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/ast.rs.cc"
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/be9f9ba659b2b3bf-shared.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/builtins/shared.rs.cc"
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/fb5a9757f85e06e2-env_ffi.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/env/env_ffi.rs.cc"
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-event.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/event.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-fd_monitor.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/fd_monitor.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-fd_readable_set.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/fd_readable_set.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-fds.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/fds.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-ffi_init.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/ffi_init.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-ffi_tests.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/ffi_tests.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-fish_indent.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/fish_indent.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-function.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/function.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-future_feature_flags.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/future_feature_flags.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-highlight.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/highlight.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-job_group.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/job_group.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-kill.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/kill.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-null_terminated_array.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/null_terminated_array.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-output.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/output.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-parse_constants.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/parse_constants.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-parse_tree.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/parse_tree.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-parse_util.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/parse_util.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-print_help.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/print_help.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-redirection.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/redirection.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-signal.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/signal.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-smoke.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/smoke.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-termsize.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/termsize.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-threads.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/threads.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-timer.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/timer.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-tokenizer.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/tokenizer.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-topic_monitor.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/topic_monitor.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-trace.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/trace.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-util.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/util.rs.cc"
  exit status: 0
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include" "-I" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate" "-I" "/home/razzi/forks/fish-shell/fish-rust/../src/" "-I" "/home/razzi/forks/fish-shell/build" "-I" "/home/razzi/forks/fish-shell/build/cargo/build/x86_64-unknown-linux-gnu/cxxbridge/rust/" "-Wall" "-Wextra" "-Wno-comment" "-std=c++11" "-o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-wait_handle.rs.o" "-c" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/sources/fish-rust/src/wait_handle.rs.cc"
  exit status: 0
  exit status: 0
  exit status: 0
  exit status: 0
  exit status: 0
  exit status: 0
  exit status: 0
  exit status: 0
  cargo:rerun-if-env-changed=AR_x86_64-unknown-linux-gnu
  AR_x86_64-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=AR_x86_64_unknown_linux_gnu
  AR_x86_64_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=HOST_AR
  HOST_AR = None
  cargo:rerun-if-env-changed=AR
  AR = None
  cargo:rerun-if-env-changed=ARFLAGS_x86_64-unknown-linux-gnu
  ARFLAGS_x86_64-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=ARFLAGS_x86_64_unknown_linux_gnu
  ARFLAGS_x86_64_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=HOST_ARFLAGS
  HOST_ARFLAGS = None
  cargo:rerun-if-env-changed=ARFLAGS
  ARFLAGS = None
  running: "ar" "cq" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/libfish-rust.a" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-abbrs.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-ast.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/be9f9ba659b2b3bf-shared.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/be9f9ba659b2b3bf-function.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-common.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/fb5a9757f85e06e2-env_ffi.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-env_dispatch.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-event.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-fd_monitor.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-fd_readable_set.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-fds.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-ffi_init.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-ffi_tests.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-fish_indent.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-function.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-future_feature_flags.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-highlight.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-job_group.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-kill.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-null_terminated_array.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-output.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-parse_constants.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-parse_tree.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-parse_util.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-print_help.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-redirection.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-signal.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-smoke.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-termsize.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-threads.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-timer.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-tokenizer.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-topic_monitor.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-trace.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-util.rs.o" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/ebc35cecca3cfbee-wait_handle.rs.o"
  exit status: 0
  running: "ar" "s" "/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/libfish-rust.a"
  exit status: 0
  cargo:rustc-link-lib=static=fish-rust
  cargo:rustc-link-search=native=/home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out
  cargo:rustc-env=AUTOCXX_RS=/home/razzi/forks/fish-shell/build/fish-autocxx-gen/rs

  --- stderr
  /home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/.rsconf-2740966685/gettext-test-0.c:3:12: warning: built-in function ‘gettext’ declared as non-function [-Wbuiltin-declaration-mismatch]
      3 | extern int gettext;
        |            ^~~~~~~

  CXX include path:
    /home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/include
    /home/razzi/forks/fish-shell/build/./cargo/build/x86_64-unknown-linux-gnu/release/build/fish-rust-64ae053c5d7c20a8/out/cxxbridge/crate
  /home/razzi/forks/fish-shell/fish-rust/../src/autoload.h:7:10: fatal error: 'cstddef' file not found
  thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ParseError(AutocxxCodegenError(Bindgen(ClangDiagnostic("/home/razzi/forks/fish-shell/fish-rust/../src/autoload.h:7:10: fatal error: 'cstddef' file not found\n"))))', build.rs:98:33
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
gmake[3]: *** [CMakeFiles/_cargo-build_fish-rust.dir/build.make:70: CMakeFiles/_cargo-build_fish-rust] Error 101
gmake[3]: Leaving directory '/home/razzi/forks/fish-shell/build'
gmake[2]: *** [CMakeFiles/Makefile2:423: CMakeFiles/_cargo-build_fish-rust.dir/all] Error 2
gmake[2]: Leaving directory '/home/razzi/forks/fish-shell/build'
gmake[1]: *** [Makefile:136: all] Error 2
gmake[1]: Leaving directory '/home/razzi/forks/fish-shell/build'
make: *** [GNUmakefile:41: build/fish] Error 2

Back to fish, sure enough, the tab completion match rank function has been ported to rust already:

    pub fn rank(&self) -> u32 {
        // Combine our type and our case fold into a single number, such that better matches are
        // smaller. Treat 'exact' types the same as 'prefix' types; this is because we do not
        // prefer exact matches to prefix matches when presenting completions to the user.
        // Treat smartcase the same as samecase; see #3978.
        let effective_type = if self.typ == ContainType::exact {
            ContainType::prefix
        } else {
            self.typ
        };
        let effective_case = if self.case_fold == CaseFold::smartcase {
            CaseFold::samecase
        } else {
            self.case_fold
        };

        // Type dominates fold.
        effective_type as u32 * 8 + effective_case as u32
    }

To fix this, we'd have to make smartcase+prefix match the same as exactcase+prefix match. It looks like this is already somewhat implemented. But to really test this thoroughly, the case I ran into was

input: co files in directory: coverage/ CODE_OF_CONDUCT.md

expected: both are matched.

Adding additional files and seeing them ranked would lay out additional cases: all possible matches can even be ranked in this way. But my intuition says it shouldn't matter what files are in a directory, to determine if a file "in mind" will be part of the tab completion set.

On the learning rust front, I'm looking at logging: https://rust-cli.github.io/book/tutorial/output.html

I'm also looking into automatic rust formatting: https://github.com/rust-lang/rustfmt

On the terminal neovim front, I'm thinking of writing a fish function wrapper to add the remote flags: https://neovim.io/doc/user/remote.html

Possibly this could be part of the edit command I already started, which reopens the last editor session. This would also make it easy to swap out the editor implementation under the hood - currently it looks like neovim is well positioned to be my commandline editor, because it includes features like clientserver by default (unlike vim, which apt installs with a random smattering of features) and is configurable in lua. Lua is definitely an upgrade from viml. But I am spending an excessive amount of time on an editor I might end up using less than emacs...

I'm also trying to get the neovim terminal to open in a vertical split, and go right into insert mode.

On the wiki front, I'd like long text areas like the pre above with my long error output to scroll, but I'm not sure how to do this in wikitext.


Now I'm thinking about how certain commands could be run, that would indicate they are waiting for an internet connection, seamlessly - in that if there is an internet connection, it could go right away, otherwise indicate that there is a network operation that is to be resumed.

Still want to get a working plan 9 rc shell - apparently it pages long stuff by default starting at the top. Worth giving a go, haven't gotten a compiling version yet https://en.wikipedia.org/wiki/Plan_9_from_User_Space


Have a working implementation for the bug described at https://github.com/fish-shell/fish-shell/issues/7944 - pushed to https://git.sr.ht/~razzi/fish-shell/commit/195aae64c73973c758b712e7fbbd3c60c07cff8b

Here's my writeup:

Mostly working in 195aae64c73973c758b712e7fbbd3c60c07cff8b

but gets rid of the prefix-underlining functionality.

As it currently works, either a set of completions replaces the text, or it does not. By allowing matching different cases alongside completion options of the same case, we can have some completions that replace the text, and some that do not.

ls co<tab>
CODE_OF_CONDUCT.md  coverage.yaml

Theoretically a best-of-both-worlds approach is possible, where we underline both _CO_DE... and _co_verage... preserving their cases. This would require a different API than the current pager.set_prefix. Or we could underline _co_DE... preserving the case of what the user typed, but making the completion still replace the user input to be the correct capitalization for the file.

For simplicity sake, leaving out the prefix underlining is easy, and it simplifies the logic of this whole function. using a |= to set every completion to be a "replacement" is hacky; the better eventual approach would remove the flag entirely and any logic that depends on it.