IRC log for #brlcad on 20180113

01:07.42 *** join/#brlcad ncxxzzyicjgajbne (~armin@dslb-092-075-153-216.092.075.pools.vodafone-ip.de)
01:20.13 *** join/#brlcad infobot (ibot@rikers.org)
01:20.13 *** topic/#brlcad is This channel is for BRL-CAD and open source CAx discussion! Logs @ http://infobot.rikers.org/%23brlcad/
01:35.57 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
01:39.30 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
01:40.20 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
01:41.05 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
03:07.06 *** join/#brlcad yukonbob (~bch@S01069050ca2cbf63.ok.shawcable.net)
04:28.19 *** join/#brlcad teepee (~teepee@unaffiliated/teepee)
04:44.51 *** join/#brlcad teepee (~teepee@unaffiliated/teepee)
05:35.25 *** join/#brlcad teepee (~teepee@unaffiliated/teepee)
07:01.01 *** join/#brlcad teepee (~teepee@unaffiliated/teepee)
07:17.34 Notify 03BRL-CAD:brlcad * 70608 brlcad/trunk/BUGS: infinite loop clone bug reported by Rahil Malik
08:49.27 *** join/#brlcad caen23 (~caen23@79.118.94.187)
12:17.00 *** join/#brlcad merzo_ (~merzo@29-25-133-95.pool.ukrtel.net)
12:24.29 *** join/#brlcad Caterpillar2 (~caterpill@unaffiliated/caterpillar)
12:36.04 Notify 03BRL-CAD Wiki:Captain Nemo * 0 /wiki/User:Captain_Nemo:
14:04.36 Notify 03BRL-CAD:d_rossberg * 70609 (rt^3/trunk/src/QtGUI/CameraView.cpp rt^3/trunk/src/QtGUI/CameraView.h): applied the the projectionControl.patch from caleb Parks (Google Code-in 2017: "BRL-CAD Alternative GUI 8.2b: Implement Your Concept for Improving the Projection Setting")
17:11.10 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
18:31.57 *** join/#brlcad merzo_ (~merzo@226-48-133-95.pool.ukrtel.net)
18:35.43 *** join/#brlcad yorik (~yorik@2804:431:f720:60fd:2268:9dff:fef9:3113)
20:00.06 Notify 03BRL-CAD:starseeker * 70610 (brlcad/trunk/CMakeLists.txt brlcad/trunk/INSTALL and 61 others): Implement Sean's idea to use declarations when functions are present but undefined to allow us to turn off the GNU C compiler extension for C89 but still use system features that are actually present. This represents a sort of 'hybrid' C89 compliance, as a compromise between true C89 compliance (re-implementing or not
20:00.08 Notify using any functionality not in C89) and minimizing reliance on the more permissing GNU extensions. Tested with 2 GCC versions on Linux currently, so needs more testing on other platforms. Once we're done shaking it down, this should set the stage for planting the flag on the next release as the last C89 version of the code and allow us to increase our use of more modern standards going forward.
20:00.10 Notify ...
20:15.38 *** join/#brlcad teepee (~teepee@unaffiliated/teepee)
20:35.47 Notify 03BRL-CAD:starseeker * 70611 (brlcad/trunk/include/bu/vls.h brlcad/trunk/src/libbu/opt.c and 3 others): Make libbu build in C++ mode. Need to const the str parameter to bu_vls_prepend, but that should be safe since bu_vls_prepend alters the vls, not the input.
20:37.27 starseeker brlcad: OK, we're not as close to C++ building as I thought. We've got a ton of ISO C++ forbids converting a string constant to â char* warnings all over the code
20:38.42 Stragus Converting perfectly good C to C++, really? :)
20:43.33 starseeker Stragus: it's primarily for MSVC - since they've decided they're not going to update beyond C89
20:44.49 starseeker it'd be nice to be able to take at least some advantage of newer standards, but the need for MSVC support basically means our working subset will be the overlapping region of the Ven diagram for the C and C++ standards
20:45.14 Stragus Apparently, many (most? all?) C99 features are present in MSVC lately
20:45.25 starseeker most but not all, I think
20:49.46 starseeker but their "recommended" approach to non-ancient C is to compile it as C++: https://herbsutter.com/2012/05/03/reader-qa-what-about-vc-and-c99/
20:49.47 gcibot [ Reader Q&A: What about VC++ and C99? | Sutter’s Mill ]
20:50.12 starseeker "We recommend that C developers use the C++ compiler to compile C code (using /TP if the file is named something.c). This is the best choice for using Visual C++ to compile C code."
20:50.52 starseeker Hence, the interest in building our code as all C++
20:51.40 Stragus Okay. I was surprised to see MSVC supported non-C++ C99 features liked named initializers
20:53.37 starseeker there may be some thawing of the ice since those postings, actually: https://visualstudio.uservoice.com/forums/121579-visual-studio-ide/suggestions/7295844-reconsider-position-on-c99-11
20:53.38 gcibot [ Reconsider position on c99/11 – Visual Studio ]
20:53.57 starseeker but still primary focus is on C++
20:54.32 starseeker Stragus: are there any particular downsides to keeping C code also legal from a C++ standpoint?
20:54.48 starseeker (aside from the grunt work of getting there in the first place, of course..)
20:55.57 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
20:57.22 Stragus Well, some C99 features like named initializers are absent, you need a ton of pointless casts everywhere, and so on
21:00.22 starseeker Stragus: the team will have to game out some scenarios - portability always seems to mean we can't have some nice thing or other...
21:01.16 starseeker maybe we can go with subset of C99 supported by MSVC verion X, but on principle I hate not using proper standards to define usable sets
21:01.44 Stragus Indeed. I wonder what parts of C99 aren't actually supported these days
21:02.23 Stragus I had portability issues to modern MSVC with my codes, but mostly due to frequent abuses of GNUisms, GCCisms, Linuxisms
21:02.37 starseeker heh
21:03.15 starseeker I remember - the older version of your triangle mesh simplification code took quite a while to fit in
21:03.46 starseeker one of the reasons I haven't tried to integrate your updated version yet is 'cause I want to be on the newer standards first
21:03.46 Stragus Eh right, sorry about that. I need to send you an updated version of that, if anyone uses it...
21:04.33 starseeker you had posted some updates a little while back, IIRC
21:04.58 starseeker Ah, thought so: https://sourceforge.net/p/brlcad/code/HEAD/tree/gct/
21:05.05 Stragus Right, there was further progress since then
21:05.26 starseeker Stragus: would it be useful to you to just commit directly to that repo?
21:05.38 starseeker it's a stand-alone, so feel free if you like
21:06.24 Stragus I don't think I have access to it, but I could do that
21:06.53 starseeker Stragus: do you have a sf account? If so Sean should be able to set you up no problem
21:07.21 starseeker doesn't think he has that level of admin on sf, but I haven't checked in a while
21:07.23 *** join/#brlcad merzo_ (~merzo@226-48-133-95.pool.ukrtel.net)
21:08.05 starseeker Stragus: or github would work fine too for that matter - I don't know what your preferred environment is
21:08.19 Stragus Probably, asking it for a "new password". ;)
21:08.36 starseeker we're mulling over a git conversion, but given the size of our history the conversion is... non-trivial
21:08.43 Stragus Ah, I can imagine that
21:09.50 starseeker A careful manual rebuild with reposurgeon is probably the only way to really get it right - I got a "technially" correct conversion with KDE's tool, but I don't think it hooked up all the stuff correctly
21:09.57 starseeker branches, tags, etc.
21:10.16 starseeker was darn handy as a canary in the coal mine though when it came to the repo corruption incident
21:12.05 starseeker yeah, doesn't look like I have that level of admin privilege
21:14.42 starseeker Stragus: do you usually use C99, or are you also utilizing newer language features?
21:17.52 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:19.34 starseeker really wishes he had thought to try the C++ build ahead of GCI... assuming correct fixes, this would really be a good beginning student task
21:19.46 starseeker propagate a zillion consts
21:21.52 starseeker eyes libnmg... to rewrite or not to rewrite, that is the question... whether 'tis nobler in the mind to suffer the slings and arrows of outrageous code, or take arms against a sea of bugs and by rewriting end them...
21:39.16 Stragus starseeker: I try to stick to C99, and use GNUisms with MSVCisms fallbacks when unavoidable
21:41.04 Stragus Alignment, __attribute__((always_inline)), __builtin_expect(), label pointers, there's a ton of good stuff. Sometimes all you need is a #define restrict __restrict for MSVC
22:23.29 *** join/#brlcad teepee (~teepee@p578EC841.dip0.t-ipconnect.de)
22:23.30 *** join/#brlcad teepee (~teepee@unaffiliated/teepee)
22:59.27 starseeker Stragus: sounds good
23:00.25 starseeker gah - over 2100 individual reports of the "converting a string constant" issue.
23:10.50 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
23:33.57 starseeker brlcad: here's a brain teaser - I need (or at least want) to persist data (rt prep state) between multiple invocations of a libged nirt command. The ged API paradigm doesn't allow for this currently, AFAICT - what's the "right" way to set this up? make a new ged command signature that is gedp, argc, argv, void *data or use the struct ged container to holde it or... ?
23:34.48 starseeker it shouldn't be rt prep specific, since ged commands may want to persist all sorts of things that won't cleanly fit into the argv strings, in principle...

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