I'm going to to write about my recent work on the OSH runtime. The last few posts explain the context for this work:
Working Toward an OSH Release. I wanted to release the shell this summer, but it wasn't clear how much work was left before it would be useful. Attempting to run real shell programs is a good way to see what's left.
How I Use Tests. I introduced the test-driven style of working, with 4 kinds of test. I started with coarse gold tests, then nail down behavior with spec tests, and then sometimes I need fine-grained unit tests. The gold tests helped me choose what features to implement.
OSH Runs Real Shell Programs -- After fixing the hardest bug ever, OSH can run a real program I didn't write! This is the end of the journey; now I'll go back to the beginning.
I worked on OPy and the OVM build system for several weeks, including most of April. Thus, as of mid-May, the runtime was basically as I described in late March, in Measuring Progress With Tests.
That is, there were around 375 tests passing, but I hadn't run any significant shell programs with OSH.
So I started hacking away, using gold tests and spec tests as a guide.
I'll describe this journey in the next few posts. The work fell into these categories:
echo hi | wc -l &.
And of course:
This inspired some higher level thoughts on: