Why Sponsor Oils? | blog | oilshell.org
I've released version 0.4 of OSH, a bash-compatible shell. If you're new to the project, see Why Create a New Shell?.
To build and run it, follow the instructions in INSTALL.txt. Please try it on your shell scripts and report bugs!
This release contains many new features and bug fixes that allow OSH to run real shell programs. Read on for details.
This is why I say the language is nearly feature-complete, as opposed to the "shell" or "implementation". Those aspects of the project still need a lot of work, and are addressed in the Why? post.
However, since OSH 0.4 can run a diverse group of large programs, it's a big milestone!
The post Success with Aboriginal, Alpine, and Debian describes most of the changes, including:
read builtin also respects
$IFS, as well as
set -o xtrace and related environment variables.
echo -e and
errexit behavior to match bash and busybox ash. Add
set -o strict-errexit for more rational behavior.
In addition to shell scripts from three Linux distros, I also fixed enough bugs
to run the
shell-script-library project by Stephen Reay.
dirs builtin is essentially complete.
trap builtin. It supports the
EXIT trap and signals
SIGTERM. A full implementation may have to wait until OSH no
longer uses Python.
timetoplatypus finished implementing the
cclauss added support for Travis continuous builds, and fixed bugs caught
Bug Reports that led to changes:
declare -f -x -r
puppeh: C-style for loops.
shell-script-library project with me. In the
future, it may show up as a runtime benchmark for OSH.
As usual, the full changelog has details.
As for the blog, I plan to write part two of the FAQ, since there were many questions about Oil on Hacker News.
As for the code: Since OSH can run many shell programs, I won't be actively trying new programs in the next release cycle.
However, I still plan to implement features and fix bugs on demand. Please try OSH on your shell programs, and report bugs!
Instead, I plan to work on these things:
(a) A "carrot" for Oil, i.e. a feature that existing shells don't have. Ideas:
(b) Prototyping and documenting the Oil language.
(c) Making the Oil binary smaller.
The new features and bug fixes are reflected in spec test stats:
Despite all the new features, the core interpreter has only grown by ~1500 lines:
In addition, I took the first steps toward slimming down the app bundle:
As part of my plan to break Oil's CPython dependency without rewriting the whole program, I'm counting lines in different ways:
Although OSH is still too big and too slow, it's going in the right direction. The binary has more features than ever, and it's smaller than ever.