Yesterday, I reviewed November's Roadmap #3. The project is mostly on track, although of course I'd like to accelerate it.
And two days ago, I mentioned that I'm skipping a few blog posts to work on code. This post describes what I expect to do.
Introduce the concept of spec tests.
I want to get contributors, and then I can blog more!
Do the same thing to wild tests.
OVM
Components:
I still have to compile osh.asdl to ovm.asdl, then write a simple
interpreter for ovm. After I publish the spec tests, I hope to do a
vertical slice of this, in order to flesh out the architecture. For
example, it should be easy to thread a simple command through from the Python
front end to C++ back end, like this:
$ test -d / && echo 'hello world' hello world
I wrote a parser for OSH, and a translator from OSH to Oil.
But I still don't have a parser for Oil!
This is sort of an unknown.
TODO: Possibly include bootstrap.md -- notes about bootstrapping.
Most programming languages fail.
If Oil takes longer than expected, or I don't have a lot of contributors, I can polish OSH more.
If people are using OSH, then they will probably contribute.
Also: Oil can serve as an extension language for OSH.
COMBINE THE LANGUAGES.
"source mylib.sh"
"oil-source mylib.oil"
Also function calls:
$[foo(bar,baz)]
$[ escapeHtml(foo, bar) ]
$(( foo(bar,baz) ))
$[ glob('*.py') ]
I don't know how things will play out. We'll see.
It's generally hard to get people to new languages, but converting from OSH to oil is a good start.
If you have feedback, about this plan, leave a comment.
In the next post, I'll describe the test suite enhancements I've just committed to the master branch. The purpose of this work is to attract contributors. There are now enough separate tasks in this project that it makes sense to parallelize them.
The test suite enhancements deserve some blog space of their own, which is why I may skip over some posts.