On Fri, 19 Nov 2010 22:06:44 -0700 Sebastian Kuzminsky <[email protected]> wrote:
> rtapi_data has a cool feature: it has a "revision code" integer > inside it, and all users of this shared memory verify that they are > using the same revision of the struct as everyone else before they'll > touch it[1]. I guess this is handy when you have out-of-tree rtapi > modules and forget to recompile them when someone changes > rtapi_data_t. I can't think of another use for it... I _think_ the purpose of this goes back to EMC's multi-computer roots. The idea was _probably_ to ensure that if computer A made a connection through NML (or maybe a shared memory bus?) to computer B, and tried to manipulate the struct, both computers would have the same opinion of what the struct looks like. There used to be quite a large number of PLATs or platforms (different CPU architectures and OSs - do a 'grep PLAT *' in src/emc/usr_intf to see the remnants of this) for which EMC and RCSLIB could be built, so it would have been a bigger problem (out of sync code revisions) back then. My two cents is: 1. If the feature is kept, it ought to be independent of the revision control system. This means that anyone who changes the struct in a way that breaks compatibility needs also to change the $Revision$, rather than relying on the system to handle it. 2. Rip it out: http://en.wikipedia.org/wiki/Muntzing 3. Someday, before the heat death of the universe, we need to go through a lot of this code with the idea of simplifying it while preserving the functionality that people actually use. In the case of multiple computers and distributed control, these capabilities should probably be retained, but implemented using the latest networking concepts. Thanks, Matt ------------------------------------------------------------------------------ Beautiful is writing same markup. Internet Explorer 9 supports standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3. Spend less time writing and rewriting code and more time creating great experiences on the web. Be a part of the beta today http://p.sf.net/sfu/msIE9-sfdev2dev _______________________________________________ Emc-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-developers
