[PATCH] diff portability fixes
Rob Landley
rob at landley.net
Wed Feb 10 07:48:30 UTC 2010
On Monday 08 February 2010 14:59:20 Dan Fandrich wrote:
> Of course, you and the other BusyBox developers are free to say SOL to such
> users and thereby reduce the community population. On other embedded
> projects I've worked on, we bend over backwards to try to accomodate such
> users, but that, of course, has costs as well.
It's a balancing users vs balancing development community thing. The needs
of, as far as I can tell, exactly one user, vs ongoing constraints on all
developers that can't even be clearly documented. ("We support c99" is clear.
"We support gcc version X" is also clear. "Bits of your patch may or may not
be reverted in future, there's know way to know" isn't clear, I haven't
trouble being comfortable with that.)
All this is Denys's call, I'm just making my opinion known. He's maintainer,
I'm not. Heck, if he wants to _change_ the project's official stance, citing
precedents becomes irrelevant. :)
> > Way back under Erik Andersen (maintainer up through around 2005) we were
> > already targeting SUSv3 and C99, both of which were freely available on
> > the web if you knew where to look. I didn't introduce either, I just
> > _documented_ them. Since then, SUSv4 (I.E. Posix 2008) has shipped,
> > although the changes don't hit us much. We should be more explicit about
> > it in the FAQ, but it _used_ to be common knowledge...
>
> I would welcome more explicit mention of these issues, but I'd like to see
> them in the git source since they're more developer issues.
The closest the source seems to have is docs/posix_confirmance.txt, which isn't
a policy statement. (The style guide is a policy statement, but it dates to
Erik Andersen's tenure and... does it really say to put inline functions in
header files? Um, not sure it matches the current code all that closely. :)
Policy statements like this used to be in the FAQ. Originally the "standards"
section was about what BusyBox implements, and the "Portability" section was
about what busybox expects from its environment. An "exports" vs "imports"
thing. That probably should have been more explicit way back when.
At the time I last updated those, I didn't have a version of C99 I could link
to the way I could link to Posix (I.E. SUSv3 I.E. Open Group Base Standards
Issue 6). Nowdays if you Google for "C99" the third hit is:
http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1124.pdf
I've also clarified (at least to my satisfaction) the status of the html
version which is up at http://busybox.net/~landley/c99-draft.html so I'm not
worried about pointing people at it publically anymore. If busybox officially
wants to host its own copy for its own developers, we're probably ok with
that. (I'd rather link to open-std.org but they only seem to have the PDF.
It's a slightly later draft release, but the format's harder to use.)
As the coding-style shows, if something is A) not a real approved standard
external to this one project, B) too complicated to get in a glance, then
reality tends to wander away from it over time. You can be complicated as
long as people can re-use the investment of coming up to speed on it, and you
can be local as long as you're _simple_. But "complicated and local" doesn't
work very well unless you're a standard setter like the Linux kernel, which
BusyBox isn't. We haven't got 100 full-time develpers working on just our
thing. If you add up all the part-time work plus what the maintainer puts in,
I think we generally average around the equivalent of maybe 3 full-timers.
(Which is a lot of work, but not in linux-kernel's league.)
> >>> Dan
Rob
--
Latency is more important than throughput. It's that simple. - Linus Torvalds
More information about the busybox
mailing list