IRC log for #brlcad on 20161014

00:05.28 Notify 03BRL-CAD:starseeker * 69053 (brlcad/trunk/src/librt/primitives/bspline/nurb_basis.c brlcad/trunk/src/librt/primitives/bspline/nurb_bezier.c and 21 others): Start backing down the include headers in the nurbs code.
00:18.20 Notify 03BRL-CAD:starseeker * 69054 (brlcad/trunk/include/rt/nmg.h brlcad/trunk/src/librt/primitives/nmg/nmg.c brlcad/trunk/src/librt/primitives/nmg/nmg_plot.c): start pecking away at removing RT_ADD_VLIST from the nmg code.
00:46.19 Notify 03BRL-CAD:brlcad * 69055 (brlcad/trunk/src/conv/jack/g-jack.c brlcad/trunk/src/conv/off/g-off.c brlcad/trunk/src/libged/draw.c): nmg_r_to_vlist() apparently needs a vlfree list now. lacking an alternative, passing the global.
00:51.51 Notify 03BRL-CAD:brlcad * 69056 brlcad/trunk/src/proc-db/tea_nmg.c: nmg_m_to_vlist is taking vlfree list too
00:53.37 *** join/#brlcad rlahaeowhdtuemdl (~armin@dslb-092-074-236-082.092.074.pools.vodafone-ip.de)
06:54.07 *** join/#brlcad teepee (~teepee@unaffiliated/teepee)
07:24.18 *** join/#brlcad merzo (~merzo@91.217.179.122)
08:11.23 *** join/#brlcad teepee] (bc5c2133@gateway/web/freenode/ip.188.92.33.51)
09:19.02 *** join/#brlcad Caterpillar (~caterpill@unaffiliated/caterpillar)
11:17.17 *** join/#brlcad Ch3ck (~Ch3ck@154.70.99.219)
12:57.50 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
13:32.06 Notify 03BRL-CAD:brlcad * 69057 brlcad/trunk/src/tab/CMakeLists.txt: don't emit warnings we can't do anything about
13:46.33 *** join/#brlcad yorik (~yorik@2804:431:f720:93f1:290:f5ff:fedc:3bb2)
13:52.11 *** join/#brlcad kintel_ (~kintel@unaffiliated/kintel)
14:08.25 starseeker brlcad: thanks - forgot to do a full build before commit
14:09.00 brlcad no worries, you fixed mine yesterday too ... and I DID do a full build before commit .. no idea how it passed
14:09.49 starseeker I think I'm starting to get fairly close to ready for a libnmg split, once I get the rest of those RT_* macros
14:10.07 starseeker I'm figuring that should probably be after 7.26.2
14:10.30 starseeker theoretically it could be done with minimal disruption, but in practice...
14:10.47 brlcad nods, cool
14:12.14 starseeker been looking into the stat stuff a bit - I'm having a hard time finding anything that indicates explicit attribute reporting via stat
14:14.07 starseeker brlcad: oh, one though on the nmg vlfree refactor - do we need to construct regex expressions for all of those functions to append the RTG global in order to be minimally impacting?
14:15.13 starseeker that'll be really nasty (worse since like an idiot I didn't always put the new vlfree parameter at the end of the function param lists) but I'm not sure how "public" we want to consider the nmg calls
14:15.39 *** join/#brlcad amarjeet (~amarjeet@169.149.170.121)
14:20.25 brlcad starseeker: I don't consider the nmg_ and rt_nmg_ to be documented public API
14:20.45 brlcad other rt_* functions are a different story
14:21.26 brlcad what stat stuff?
14:42.55 starseeker we had decided to look into how BFS/HFS/etc. handled attribute reporting in their stat command
14:43.35 starseeker for design discussions for the BRL-CAD stat functionality - wanted to dig that back out of the archives before it gets too hard to re-apply
14:52.23 *** join/#brlcad merzo (~merzo@93-195-113-92.pool.ukrtel.net)
14:56.09 Notify 03BRL-CAD:starseeker * 69058 (brlcad/trunk/include/rt/nmg.h brlcad/trunk/src/libged/draw.c and 4 others): Remove the rest of the RT_ADD_VLIST calls from nmg_plot
14:56.18 Notify 03BRL-CAD:brlcad * 69059 brlcad/trunk/misc/CMake/BRLCAD_Targets.cmake: bit again. remove dead symlinks so removed/renamed files don't mess with the build (e.g., when a tclIndex needs to be regenerated). if it globs but doesn't exist, it's a dead link and useless in the build tree regardless. copies are left to fend for themselves (and don't exhibit the same problems).
15:03.05 brlcad ahh, gotcha .. note that they don't call them attributes
15:03.43 brlcad e.g., HFS calls them user defined flags
15:04.19 brlcad quick look at man stat indicates they use stat -f "format" to get at them
15:05.03 brlcad using a printf-style formatter with pre-defined awareness of some file properties
15:05.18 brlcad looks like "ls -lO" will list them via ls
15:06.17 Notify 03BRL-CAD:starseeker * 69060 brlcad/trunk/src/librt/primitives/nmg/nmg_inter.c: Normally this isn't a good idea, but given how embedded rt_in_rpp is in the core shotlining logic we break the nmg/librt coupling here by making an nmg version of this function to minimize any unintended side effects of things like the previous attempt to move rt_in_rpp to libbg. Once libnmg is a separate library we can revisit this,
15:06.19 Notify but for now go with the least risk minimal impact solution.
15:06.21 Notify ...
15:06.28 brlcad according to http://befs-driver.sourceforge.net/about.php, looks like be called them extended attributes
15:06.46 starseeker ah, I see
15:08.11 starseeker got distracted by statfs - pondering some ideas on treating full paths as statfs rather than stat calls...
15:08.28 brlcad this looks like the haiku interface, https://www.haiku-os.org/docs/userguide/en/attributes.html
15:08.33 starseeker brlcad: I've got a few design thoughts - should I jot them down for discussion next week?
15:09.14 starseeker listattr... hmm
15:10.02 brlcad according to https://api.haiku-os.org/fs__modules.html, their stat interface supports accessing attributes, but still digging to find something like a manual page
15:10.26 brlcad yeah, their other useland tools are essentially our attr command
15:10.41 brlcad mac hfs is similar with the chflags command
15:11.15 brlcad starseeker: just curious, what was the problem moving rt_in_rpp to bg?
15:11.44 starseeker brlcad: I just got jittery - didn't know what performance implications might be of moving that function call to another lib
15:12.03 starseeker plus it's just so core to the librt shotlining logic I was reluctant to monkey with it
15:12.14 brlcad performance wouldn't change simply by moving it
15:12.27 starseeker the library change isn't an issue?
15:12.36 brlcad why would it?
15:12.39 starseeker thought he remembered you expressing concerns about that some years back...
15:13.01 brlcad introducing a function call where one didn't exist or changing the function to generalize it
15:13.19 brlcad those can have impact, in some rare cases
15:13.38 starseeker ah. OK, perhaps I was mis-remembering
15:14.39 starseeker brlcad: the bg breakout is in the history a few commits back - can resurrect that
15:14.40 brlcad but simply moving a symbol _abc from libA to libB isn't going to change anything except the time to load appZ if it didn't previously rely on libB, and that would usually be measured in startup microseconds
15:15.33 brlcad the bigger deal was introducing a new data type to libbg, the notion of a ray ... don't know if it already had/has that notion
15:16.00 starseeker libbg doesn't have a lot yet - we haven't had the scoping discussion :-)
15:16.34 starseeker 69060 should be fairly harmless - we can easly refactor from there to call a common function later once things are sorted
15:17.03 brlcad a "half line" defined by a point and vector is almost certainly fair game imo, just good to consciously expand scope to include it if that's the direction it goes
15:18.13 starseeker brlcad: I'm game either way - mostly just looking for the lowest impact way to break coupling at this point
15:18.36 brlcad heck, I think even libbn might already introduce a ray, but that'd probably be something to weed out of bn and up into bg
15:18.43 starseeker nods
15:19.05 starseeker bn's got a number of things in it that should probably move up, imho... planes, for example
15:19.41 brlcad we should itemize data types for the b* libraries
15:19.55 starseeker nods
15:19.57 brlcad I think that will greatly help define their scope and point out clear outlier scope violations
15:20.24 brlcad good future agenda topic
15:20.32 starseeker brlcad: in the short term, should I revert 69060 and go with the libbg breakout?
15:20.33 brlcad after we get through the cmd listings
15:20.39 starseeker grins - agreed
15:21.41 brlcad whatever gets you there, don't see a problem eithe rway
15:22.31 starseeker 69060 is simpler for now then - I'll add a comment as a reminder that we need to revisit it (and probably a lot of things in NMG, actually - polygon tessellation is one where I'm not sure if it should be in libnmg or libbg...)
15:22.36 brlcad the intent of bg already included awareness of some basic shapes like sphere iirc, and a box (rpp) fits in that view too
15:23.56 brlcad yeah, that gets into whether bg should include sets of things, which is what we need to sort through
15:24.03 brlcad (polygons)
15:25.16 brlcad if bg has sets of polygons, then that could potentially heavily overlap with nmg and be a mess to resolve
15:25.47 Notify 03BRL-CAD:starseeker * 69061 brlcad/trunk/src/librt/primitives/nmg/nmg_inter.c: We eventually need to decide how to merge rt_in_rpp and ray_in_rpp - add a comment so that is clear. Needs a bit of design work first so we know what the 'correct' solution will be - libbg, or something else...
15:26.08 starseeker nods - the distinction would probably be connected edges (topology) vs bare polygons, but I don't know for sure if that's sensible
15:26.19 brlcad good point, maybe
15:27.08 brlcad except if you end up with a whole slew of the same functionality, and most can be implemented with/without topology (e.g., re-tessellation), that might still be a mess
15:27.39 starseeker nods - the idea would be to have libnmg call libbg for anything that didn't require topology
15:28.30 starseeker (say, libnmg would introduce shared points on edges to constrain a tessellation to mate up on edges, and then libbg would tessellate the individual faces as polygons
15:28.56 starseeker that undercuts libnmg as a self contained stand-alone library though
15:29.58 starseeker in that scenario, libnmg's primrary concern becomes the radial edge data structures and logic associated with those, with the "lower level" operations being passed down
15:31.10 brlcad yeah
15:31.22 brlcad if you always need both, then they probably belong together in some form
15:31.49 brlcad if one often only needed one or the other, that would be good reason for separateion
15:32.35 brlcad right now, we clearly have separation bot vs nmg and natural progression is a lib containing both sets
15:32.53 brlcad rather a lib for each, or a lib with both
15:36.14 starseeker noes
15:36.18 starseeker nods even
15:37.18 starseeker as long as we have both libnmg and openNURBS/libbrep, we'll have two separate users that will want tessellation
15:38.45 brlcad is unable to find the haiku stat man page, sees if he has a disk image available
15:39.43 brlcad decimation might be a better example for those too :)
15:44.34 starseeker is checking the Haiku source tree - so far I can't find any man pages...
15:46.02 starseeker hrm. https://www.haiku-os.org/community/forum/haiku_man_equivalent
15:51.31 starseeker https://github.com/haiku/haiku/blob/b65adbdfbc322bb7d86d74049389c688e9962f15/src/system/libroot/posix/sys/stat.c
15:53.23 starseeker ah: https://github.com/haiku/haiku/blob/master/headers/posix/sys/stat.h
15:53.55 brlcad yeah, I already read the C api, it has hooks to the attribute data
15:54.12 brlcad the question is how, if at all, this is exposed via the stat command-line tool
15:59.46 brlcad okay, got haiku running -- it's just standard gnu coreutils stat, so they don't address it
16:00.31 starseeker ok, that leaves OSX as the guide so far. ZFS was the other one I think?
16:00.44 starseeker checks if FreeBSD has a ZFS aware stat...
16:00.56 brlcad well haiku's guide is go with "attr" ;)
16:01.03 starseeker heh
16:02.13 brlcad looks like zfs calls them properties and provides an attr-style "zfs" command
16:02.15 brlcad https://docs.oracle.com/cd/E18752_01/html/819-5461/gayns.html
16:02.50 brlcad nice, they handle inheritance
16:03.37 starseeker so now we have two areas of interest - stat, and what the varios OS attr commands do that ours doesn't ;-)
16:05.28 brlcad http://stackoverflow.com/questions/27828585/posix-analog-of-coreutils-stat-command has good info, basically stat -f or -c
16:05.59 brlcad or incorporate into ls and make scriptable
16:06.45 starseeker kinda views ls as a bit "higher level", but that my just reflect the bias of my own usage patterns
16:07.46 starseeker s/my/may
16:08.43 brlcad looks like ext2/3/4 has lsattr/chattr, but don't allow user-defined attributes
16:45.43 brlcad starseeker: the more I think about it, the more I'm convincing myself that stat/exists should get the axe
16:46.14 brlcad there's so much overlap with several other commands that I have to imagine we can incorporate that shorthand easily into a command roadmap in some other way
17:05.10 starseeker ok
17:05.33 starseeker so for the short term should I just add a -size option to search?
17:06.20 starseeker wanted some way to answer the question "what are the large objects in this .g" - that's what originally drove the stat command
17:06.55 starseeker it's correlary would be nice too "how big is the keep of this object?"
17:07.38 starseeker supposes an option to ls is a possiblity...
18:37.39 *** join/#brlcad amarjeet (~Amarjeet@169.149.150.129)
18:46.57 *** join/#brlcad starseek1r (~starseeke@104.225.5.10)
18:55.11 *** join/#brlcad ries (~ries@D979C7EF.cm-3-2d.dynamic.ziggo.nl)
18:56.43 *** join/#brlcad LordOfBikes (~armin@dslb-092-074-236-082.092.074.pools.vodafone-ip.de)
18:59.08 brlcad starseek1r: I think all the standard 'find' options are fair game, which includes a -size option: http://pubs.opengroup.org/onlinepubs/009695399/utilities/find.html
19:02.02 brlcad the only issue will be standardizing how to get at other "size" information since search should probably just report some standarzied notion of object size like the db5_raw_internal.object_length
19:03.22 brlcad (course stat is that too, ls or summary would be good for higher-level constructs)
19:27.01 Notify 03BRL-CAD:starseeker * 69062 brlcad/trunk/src/libbu/tests/bu_basename.c: There's no point in failing the bu_basename tests on a platform without its own basename.
19:29.26 Notify 03BRL-CAD:brlcad * 69063 brlcad/trunk/src/libanalyze/CMakeLists.txt: ignore, but list the headers for distcheck
19:29.55 starseeker brlcad: if we're ditching stat/exists, what did you have in mind as a replacement
19:30.12 starseeker kinda liked the notion of the cad stat being analogous to the filesystem stat...
19:30.41 Notify 03BRL-CAD:brlcad * 69064 brlcad/trunk/src/libanalyze/CMakeLists.txt: include the right relative path
19:32.24 brlcad which problem / feature are we talking about? :) getting a list of the biggest objects would be well handled with ls -S and/or search -size options
19:33.09 brlcad knowing, for example, which bot has the most triangles or which brep the most surfaces (or edges or vertices, etc) is more problematic
19:34.49 brlcad original idea for 'exists' was a corollary to the 'test' built-in, not stat per se
19:36.11 starseeker I guess I was thinking ahead to if we add timestamp info to objects
19:36.36 starseeker and the printf-style reporting of stat had some possibilities for scripting reports of db info
19:37.05 starseeker sure, I can see ditching exists
19:39.04 brlcad find/ls both have timestamp options too :)
19:39.08 starseeker brlcad: before we reject the idea of a stat command, can I write up my notions of what it would look like for discussion
19:39.16 brlcad uses ls -lart all the time
19:40.39 starseeker it may be that find/ls encompass everything we need, but I'd like to lay out the features I have in mind to make sure they will map
19:40.58 brlcad sure, go for it
19:41.35 starseeker cool - thanks. I'll try to do so in the next week or so
19:41.50 starseeker scowls at the Windows unit test results
19:42.02 brlcad note that this also doesn't preclude having stat in some other form, like if we retain a "db" command for lower-level database inspection, "db stat ..." might make sense
19:42.12 starseeker ah
19:42.23 starseeker that actually does make sense
19:42.29 brlcad but I think we need a bigger picture view
19:42.42 starseeker nods
19:44.09 starseeker OK, after shutting up bu_basename, we've got 1 bu_bitv_master fail, 1 bu_booleanize_nullptr fail, 1 bu_progname_tests fail, 3 bu_vls_vprintf fails, 5 bn_list_2d fails and 5 bn_list_3d fails
19:44.59 brlcad loves having the Blue Angels flying overhead while he works
19:45.07 starseeker heh - cool :-)
19:45.41 brlcad apparently my side street is directly on their flight path for several runs
19:46.21 brlcad shutting up basename??
19:47.11 brlcad I just check regressions a day ago and was all passing
19:47.42 starseeker not on Windows - no basename, no testie
19:47.51 brlcad oooh, heh
19:48.00 starseeker other failures are all Windows specific
19:48.03 brlcad you're still worrying about that? :)
19:48.29 starseeker what, unit testing on Windows? it's so close to working fully...
19:48.30 brlcad good on you, Windows needs some love
19:49.03 starseeker suspects all the bn_list failures are related... something about temp files, buffers, and fread unhappyness...
19:49.17 starseeker need to step through it on Linux to figure what it is supposed to do...
19:49.32 brlcad https://msdn.microsoft.com/en-us/library/e737s6tf.aspx
19:49.48 brlcad (for basename testing if you want to get it working)
19:50.43 starseeker blegh - figures there would be a solution
19:50.53 starseeker makes a TODO note
19:52.03 brlcad here's actual code, pretty trivial: https://github.com/fastbot3d/firmware/blob/master/pru_sw/utils/pasm_src/path_utils.c
19:52.30 Notify 03BRL-CAD:starseeker * 69065 brlcad/trunk/src/libbu/tests/bu_basename.c: Note that there is a Windows system option that offers basename functionality we should use to test this with.
19:52.56 starseeker hah, not bad
19:52.57 starseeker thanks
19:53.14 brlcad something like _makepath(base, NULL, NULL, path, ext);
19:54.27 brlcad equiv to base = basename(path);
19:55.15 brlcad ahh, just pass NULL for ext, not needed
19:56.18 brlcad huh, never mind .. that example doesn't jive with the docs on quick look
19:57.38 starseeker isn't splitpath what we want?
19:58.07 brlcad yeah, think so
19:59.06 brlcad that snippet intentionally uses both, just read it wrong
19:59.34 brlcad split path gets fname and ext, then it's composed back into a filename with _makepath (into the "base" var)
20:03.05 Notify 03BRL-CAD:starseeker * 69066 brlcad/trunk/CMakeLists.txt: Add test for _splitpath, which we will need on Windows to do basename testing.
20:56.30 Notify 03BRL-CAD:brlcad * 69067 brlcad/trunk/regress/repository.sh: down to 194
20:56.44 Notify 03BRL-CAD:brlcad * 69068 (brlcad/trunk/src/libanalyze/MeshHealing/Geometry.cpp brlcad/trunk/src/libanalyze/MeshHealing/Geometry.h and 8 others): header cleanup, ensure common.h comes before all system headers.
21:29.48 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
21:45.43 *** join/#brlcad merzo_ (~merzo@93-195-113-92.pool.ukrtel.net)
22:05.38 Notify 03BRL-CAD:starseeker * 69069 brlcad/trunk/src/libbu/tests/bu_basename.c: Update bu_basename test to use a combination of compatibility wrapper logic and Windows APIs to emulate basename system functionality.

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