Release Notes for fish 2.2.0 (released July 12, 2015)

Significant Changes

Backward-incompatible changes

These are kept to a minimum, but either change undocumented features or are too hard to use in their existing forms. These changes may break existing scripts.

Other notable fixes and improvements

Release Notes for fish 2.1.2 (released Feb 24, 2015)

fish 2.1.2 contains a workaround for a filesystem bug in Mac OS X Yosemite. #1859

Specifically, after installing fish 2.1.1 and then rebooting, "Verify Disk" in Disk Utility will report "Invalid number of hard links." We don't have any reports of data loss or other adverse consequences. fish 2.1.2 avoids triggering the bug, but does not repair an already affected filesystem. To repair the filesystem, you can boot into Recovery Mode and use Repair Disk from Disk Utility. Linux and versions of OS X prior to Yosemite are believed to be unaffected.

There are no other changes in this release.

Release Notes for fish 2.1.1 (released September 26, 2014)

Important: if you are upgrading, stop all running instances of fishd as soon as possible after installing this release; it will be restarted automatically. On most systems, there will be no further action required. Note that some environments (where XDG_RUNTIME_DIR is set), such as Fedora 20, will require a restart of all running fish processes before universal variables work as intended.

Distributors are highly encouraged to call killall fishd, pkill fishd or similar in installation scripts, or to warn their users to do so.

Security fixes

Other fixes

Release Notes for fish 2.1.0 (released October 28, 2013)

Significant Changes

Other Notable Fixes

Release Notes for fish 2.0.0 (released May 17, 2013)

Significant Changes

Other Notable Fixes

Release Notes for fishfish Beta r2

Bug Fixes

New Features

Release Notes for fishfish Beta r1


New Features

Programmatic Changes


Here are some system call counts for launching and then exiting fish with the default configuration, on OS X. The first column is fish trunk, the next column is with our changes, and the last column is bash for comparison. This data was collected via dtrace.

           before   after    bash    
  open          9       4       5
  fork         28      14       0
  stat        131      85      11
 lstat        670       0       0
  read        332      80       4
 write        172     149       0

The large number of forks relative to bash are due to fish's insanely expensive default prompt, which is unchanged in my version. If we switch to a prompt comparable to bash's (lame) default, the forks drop to 16 with trunk, 4 after our changes.

The large reduction in lstat() numbers is due to fish no longer needing to call ttyname() on OS X.

We've got some work to do to be as lean as bash, but we're on the right track.