ソースを参照

Merge branch 'testing' into MvK_rules

Yentl Van Tendeloo 7 年 前
コミット
290f42ea21

+ 8 - 6
bootstrap/bootstrap.py

@@ -134,12 +134,14 @@ def bootstrap():
                             f.write("Node _func_params_%s()\n" % (param_encoding))
                             f.write("Node _func_params_%s()\n" % (param_encoding))
 
 
                             f.write('Node _name_%s("%s")\n' % (param_encoding, parameter_names[number]))
                             f.write('Node _name_%s("%s")\n' % (param_encoding, parameter_names[number]))
-                            f.write("Edge _param_link_%s(_func_params_%s, _func_params_%s)\n" % (param_encoding, function, param_encoding))
-                            f.write("Edge _param_link_str_%s(_param_link_%s, _name_%s)\n" % (param_encoding, param_encoding, param_encoding))
-
-                            f.write('Node _name_str_%s("name")\n' % param_encoding)
-                            f.write("Edge _param_name_%s(_func_params_%s, _name_%s)\n" % (param_encoding, param_encoding, param_encoding))
-                            f.write("Edge _param_name_str_%s(_param_name_%s, _name_str_%s)\n" % (param_encoding, param_encoding, param_encoding))
+                            #f.write("Edge _param_link_%s(_func_params_%s, _func_params_%s)\n" % (param_encoding, function, param_encoding))
+                            #f.write("Edge _param_link_str_%s(_param_link_%s, _name_%s)\n" % (param_encoding, param_encoding, param_encoding))
+                            f.write('Dict (_func_params_%s, "%s", _func_params_%s)\n' % (function, parameter_names[number], param_encoding))
+
+                            #f.write('Node _name_str_%s("name")\n' % param_encoding)
+                            #f.write("Edge _param_name_%s(_func_params_%s, _name_%s)\n" % (param_encoding, param_encoding, param_encoding))
+                            #f.write("Edge _param_name_str_%s(_param_name_%s, _name_str_%s)\n" % (param_encoding, param_encoding, param_encoding))
+                            f.write('Dict (_func_params_%s, "name", _name_%s)\n' % (param_encoding, param_encoding))
 
 
                 declare_primitive_class('primitives', primitives)
                 declare_primitive_class('primitives', primitives)
                 declare_primitive_class('jit', jit_primitives)
                 declare_primitive_class('jit', jit_primitives)

+ 3 - 2
integration/test_powerwindow.py

@@ -177,16 +177,17 @@ class TestPowerWindow(unittest.TestCase):
             def func(model):
             def func(model):
                 import uuid
                 import uuid
                 import os
                 import os
+                import glob
                 nr_operations = 11
                 nr_operations = 11
                 called = len(os.listdir(".TEST_POWER_WINDOW/"))
                 called = len(os.listdir(".TEST_POWER_WINDOW/"))
                 if (len(os.listdir(".TEST_POWER_WINDOW")) > nr_operations):
                 if (len(os.listdir(".TEST_POWER_WINDOW")) > nr_operations):
                     raise Exception("Seemingly called some operation twice!")
                     raise Exception("Seemingly called some operation twice!")
-                elif (len(glob.glob(".TEST_POWER_WINDOW/%s_*" % str(filename))) == 0) or fixed is None:
+                elif (len(glob.glob(".TEST_POWER_WINDOW/%s_*" % str(filename.rsplit("/", 1)[-1]))) == 0) or fixed is None:
                     model_overwrite(model, open(filename, "r").read())
                     model_overwrite(model, open(filename, "r").read())
                 else:
                 else:
                     model_overwrite(model, open(fixed, "r").read())
                     model_overwrite(model, open(fixed, "r").read())
 
 
-                open(".TEST_POWER_WINDOW/%s_%s" % str(filename, uuid.uuid4()), 'w').close()
+                open(".TEST_POWER_WINDOW/%s_%s" % (filename.rsplit("/", 1)[-1], uuid.uuid4()), 'w').close()
             return func
             return func
 
 
         cb_req = get_function("models/requirements_model.mvc")
         cb_req = get_function("models/requirements_model.mvc")

+ 6 - 7
kernel/modelverse_kernel/main.py

@@ -190,13 +190,12 @@ class ModelverseKernel(object):
         # execute_jit
         # execute_jit
         task_frame, =    yield [("RD", [task_root, "frame"])]
         task_frame, =    yield [("RD", [task_root, "frame"])]
         symbols, =       yield [("RD", [task_frame, "symbols"])]
         symbols, =       yield [("RD", [task_frame, "symbols"])]
-        all_links, =     yield [("RO", [symbols])]
-        containers =    yield [("RE", [v]) for v in all_links]
-        outgoings =     yield [("RO", [v]) for v in all_links]
-        dict_values =   yield [("RD", [v[1], "value"]) for v in containers]
-        formals_1 =     yield [("RE", [v[0]]) for v in outgoings]
-        dict_keys_ref = yield [("RD", [v[1], "name"]) for v in formals_1]
-        dict_keys =     yield [("RV", [v]) for v in dict_keys_ref]
+        dict_keys_ref, =  yield [("RDK", [symbols])]
+        dict_keys_ref_n =   yield [("RD", [i, "name"]) for i in dict_keys_ref]
+        dict_keys =       yield [("RV", [i]) for i in dict_keys_ref_n]
+        dict_values_elem = yield [("RDN", [symbols, i]) for i in dict_keys_ref]
+        dict_values = yield [("RD", [i, "value"]) for i in dict_values_elem]
+
         parameters = dict(zip(dict_keys, dict_values))
         parameters = dict(zip(dict_keys, dict_values))
 
 
         parameters["root"] = self.root
         parameters["root"] = self.root

