Home

Blog Retrospective #1

2016-11-20

Now that I've released the code, let's take a minute to look back. Here are the blog posts so far grouped into five general themes:

1. Project Updates

2. Shell Trivia / WTFs

Future posts on shell trivia:

$ myvar=123
> name=var
> echo $((my$name * 2))  # name of a variable is dynamically constructed
246

3. Language Design

The osh language is mostly identical to bash, and requires two tokens of lookahead to parse.

It can be automatically be converted to the oil language, which is still yet to be defined. But I've given a sneak peek of oil in some posts:

Oil won't be just a shell, because Shell, Awk, and Make should be combined (example code).

4. Static Parsing

Static Parsing is parsing up front, in a single pass, which is aided by lexical state.

Future post: oil parses regexes statically, but other shells don't.

5. Parsing Algorithms and Techniques

Future post: Shell should be parsed with a top-down algorithm. Bash uses yacc, which uses a bottom-up algorithm. This has implications for both static parsing and completion engines.


These five themes have been covered fairly thoroughly, although I've made note of a few more posts that would be nice to have. Tomorrow I'll outline some new, bigger themes for the blog.