This is a continuation of the last status update. I keep track of a few numbers to give me a feel for the project's progress.
The last time I published spec test stats, the summary was:
I just made a fresh run, and now the summary is:
Most of my work in the last two months has been on OPy and OVM, rather than on the shell itself, so the small delta is expected. The number of failures needs to be lower before a release, but there's nothing risky about that work.
I've published line counts in:
I've copied the abbreviated output of
scripts/count.sh all below. Summary:
I like that the code is getting more correct without getting much bigger. There's a lot of functionality packed into few lines of well-tested code.
Other things to notice:
build/directory is the result of rewriting Python's build system.
benchmarks/directory, which I'll use to address the problem of OSH being too big and too slow.
BUILD AUTOMATION ... 136 build/actions.sh 322 build/compile.sh 1059 total TEST AUTOMATION ... 872 test/sh_spec.py 891 test/osh2oil.sh 3624 total BENCHMARKS 97 benchmarks/awk-python.sh 165 benchmarks/startup.sh 262 total SHELL SPEC TESTS ... 272 spec/here-doc.test.sh 335 spec/array.test.sh 4722 total ASDL ... 557 asdl/format.py 2062 total TOOLS 1184 tools/osh2oil.py OTHER UNIT TESTS ... 79 tools/osh2oil_test.py 543 total OIL UNIT TESTS ... 518 osh/word_parse_test.py 1238 osh/cmd_parse_test.py 3550 total OIL ... 1088 core/word_eval.py 1140 osh/word_parse.py 1226 core/cmd_exec.py 1563 osh/cmd_parse.py 11864 total
These metrics are coarse, but useful. I plan to add more detailed metrics as the project expands.
I'm eager to release OSH, and the next post explains what I want to do before a release.