The basic thesis behind my Oil project is that a new shell won't become ubiquitous unless it's compatible with bash. In other words, the goal of the project is to replace bash.
Just like any new compiled language needs the ability to reuse C code, I think any new shell has to somehow "reuse" existing shell code, rather than starting from scratch.
I'm even more convinced of that now than I was 3 years ago when I started the project. Even I didn't realize how deep the "shell ecosystem" is, i.e. how much inertia there is to overcome.
Testing it out is straightforward but maybe not super friendly. That's what I would like feedback on and help with :) Feel free to join https://oilshell.zulipchat.com/ (log in with Github) and give feedback.
----
EDIT: An important goal is to fill out this page of shell programs that Oil can run:
Roughly speaking, it's a "sane" subset. But it's also a large subset -- it aims to run all bash programs either unchanged or with trivial patches. So far that's been working out better than I expected.
Occasionally a shell script will rely on something really odd, but that hasn't happened too often. For example, arithmetic in ksh/bash has some really horrible corner cases, but nobody relies on those. They mostly just increment counters and so forth.
OSH also has some features that bash doesn't have, so it's not really a subset.
Eventually there is supposed to be a legacy-free shell language called "Oil", but I've had my hands full with OSH, so I don't have much to say about that. But I think replacing bash is more important than creating an incompatible shell language that probably won't get used!
Those are the ones that I thought people might hit. There are surely some other differences, which may or may not matter in practice.
This is why I'm looking for people to test OSH now. It's easier to change it sooner than later. If you want to use your favorite shell script unmodified with OSH, please test it :) Or let me know if you have difficulties testing it.
Just like any new compiled language needs the ability to reuse C code, I think any new shell has to somehow "reuse" existing shell code, rather than starting from scratch.
I'm even more convinced of that now than I was 3 years ago when I started the project. Even I didn't realize how deep the "shell ecosystem" is, i.e. how much inertia there is to overcome.
Why Create a New Unix Shell? http://www.oilshell.org/blog/2018/01/28.html
I'm looking for people to test it now! I made a release a couple days ago and have gotten several good bug reports, but I need more.
It runs many real bash scripts:
(1) Thousands of lines of distro build scripts (unmodified)
(2) Thousands of lines of bash completion scripts (with slight patches)
(3) scripts generated by virtualenv, git-prompt.sh, etc.
https://github.com/oilshell/oil/wiki/How-To-Test-OSH
Testing it out is straightforward but maybe not super friendly. That's what I would like feedback on and help with :) Feel free to join https://oilshell.zulipchat.com/ (log in with Github) and give feedback.
----
EDIT: An important goal is to fill out this page of shell programs that Oil can run:
https://github.com/oilshell/oil/wiki/Shell-Programs-That-Run...
Basically anything you use "in real life" is important!