I.e. just wc all the files that have a name that looks in any way os
or architecture dependent.
Note how unfair this is. It may count the same file twice, it counts
CVS, and so on. Very, very unfair.
Sum:
11219 34549 240528 total
Now, two popular MPIs:
first, LAM
rminnich@xcpu lam-7.1.3]$ wc ./configure
45815 164201 1362823 ./configure
Yes, that is not a typo: 45KLOC. The configure script is about 4x the
size of ALL the portability support in p9p. Makefiles are around 1029
lines. Most of that is configure goo.
For openmpi, a popular mpi:
[rminnich@xcpu openmpi-1.2.2]$ wc configure
152939 581569 5028307 configure
[rminnich@xcpu openmpi-1.2.2]$ wc Makefile
1541 5368 62023 Makefile
[rminnich@xcpu openmpi-1.2.2]$
Yes, 153KLOC of shell script for the configure. A factor of 3 growth
over the one done four years ago for LAM.
Yow. The generated makefiles average about 1500 lines. The configure
scripts take about 5 minutes to run.
I know we have some faculty on this list. Please talk to your students :-)
This is nuts.
ron
I promise. That's impressive. Cannot believe it.
Thanks a lot for the info.
Dave Cheriton gave a talk, I think at the first OSDI, where he spoke
about a system he'd written. He said it was small, only 100K lines.
I said I considered that large; our kernel at the time was about 25K
lines and was far more complete than his research toy. "Yeah," he
said, "but those are Bell Labs lines." I took that as a compliment,
but he might not have meant it that way.
-rob
I think that's what got me into learning these higher level languages
and higher order functional programming languages - the desire to
write less code.
I'm pretty sure I'm not good at it yet but I always found this one
line. "word counter" impressive.
std::distance(std::istream_iterator<std::string>(std::cin),
std::istream_iterator<std::string>());
I think that's corect but I'm on my blackberry.
I think I got that from a newsgroup back in the 90s
--
- Passage Matthew 5:37:
But let your communication be, Yea, yea; Nay, nay: for whatsoever
is more than these cometh of evil.
it is impressive that you typed that on a blackberry!
it's not short, if you count the class implementation. it doesn't
convey the idea - the solution is not understood unless you
understand each piece.
i think what Ron is bringing up is having/learning the ability to
see through layers of filters to the exact need and providing a
design that is just the right distance between "pie in the sky" and
"failure of vision".
brucee
> I'm pretty sure I'm not good at it yet but I always found this one
> line. "word counter" impressive.
>
> std::distance(std::istream_iterator<std::string>(std::cin),
> std::istream_iterator<std: :string>());
it is impressive that you typed that on a blackberry!
it's not short, if you count the class implementation. it doesn't
convey the idea - the solution is not understood unless you
understand each piece.
i think what Ron is bringing up is having/learning the ability to
see through layers of filters to the exact need and providing a
design that is just the right distance between "pie in the sky" and
"failure of vision".
So is
word_count(text);
And a much simpler one at that.
And the tools programming model trounces everything else once more.
uriel
P.S.: For http://gsoc.cat-v.org and http://9p.cat-v.org I wrote (with
the help of Kris) a whole website engine, including multi-domain
handling, a blog with rss feeds and and other junk in two hundred
lines of rc and awk. After this, thinking about building websites with
python or any other language makes me cringe.
I wrote a soap client with nothing but curl perl and pipes glued with
a little sh
Took about 30 minutes and each piece does a very small and well
defined task. If it hadn't been soap based I would not have used
perl.
That's another reason why I like languages like limbo or erlang.
Seems to encourage breaking even serial problems into communicating
tasks. Then in some cases if you need to distribute the problem over
many machines you've got less work to do.