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

Reply via email to