IRC log for #brlcad on 20120106

01:11.56 starseeker lands back in MD
02:22.55 starseeker hah: http://public.kitware.com/pipermail/cmake-developers/2011-November/002490.html
02:23.52 starseeker "I have also successfully tested [ninja+CMake building] with the build systems for OpenCV, Bullet Physics, BRL-CAD, kdelibs and Path64."
02:24.00 starseeker must test this
03:25.26 starseeker BRL-CAD - CMake + ninja: full compilation time 8 minutes 43 seconds, empty rebuild 0 sec (e.g. < 1 - not measurable by the build delta calculation)
03:27.01 starseeker BRL-CAD - CMake + make: full compilation time 9 minutes 8 seconds, empty rebuild 12 sec
03:27.44 starseeker (empty rebuild means running ninja/make -j3 after the complete, successful compile, when there's nothing left to do
03:28.31 starseeker make will obviously do better on machines with more parallel mojo (yay 2 cores...)
03:29.04 starseeker but then, ninja also uses all available cores...
03:29.30 starseeker either way, nifty
03:31.18 starseeker editing search.c in librt and doing a full rebuild... 19 sec. for ninja, 31 for make -j3
03:33.25 starseeker ninja librt and ninja rt work as expected
03:33.41 starseeker sweet
03:41.20 CIA-28 BRL-CAD: 03starseeker * r48197 10/brlcad/trunk/TODO: Add a reminder to expand documentation on building BRL-CAD to other tools CMake opens up support for. Low priority.
03:44.01 CIA-28 BRL-CAD: 03starseeker * r48198 10/brlcad/trunk/TODO:
03:44.02 CIA-28 BRL-CAD: These two DocBook items are addressed - other DocBook TODOs need review - in
03:44.02 CIA-28 BRL-CAD: particular, many formatting elements have at least some examples of improved
03:44.02 CIA-28 BRL-CAD: formatting, and need to be reworked comprehensively through the DocBook books
05:00.25 Computer .window close
05:00.28 *** part/#brlcad Computer (~Computer@unaffiliated/computer)
11:47.31 *** join/#brlcad jordisayol (~jordisayo@unaffiliated/jordisayol)
12:05.09 *** join/#brlcad merzo (~merzo@189-243-132-95.pool.ukrtel.net)
14:32.25 *** join/#brlcad merzo (~merzo@35-70-132-95.pool.ukrtel.net)
15:07.57 brlcad starseeker: welcome back
15:09.06 brlcad starseeker: what's the ninja time without -j* on an empty rebuild?
16:23.08 ``Erik starseeker made it sound like ninja doesn't take a -j option... wonder if it has a 'throttle down to 1 cpu' option, though
16:37.46 starseeker yeah, ninja uses all CPUs by default
16:38.18 starseeker brlcad: thanks! good to be back
17:12.15 starseeker ah, I'm wrong
17:12.21 starseeker ninja uses 10 cpus by default
17:12.33 starseeker ninja DOES support the -j flag
17:38.50 brlcad so then the interesting question becomes how long ninja takes on a -j1 empty rebuild
17:39.53 *** join/#brlcad Stattrav (u3131@gateway/web/irccloud.com/x-yvvqjpomjuxlqxfk)
18:07.34 starseeker brlcad: seems to be less than a second
18:08.38 brlcad cool, must avoid all the I/O of multiple files/dirs
18:09.21 starseeker on a machine with more cores than my home box... build time for make - 3min, 51 sec. ninja 2min, 17sec
18:09.41 starseeker isn't sure he believes that, sets up a repeat
18:15.53 starseeker yeah, thought so
18:18.05 starseeker make -j10 - 2 minutes 24 seconds; ninja (default) - 2 minutes 13 seconds
18:18.59 starseeker no-op: make -j10 4sec; ninja (default) - < 1 sec
18:20.51 brlcad so faster.. but not dramatically
18:20.59 brlcad neat
18:22.20 starseeker bets the compiler time is hugely dominant, at least ones things are in cache
18:22.42 starseeker Mac might be interesting, with its higher io overheads
18:22.44 brlcad like the smp-by-default, but not enough to motivate installing ninja everywhere I build to say the least
18:22.56 starseeker nods
18:23.43 starseeker pays off more on slower machines like my home box, where the empty opts do go significantly faster
18:24.14 brlcad sure
18:24.48 brlcad it looses value as you get more cross-platform, having to do installs
18:24.57 starseeker right.
18:24.58 brlcad that time is minimal for a single platform, but adds up
18:25.43 brlcad it'd nominally take a half hour to install across a half-dozen host platforms, assuming nothing goes wrong
18:26.03 brlcad ~ (30 * 60) / 4
18:26.03 ibot 450
18:26.13 brlcad that's a lot of empty builds .. :)
18:26.20 starseeker heh
18:26.46 starseeker letsee... as long as we're at it... how many do we do per day
18:29.23 brlcad generous ten times a day would be about 2 months of full-time coding before it started to pay off assuming (falsely) that no new platforms need installs
18:29.34 starseeker right
18:30.40 brlcad ccache probably saves more than that :)
18:31.21 starseeker heh
18:31.31 brlcad eventually will pay off, especially if it were bundled with cmake
18:31.53 starseeker was kinda hoping they might - would potentially be hugely useful on Windows...
18:31.56 starseeker doubt it though
18:32.40 brlcad we could probably cut our compilation time in half just through header cleanup alone
18:33.07 brlcad definitely would take more than a half-hour, but bigger savings there
18:33.15 starseeker really? I figured there would be some improvement, but I hadn't expected it to be that drastic
18:34.43 brlcad not hugely significant on an optimized build, maybe 5%-50% .. but non-opt should fly
18:35.10 brlcad it's parsing thousands of lines of code for every file
18:36.05 brlcad stub in an empty int main() {return 0;} and it takes nearly as long to compile as a 20k-line bool.c
18:36.29 brlcad all because including one header like raytrace.h ends up including nearly all of include/*.h
18:36.35 starseeker ah
18:36.48 starseeker wow
18:37.05 brlcad that's 30k lines of logic it has to parse just for decls and macros
18:37.17 brlcad breaking up the headers would cut that down by an order
18:37.24 starseeker that cleanup is pretty non-trivial though, isn't it? (or at least, highly invasive)
18:37.40 brlcad supremely trivial
18:37.46 brlcad doesn't get much more trivial
18:37.51 brlcad just tedious
18:38.27 starseeker hmm... ok
18:38.56 starseeker would have thought there would be some structural planning involved
18:39.10 brlcad only non-obvious part is updating the .c files to only include the headers they actually need instead of higher-level headers like raytrace.h
18:39.19 brlcad but even that is pretty easy
18:39.26 *** join/#brlcad Stattrav (u3131@gateway/web/irccloud.com/x-wdywtbmtuqrdhppo)
18:39.45 starseeker right - worst case, yank 'em all and add in what's missing
18:39.57 brlcad exactly
18:40.24 brlcad time consuming, tedious, but very trivial
18:45.38 archivist or use pre-compiled headers
18:47.12 ``Erik that'd be the ccache part, and it doesn't help on the first run
18:48.32 ``Erik likes the minimal header inclusion approach to minimize coupling
18:49.01 starseeker agrees
18:49.46 ``Erik the big #include allIneed header approach smells similar to the jabba "class MyObject extends Object" antipattern
20:24.16 *** join/#brlcad Technicus (~Technicus@DSLPool-net208-2.wctc.net)
20:25.49 brlcad alrighty, all coverity accounts created
20:26.24 brlcad anyone else in here (seriously) interested in helping out fix coverity issues?
20:26.34 brlcad we're going to be hitting them all up hard next week
21:21.46 ``Erik yipes, one of mine is #3 on the defect/kloc list :(
21:22.22 brlcad heh
21:22.48 brlcad I think I saw that one, free'd then read
21:23.29 ``Erik I don't see a way to pull up 1 file and view all the issues with it, or annotate a file or anything
21:23.56 ``Erik though I do see some hackish stuff that'd trigger coverity... using =NULL instead of UNUSED()
21:29.42 brlcad that coverity run is from before the verbose strict mode work was completed, several months back
21:29.53 brlcad so much of it will likely be obe
21:30.05 brlcad i'm going to push another run here this weekend
21:30.09 brlcad before we get started
21:31.04 brlcad alas, fixing the issues is only half the work .. peer review, testing, and docs are going to be part of our fixing process
21:32.24 brlcad especially while adhereing to DRY... :)
21:32.47 ``Erik write everything twice... WET
21:34.37 brlcad especially while adhereing to DRY... :)
21:34.52 brlcad there, WET and DRY
21:35.34 brlcad mmm... chipped beef on either wed or thurs
21:39.01 n_reed ...or Write Every Time
21:42.33 ``Erik ALL THE TIMES!!@~! </meme>
22:12.06 CIA-28 BRL-CAD: 03n_reed * r48199 10/brlcad/trunk/src/libbn/plane.c: generalize bn_mkpoint_3planes for non-unitized direction vectors

Generated by irclog2html.pl Modified by Tim Riker to work with infobot.