[Toybox] toysh - Bash interoperability, clang+musl build, testing (for corner cases)?
Thorben Brandt
thorben at brandt.zone
Fri Dec 25 01:45:56 PST 2020
Hi there!
This is my first post to this list (any list, in fact) so please bear with
me if I'm doing something wrong. I've been following the Toybox project for
a while now after stumbling into a recording of one of Rob's talks on
Youtube.
When digging down into things recently, I was particularly delighted to see
that toysh aims to adhere to the (quote unquote) bash standard, it was
quite
fun to follow through the bunch of threads regarding that subject.
Here's some links to (in my eyes) particularly interesting threads on the
list archive, as I'm not sure if slapping them in here as a bunch of quotes
would be the right approach.
If anyone has a link to a paper titled something along the lines of "How to
use a Mailing List as a 90s kid", I'll happily study it!
[ toysh vs dash ]
http://lists.landley.net/pipermail/toybox-landley.net/2020-October/012087.html
> I'm aiming to replace bash. I don't have a "remove any feature that's not in
> posix" flag yet.
See above, this is what piqued my interest to the point of eventually
signing
upfor the list and browsing through it for the better part of an afternoon.
[ Would someone please explain what bash is doing here? ]
http://lists.landley.net/pipermail/toybox-landley.net/2020-June/011788.html
> I looked at containers for self-contained build and test environments about
> three years ago, but the lack of a controlling terminal made it not useful.
> Has that changed since? I haven't really looked.
Docker has supported allocation of pseudo-ttys and stdin streams for a
while
now [1] (am I missing something?), and systemd-nspawn [2] is intriguing
but I
haven't poked at it yet. Coming from a kind-of-sort-of background in
working
with containerization concepts (let's be real though, who doesn't these
days)
this is something I'd totally love to look into and help out with. Problems
with interactive TTYs in containerized environments pretty much always stem
from running something that doesn't gracefully handle signals as PID 1. But
that's about all I know when it comes to the nitty-gritty of shells so I'd
love to help and in return learn in the process!
[ mkroot works again, pending release. ]
http://lists.landley.net/pipermail/toybox-landley.net/2020-October/012073.html
> I note that except for a couple large holes (lack of $((math)) and function()
> support, haven't finished trap/signal/jobs, needs command line editing and
> history) toysh is... sort of working now? Several known bugs (test suite
> failures), but it's actually starting to be actually run real scripts. Needs
> auditing for memory leaks, and the largest script I've thrown at it _is_ the
> mkroot init, but... it's advanced from "don't bother" to "object of curiosity".
I suspect that hasn't changed since, alas the prospect of building a
statically
linked toysh and trying to daily it on "my actual computer" to in return
bombard
you with bug reports isn't quite viable as of yet, is it?
On that note, it's been an awful while (about 10 years) since I've had any
meaningful exposure to C. I tried to work my way through the cross
compilation
notes and what makes the Android (clang + Bionic) and musl-cross-make
(GCC + musl)
processes work, but couldn't quite apply that to making the (new?) clang
+ musl on
x86_64 combo spin (it eventually compiled but immediately crashed iirc,
need to
look into it again).
If anyone has played around with that particular setup, let me know!
TL;DR: I'd like to help - to the extent of my abilities - with making
the shell
(more of) a thing in some way if I may, any starting pointers/feedback
on my above
interpretations of what's been going on would be greatly appreciated.
I hope y'all are having nice holidays.
- Thorben
References:
[1]
https://docs.docker.com/engine/reference/commandline/run/#assign-name-and-allocate-pseudo-tty---name--it
[2] https://www.freedesktop.org/software/systemd/man/systemd-nspawn.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.landley.net/pipermail/toybox-landley.net/attachments/20201225/34a716ba/attachment.html>
More information about the Toybox
mailing list