+ 6 - 0
kernel/test/instructions/test_instruction_call.py

@@ -145,6 +145,7 @@ class Testcall(unittest.TestCase):
         t = self.mvs.execute("CE", [self.symbols, self.val_function])
         t = self.mvs.execute("CE", [self.symbols, self.val_function])
         self.mvs.execute("CE", [t, self.var_function])
         self.mvs.execute("CE", [t, self.var_function])
         self.mvs.execute("CD", [self.params, "abc", self.var_abc])
         self.mvs.execute("CD", [self.params, "abc", self.var_abc])
+        self.mvs.execute("CD", [self.var_abc, "name", self.value_abc])
 
 
         ### Execute rules
         ### Execute rules
         self.assertEquals(get_inst(self.root, self.mvs), "call")
         self.assertEquals(get_inst(self.root, self.mvs), "call")
@@ -261,6 +262,8 @@ class Testcall(unittest.TestCase):
         self.mvs.execute("CE", [t, self.var_function])
         self.mvs.execute("CE", [t, self.var_function])
         self.mvs.execute("CD", [self.params, "a", self.var_a])
         self.mvs.execute("CD", [self.params, "a", self.var_a])
         self.mvs.execute("CD", [self.params, "b", self.var_b])
         self.mvs.execute("CD", [self.params, "b", self.var_b])
+        self.mvs.execute("CD", [self.var_a, "name", self.value_a])
+        self.mvs.execute("CD", [self.var_b, "name", self.value_b])
 
 
         ### Execute rules
         ### Execute rules
         self.assertEquals(get_inst(self.root, self.mvs), "call")
         self.assertEquals(get_inst(self.root, self.mvs), "call")
@@ -398,6 +401,9 @@ class Testcall(unittest.TestCase):
         self.mvs.execute("CD", [self.params, "a", self.var_a])
         self.mvs.execute("CD", [self.params, "a", self.var_a])
         self.mvs.execute("CD", [self.params, "b", self.var_b])
         self.mvs.execute("CD", [self.params, "b", self.var_b])
         self.mvs.execute("CD", [self.params, "c", self.var_c])
         self.mvs.execute("CD", [self.params, "c", self.var_c])
+        self.mvs.execute("CD", [self.var_a, "name", self.value_a])
+        self.mvs.execute("CD", [self.var_b, "name", self.value_b])
+        self.mvs.execute("CD", [self.var_c, "name", self.value_c])
 
 
         ### Execute rules
         ### Execute rules
         self.assertEquals(get_inst(self.root, self.mvs), "call")
         self.assertEquals(get_inst(self.root, self.mvs), "call")

+ 1 - 3
wrappers/classes/modelverse.xml

@@ -428,6 +428,7 @@
                             <transition cond="self.expect_response_partial('Success: ')" target="../send_metadata">
                             <transition cond="self.expect_response_partial('Success: ')" target="../send_metadata">
                                 <script>
                                 <script>
                                     self.registered_metamodel[self.parameters[0]] = set(self.split_response(self.responses.pop(0))).pop()
                                     self.registered_metamodel[self.parameters[0]] = set(self.split_response(self.responses.pop(0))).pop()
+                                    print("Registering " + str(self.parameters[0]))
                                 </script>
                                 </script>
                             </transition>
                             </transition>
                         </state>
                         </state>
@@ -453,9 +454,6 @@
                                 <raise event="result">
                                 <raise event="result">
                                     <parameter expr="None"/>
                                     <parameter expr="None"/>
                                 </raise>
                                 </raise>
-                                <script>
-                                    self.registered_metamodel[self.parameters[0]] = self.parameters[1]
-                                </script>
                             </transition>
                             </transition>
                         </state>
                         </state>
                     </state>
                     </state>

+ 2 - 2
wrappers/modelverse_SCCD.py

@@ -1,7 +1,7 @@
 """
 """
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Thu Nov 23 08:59:20 2017
+Date:   Thu Nov 23 13:09:28 2017
 
 
 Model author: Yentl Van Tendeloo
 Model author: Yentl Van Tendeloo
 Model name:   MvK Server
 Model name:   MvK Server
@@ -2432,6 +2432,7 @@ class Modelverse(RuntimeClassBase):
     
     
     def _initialized_behaviour_operations_model_overwrite_search_0_exec(self, parameters):
     def _initialized_behaviour_operations_model_overwrite_search_0_exec(self, parameters):
         self.registered_metamodel[self.parameters[0]] = set(self.split_response(self.responses.pop(0))).pop()
         self.registered_metamodel[self.parameters[0]] = set(self.split_response(self.responses.pop(0))).pop()
+        print("Registering " + str(self.parameters[0]))
     
     
     def _initialized_behaviour_operations_model_overwrite_search_0_guard(self, parameters):
     def _initialized_behaviour_operations_model_overwrite_search_0_guard(self, parameters):
         return self.expect_response_partial('Success: ')
         return self.expect_response_partial('Success: ')
@@ -2441,7 +2442,6 @@ class Modelverse(RuntimeClassBase):
     
     
     def _initialized_behaviour_operations_model_overwrite_send_model_0_exec(self, parameters):
     def _initialized_behaviour_operations_model_overwrite_send_model_0_exec(self, parameters):
         self.raiseInternalEvent(Event("result", None, [None]))
         self.raiseInternalEvent(Event("result", None, [None]))
-        self.registered_metamodel[self.parameters[0]] = self.parameters[1]
     
     
     def _initialized_behaviour_operations_model_overwrite_send_model_0_guard(self, parameters):
     def _initialized_behaviour_operations_model_overwrite_send_model_0_guard(self, parameters):
         return self.expect_response('Success')
         return self.expect_response('Success')