[Toybox] Would someone please explain what bash is doing here?

Rob Landley rob at landley.net
Thu Mar 12 16:08:13 PDT 2020


On 3/10/20 11:50 AM, enh wrote:
> On Tue, Mar 10, 2020 at 8:42 AM Chet Ramey <chet.ramey at case.edu> wrote:
>> On 3/9/20 11:16 PM, Rob Landley wrote:
>>>> -- but i can't even imagine a world in
>>>> which someone comes to me asking for more *dash* compatibility :-)
>>>
>>> It was a mistake Ubuntu made and pushed "upstream" into debian. The goal was
>>> never "remove everything that's not in posix", that was just a side effect.
>>
>> Minimalism and POSIX conformance are the big selling points now, at least
>> on the shell side of things.

I dunno about minimalism, but I'm trying to get toys/pending/sh.c in under 3500
lines. (It's 2400 now, maybe 100 of which is debug code. So it's still feasible,
but tight. And yeah, that's pulling in some subset of lib/*.c's 5600 lines, so
maybe 9k lines total. Plus my original plan for command history editing went out
the window, so I have to redo that...)

Then again, I'm trying to implement more functionality in that budget than dash
is. Does that make it less minimalist?

> except like you said, bash (like MS Word) has that property where most
> people only use a few percent of the functionality, but everyone's
> using a different few percent. the only bugs i see reported against
> mksh (which is what Android's used for the last ~decade) are basically
> "i just want this one thing from bash". i'm not super excited about
> suffering another shell transition, especially because we have another
> 10 years worth of accumulated scripts since the last time, but a shell
> that explicitly aims to be bash-compatible (unlike mksh, which
> doesn't) is the only thing that would make it even worth thinking
> about.

One approach is to add a /bin/bash symlink pointing to toysh (when it's promoted
out of pending) and let people try that for a bit, and then worry about if/when
to point /bin/sh at it after it's gotten some testing.

Rob



More information about the Toybox mailing list