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

Scripting

New Features

Programmatic Changes

Performance

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.