Skip to content

Latest commit

 

History

History
119 lines (98 loc) · 1.82 KB

TODO.md

File metadata and controls

119 lines (98 loc) · 1.82 KB

TODO in no particular order

init:

  • proper initializing
  • have option to only run a script/command

parser:

  • have parser errors treated
  • command types:
    • case
  • parse here documents
  • line continuation (PS2)
  • word arithmetic
  • do temporary storage to not do a bunch of small allocations, scratch buffer? see https://github.com/ziglang/zig/pull/10079/files
  • async pipe (|&)

AST:

  • command types

line read:

  • change keybinds
  • vi mode
  • emacs mode
  • history:
    • save
    • search
    • load
  • PS1: $(printf $BLUE)\w $(git_info) $(_tab)$(get_exit)>$(printf $NORMAL)
  • PS{2,3,4}

exec:

  • dont try to execute invalid programs
  • word expansion:
    • tilde expansion
    • parameter expansion
    • fields splits
    • brace expansion
    • filename patterns
  • I/O redirection
    • builtin I/O redirection
    • here document
    • clobber
  • pipeline greater than 1 command
  • command types:
    • functions
    • subshell
    • for loops
    • while loops
    • case

symbol table:

  • read-only vars
  • env vars used by oksh
  • aliases
  • functions

builtins:

  • read +/- options
  • set
  • unset
  • typeset
  • alias
  • unalias
  • bg, fg
  • command
  • fc
  • getopts
  • jobs
  • kill
  • read
  • umask
  • wait
  • readonly
  • shift
  • times
  • trap
  • break, continue
  • eval
  • exec
  • return
  • export
  • [, test
  • echo, print
  • let
  • suspend
  • ulimit
  • whence

job controller:

  • needs fg, bg, wait, jobs, kill

misc:

  • check memory leaks
  • consider removal of positions
  • priority of execution
  • POSIX mode
  • errors messages equivalent to oksh
  • see where to handle errors
  • strict bourne shell mode
  • print error, a error printer that is centralized at some place
  • profile allocators
  • complete command/path
  • hints?

TODO: there was a segfault after running with one or more arguments, also with only the command name it hangs

make easy to read files, it should make a blis to read configuration files