| 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) | |