Why Sponsor Oils? | blog | oilshell.org
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.
This section summarizes the raw changelog. If you notice anything missing, let me know in the comments.
Aleks Kamko ported Oil to OS X! This fixed some of the hacks I put in when rewriting Python's build system from scratch.
Oil no longer segfaults when compiled with GCC 8. This bug affected Arch Linux, Fedora, and other distributions.
This bug was interesting: Oil inherited C code from CPython that relied on undefined behavior. In GCC 8, this undefined behavior was no longer harmless. See the links in issue 107 for details.
(in reverse alphabetical order)
cd -P
and -L
.pwd
builtin.set -o emacs/vi
.source
with arguments. (I also worked on this.)${x/glob/replace}
construct. (I also worked on this.)I pair-programmed with everyone on these changes:
${BASH_REMATCH[@]}
, which are the groups captured during a
regex match.unichr()
function.&>
and &>>
redirects (from bash). Thanks
timetoplatypus
for the report.i
to $-
when the shell is interactive. Thanks BatmanAoD
for the
report.Bug reports like these are particularly useful because they let me know where OSH falls short in practice.
\u03bc
.${#array[@]}
(issue 114)make clean
in the source tarball.unicodeobject.c
from CPython. This noticeably reduced build
times. See the metrics below.complexobject.c
and
frozen.c
.re
module by compiling regexes
to C via re2c. After we remove the last dependency, we can strip
Python's regex engine out of Oil.If you're interested in Oil development, please join oilshell.zulipchat.com, as described in this post.
For users of recurse.zulipchat.com
: One thing I hadn't anticipated is that
you can only be logged into one Zulip instance at a time. I assume that
this is due to a browser security issue.
Possible solutions:
When I return to San Francisco in August, I plan to write some blog posts, including another project roadmap.
Feel free to send me feedback in the comments!
Here I summarize changes in the tests and metrics published with each release.
Native code size went down due to the removal of parts of CPython:
This is reflected in the smaller binary, which is faster to build:
Oil's Python source code only got a little bigger:
Excluding comments and blanks:
The bytecode size went up a bit: