Skip to content

yash-cli-0.3.0

Compare
Choose a tag to compare
@magicant magicant released this 23 Mar 14:04
· 92 commits to master since this release
yash-cli-0.3.0

[0.3.0] - 2025-03-23

Added

  • The shell now supports declaration utilities as defined in POSIX.
  • The cd built-in now supports the -e option as defined in POSIX.
  • The read built-in now supports the -d (--delimiter) option, which allows
    specifying a delimiter character to terminate the input.
  • The trap built-in now implements the POSIX.1-2024 behavior of showing
    signal dispositions that are not explicitly set by the user. It also supports
    the -p (--print) option.
  • The -p option for the command built-in now works on Linux.

Changed

  • When a foreground job is suspended in an interactive shell, the shell now
    discards any remaining commands in the current command line and prompts for
    the next command line. This behavior basically conforms to POSIX.1-2024, but
    differs in that the shell does not resume with the remaining commands
    following the next asynchronous and-or list.
  • When the shell starts job control, if it is in the background, the shell now
    suspends itself until it is resumed in the foreground. Previously, the shell
    would continue running in the background, interfering with the foreground
    process group.
  • If job control is enabled and the shell does not have a controlling terminal,
    the shell now proceeds without managing foreground-ness of process groups.
    Jobs are still assigned to their own process groups. Previously, the shell
    would abort command execution in this case.
  • The cd built-in now errors out when a given operand is an empty string.
  • The cd built-in now returns different exit statuses for different errors.
  • The fg and bg built-ins now error out if job control is not enabled.
  • The command kill -l now shows signals in the ascending order of their
    numbers.
  • The read built-in now returns a more specific exit status depending on the
    cause of the error. It also rejects an input containing a null byte.
  • The output of the trap built-in now includes not only user-defined traps but
    also signal dispositions that are not explicitly set by the user.
  • The wait built-in no longer treats suspended jobs as terminated jobs. When
    waiting for a suspended job, the built-in now waits indefinitely until the job
    is resumed and finished.