Hi Simon,
B) Fame infers accessor 'smalltalk-style', ie
it will call #name: to
set the name of the Namespace entity in the example above. It works
in Famix3 but not in Famix2, where the setter is declared as
#setName: . It's alright with the inference rule of Meta (as I far
as I remember) but not with the new one. We should add those
accessors in Famix2 for seamless access.
Property name and method name do not necessarily have to match.
Currently setter names are created by appending a colon to the getter
name. Should be straight forward to extend Fame with a custom strategy.
C) Fame does not recognize the idref: syntax, only the
ref: syntax.
The MSE spec is inconsistent about that: the grammar only defines
the ref: syntax as Fame does, but the doc talks about both an IDREF
command and a 'REF command for metamodels only'.
Where did you get that specification? I should update it and replace
all IDREF with REF (we made that change to save bytes in the often
huge MSE documents).
D) Finally, the biggest hurdle is that we dont know
directly with
which version of Famix the file was created. For example, the FAMIX
package in SqMoose matches Famix3, and Famix2 is defined in a FAMIX2
package. This leads to a mismatch when trying to load the above file
which was generated with Famix2 (unless batch editing all FAMIX ->
FAMIX2)
Fame does not support versioning (yet). It is up to clients to adopt
their own versioning convention. Personally I do as you suggest.
cheers,
AA