IRC log for #brlcad on 20131028

00:26.05 kanzure hrmm wdb_fopen not being in wdb.h is really problematic for these bindings
00:26.23 kanzure maths22: that's silly; you can just dump the database directly.
03:06.43 brlcad ``Erik: have you created your GCI profile?
03:13.13 kanzure can i have some test subjects?
03:13.14 kanzure https://github.com/kanzure/python-brlcad
03:17.03 kanzure in particular, i am looking for a /willing/ subject to run "pip-2.7 install brlcad" and then "git clone git@github.com:kanzure/python-brlcad.git" and then "cd python-brlcad/examples/; python2.7 wdb_example.py output.g"
03:35.49 brlcad maths22: the spam is very minimal, almost certainly actual humans making it through all the barriers
03:36.15 brlcad kanzure: we should just fix the wdb calls that should be in wdb.h
03:36.38 brlcad never seen that freetype message
03:36.41 kanzure the comments around wdb_fopen in raytrace.h make sense though- ideally it shouldn't need to know about the underlying database format or whatever
03:37.22 kanzure i have fixed python-brlcad to generate a binding for librt so that it can grab a pointer to wdb_fopen
03:38.00 kanzure i am interested in hearing bug reports regarding the python-brlcad install process
03:38.32 kanzure once it's able to be used by at least n>0 humans other than myself i plan to spam the mailing list
03:39.20 maths22 brlcad: i know; I just hadn't seen any in months
03:39.28 brlcad nods, sounds like a solid plan :)
03:41.55 kanzure and then i have to figure out a pythonic wrapper around this.. most python programmers aren't expecting this much "check what the function signature says".
03:41.58 brlcad kanzure: I'll give the python bridge a try tomorrow afternoon
03:42.03 kanzure cool, thank you
03:42.39 kanzure the python/opencascade people wrote a bunch of SWIG bindings to opencascade, and then they wrote an additional layer on top of that. maybe i'll just go use those idioms..
03:44.27 kanzure ideally i would like things like "from brlcad import (svg, box, sphere); base = svg('gearface.svg'); structure = base.intersect(sphere())" etc.
03:44.46 kanzure oh wait, i should have extruded somewhere
04:14.10 Notify 03BRL-CAD Wiki:Sean * 6273 /wiki/Deuces: fix the tables
04:38.40 brlcad kanzure: that would be awesome
04:38.54 brlcad basically ways to perform actions even simpler than our existing GED library
04:39.45 brlcad kind of see this becoming a place to sort out advanced/improved usability, ways to do things even simpler, meta-modeling
04:51.54 kanzure one of the problems with ctypesgen at the moment is that it sucks at parsing many of the brlcad macros
04:52.00 kanzure and a good chunk of brlcad seems to be implemented as macros..
07:44.13 *** join/#brlcad d_rossberg (~rossberg@66-118-151-70.static.sagonet.net)
09:06.49 *** join/#brlcad FLOSSrookie (~brian@107-200-34-111.lightspeed.tulsok.sbcglobal.net)
09:31.49 *** join/#brlcad merzo (~merzo@user-94-45-58-138-1.skif.com.ua)
10:22.32 Notify 03BRL-CAD:tbrowder2 * 58325 brlcad/trunk/doc/docbook/specifications/en/BRL_CAD_g_format_V5.xml: various format cleanups including table centering; more corrections; add info on proposed object time stamps
10:59.48 *** join/#brlcad merzo (~merzo@user-94-45-58-138-1.skif.com.ua)
11:19.08 *** join/#brlcad FLOSSrookie (~brian@107-200-34-111.lightspeed.tulsok.sbcglobal.net)
12:06.17 ``Erik brlcad: yes, "erikg"
12:25.14 *** join/#brlcad KimK (~Kim__@wsip-184-176-200-171.ks.ks.cox.net)
12:50.13 ``Erik kanzure: is the python bridge build using the provided swig2 .i file, or something else? and is 2.7 necessary? no 3.3?
14:28.07 Notify 03BRL-CAD:starseeker * 58326 brlcad/trunk/src/libbn/obr.c: keep working at obr code - will need careful testing.
14:48.27 *** join/#brlcad Ch3ck_ (c318d114@gateway/web/freenode/ip.195.24.209.20)
15:04.30 kanzure ``Erik: it is not using swig
15:04.39 kanzure ``Erik: it's using something called ctypes and ctypesgen
15:04.47 kanzure ``Erik: https://github.com/kanzure/python-brlcad
15:05.21 kanzure ``Erik: i haven't tested with python 3.3 yet but it might work.. my biggest concern is that ctypesgen might not be py3k-compatible.
15:22.42 kanzure was libbrep in brlcad 7.18.4? a gentoo user is trying python-brlcad and for some reason libbrep.so is not built by default: http://sprunge.us/VbhT
15:31.46 Notify 03BRL-CAD:starseeker * 58327 brlcad/trunk/src/libbn/obr.c: Make sure incrementing and decrementing is doing what we expect here...
15:34.38 starseeker kanzure: that's pretty old... I'd have to check, but I'd be surprised
15:34.59 kanzure ah, i have no sense for how old certain packages are
15:35.09 kanzure 7.18 *sounds* close to whatever i downloaded, haha
15:35.15 starseeker heh
15:35.28 kanzure "something from this century"
15:37.38 kanzure starseeker: can i convince you to try python-brlcad today?
15:54.12 brlcad ``Erik: thanks, got it, app is in
15:55.51 *** join/#brlcad kesha (~kesha@14.139.122.114)
16:33.23 maths22 kanzure: I meant for the deuces page for GCI
16:35.36 maths22 should I clean up deuces by removing stuff done in GCI 2012?
16:40.40 *** join/#brlcad kesha (~kesha@14.139.122.114)
16:44.48 maths22 Also, will cl-cia need any modifications for this year, or do we not yet know
16:52.58 starseeker kanzure: sorry, I probably won't have time today
16:53.32 kanzure okay
16:53.57 starseeker I'm not all that hot at python, actually...
16:54.24 starseeker kanzure: is there a small, embeddable implementation that might be integratable into BRL-CAD?
16:54.39 kanzure even if there is, i strongly recommend NOT doing that
16:54.52 kanzure extremely strongly
16:54.55 starseeker how come?
16:55.02 kanzure IMHO that's what's wrong with blender, freecad, heekscad, all these terrible packages
16:55.12 kanzure they all embed python and then you can't use your standard library
16:55.24 kanzure like, your runtime suddenly has to become "load up the entirety of blender"
16:55.33 kanzure libraries should never ever do that to you :)
16:55.49 starseeker I didn't say anything about *forcing* the use of an embedded python - merely a way to guarantee it's availability in the event there is no system version available
16:56.03 starseeker see how we handle tcl, for example
16:56.09 kanzure i don't know how you handle tcl
16:56.51 starseeker by default, we auto-detect for a system install
16:56.58 starseeker if none is found, we build our own copy
16:57.35 kanzure so you have a vendorized copy of tcl in the source repository osmewhere?
16:57.37 starseeker you can also force either the bundled version or a system version (the latter resulting in failure rather than enabling the internal copy)
16:57.44 starseeker src/other/tcl
16:57.56 brlcad maths22: please do (update deuces page)
16:58.34 kanzure so is src/other/tcl a brlcad variant of tcl, or just a dump of tcl from upstream?
16:58.43 brlcad maths22: basically, closed tasks need to be removed, then new tasks from http://brlcad.org/wiki/GCI_Tasks need to be integrated
16:58.44 maths22 ok
16:59.04 brlcad (we're not using wiki/GCI_Tasks, it should be Deuces)
16:59.56 maths22 Do you remember why I made GCI_Tasks last year?
17:00.03 brlcad maths22: and don't yet know about cl-cia, but ``Erik might be able to define some tasks (and I can put scheme on our list of languages)
17:00.34 starseeker kanzure: it's sorta vanilla, but not entirely - that's where this paper came from, actually: http://www.tclcommunityassociation.org/wub/proceedings/Proceedings-2011/CliffordYapp/tcltk_cmake_paper.pdf
17:01.22 starseeker ideally we would like those srcs to be just "dumps from upstream" as you put it, but the only one that we can really get away without changing currently is libpng
17:01.48 kanzure starseeker: so is the entirety of brlcad usable from non-brlcad tcl as a thirdparty module?
17:01.56 kanzure *from inside non-brlcad tcl
17:02.04 brlcad kanzure: it basically an upstream dump, we apply build system patches so we can turn it off/on portably
17:02.40 brlcad and "patches" is more like "cliff throttled their build", but it is build and not any actual tcl/tk changes
17:03.09 kanzure so, there's a way to do that with python, but there's also a separate concept in python that goes by the name 'embeddable', much like lua and other scripting languages, where you import cpython headers and make an interpreter that is "owned" by a process inside a brlcad library
17:03.11 starseeker kanzure: not really - we use tcl in the old-school manner as an embeddable language
17:04.31 ``Erik as far as I can tell, python can have serious portability issues with python (pypy, cython, jython, etc might not run code 'right'), there is no standard, just "guidos implementation"
17:04.35 brlcad eh, it's usable from a non-brlcad tcl .. just not in the ideal way you want if you were a tcl package developer
17:04.41 kanzure my only complaint here is that i don't want brlcad to end up like blender or heekscad or freecad with an embedded python, and then the python runtime being subservient to that other runtime. e.g., it means that any downstream app that i make that uses python-brlcad has to suddenly be running in brlcad itself.. so if i make a web server that has a task queue worker, suddenly everything has to be running inside brlcad, etc.
17:04.55 brlcad you load the library, bind your symbols, just like python
17:05.03 ``Erik so integrating a python and trying to use a system one could bring up some crazy issues
17:05.29 starseeker jimtcl is actually a better conceptual match for how we *want* to use tcl, in some ways, but the Tcl/Tk feature set we currently make use of is so extensive that we end up with the full Tcl/Tk + lots of packages in src/other :-/
17:06.15 ``Erik if google sends the same format of email as last year, the cl-cia stuff should 'just work', but there're plenty of improvements that could be made all throughout that code
17:06.15 starseeker ``Erik: how so? Just turn off the embedded one if the system one is available/selected
17:06.48 ``Erik starseeker: I mean nontrivial python code doesn't always do the same thing on different implementations
17:06.54 starseeker ah
17:07.01 kanzure i think you guys are thinking of a situation like "provide a python interpreter with brlcad" whereas i'm thinking in terms of "hey there's a pile of shared libraries here and i want to call those functions with my bytes and my bits"
17:07.59 brlcad kanzure: interesting complaint regarding their embedded python .. will have to think about that some, but the notion was that it should work outside of our environment just fine
17:08.00 starseeker kanzure: as long as the lower level libraries you're wanting to bind to don't have python mixed in, wouldn't that avoid any issues?
17:08.39 kanzure starseeker: i'm not sure i follow, sorry. have you used blender + python before, for example?
17:09.12 starseeker kanzure: no, sorry. I was going of of your generating swig bindings for the lower level libraries like librt and libwdb
17:09.41 starseeker whatever is or isn't embedded, those libraries shouldn't know squat about python
17:09.48 kanzure brlcad: there are a lot of technical options for execution. there's another method of providing python bindings where libbu.so can be imported directly into python if the source code provides some functions using some cpython types. and then "import libwdb" just magically works in python.
17:10.09 starseeker we're actually pushing tcl out of them too (into libtclcad) although that's a slow process due to the early development history
17:10.11 brlcad kanzure: I get what you're talking about .. you're complaint of them is effectively how we have tcl embedded (and is something we passively work to change)
17:10.35 kanzure oh interesting, tcl is polluting some of the core libraries?
17:10.44 ``Erik kanzure: all the way to libbu :(
17:10.45 kanzure i did notice some weird tcl.h includes in bu/wdb
17:10.53 kanzure yes that was actually impacting python-brlcad
17:11.02 starseeker it used to be worse - brlcad did a lot of work on that a while back
17:11.05 brlcad have to be careful with terminology
17:11.08 kanzure i worked around it (had to add osme extra library paths, whatever)
17:11.16 brlcad Tcl is both a C API and a Tcl API
17:11.21 brlcad we use both
17:12.19 brlcad we use the C API in a few places, and those are slowly being weeded out, but don't really affect runtime binding
17:13.19 kanzure i guess this means i don't have to tell you guys how tcl.h shouldn't be included in bu.h, then ;)
17:13.21 brlcad the Tcl API is what we overload and muck up to heck and back, so you have to run your scripts in OUR version of the tcl interpreter if you want to do some real work using our Tcl command API
17:13.25 kanzure marks that off the list
17:13.41 kanzure aha, yes i would consider that bad
17:14.34 brlcad that's similar to what blender does with their py interp
17:14.55 kanzure i was so disappointed when i learned that my .py files had to be run inside *blender*
17:15.02 brlcad nods
17:15.18 brlcad there's undoubtedly "a way" .. but you'd have to do all the init that they do
17:15.29 kanzure on the other hand, this sort of embedding is very useful, especially in the context of games where you want to run scripts instead of C for every conceivable object in the game
17:15.33 brlcad and it almost certainly wouldn't be pretty
17:15.46 kanzure actually, i think the way to do blender bindings would be very similar to what i've done in python-brlcad
17:16.03 kanzure python-brlcad is using a package called ctypesgen that scans header files and then generates the python bindings from that
17:16.05 brlcad that's actually why I started down a path of creating a command API *library* ..
17:16.57 kanzure ctypesgen has a lot of trouble parsing the macros in these header files btw.. it's definitely something i am going to be nagging you about.
17:16.58 brlcad in theory, you can bind to that command library (libged) and have nearly all mged commands without mged (without tcl, without "brl-cad")
17:17.18 brlcad need more info about that
17:17.20 brlcad not surprising
17:17.31 brlcad we use a lot of cpp features
17:17.52 kanzure i didn't write ctypesgen so i'll have to create an actual bug report at some point in the future. i'm 90% sure it's just bad code in ctypesgen but the other option is to just not implement half of brlcad as a macro..
17:18.11 brlcad it really depends on the macros in question
17:18.18 brlcad some are intentionally macros, some are not
17:18.22 kanzure so far it's been some critters in bu.h
17:18.36 kanzure ctypesgen will complain loudly when you test python-brlcad later today
17:18.52 starseeker kanzure: don't let ``Erik hear you dissing macros too loud ;-)
17:18.52 brlcad it's basically a throwback to the days where you used macros as a form of forced inlining
17:18.57 ``Erik kanzure: I believe the blender guys are on freenode and pretty open to talking, it may be beneficial to chat with them a bit about how they use python and what they feel the pros and cons of their path were, instead of trying to guess? :)
17:19.26 kanzure okay.
17:20.05 starseeker nods - it may just not have occurred to them to think about non-blender external uses of their python functionality - most Blender work I know of *does* go in within the Blender framework...
17:20.09 kanzure i mean, one reason they did it is so that their ui could be written in python
17:20.26 kanzure a lot of their scripts are in python, which is fine, but asking end-users to run all python scripts inside blender is, imho, bad
17:20.29 brlcad kanzure: there are some bu constructs that you cannot implement in C without macros or without drastically changing the API, it just depends on which ones need to be called
17:20.35 ``Erik heh, certain aspects of our macro heavy vmath stuff is preventing quick&dirty sse3 for us :) macros are a tool, blindly assuming you should never/use macros would be bad form :)
17:20.41 brlcad more than likely, if you need to bind them in python, they can be functions
17:20.46 kanzure "just not have occurred to them to think about non-blender external uses of their python functionality" is probably correct
17:21.13 ``Erik s,never/user,never/always use,
17:21.16 kanzure brlcad: yeah, i nmost cases it looks like it can be done with a small wrapper function that just has the macro mentioned inside it. not a big deal. but sorta sucky.
17:22.16 brlcad and if you're going to go that far, why have the macro
17:22.26 brlcad again, just depends which ones
17:22.45 kanzure i would say the small wrapper is an acceptable first step to refactoring without having to invest in actually doing the work
17:23.07 starseeker kanzure: do you have a list?
17:23.18 kanzure starseeker: no, but python-brlcad will spit one out. one moment.
17:23.42 kanzure ERROR: /usr/brlcad/include/brlcad/bu.h:5102: Syntax error at 'va_list'
17:24.28 kanzure ERROR: /usr/brlcad/include/brlcad/raytrace.h:4517: Syntax error at '\n'
17:24.34 kanzure actually that seems to be it; i might have disabled the other macros.
17:25.17 kanzure 4517 is #define db_ident(a, b, c) +++error+++
17:25.40 kanzure 5102 is the last line of BU_EXPORT extern void bu_vls_vprintf
17:26.02 starseeker va_list isn't one of our internal types - that comes from C, iirc
17:26.29 starseeker kanzure: which version are you working with?
17:26.35 brlcad kanzure: 5102 is probably a failure parsing va_list .. which is almost certainly a macro type from a stdc header
17:26.47 ``Erik (va is varargs, fwiw, a posix dealie)
17:26.59 kanzure this is a legitimate ctypesgen bug, then
17:27.09 brlcad probably
17:27.22 starseeker that one is probably worth reporting back as a bug worth fixing, since you'll see it in a lot more than just our code
17:27.29 brlcad not sure we can even do anything about that one
17:27.30 kanzure ah.... ERROR: /usr/lib/gcc/x86_64-linux-gnu/4.8/include/stdarg.h:40: Syntax error at '__gnuc_va_list'
17:27.33 Notify 03BRL-CAD:carlmoore * 58328 brlcad/trunk/src/proc-db/masonry.c: remove 'Bad or help flag specified'; remove degtorad because DEG2RAD is already available
17:27.41 kanzure unfortunately it seems that i am the person maintaining ctypesgen at the moment
17:27.48 brlcad heh
17:28.03 brlcad so fix it, ya lazy or soemthing ;)
17:28.10 kanzure yes
17:28.13 brlcad :)
17:28.29 ``Erik damn ctypesgen maintainers, can't even keep their varargs handling working *cough* O:-)
17:29.03 brlcad you could probably trick it by adding a #define va_list void* .. but technically not proper or something to keep
17:29.23 brlcad it'd just redefine stdarg's type
17:29.24 kanzure so does all the tcl includes mean that brlcad can't compile without X?
17:29.28 kanzure or does tcl deal with no-X on its own?
17:29.34 brlcad another possibility is that some other header is required
17:29.37 starseeker Tk is the part of tcl that needs X
17:29.43 kanzure oh.
17:29.46 starseeker (or some graphics system, anyway)
17:29.48 brlcad like sys/types.h .. and you might not be getting that header
17:29.58 brlcad which would cause a syntax error using va_list
17:30.07 ``Erik http://pubs.opengroup.org/onlinepubs/7908799/xsh/varargs.h.html
17:30.16 ``Erik http://msdn.microsoft.com/en-us/library/kb57fad8.aspx
17:30.21 starseeker it's a bit difficult to test (generally have to set up a non-X virtual machine) but we should build properly without any graphics at all
17:30.22 kanzure brlcad: your ability to debug things is really neat, that sounds quite likely
17:30.38 brlcad Tcl uses no X, actually has practically no external dependencies beyond maybe zlib and regex
17:32.13 ``Erik tcl builds it's own regex engine, a really neat parallel dfa opposed to the normal nfa
17:32.54 starseeker must try fiddling with tinypy some day...
17:32.55 brlcad kanzure: easy to test, what do your man pages say are the required headers for va_start and/or vprintf? unconditinoally add them before 5102 and see if it makes a difference to ctypesgen
17:33.19 kanzure man pages says va_start needs stdarg.h
17:33.32 kanzure ERROR: /usr/lib/gcc/x86_64-linux-gnu/4.8/include/stdarg.h:40: Syntax error at '__gnuc_va_list'
17:33.38 kanzure so it looks like stdarg.h is being parsed
17:34.42 ``Erik kanzure: it might be worth looking at the wrapping ifdef stuff and comparing it to the flags passed in to the compiler
17:35.07 Notify 03BRL-CAD:brlcad * 58329 brlcad/trunk/include/bu.h: we use va_list and friends for some ... functions, so include this as a requisite header
17:35.26 brlcad kanzure: that very well may have been the problem, 58329
17:35.28 kanzure bbl
17:35.35 ``Erik (or perhaps header ordering requires stdarg to come after something like stdlib)
17:36.14 brlcad almost certainly
17:36.26 brlcad we never included stdarg explicitly
17:38.03 zero_level hi all.
17:38.27 Notify 03BRL-CAD:starseeker * 58330 brlcad/trunk/src/libbn/obr.c: We want the results to survive, so pass this properly...
17:38.44 zero_level after few other commitments. Back again with brlcad.
17:39.01 zero_level How are the preparations for GCI ?
17:39.32 zero_level CAn I still contribute as a mentor ?
17:45.20 ``Erik zero_level: I think brlcad was just able to submit the org application a few hours ago
17:46.08 zero_level ``Erik : ok
17:46.21 zero_level ``Erik : In the mail regarding icv work.
17:46.45 brlcad hello zero_level
17:47.01 zero_level brlcad mentoined about making things more modular.
17:47.07 brlcad I got the org application initially submitted about 14 hours ago
17:47.23 brlcad still working on polishing up the text, but working on the task list is priority now
17:47.40 zero_level By that he meant, putting ppm formats in a subdir and ..
17:48.26 brlcad zero_level: for GCI, tasks have to be VERY well defined and VERY small
17:48.31 zero_level .. similarly for other formats.
17:48.31 zero_level hii brlcad!
17:48.39 ``Erik I... don't personally think any 2d raster file image format would be complicated enough to warrant a subdirectory... vector stuff, sure... where it needs multiple C files
17:48.50 brlcad putting ppm in a subdir is conceptually small and taskwise should take less than 2 hours (which is the goal)
17:49.05 brlcad but is very complicated in terms of what all might have to be explained
17:49.24 brlcad how to do that correctly is not something easily spelled out as a recipe
17:49.26 ``Erik but any raster image file should be able to contain a save and load image trivially in one file (with a library linked for complicated ones like jpeg or png)
17:50.09 zero_level brlcad :Right. I am just taking pointers on continuation of my GSOC work.
17:50.49 zero_level ``Erik : I feel the same.
17:50.50 ``Erik zero_level: GCI grade icv work would be like "implement 1 filter"
17:50.58 zero_level Therefore I suggest we make subdir for brlcad-primitive formats like bw,pix and dpix
17:50.58 zero_level and all others
17:50.58 zero_level ?
17:51.43 brlcad ``Erik: it's not whether it warrants a subdir, but to conceptually ensure that each format is isolated .. that's easier to ensure if it's physically removed
17:52.17 zero_level ``Erik : I am not sure. never thought about icv being a potent gci task. But If you suggest I can find such small tasks !
17:52.25 brlcad and would be helpful if we wanted a considerably more complex format like tiff or exr where we don't think about the extension owning the format, but just binding to it
17:52.57 ``Erik aight, I'd think a file called "ppm.c" or "bw.c" would be adequate :) that ability to move from a file to multiple files is a bit of an art
17:53.17 brlcad even if it's just one file in a subdir
17:53.31 brlcad it's that ppm.c doesn't actually use some other header, type, function that it shouldn't be
17:53.46 brlcad basically that we could copile it as a dynamic module and load it
17:54.20 brlcad so all the formats basically become proper plugins and we're set up to receive plugins from 3rd party developers we have no control over
17:54.25 zero_level ``Erik that is the current situation.
17:54.28 ``Erik *shrug* directories are cheap, subdirs in a build system are expensive, I'd just ask that single file subdirs are managed by an upper level makefile
17:54.32 brlcad they drop their plugin in a directory, and it loads and is an option
17:54.43 zero_level bw.c, ppm.c, pix.c dpix.c
17:54.51 zero_level and they all use encoding.c
17:55.22 zero_level and all this files are placed in icv.h
17:55.22 zero_level oops.
17:55.22 zero_level src/libicv
17:56.03 zero_level brlcad : One suggestion that comes to my mind. Lets keep all the raw formats (bw,pix,dpix,ppm) in a folder called raw.
17:56.04 brlcad our formats, where they reside and how they are compiled, are mostly irrelevant
17:56.33 zero_level ok.
17:56.40 brlcad it's more about the library being design for extensibility so we can encourage/support other developers
17:56.46 ``Erik brlcad: until you try building over nfs, or wors(e|t), an arl image windows machine...
17:56.50 brlcad we don't want to own every type
17:57.12 brlcad meh, not even a drop in the bucket
17:57.28 brlcad premature optimization and all that
17:57.43 brlcad care more about the API design
17:58.00 brlcad and that 3rd party is part of that design, that our own types exemplify how to extend the library
17:58.34 brlcad if we have to add a line to icv.h in order to support a new format, we've failed
17:58.40 ``Erik I'd disagree... there is a huge disincentive to build on windows because it's sooo ddaaammmnnn sslllooowww... so we don't care about windows, but if we built fast there, it'd be less of a third class citizen
17:59.11 brlcad omg, that is such a non-sequitor ... I agree and 100% don't care about that issue :)
17:59.22 brlcad it's not the problem
17:59.44 ``Erik I agree that api is paramount, but dir placement of source files isn't api, and is even further removed from build system layout
18:00.35 brlcad sure, it's not API .. that's why I'm saying it's not the issue
18:00.58 brlcad they COULD live in the same dir, that's not the concern at all
18:01.26 brlcad the point of moving them is academic/instructive to ensure that they are not in any way intertwined and that they serve as a good example to others
18:01.37 brlcad that point could be served by a single file somewhere, or a subdir
18:01.41 brlcad it doesn't matter
18:02.25 ``Erik a single file is necessary, a subdir is cool, a seperate build in a subdir starts hurting
18:02.31 brlcad however, having it just be a single file does greatly increase the chance that it's intertwined just due to proximity/access .. all it takes is #including some private header that a 3rd party wouldn't have access to
18:02.56 brlcad i mean mixed with icv sources
18:03.30 ``Erik <-- has an interest in minimizing build time, so having src/libicv/Makefile is better than src/libicv/Makefile src/libicv/ppm/Makefile src/libicv/bw/Makefile src/libicv/pix/Makefile ...
18:04.20 ``Erik *shrug* if src/libicv/Makefile refers to src/libicv/ppm/ppm.c, that's cool, but that second makefile... and third, and 37th, ...
18:04.37 zero_level ``Erik I get your concern.
18:05.01 zero_level but I believe what brlcad wants is :
18:05.31 zero_level a) The library should be usable by other projects.
18:05.37 zero_level b) It should be modular.
18:06.05 brlcad and extensible by others (without them having to do a code-drop into libicv)
18:06.44 brlcad how that's achieved w.r.t. the build system, couldn't care less until it all works :)
18:06.50 ``Erik *shrug* I don't think I'm argueing against the points, merely an aspect of the implementation
18:07.49 ``Erik and the point that the more painful and time consuming a build is, the less often it'll be done, reducing the chances to spot other build issues, no? :)
18:07.55 zero_level ok. so ``Erik and brlcad can you suggest me the best I should proceed with ?
18:08.39 brlcad zero_level: I don't think any suggestion has changed, has it? the library formats are still far from being modular
18:08.43 ``Erik but, yeah, honeslty, I'm 95% considering the package maintainer view, not the developers right now.. take it for what it's worth, I just wanted to voice an opinion :) I live to be the devils advocate
18:09.43 zero_level ``Erik what do you suggest ?
18:10.04 zero_level what should be the fate of the icv library we started together?
18:10.21 ``Erik I suggest writing code, files can be shuffled in and out of directories trivially
18:10.27 ``Erik this is bikeshedding, dude :)
18:11.28 brlcad I'm thinking of it more like "here's a cool image processing library I want to use" .. and I know/care nothing of BRL-CAD ... and it's missing a format/filter/feature I want to add .. how easily can I do that?
18:11.37 brlcad remove all barriers, as few steps as possible
18:12.55 zero_level brlcad :What should be the outline or procedure ?
18:13.14 ``Erik I fail to understand how "update the makefile, add a subdirectory, add the file, add a new makefile" is easier than "update the makefile, add the file"... I'd imagine most contributors are NOT cmake familiar
18:13.52 brlcad that's already like two steps more than necessary
18:14.04 brlcad I don't care about brl-cad .. or cmake .. have my own tools
18:14.47 brlcad I whip out a text editor, write a few lines of code, compile/link, drop the module in a dir, bam done
18:15.26 zero_level ``Erik : I accept bikeshedding. (but the only way out is by performing the minials and moving to the much required (exr here) )
18:15.28 brlcad i'm not (yet) committed to submitting this extension back
18:15.48 brlcad I own it, gtfoml
18:15.58 zero_level but brlcad : Are we CAD supplier or library suppliers ?
18:16.23 brlcad uhm, "yes"
18:16.57 brlcad I see libicv becoming it's own product
18:17.05 zero_level ok.
18:17.07 brlcad just like libgcv
18:17.10 ``Erik is going out of our way to support people who don't want to contribute back a good stance? stallman would sentence you to execution by his body odor for stating such...
18:17.32 brlcad I don't think anything suggested is going out of our way, it's just modular
18:17.46 brlcad I think it's actually less work than the mess that usually results otherwise
18:18.06 brlcad just not modular for self, it's modular for others
18:18.21 brlcad anti-self-centered view
18:18.21 zero_level you havent still elaborated on a procedure. (owing to my poor background with cmake)
18:18.30 brlcad we self-navel-gaze WAY too much
18:18.59 brlcad zero_level: but your question is so incredibly open-ended
18:19.21 brlcad and literally unlimited possibilities on how to get the lib modular
18:19.28 brlcad that IS the procedure
18:19.33 brlcad figuring out how
18:19.38 zero_level hahah.
18:19.42 zero_level any pointers ?
18:20.12 brlcad well, that's why I suggested subdirs for you, so you can physically see the files from an external perspective
18:20.23 ``Erik at the moment, the 'internal' format is public, so it can be extended... non-public extension is just ld -o libwanker.so -licv myformat.o
18:20.25 zero_level brlcad : you were't serious abt this 14:15 < brlcad> I own it, gtfoml
18:20.50 brlcad ``Erik: that is entirely not possible in any useful manner right now
18:21.00 ``Erik woops, sorry, ld -o libwanker.so -licv gtfoml.o
18:21.03 ``Erik :D
18:22.04 brlcad nothing loads libwanker.so, there's no definition of a plugin api where the lib's capabilities are extensible
18:22.52 brlcad even if there was something that looked in a dir and loaded all the .so's, there's no api, no registration ... it's just more functions that nothing calls
18:23.18 ``Erik that's an extensible plugin framework you're talking about, not how to place files in a public library
18:23.49 brlcad say we have an "icv" tool that converts image formats and it has usage "icv [fmt:]inputfile [fmt:]outputfile"
18:24.31 brlcad ``Erik: exactly why I said the directory layout has absolutely no bearing, so why are we even talking about it (still)
18:25.01 brlcad the only relevance was to possibly help ensure that sources are not intertwined (physically)
18:25.25 brlcad that was the ONLY reason ... my god this is not that complicated :)
18:26.31 zero_level brlcad, ``Erik can you point me to something in src code that has similar subdir.
18:26.44 zero_level I think this will help me mirror.
18:27.07 ``Erik zero_level: src/conv/ is probably the closest we have in existance right now
18:28.28 zero_level ``Erik : A general question. Is svn the best cvs tool ?
18:28.32 brlcad I would have said something like src/librt/primitives/table.c and src/librt/primitives/SUBDIR
18:29.34 ``Erik zero_level: vcs tool, and it all depends on your needs... I typically use git now, even though I think darcs is better... svn is decent, but I still find uses for RCS *shrug* it all depends on your needs :)
18:30.17 brlcad zero_level: grep PNG include/icv.h
18:30.20 brlcad make that go away
18:31.14 brlcad think about how to either eliminate or auto-register the information in ICV_IMAGE_FORMAT
18:31.43 ``Erik brlcad, starseeker: I might be hungry for chinese or korean on wednesday or friday :)
18:32.11 brlcad zero_level: then do the same for the PNG references in src/libicv/fileformat.c
18:32.21 brlcad start with something literally that simple
18:32.37 brlcad ``Erik: wednesday sounds doable
18:32.41 zero_level brlcad : Is izak around
18:33.00 brlcad I've not seen him around, Izak_: are you around?
18:33.05 zero_level can you direct him regarding this http://pastebin.kde.org/pu2smarc9 ?
18:33.24 zero_level brlcad : I get your point.
18:33.55 zero_level you will see substantial change towards "modularity" in near future.
18:35.21 brlcad zero_level: if you're still lost on the "how to do that" ... perhaps something for you to read is how others do plugins
18:35.25 brlcad http://developer.gimp.org/writing-a-plug-in/1/ for example
18:36.33 zero_level brlcad : I found great work have been done during doc sprint.
18:36.37 brlcad basically, you define a set of functions
18:36.41 brlcad you put those functions into a struct
18:36.49 brlcad you register that struct
18:36.52 zero_level any news regarding the available soft copy ?
18:37.10 brlcad the library looks over the registrations when doing work
18:37.15 brlcad calls those functions as needed
18:37.43 brlcad there will be an announcement in a week or so about obtaining copies
18:38.04 brlcad the doc sprint was pretty awesome, we have a few books available but we have more work to do
18:41.31 ``Erik isst has a trivial plugin capability in the sdl package
18:48.03 Notify 03BRL-CAD:mendesr * 58331 jbrlcad/trunk/src/main/java/org/brlcad/info/RegionInfo.java: Fixed bug in JBrlcad not closing the file input stream for BrlcadDb.
18:48.55 zero_level ``Erik : sdl packae ?
18:50.09 brlcad stops tweaking the GCI appliation with 6 minutes to go
18:57.13 brlcad lies and keeps tweaking the text up to the last minute
18:57.44 kanzure just don't forget clock drift
18:57.45 Notify 03BRL-CAD:carlmoore * 58332 brlcad/trunk/src/proc-db/masonry.c: rearrange logic; notice that if 'usage' is invoked, we leave the program
19:14.40 Notify 03BRL-CAD:starseeker * 58333 brlcad/trunk/src/libbn/obr.c: Start figuring out how to calculate the actual bounding rectangle from the caliper points.
19:31.55 Notify 03BRL-CAD:starseeker * 58334 brlcad/trunk/src/libbn/obr.c: Something still wrong with calculations, but start activating full algorithm
19:32.39 *** join/#brlcad starseeker (~starseeke@66-118-151-70.static.sagonet.net)
19:49.27 Notify 03BRL-CAD:carlmoore * 58335 brlcad/trunk/src/proc-db/masonry.c: default units = mm
19:51.25 starseeker brlcad: if we want to do comments on a document maybe something like this would work? https://lite.co-ment.com/
19:51.45 starseeker grew out of the original commenting period for the GPLv3
19:52.04 starseeker http://www.co-ment.org/ actually...
19:53.30 starseeker might be more flexible/community-oriented than comments in a Word doc...
20:45.52 *** join/#brlcad merzo (~merzo@150-20-132-95.pool.ukrtel.net)
21:04.40 Notify 03BRL-CAD:carlmoore * 58336 brlcad/trunk/src/proc-db/masonry.c: put in a set of brackets in Usage; carry out some calculations; remove redundant h from options
21:23.20 brlcad kanzure: ironically was just noticing how our server's clock is drifted by several minutes at the moment
21:23.51 brlcad my tweaking was nit picking, nothing critical, and completed well in advance ... it's all good
21:24.38 kanzure nitpicking is perhaps the only thing keeping me rolling every day
21:27.08 brlcad starseeker: maybe but that seems awefully clumsy ... I don't have a good solution, just a lot of terrible ones :)
21:27.44 brlcad starseeker: have you ever run pandoc? might be interesting to see what happens if we convert something like the db5 spec from docbook to markdown and back .. see what is lost
21:27.48 brlcad http://johnmacfarlane.net/pandoc/demos.html
21:29.08 brlcad if it preserves most, it'd be compatible with mediawiki (with a plugin)
21:36.34 brlcad is reminded of http://www.methods.co.nz/asciidoc/ ... they've apparently come a long way
21:46.43 kanzure brlcad: *poke* python-brlcad testing?
21:51.58 brlcad kanzure: on my list, not there just yet
21:52.09 brlcad two more things to take care of first
22:06.00 Notify 03BRL-CAD Wiki:Maths22 * 6274 /wiki/Deuces: Removed last year's code tasks
22:10.06 Notify 03BRL-CAD Wiki:Maths22 * 6275 /wiki/Deuces: Removed last year's UI tasks
22:16.02 Notify 03BRL-CAD Wiki:Maths22 * 6276 /wiki/Deuces: Removed last year's documentation tasks
22:21.07 Notify 03BRL-CAD Wiki:Maths22 * 6277 /wiki/Deuces: Removed last year's outreach tasks
22:29.13 Notify 03BRL-CAD Wiki:Maths22 * 6278 /wiki/Deuces: Removed last year's QA tasks
22:30.37 maths22 I have removed all of last year's completed tasks from the Deuces page
23:19.52 kanzure brlcad: the packaged version of brlcad for gentoo apparently doesn't build or doesn't provide libbrep.so by default. what should i do about this in python-brlcad?
23:38.05 brlcad maths22: fantastic, thank you
23:38.43 brlcad kanzure: is there something that needs to be done?
23:40.09 brlcad 7.18.4 was almost 3 years ago
23:41.20 brlcad that's hundreds of differences, and libbrep isn't central to our api just yet

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