On Jul 8, 2014, at 6:08 PM, Clifford Yapp wrote:

> In the interest of joining the fun without making a mess, how do the
> following ideas sound?
> 
> Split the "db" functions out from librt into a libbgio library?  (gdb
> and Gnome got there first with the obvious names, unfortunately...)

Yes!  I've had that on my radar as well for a number of years -- that's the 
"separation of libg" that I was referring to.  My thought was just "libg" as 
they are all routines for loading/reading/writing our format.  There aren't any 
notable uses either.

I hadn't yet sorted out how to incorporate the object import/export routines 
without affecting performance or encapsulation, but it fundamentally amounts to 
either making libg depend on librt or librt depend on libg.  The latter 
probably makes more sense, but our data types are not currently set up for that 
relationship at all (and it'd be a lot of work with no visible gain).

We should start by moving the db_*() routines first (after confirming that they 
are db-related and shouldn't be renamed rt_*()).

> Making boolweave and related parts (if any) into their own libboolweave 
> library?

Yes, excellent.  I'd suggest we expand the scope (and name) just a little bit 
as weaving is just one piece of the CSG boolean evaluation.  That's 
coincidentally a piece that should do exceptionally well with rt converted into 
stages where all boolean evaluation happens at once for all pixels... prime for 
leveraging OpenCL.

> Can we eliminate ged API by consolidating commands?  (finishing the
> edit command, make a "bot" command and stick all the subcommands under
> it, etc.?)

Ultimately we can eliminate about 350 exported symbols from libged once there's 
a ged_exec() in place with command registration.  It should end up being just a 
couple dozen functions.  Lots of command consolidation is still needed, but 
that can be happening under the hood.

> I know it's not a high symbol count, but could we just fold the sysv
> library into libbu?  That seems like a job that libbu should handle,
> to me...

It'd be nice to see if any of those function implementations can just go away 
now.  Many of them predate expecting at least c89 compliance.  Also, that 
library isn't wrapping functions in some improved manner like other bu 
functions.  It's merely providing an implementation of standard functions that 
should be available but sometimes aren't/weren't; augmenting libc.  I don't see 
much value in having a bu_memset() for example.

> Would the chull/obr routines be a logical thing to pull out of libbn?
> (libchull is tempting from a naming standpoint...)  There are a few
> logical additions to that set of functions we don't have implemented
> yet...  Same question for the random number/noise functions
> (regrettibly, libnoise is taken, although the cvs and file  histories
> don't seem too active...), the bn_wlt_haar_1d_*_decompose functions
> and the bn_table functions.

A random number library could be useful; the others seem like stretches.  Any 
library we create should stand well on it's own, a lib that would be useful to 
other projects if we made it's own download.

> Are vlists (particularly the font related functions) suitable for
> libbn, or do they really belong in libdm or maybe in libbu?  The
> string->vlist stuff sort of makes sense along side the vfont stuff...

Maybe.  I don't think it'll make much of a difference in making it 
significantly easier to use or more logically organized either way.  As you 
note, it could easily fit in three different libs in its current state.  Lower 
hanging fruit and what not.

Cheers!
Sean


------------------------------------------------------------------------------
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
_______________________________________________
BRL-CAD Developer mailing list
brlcad-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-devel

Reply via email to