Below are several thoughts on our API evolution.  Not a rant, just words of 
concern and motivation.

> -extern const struct db5_attr_ctype db5_attr_std[];
> +RT_EXPORT extern const struct db5_attr_ctype db5_attr_std[];

I'm slowly catching up but am quite behind on my usual commit reviews, but this 
recent unveil is a bit concerning.. a global array being added to librt?  I 
have seen all of the attr work recently (Tom et al.), but haven't gotten into 
the details.  I don't think we want to be introducing any new globals, 
especially not crash-prone arrays to public API.  Moreover, the library should 
be stateless or parallelism is ruined and arrays are implicit state.  There are 
other ways... :)

I was also under the assumption that we'd be handling "standard" attributes via 
namespacing (i.e., a 'cad:' naming prefix convention), but I'll hold those 
thoughts until the current design can be reviewed appropriately.  There's 
nothing that precludes them from being stored separate, but it may be 
unnecessary complexity.

Something for all to remember is our goal to have 100% complete API 
documentation.  That means every new line that goes into a file in the include/ 
directory (every #define value, macro, function decl, variable decl, ...) is 
required to have documentation.  We should be cautious, resistant even, to 
adding new complexity to the public APIs.  And if we can implement something by 
adding fewer things that need /** */ documentation, we should.  Less is 
definitely more.

Everything new should have a strong justification and be taken to completion 
before moving on.  Forethought into the impact is a good thing, considering how 
to improve capability without just adding more.

Cheers!
Sean
 


------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
BRL-CAD Developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-devel

Reply via email to