Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Why isn't it merged?


Rob has a big goal in conflict with my goals: he wants as few lines of code as possible. Obviously, the performance and extra features require more lines of code.

So he does not want my updates.


I think with "few lines of codes as possible" he wants auditability. Rob mentions it as something of a feature:

https://youtu.be/MkJkyMuBm3g?t=744 about 12 minute mark, he mentions how people used BusyBox in US army because they wanted to audit all the code, and this was his realization.

I think it's a worthy goal. But surely if bc is missing some useful features there is probably no harm having multiple implementations.


Upvoted your for good points. However...

I think it's a false goal if it comes before correctness. Auditability is great, but it's kinda useless to say, "Yep, I know your code is wrong."

Unfortunately, it seems to be Rob's number one goal over even correctness. (Busybox is even worse about binary size.) And with the way Rob asked for me to change things, it actually made things less readable, which is an important part of auditability. So he and I have a fundamental disagreement over it.


Actually as of now, toybox does not contain bc or dc. There is a bc in community dir.

Even busybox in many builds does not come with bc which is a posix requirement.


Busybox's bc and dc are also based on mine, by the way. And no, many people don't include them in builds, but that doesn't mean it doesn't have them. The reason is probably because bc is a much bigger utility than most utilities in busybox and "bloats" the binary size. ("Bloat" is a relative term. The busybox version is probably less than 100 kb.)

While toybox does not have my dc, I don't know what you mean by toybox not having a bc. It does, and it is based on mine. It's not in the community directory, it's in the pending directory (bc.c), which just means it's not enabled by default. You can enable it if you wish. Rob himself does because it's what allows toybox to have all of the utilities necessary for building Linux. (Yes, Linux requires bc to build.)

Edit: I've corrected my parent comment because you are right that toybox does not have my dc. But it does still have my bc.


Yeah, I meant that currently, there is no way to do non-trivial mathematical calculations with either of default builds of busybox* [1] or toybox [2]

[1] https://busybox.net/downloads/BusyBox.html [2] http://landley.net/toybox/status.html#done

*In busybox, there is `dc` but that is really hard to code in due to RPN.

Thanks for that note about bc being a build dependency of Linux kernel! For other people, more info here: https://unix.stackexchange.com/a/439483/306382


> Yeah, I meant that currently, there is no way to do non-trivial mathematical calculations with either of default builds of busybox* [1] or toybox [2]

Yeah, that is a fair assessment; thank you for clarifying.

Rob has said that when he goes through my `bc` and ensures it is up to his standards, he'll take it out of `pending` and put it in `posix`.

Honestly, I don't know why he won't just accept me as the maintainer of it; I know it's already up to his standards because my `bc` is more well-tested than the rest of toybox combined. And I've fuzzed it to the point where I am confident that it has no memory bugs.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: