History of Yash

 Legend:
   +: new feature
   -: removed feature
   =: specification change
   *: bug fix
   x: new bug

----------------------------------------------------------------------
Yash 2.5

  =  Redirection of FDs used by the shell is now error.
  *  Some redirection syntax errors were overlooked.
  *  Fixed the "sig.y" test failure.
  *  When an "exec" command with redirections is enclosed in a brace
     with redirections, the redirections to the brace are now properly
     closed after execution.
  *  Fixed parsing error of a comment after the identifier of a for
     statement.

----------------------------------------------------------------------
Yash 2.4

  =  The long option for the -p option of the "jobs" builtin has been
     changed from "--pid-only" to "--pgid-only".
  *  Trap of SIGCHLD, SIGINT, SIGTERM, SIGQUIT, SIGTSTP, SIGTTOU were
     wrongly set to "ignore" in some condition.
  *  Signal handlers for SIGINT, SIGTERM, SIGQUIT, SIGTSTP, SIGTTOU
     were mistakenly reset in some moments.
  *  Fixed the exit status of the "wait" builtin returned when
     interrupted by a signal.
  *  Fixed file access permission test
  *  "command -V xxx/yyy" now prints an error message if "xxx/yyy" is
     not a valid command.

----------------------------------------------------------------------
Yash 2.3

  =  Now changing LC_CTYPE immediately takes effect if the shell is
     interactive and not in the posixly-correct mode.
  *  Fixed parameter expansion: empty words are now expanded properly.
  *  Fixed a race condition, which was causing some signals ignored.
  *  Assignments using the typeset/readonly/export builtins failed to
     update the shell's internal data. This caused the shell to keep
     using the old PATH after the PATH has been changed.

----------------------------------------------------------------------
Yash 2.2

  +  "help", "pushd", "popd" and "dirs" builtins
  =  The value of $PWD set by the "cd" builtin is fixed. It now has a
     correct value when changing to a relative path from the root
     directory.
  *  Pathname expansion not properly performed for patterns including
     "." or "..".

----------------------------------------------------------------------
Yash 2.1

  +  Array variables
  +  "array", "echo", "printf" and "test" builtins
  +  The -A option for the "read" builtin
  *  The colon flag in a parameter expansion like "${FOO:-bar}" was
     ignored if the value of the parameter begins with a certain
     character.
  *  The readonly attribute was ignored when an assignment occurs
     against a command invocation
  *  Passing "=" as a name to the "unset" builtin incorrectly unset
     the positional parameters and caused a potential invalid memory
     access.
  *  Field splitting on variable values that consist only of spaces
     produced wrong results.
  *  Test of file access permission now uses the effective user/group
     IDs rather than the real user/group IDs.

----------------------------------------------------------------------
Yash 2.0

  +  "history" builtin
  +  Command redirection
  *  A posixly-correct non-interactive shell exits when a paticular
     error occurred on a special builtin according to POSIX.
  *  Alias substitution routines were improved.
  *  Other bug fixes

----------------------------------------------------------------------
Yash 2.0 beta2

  +  Command history
  +  "type", "hash" and "fc" builtins
  =  If the "command" builtin with the -V option fails to find a
     command, an message is printed.
  *  Invocation of an external command with an assignent to the $PATH
     variable caused an invalid memory access.
  *  Single quote not parsed properly in some circumstances.
  *  Other bug fixes

----------------------------------------------------------------------
Yash 2.0 beta1

  +  "read", "getopts" and "command" builtins
  +  '--autocd' and '--curasync' option
  +  Mail check feature
  +  The prompt command
  =  The "readonly" and "export" builtins now affects global variables
     by default.
  *  The standard input is no longer buffered
  *  The "typeset" builtin now allows any characters other than '='
     for variable names.
  *  The special parameter $? reflects the exit status of a command
     substitution in a variable assignment.
  *  Many other bug fixes

----------------------------------------------------------------------
Yash 2.0 beta0

  +  "eval", "exec", ".", "times", "umask", "typeset", "export",
     "readonly", "unset", "shift" and "trap" builtins
  +  "wait" builtin now can be interrupted
  +  Arithmetic expansions
  +  Interactive shell now notifies the process killed by a signal
  -  "/etc/profile" and "~/.profile" are no longer sourced on start-up
  *  Fixed token delimitation in alias substitution
  *  Fixed token delimitation on assignments without values
  *  Many other bug fixes

----------------------------------------------------------------------
Yash 2.0 alpha2

  +  Initialization files such as "/etc/profile" and "~/.yashrc" are
     now sourced on start-up.
  +  '--noprofile', '--norcfile' and '--rcfile' options
  +  "pwd", "set", "exit", "return", "break", "continue", "jobs",
     "fg", "bg", "wait", "disown", "alias" and "unalias" builtins
  *  '--nocaseglob' was misinterpreted as '-c'.
  *  It was not fully case-insensitive when '--nocaseglob' is on.
  *  If job control is off, an interactive shell no longer prints
     changed status of jobs before prompt.
  =  Error handling for unset parameters was improved.
  =  The help message for 'yash --help' is now much briefer.

----------------------------------------------------------------------
Yash 2.0 alpha1

  +  New options implemented: -x, -h, -a
  =  The default value of 'PS3' is not set in posixly-correct mode.
  +  'configure' accepts new '--no-undefined' option
  +  ":", "true", "false", "cd" builtins
  *  Command hashtable is now cleared when PATH is assigned.
  *  Assertion failure when a null character is input
  *  Many other bug fixes

----------------------------------------------------------------------
Yash 2.0 alpha0 (the first release of version 2.x)

  x  Arithmetic expansion is not implemented
  x  Builtins are not implemented at all
