Hi, I am using GuixSD 0.14. After upgrading fish shell to latest version(v2.7.1) and running `guix gc`, fish shell does not work well. #+BEGIN_EXAMPLE meiyo@guix ~$ fish fish: echo $_ " "; __fish_pwd ^ in command substitution called on standard input fish: __fish_pwd ^ in command substitution called on standard input in command substitution called on standard input fish: echo $_ " "; __fish_pwd ^ in command substitution called on standard input #+END_EXAMPLE __fish_pwd is a fish function. It's defined in `share/fish/functions/__fish_pwd.fish`. The error message shows that fish cannot load __fish_pwd's function definition from disk. After doing some research, I found out that the error was caused by wrong environment variables. Fish shell is installed in: #+BEGIN_EXAMPLE /gnu/store/ajbbi9cgj9j0my7v5habp0lcysaf2a51-fish-2.7.1/ #+END_EXAMPLE But the environment variable $fish_function_path does not exist. And these environment variables point to non-existent paths: #+BEGIN_EXAMPLE __fish_bin_dir /gnu/store/4jkxcz8kpy621ycmqn3rvs0fv6c98h6p-fish-2.7.1/bin __fish_datadir /gnu/store/4jkxcz8kpy621ycmqn3rvs0fv6c98h6p-fish-2.7.1/share/fish #+END_EXAMPLE Setting $fish_function_path to the correct path reduces the error message. #+BEGIN_EXAMPLE set fish_function_path /gnu/store/ajbbi9cgj9j0my7v5habp0lcysaf2a51-fish-2.7.1/share/fish/functions #+END_EXAMPLE `share/fish/config.fish` states $__fish_datadir is set by fish.cpp, and $fish_function_path is derived from $__fish_datadir. #+BEGIN_SRC fish # __fish_datadir, __fish_sysconfdir, __fish_help_dir, __fish_bin_dir # are expected to have been set up by read_init from fish.cpp # Set up function and completion paths. Make sure that the fish # default functions/completions are included in the respective path. if not set -q fish_function_path set fish_function_path $configdir/fish/functions $__fish_sysconfdir/functions $__extra_functionsdir $__fish_datadir/functions end if not contains -- $__fish_datadir/functions $fish_function_path set fish_function_path $fish_function_path $__fish_datadir/functions end #+END_SRC In conclusion, I think some path related variables are not set correctly when fish is compiled from source code and that caused the bug I met. But since I'm not good at C++ programming, I will not dive deeper. I hope that the information provided above is helpful. Meiyo Peng