blog | oilshell.org

Blog Retrospective #3

This is a summary of posts since the last blog retrospective, which I wrote in April.

1. Popular Posts

The explicitly educational posts have been the most popular ones.

In these two posts, I describe a concrete problem, a solution that I've used, and discuss lessons for the Oil language:

The next two posts criticize two aspects of the shell language, and suggest alternatives:

What is the relationship between the Shunting Yard Algorithm and Pratt Parsing?

2. Thoughts on Language Design and Implementation

A collection of observations on Unix language design:

The following three posts describe a plan for making Oil fast, small, and self-contained, without rewriting the whole thing. Although I haven't worked in this area for a few months, I still believe in this plan.

I describe how tests will help me cut Oil's dependency on the Python interpreter:

3. Release Announcements

I made the first three releases!

OSH 0.0 on July 23rd. After running real programs.

OSH 0.1 on September 9th. Running more complicated scripts, and build fixes.

OSH 0.2 on November 10th. Testing it on one million lines of shell, the first performance improvement, and the first contributors.

4. Status Updates

Project planning:

Review of Roadmap #4

Roadmap #5: Why Oil, and Why OSH? OSH will run shell scripts that build Linux distributions. Oil is your upgrade path from bash.

Other Status Updates:

5. Other Posts

6. Topics I Skipped

As a reminder to myself, here are topics I skipped:

(1) Much of the shell runtime. I abridged the long slog through the shell.

The design of core/args.py , and some criticisms that fall under #shell-the-bad-parts.

, and some criticisms that fall under #shell-the-bad-parts. Shell Concurrency with fork() , wait() , and pipelines. I wanted to describe the hard example in this comment.

(2) The R language.

I used Make to build OVM, which gave me an opporunity to evaluate its problems. Likewise, I'm using R to analyze its performance and resource usage, which has led to thoughts about R.

If you're not familiar with R, consider that it passes the Perlis test:

A language that doesn’t affect the way you think about programming, is not worth knowing.

I also want to address the fact that the performance analysis I do often requires four Turing-complete languages: Python, R, JavaScript, and shell. This is similar to the problem with shell, awk, and make.

Leave a comment if you're interested in any of these topics.

Summary

In this post, I organized posts from the last 7 months into 5 topics, and I made note of 2 more topics to address.

A few months ago, I also added tags to the blog index, which may help you find posts to read. For example, here are posts about #parsing.