blog | oilshell.org

Project Metrics

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.

Spec Test Stats

The last time I published spec test stats, the summary was:

601 total tests, 406 passing, and 146 failing

I just made a fresh run, and now the summary is:

624 total tests, 433 passing, and 141 failing

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.

Line Counts

I've published line counts in:

The very first post in October 2016 — 10,315 lines of OSH code.

lines of OSH code. The open source release in November 2016 — 11,497 lines.

lines. After success with ASDL in January — 9,992 lines of OSH code, not including the ASDL implementation.

I've copied the abbreviated output of scripts/count.sh all below. Summary:

As of now, June 2017, we have 11,864 lines of OSH code.

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:

There are several thousands lines of build and test automation, and many several kinds of tests. The build/ directory is the result of rewriting Python's build system.

directory is the result of rewriting Python's build system. I started a benchmarks/ directory, which I'll use to address the problem of OSH being too big and too slow.

directory, which I'll use to address the problem of OSH being too big and too slow. I separated the OSH to Oil translator into a tools/ directory.

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

Next

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.