diff --git a/README.md b/README.md index a189e65e..f2e1447a 100644 --- a/README.md +++ b/README.md @@ -11,28 +11,24 @@ This project was primarily borne out of curiosity and a desire to learn. If it p ### License -Licensed under [MIT license](LICENSE). +Available for use and distribution under the [MIT license](LICENSE). ### Known limitations -There are many gaps in compatibility; most notably: +There's a lot that *is* working, but also non-trivial gaps in compatibility. Most notably: -* Commands run asynchronously as jobs, job management -* Honoring `set` options (e.g., `set -e`) -* Input/output redirection for subshells and function definitions +* **Commands run asynchronously as jobs, job management.** + You can run `some-command &` but it's proof-of-concept quality at best. Standard job management via `fg`, `bg`, and `jobs` is not fully implemented. This would be a great area for enthusiastic contributors to dive in :). +* **Honoring `set` options (e.g., `set -e`).** + The `set` builtin is implemented, as is `set -x` and a few other options, but most of the behaviors aren't there. `set -e`, for example, will execute but its semantics aren't applied across execution. -Shell built-ins are a mixed bag. Some are completely implemented -(e.g. echo), some only support their most commonly used options, -and others aren't implemented at all. +Shell built-ins are a mixed bag. Some are completely and fully implemented (e.g. echo), while some only support their most commonly used options. Some aren't implemented at all. + +There's certainly more gaps; with time we'll find a way to represent the gaps in some understandable way. ## Testing strategy -This project is primarily tested by comparing its -behavior with other existing shells, leveraging the latter -as test oracles. The integration tests implemented in this -repo include a few hundred test cases run on both this -shell and an oracle, comparing standard output and exit -codes. +This project is primarily tested by comparing its behavior with other existing shells, leveraging the latter as test oracles. The integration tests implemented in this repo include a few hundred test cases run on both this shell and an oracle, comparing standard output and exit codes. ## Links: other shell implementations