blog | oilshell.org

Release of OSH 0.5.alpha3

2018-04-30

This is the latest version of OSH, a bash-compatible shell:

Please try it on your shell scripts and report bugs! To build and run it, follow the instructions in INSTALL.txt.

If you're new to the project, see Why Create a New Shell?. OSH can run unmodified shell scripts that are thousands of lines long, as described in the announcement for OSH 0.4.

Table of Contents
Why an 'alpha' Release?
Summary of Changes
Metrics
What's Next?
Footnotes

Why an 'alpha' Release?

I'm calling it 0.5.alpha3 because most changes are under the hood, rather than user-facing.

I return from the Recurse Center in August, and I expect to release version 0.5 a few weeks thereafter. If you want to keep up with the project over the summer, please join oilshell.zulipchat.com, which I described in the last post.

It's more of a "pre-release" than an "alpha", but I didn't want to disrupt the naming scheme (note 1). In other words, it's still a high-quality release that passes a large suite of tests. The results are on the /release/$VERSION/ page.

It's also now live on the home page, so new users will download and test it.

Summary of Changes

This section summarizes the raw changelog.

Metrics

Compared to the previous release, the benchmarks and metrics haven't changed much. This is good, because it means that replacing the bytecode compiler and then refactoring it didn't break anything.

For example, the bytecode isn't noticeably bigger:

The one anomaly I noticed is that the native code size is significantly different:

I still need to look into it, but it's probably caused by one of:

Lesson: It's surprising how many times simple metrics reveal problems. I don't know what the cause of this problem is yet, but I'm sure I'll learn something when I figure it out.

What's Next?

Feel free to send me feedback in the comments!

Footnotes

[1] Recall that I released 0.5.alpha2 in early March, when I built Oil with the OPy bytecode compiler.