IRC log for #brlcad on 20161004

00:26.09 *** join/#brlcad LordOfBikes (~armin@dslb-092-074-225-166.092.074.pools.vodafone-ip.de)
01:50.21 *** join/#brlcad archivist (~archivist@host81-149-189-98.in-addr.btopenworld.com)
02:16.38 *** join/#brlcad archivist (~archivist@host81-149-189-98.in-addr.btopenworld.com)
03:59.16 *** join/#brlcad teepee (~teepee@unaffiliated/teepee)
05:54.27 brlcad starseeker: I didn't scrutinize it that closely for impact .. any non-NMG public API had to change?
05:56.22 brlcad smells bad having a free list added to so many function args
05:57.06 brlcad free lists are usually just an optimization and a poor one at that these days -- did you see if you could just eliminate its use altogether?
05:59.13 brlcad don't know about the specific nmg case, but usually they are a list of free'd items, so when the next allocation comes, it pulls from the free list instead of allocating again ... a really really inefficient optimization that we might be able to change to just allocate on-demand or in-advance, no free lists
06:00.04 brlcad I do know that's what we need to do in others parts of librt, particularly in db hash
06:00.24 brlcad kudos on getting through all that grunting .. herculean
06:30.30 Notify 03BRL-CAD:brlcad * 68976 brlcad/trunk/src/libbu/booleanize.c: restore booleanize back to r68707 with slight modification that was causing the spdi/shaders/solids regression tests to fail. the problem was simply that errno needed to be reset before calling strtol(). now all regress tests are passing again.
06:35.27 Notify 03BRL-CAD:brlcad * 68977 brlcad/trunk/src/libbu/opt.c: few other places we do not properly reset errno before calling a function that potentially sets it (e.g., strtod, strtol)
07:27.35 *** join/#brlcad amarjeet (~amarjeet@202.164.53.117)
07:35.03 *** join/#brlcad Caterpillar (~caterpill@unaffiliated/caterpillar)
07:42.22 *** join/#brlcad merzo (~merzo@user-94-45-58-141.skif.com.ua)
08:07.02 *** join/#brlcad Caterpillar (~caterpill@unaffiliated/caterpillar)
08:20.04 *** join/#brlcad merzo (~merzo@user-94-45-58-141.skif.com.ua)
09:05.34 *** join/#brlcad merzo (~merzo@user-94-45-58-141.skif.com.ua)
10:11.14 *** join/#brlcad merzo (~merzo@92.60.189.225)
10:32.38 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
10:55.53 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
12:10.10 *** join/#brlcad amarjeet (~amarjeet@202.164.53.117)
12:12.34 Notify 03BRL-CAD:brlcad * 68978 (brlcad/trunk/src/libged/gqa.c brlcad/trunk/src/libpkg/pkg.c brlcad/trunk/src/util/ttcp.c): more places we need to initialize errno before we test it.
12:28.29 brlcad starseeker: how do you have things set up to run the static analyzer? anything special? I'd like to squish some issues in idle time.
12:41.37 Notify 03BRL-CAD:brlcad * 68979 brlcad/trunk/src/libbu/badmagic.c: make bu_badmagic actually not return, always
12:44.36 Notify 03BRL-CAD:brlcad * 68980 (brlcad/trunk/include/bu/log.h brlcad/trunk/include/bu/magic.h): mark bu_badmagic as not returning and document it as such
12:48.52 Notify 03BRL-CAD:brlcad * 68981 brlcad/trunk/include/bu/magic.h: clean up alignment so they're consistent (and relocatable)
13:11.00 *** join/#brlcad teepee (~teepee@unaffiliated/teepee)
13:16.18 *** join/#brlcad merzo (~merzo@user-94-45-58-138-1.skif.com.ua)
13:17.09 starseeker brlcad: There's a basic script in misc - I don't think I've got the more elaborate one committed yet (that breaks things down by lib) - I'll check
13:20.01 starseeker brlcad: offhand I don't recall any non-NMG API changing - the reason I had to go with passing the list around is I wasn't sure what other programs (say, MGED) were depending on the drawing work taking place specifically in RTG.rtg_vlfree
13:22.08 starseeker it may be that it truly doesn't matter, but given how massive the task is I was trying for the minimal change to avoid unanticipated side effects
13:23.00 starseeker I'm willing to re-grunt through it and clean it up if we determine it's not needed
13:30.14 ries ping Sean, any update?
13:33.56 Notify 03BRL-CAD:starseeker * 68982 brlcad/trunk/misc/clang-static-analyzer-run.sh: A somewhat more elaborate clang static analyzer script with more nuanced reporting of what is and is not expected to pass (and reports specific to each library.) In a perfect world this would actually be generated by CMake - the major weakness of this setup is that the target list is static in the file and dosn't automatically update when
13:33.58 Notify the build changes. Still, it's a start.
13:34.00 Notify ...
13:35.04 starseeker brlcad: that'll probably be actively damaging to your shell scripting sensibilities, but it also contains the logic for how to do the static analysis building
13:35.46 *** join/#brlcad yorik (~yorik@2804:431:f721:d5eb:290:f5ff:fedc:3bb2)
13:35.53 starseeker hey you
13:35.59 starseeker er yorik
13:36.19 brlcad ries: yes, he should be good to go
13:36.20 starseeker be nice if my fingers acted like the're actually connected to my brain...
13:36.31 brlcad ries: can you have him send me an e-mail?
13:36.44 ries brlcad: yes I can
13:36.49 brlcad great, thanks
13:37.06 ries brlcad: it has been very quite on the channel lately..
13:37.08 brlcad I'll cc you on the info, just going to let him know what to expect
13:37.23 ries ok
13:37.30 brlcad yeah, it's been crunch time for several of us
13:37.38 *** join/#brlcad merzo (~merzo@user-94-45-58-141.skif.com.ua)
13:39.24 brlcad starseeker: got why you were changing it -- no problems there -- just a note that there may be an easy way to make it go away (as it should eventually go away), especially if you tackle other global constructs like it
13:40.09 starseeker nods - sounds good. I should have thought about that before diving in, but I was in one of my "I want to DO something, now" moods
13:40.13 starseeker that'll teach me
13:40.35 brlcad i've done it myself
13:40.57 brlcad thanks for the script
13:41.03 starseeker the other other major global I've spotted so far (probably there are others, but this is the obvious one) is the RTG.NMG_Debug flag
13:41.07 starseeker np
13:41.21 starseeker RTG.NMG_debug rather
13:41.28 brlcad nods
13:41.36 starseeker I'm assuming we'll do with that what we do for the other libs and make it nmg_debug
13:41.41 brlcad I think nearly everything in RTG can go away
13:41.43 brlcad checks
13:43.44 starseeker a somewhat thornier issue is how to handle the snurb and cnurb pieces. As a first cut, I'd like to pull them out into libnmg rather than trying to excise them - they're hooked in in quite a fe places
13:44.06 brlcad yeah, only tricky one is rtg_headwdb, and rtg_vlfree might propagate into a lot of places with the RT*VLIST() macros
13:46.13 brlcad pulling them over into libnmg first is what I would do
13:46.16 starseeker once we have the bspline bits separated out into libnmg, it's actually a better environment to evalute them as compared to their openNURBS counterparts
13:46.29 brlcad as few changes as possible really, just enough to decouple the libs from a symbol standpoint
13:47.01 brlcad eh? evaluate what? :)
13:47.03 starseeker nods. Should probably also hook up that thing you did a few years ago to use the new brep raytracing routines to raytrace older bspline objects by default
13:47.22 starseeker brlcad: one of our long term TODO tasks was to see if we have any worthwhile nurbs routines not in openNURBS
13:47.33 starseeker isn't familiar enough with that logic to say one way or the other
13:47.42 brlcad ah, that's different
13:48.05 brlcad bspline stuff in nmg should go away fully, it overlaps with openNURBS, but there are some functions in there we might want to keep/recode
13:48.20 starseeker figures the bspline primitive should boil down to IO routines and the translation between data structures...
13:48.24 brlcad mostly an eye towards nmg_misc iirc
13:49.17 brlcad can check release notes, but I'm not sure bspline was ever considered finished/published
13:49.25 starseeker is actually starting to wonder a bit if the original goal of NURBS-in-NMG might be of interest - openNURBS hasn't released since 2013...
13:49.58 starseeker brlcad: sure, but to maintain the ability to read old .g files at least the IO bits have to survive somewhere...
13:50.58 brlcad not if it wasn't ever published in any way .. only ones affected would be a dev
13:51.30 brlcad I don't know of that capability ever making it into a users hands, but would certainly check
13:52.02 brlcad biggest problem would be if we have any tools that create them, effectively putting them into user hands
13:52.05 starseeker oh - did you create the files for comparison when you checked the old bspline raytracer against the new work?
13:52.20 brlcad but proc_db's don't count, and that's the only one that comes to mind
13:52.48 starseeker well, wdb.h has mk_bspline...
13:52.48 brlcad ahhhh, no .. damn
13:52.57 starseeker at, the IGES converter
13:53.00 brlcad there is a tool that published them
13:53.02 brlcad right
13:53.10 brlcad okay, so never mind
13:53.43 starseeker so, boil bspline down to the IO routines and the translation to openNURBS
13:54.54 starseeker and while we're at it, either remove the proc-db tools that use mk_bspline or recode them to use breps...
13:55.54 starseeker and update the iges converter
13:57.33 starseeker is astounded by the number of bu_bomb calls in nmg code
13:57.55 starseeker almost 700
14:01.31 starseeker brlcad: should we mark mk_bspline as deprecated?
14:09.51 brlcad hadn't done that yet just because mk_brep is rather unsatisfying
14:10.43 brlcad the proc-db tools would make for some fun nurbs test cases
14:10.51 brlcad (recoded)
14:11.30 brlcad nmg used bu_bomb as an exception handling mechanism, so not surprising
14:12.29 brlcad if it were c++, they might as well be a ton of "throw ..." statements, which 700 would not be at all unusual
14:19.15 *** join/#brlcad merzo (~merzo@92.60.189.225)
14:31.39 Notify 03BRL-CAD:starseeker * 68983 brlcad/trunk/src/libbu/badmagic.c: %s for string
14:33.20 starseeker brlcad: fair enough, but if we go with the principle that it's not a library's responsibility to crash under most circumstances, reworking all that is going to be a Big Job
14:47.13 brlcad oops, thanks for the fix .. was just compiling now
14:49.08 brlcad starseeker: that's just it -- the library doesn't technically violate that principle
14:49.49 brlcad it uses bu_bomb as an exception handler, like throw/catch, and callers are expected to catch/handle any errors specifically so it doesn't crash
14:50.23 brlcad I could literally rename them all to .cpp, replace with throw statements, and it would be no different design intent
14:51.27 brlcad not really any different end result either with calling code updated with try/catch instead of BU_SETJMP/UNSETJMP
14:52.24 *** join/#brlcad merzo (~merzo@user-94-45-58-138-1.skif.com.ua)
14:53.14 brlcad you're right that it will certainly be a job to change it to anything else, though ;)
14:54.59 brlcad the point was merely that 700 exception conditions is not in any way unusual (in fact, it's probably low for code that complex with that many functions)
14:57.46 brlcad pick a poison: 700 bu_bomb calls with caller set/unset jumping, 700 throws with caller try/catching, 700 return conditions that would entail a huge cascade of every function call needing to get checked for return codes, 700 state settings in a struct getting passed to and checked by every function
14:58.35 brlcad not saying I prefer it, but using bu_bomb in this fashion is actually probably the least complicated and least code of all the options -- it has merit
15:18.09 *** join/#brlcad amarjeet (~amarjeet@169.149.136.110)
17:58.14 *** join/#brlcad Mandeep_Singh (~mandeep@2405:205:4083:b4c2:bc26:74bc:571a:c31d)
18:16.07 *** join/#brlcad Mandeep_Singh (~mandeep@2405:205:4083:b4c2:f92d:aebd:3037:8673)
19:40.30 Notify 03BRL-CAD:starseeker * 68984 brlcad/trunk/src/libbg/chull3d.cpp: double can't hold DBL_MAX*DBL_MAX...
19:46.36 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
19:48.10 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
19:49.12 Notify 03BRL-CAD:starseeker * 68985 (brlcad/trunk/src/librt/primitives/bot/gct_decimation/auxiliary/mm.c brlcad/trunk/src/librt/primitives/bot/gct_decimation/auxiliary/mmbinsort.c and 7 others): avoid gcc pragmas with icc
19:49.44 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
19:51.19 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
19:52.55 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
19:55.28 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
19:57.02 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
19:59.36 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:00.00 Notify 03BRL-CAD:starseeker * 68986 brlcad/trunk/src/other/libnetpbm/pm_config.h.in: make sure _MSC_VER is defined before comparing it
20:01.10 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:03.44 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:07.18 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:08.52 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:11.26 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:14.00 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:16.36 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:18.10 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:19.44 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:21.18 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:23.53 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:25.27 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:27.02 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:28.15 *** join/#brlcad ries (~ries@D979C7EF.cm-3-2d.dynamic.ziggo.nl)
20:28.37 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:30.11 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:31.45 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:33.19 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:34.53 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:37.27 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:39.01 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:41.35 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:43.08 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:44.42 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:46.16 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:48.50 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:50.24 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:51.58 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:54.32 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:57.06 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:58.40 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:02.15 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:03.49 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:05.23 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:07.57 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:10.31 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:12.05 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:13.39 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:15.13 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:17.47 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:20.21 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:22.55 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:24.29 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:26.04 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:28.39 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:31.13 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:32.47 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:34.21 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:36.55 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:38.29 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:40.03 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:42.37 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:44.11 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:46.46 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:48.21 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:49.55 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:51.30 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:53.04 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:54.38 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:56.12 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:57.46 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
22:02.20 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
22:03.54 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
22:08.28 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
22:10.02 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
22:12.08 *** join/#brlcad merzo (~merzo@93-195-113-92.pool.ukrtel.net)
22:13.36 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
22:15.08 *** join/#brlcad ries_ (~ries@D979C7EF.cm-3-2d.dynamic.ziggo.nl)
22:15.10 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
22:16.44 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
22:20.19 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
22:21.52 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
22:24.26 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
22:27.01 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
22:28.35 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
22:30.09 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
23:24.20 *** join/#brlcad teepee (~teepee@unaffiliated/teepee)

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