Hi,
I am developing a tool based on Fame pragma. Considering the following methods: FAMIXSQLExpression >>referencedRequests <MSEProperty: #referencedRequests type: #FAMIXRequest opposite: #usedInExpression> <multivalued> <MSEComment: 'List of requests referenced by the expression.'> ^ referencedRequests
FAMIXRequest >>usedInExpression <MSEProperty: #usedInExpression type: #FAMIXSQLExpression opposite: #referencedRequests> <MSEComment: 'Expression in which the request is used.'> ^ usedInExpression
(FAMIXSQLExpression mooseDescription at: 'referencedRequests') hasOpposite should return true. However, I don’t have always the same behavior after each resetMeta. (1 to: 100) do: [ : e | MooseModel resetMeta. (FAMIXSQLExpression mooseDescription at: 'referencedRequests') hasOpposite ifFalse: [ 1halt ] ]. always halts, at some unpredictable iteration (usually less than 10)
Does someone has any idea what is the problem and how to solve it?
By the way, MooseSQL is available here https://ci.inria.fr/moose/job/MooseSQL/ https://ci.inria.fr/moose/job/MooseSQL/
Thanks in advance for your help.
Anne
Solved, there were more than one opposite references in the metamodel. Because the pragma processor was processing a dictionary of references, the order was random and it caused such undeterministic behavior.
-- Pavel
2017-01-19 12:23 GMT+01:00 Anne Etien anne.etien@univ-lille1.fr:
Hi,
I am developing a tool based on Fame pragma. Considering the following methods: FAMIXSQLExpression >>referencedRequests <MSEProperty: #referencedRequests type: #FAMIXRequest opposite: #usedInExpression> <multivalued> <MSEComment: 'List of requests referenced by the expression.'> ^ referencedRequests
FAMIXRequest >>usedInExpression <MSEProperty: #usedInExpression type: #FAMIXSQLExpression opposite: #referencedRequests> <MSEComment: 'Expression in which the request is used.'> ^ usedInExpression
(FAMIXSQLExpression mooseDescription at: 'referencedRequests') hasOpposite should return true. However, I don’t have always the same behavior after each resetMeta. (1 to: 100) do: [ : e | MooseModel resetMeta. (FAMIXSQLExpression mooseDescription at: 'referencedRequests') hasOpposite ifFalse: [ 1halt ] ]. always halts, at some unpredictable iteration (usually less than 10)
Does someone has any idea what is the problem and how to solve it?
By the way, MooseSQL is available here https://ci.inria.fr/ moose/job/MooseSQL/
Thanks in advance for your help.
Anne
Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
I added a check at the end of the meta meta model generation on the opposites. It should throw an Assertion failure is your model is not well designed:
Name: Fame-SmalltalkBinding-VincentBlondeau.14 Author: VincentBlondeau Time: 19 January 2017, 5:16:16.582209 pm UUID: 814148a9-f22d-7244-97e9-e147e6cfdace Ancestors: Fame-SmalltalkBinding-PavelKrivanek.13
Vincent
De : Moose-dev [mailto:moose-dev-bounces@list.inf.unibe.ch] De la part de Pavel Krivanek Envoyé : jeudi 19 janvier 2017 14:43 À : Moose-related development Cc : Moose-dev Moose Dev Objet : [Moose-dev] Re: BUG - MooseModel resetMeta
Solved, there were more than one opposite references in the metamodel. Because the pragma processor was processing a dictionary of references, the order was random and it caused such undeterministic behavior.
-- Pavel
2017-01-19 12:23 GMT+01:00 Anne Etien <anne.etien@univ-lille1.frmailto:anne.etien@univ-lille1.fr>: Hi,
I am developing a tool based on Fame pragma. Considering the following methods: FAMIXSQLExpression >>referencedRequests <MSEProperty: #referencedRequests type: #FAMIXRequest opposite: #usedInExpression> <multivalued> <MSEComment: 'List of requests referenced by the expression.'> ^ referencedRequests
FAMIXRequest >>usedInExpression <MSEProperty: #usedInExpression type: #FAMIXSQLExpression opposite: #referencedRequests> <MSEComment: 'Expression in which the request is used.'> ^ usedInExpression
(FAMIXSQLExpression mooseDescription at: 'referencedRequests') hasOpposite should return true. However, I don’t have always the same behavior after each resetMeta. (1 to: 100) do: [ : e | MooseModel resetMeta. (FAMIXSQLExpression mooseDescription at: 'referencedRequests') hasOpposite ifFalse: [ 1halt ] ]. always halts, at some unpredictable iteration (usually less than 10)
Does someone has any idea what is the problem and how to solve it?
By the way, MooseSQL is available here https://ci.inria.fr/moose/job/MooseSQL/
Thanks in advance for your help.
Anne
_______________________________________________ Moose-dev mailing list Moose-dev@list.inf.unibe.chmailto:Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
!!!************************************************************************************* "Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.
This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.!!!"
As a bit off the topic, I have always questioned myself to using pragmas. Are pragmas a mechanism we should continue to have to define a meta-model? Most of the time, I am better at implementing a simple meta-model without famix at all than trying to understand pragmas.
Alexandre
+1
On 19/01/2017 18:37, Alexandre Bergel wrote:
As a bit off the topic, I have always questioned myself to using pragmas. Are pragmas a mechanism we should continue to have to define a meta-model? Most of the time, I am better at implementing a simple meta-model without famix at all than trying to understand pragmas.
Alexandre
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
On Jan 19, 2017, at 8:23 AM, Anne Etien <anne.etien@univ-lille1.fr mailto:anne.etien@univ-lille1.fr> wrote:
Hi,
I am developing a tool based on Fame pragma. Considering the following methods: FAMIXSQLExpression >>referencedRequests <MSEProperty: #referencedRequests type: #FAMIXRequest opposite: #usedInExpression> <multivalued> <MSEComment: 'List of requests referenced by the expression.'> ^ referencedRequests
FAMIXRequest >>usedInExpression <MSEProperty: #usedInExpression type: #FAMIXSQLExpression opposite: #referencedRequests> <MSEComment: 'Expression in which the request is used.'> ^ usedInExpression
(FAMIXSQLExpression mooseDescription at: 'referencedRequests') hasOpposite should return true. However, I don’t have always the same behavior after each resetMeta. (1 to: 100) do: [ : e | MooseModel resetMeta. (FAMIXSQLExpression mooseDescription at: 'referencedRequests') hasOpposite ifFalse: [ 1halt ] ]. always halts, at some unpredictable iteration (usually less than 10)
Does someone has any idea what is the problem and how to solve it?
By the way, MooseSQL is available here https://ci.inria.fr/moose/job/MooseSQL/
Thanks in advance for your help.
Anne
Moose-dev mailing list Moose-dev@list.inf.unibe.ch mailto:Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
Hi,
Pragmas are only useful when you want to export/import. They are also used a bit for navigation but that use can be easily replaced with dedicated inspector panes. So, if you do not have the import/export use case, you do not need the pragmas.
Cheers, Doru
On Jan 19, 2017, at 11:06 PM, Nicolas Anquetil Nicolas.Anquetil@inria.fr wrote:
+1
On 19/01/2017 18:37, Alexandre Bergel wrote:
As a bit off the topic, I have always questioned myself to using pragmas. Are pragmas a mechanism we should continue to have to define a meta-model? Most of the time, I am better at implementing a simple meta-model without famix at all than trying to understand pragmas.
Alexandre
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
On Jan 19, 2017, at 8:23 AM, Anne Etien anne.etien@univ-lille1.fr wrote:
Hi,
I am developing a tool based on Fame pragma. Considering the following methods: FAMIXSQLExpression >>referencedRequests <MSEProperty: #referencedRequests type: #FAMIXRequest opposite: #usedInExpression> <multivalued> <MSEComment: 'List of requests referenced by the expression.'> ^ referencedRequests
FAMIXRequest >>usedInExpression <MSEProperty: #usedInExpression type: #FAMIXSQLExpression opposite: #referencedRequests> <MSEComment: 'Expression in which the request is used.'> ^ usedInExpression
(FAMIXSQLExpression mooseDescription at: 'referencedRequests') hasOpposite should return true. However, I don’t have always the same behavior after each resetMeta. (1 to: 100) do: [ : e | MooseModel resetMeta. (FAMIXSQLExpression mooseDescription at: 'referencedRequests') hasOpposite ifFalse: [ 1halt ] ]. always halts, at some unpredictable iteration (usually less than 10)
Does someone has any idea what is the problem and how to solve it?
By the way, MooseSQL is available here https://ci.inria.fr/moose/job/MooseSQL/
Thanks in advance for your help.
Anne
Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
Moose-dev mailing list
Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
-- Nicolas Anquetil -- MCF (HDR) Project-Team RMod
Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
-- www.tudorgirba.com www.feenk.com
“The smaller and more pervasive the hardware becomes, the more physical the software gets."
Really?
Does it mean that the pragmas contained in: -=-=-=-=-=-=-=-= FAMIXType>>subInheritances <MSEProperty: #subInheritances type: #FAMIXInheritance opposite: #superclass> <multivalued> <derived> <MSEComment: 'Subinheritance relationships, i.e. known subclasses of this type.'> ^subInheritances -=-=-=-=-=-=-=-=
Are only for the import / export? <multivalued>, <derived> ?
Alexandre
Not only, they are used, I think, also in the MoosePanel. And if you want to generate a tool that can be used for different metamodel, as MooseQuery or OrionGenerator, you need the pragmas.
<multivalued> and <derived> also.
We are currently working with Pavel to define more easily metamodels without pragmas and FMMultivalueLink.
Anne
Le 20 janv. 2017 à 15:18, Alexandre Bergel alexandre.bergel@me.com a écrit :
Really?
Does it mean that the pragmas contained in:
FAMIXType>>subInheritances <MSEProperty: #subInheritances type: #FAMIXInheritance opposite: #superclass> <multivalued> <derived> <MSEComment: 'Subinheritance relationships, i.e. known subclasses of this type.'>
^subInheritances
Are only for the import / export? <multivalued>, <derived> ?
Alexandre
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
On Jan 20, 2017, at 7:24 AM, Tudor Girba tudor@tudorgirba.com wrote:
Hi,
Pragmas are only useful when you want to export/import. They are also used a bit for navigation but that use can be easily replaced with dedicated inspector panes. So, if you do not have the import/export use case, you do not need the pragmas.
Cheers, Doru
On Jan 19, 2017, at 11:06 PM, Nicolas Anquetil Nicolas.Anquetil@inria.fr wrote:
+1
On 19/01/2017 18:37, Alexandre Bergel wrote:
As a bit off the topic, I have always questioned myself to using pragmas. Are pragmas a mechanism we should continue to have to define a meta-model? Most of the time, I am better at implementing a simple meta-model without famix at all than trying to understand pragmas.
Alexandre
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
On Jan 19, 2017, at 8:23 AM, Anne Etien anne.etien@univ-lille1.fr wrote:
Hi,
I am developing a tool based on Fame pragma. Considering the following methods: FAMIXSQLExpression >>referencedRequests <MSEProperty: #referencedRequests type: #FAMIXRequest opposite: #usedInExpression> <multivalued> <MSEComment: 'List of requests referenced by the expression.'> ^ referencedRequests
FAMIXRequest >>usedInExpression <MSEProperty: #usedInExpression type: #FAMIXSQLExpression opposite: #referencedRequests> <MSEComment: 'Expression in which the request is used.'> ^ usedInExpression
(FAMIXSQLExpression mooseDescription at: 'referencedRequests') hasOpposite should return true. However, I don’t have always the same behavior after each resetMeta. (1 to: 100) do: [ : e | MooseModel resetMeta. (FAMIXSQLExpression mooseDescription at: 'referencedRequests') hasOpposite ifFalse: [ 1halt ] ]. always halts, at some unpredictable iteration (usually less than 10)
Does someone has any idea what is the problem and how to solve it?
By the way, MooseSQL is available here https://ci.inria.fr/moose/job/MooseSQL/
Thanks in advance for your help.
Anne
Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
Moose-dev mailing list
Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
-- Nicolas Anquetil -- MCF (HDR) Project-Team RMod
Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
-- www.tudorgirba.com www.feenk.com
“The smaller and more pervasive the hardware becomes, the more physical the software gets."
Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
We are currently working with Pavel to define more easily metamodels without pragmas and FMMultivalueLink.
+1 !!!!!! Go go go!
Hi,
On Jan 20, 2017, at 6:11 PM, Anne Etien anne.etien@univ-lille1.fr wrote:
Not only, they are used, I think, also in the MoosePanel.
As I said, the MoosePanel navigation can easily be replaced with an extension to the inspector.
And if you want to generate a tool that can be used for different metamodel, as MooseQuery or OrionGenerator, you need the pragmas.
<multivalued> and <derived> also.
Actually, MooseQuery relies on <container>. I do not know what OrionGenerator does :).
We are currently working with Pavel to define more easily metamodels without pragmas and FMMultivalueLink.
Just to clarify. The multi value link are not essential for any meta-model, but they are an important internal piece that allows us to have consistent bidirectional relationships which offer a nice solution for more succinct queries. Ideally, we should have them implemented as slots, and even nicer would be to have refactorings that would guide us to maintain them.
Cheers, Doru
Anne
Le 20 janv. 2017 à 15:18, Alexandre Bergel alexandre.bergel@me.com a écrit :
Really?
Does it mean that the pragmas contained in:
FAMIXType>>subInheritances <MSEProperty: #subInheritances type: #FAMIXInheritance opposite: #superclass> <multivalued> <derived> <MSEComment: 'Subinheritance relationships, i.e. known subclasses of this type.'>
^subInheritances
Are only for the import / export? <multivalued>, <derived> ?
Alexandre
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
On Jan 20, 2017, at 7:24 AM, Tudor Girba tudor@tudorgirba.com wrote:
Hi,
Pragmas are only useful when you want to export/import. They are also used a bit for navigation but that use can be easily replaced with dedicated inspector panes. So, if you do not have the import/export use case, you do not need the pragmas.
Cheers, Doru
On Jan 19, 2017, at 11:06 PM, Nicolas Anquetil Nicolas.Anquetil@inria.fr wrote:
+1
On 19/01/2017 18:37, Alexandre Bergel wrote:
As a bit off the topic, I have always questioned myself to using pragmas. Are pragmas a mechanism we should continue to have to define a meta-model? Most of the time, I am better at implementing a simple meta-model without famix at all than trying to understand pragmas.
Alexandre
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
On Jan 19, 2017, at 8:23 AM, Anne Etien anne.etien@univ-lille1.fr wrote:
Hi,
I am developing a tool based on Fame pragma. Considering the following methods: FAMIXSQLExpression >>referencedRequests <MSEProperty: #referencedRequests type: #FAMIXRequest opposite: #usedInExpression> <multivalued> <MSEComment: 'List of requests referenced by the expression.'> ^ referencedRequests
FAMIXRequest >>usedInExpression <MSEProperty: #usedInExpression type: #FAMIXSQLExpression opposite: #referencedRequests> <MSEComment: 'Expression in which the request is used.'> ^ usedInExpression
(FAMIXSQLExpression mooseDescription at: 'referencedRequests') hasOpposite should return true. However, I don’t have always the same behavior after each resetMeta. (1 to: 100) do: [ : e | MooseModel resetMeta. (FAMIXSQLExpression mooseDescription at: 'referencedRequests') hasOpposite ifFalse: [ 1halt ] ]. always halts, at some unpredictable iteration (usually less than 10)
Does someone has any idea what is the problem and how to solve it?
By the way, MooseSQL is available here https://ci.inria.fr/moose/job/MooseSQL/
Thanks in advance for your help.
Anne
Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
Moose-dev mailing list
Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
-- Nicolas Anquetil -- MCF (HDR) Project-Team RMod
Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
-- www.tudorgirba.com www.feenk.com
“The smaller and more pervasive the hardware becomes, the more physical the software gets."
Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
-- www.tudorgirba.com www.feenk.com
"No matter how many recipes we know, we still value a chef."