Yentl Van Tendeloo 8 лет назад
Родитель
Сommit
364db14b2a

Разница между файлами не показана из-за своего большого размера
+ 1866 - 133998
bootstrap/bootstrap.m


+ 0 - 68
bootstrap/minimal.m

@@ -1789,71 +1789,3 @@ Node _name_deserialize("deserialize")
 Edge _primitives_name_deserialize(_primitives_deserialize, _name_deserialize)
 Node _body_deserialize("body")
 Edge _signature_body_deserialize(_func_signature_deserialize, _func_body_deserialize)
-Edge _signature_body_str_deserialize(_signature_body_deserialize, _body_deserialize)
-Node _params_deserialize("params")
-Edge _signature_params_deserialize(_func_signature_deserialize, _func_params_deserialize)
-Edge _signature_params_str_deserialize(_signature_params_deserialize, _params_deserialize)
-Node _func_params_deserialize_a()
-Node _name_deserialize_a("a")
-Edge _param_link_deserialize_a(_func_params_deserialize, _func_params_deserialize_a)
-Edge _param_link_str_deserialize_a(_param_link_deserialize_a, _name_deserialize_a)
-Node _name_str_deserialize_a("name")
-Edge _param_name_deserialize_a(_func_params_deserialize_a, _name_deserialize_a)
-Edge _param_name_str_deserialize_a(_param_name_deserialize_a, _name_str_deserialize_a)
-Node _func_signature_log()
-Node _func_params_log()
-Node _func_body_log()
-Edge _primitives_log(primitives, _func_signature_log)
-Node _name_log("log")
-Edge _primitives_name_log(_primitives_log, _name_log)
-Node _body_log("body")
-Edge _signature_body_log(_func_signature_log, _func_body_log)
-Edge _signature_body_str_log(_signature_body_log, _body_log)
-Node _params_log("params")
-Edge _signature_params_log(_func_signature_log, _func_params_log)
-Edge _signature_params_str_log(_signature_params_log, _params_log)
-Node _func_params_log_a()
-Node _name_log_a("a")
-Edge _param_link_log_a(_func_params_log, _func_params_log_a)
-Edge _param_link_str_log_a(_param_link_log_a, _name_log_a)
-Node _name_str_log_a("name")
-Edge _param_name_log_a(_func_params_log_a, _name_log_a)
-Edge _param_name_str_log_a(_param_name_log_a, _name_str_log_a)
-Node user_root()
-Node user_input()
-Node ___user_input("input")
-Edge _user_input(user_root, user_input)
-Edge __user_input(_user_input, ___user_input)
-Node user_output()
-Node ___user_output("output")
-Edge _user_output(user_root, user_output)
-Edge __user_output(_user_output, ___user_output)
-Node user_globals()
-Node ___user_globals("globals")
-Edge _user_globals(user_root, user_globals)
-Edge __user_globals(_user_globals, ___user_globals)
-Node user_frame()
-Node ___user_frame("frame")
-Edge _user_frame(user_root, user_frame)
-Edge __user_frame(_user_frame, ___user_frame)
-Node user_evalstack()
-Node ___user_evalstack("evalstack")
-Edge _user_evalstack(user_frame, user_evalstack)
-Edge __user_evalstack(_user_evalstack, ___user_evalstack)
-Node user_symbols()
-Node ___user_symbols("symbols")
-Edge _user_symbols(user_frame, user_symbols)
-Edge __user_symbols(_user_symbols, ___user_symbols)
-Node user_returnvalue()
-Node ___user_returnvalue("returnvalue")
-Edge _user_returnvalue(user_frame, user_returnvalue)
-Edge __user_returnvalue(_user_returnvalue, ___user_returnvalue)
-Node ___user_last_input("last_input")
-Edge _user_last_input(user_root, user_input)
-Edge __user_last_input(_user_last_input, ___user_last_input)
-Node ___user_last_output("last_output")
-Edge _user_last_output(user_root, user_output)
-Edge __user_last_output(_user_last_output, ___user_last_output)
-Node ___new_user("user_manager")
-Edge _new_user(root, user_root)
-Edge __new_user(_new_user, ___new_user)

+ 2 - 2
integration/code/several_petrinets.mvc

@@ -5,9 +5,9 @@ SCD PetriNets{
     Class Natural {
         $
             if (bool_not(is_physical_int(self))):
-                return "Natural has no integer value at " + element
+                return "Natural has no integer value at " + name
             elif (integer_lt(self, 0)):
-                return "Natural does not have a positive or zero value at " + element
+                return "Natural does not have a positive or zero value at " + name
             else:
                 return "OK"
          $

+ 1 - 1
integration/utils.py

@@ -127,7 +127,7 @@ def run_file(files, parameters, expected, mode):
                 compile_file(address, mod_filename, filename, mode, proc)
 
             # After the first file, which can be whatever we want, we just have to compile dependencies, all of which are PO for efficiency
-            #mode = "PO"
+            mode = "PO"
 
         if parallel_push:
             for t in threads:

+ 3 - 1
interface/HUTN/hutn_compiler/bootstrap_visitor.py

@@ -6,6 +6,7 @@ class BootstrapVisitor(PrimitivesVisitor):
         PrimitivesVisitor.__init__(self, args)
 
     def dump(self):
+        link_id = 0
         call = self.value("call")
         access = self.value("access")
         resolve = self.value("resolve")
@@ -31,7 +32,8 @@ class BootstrapVisitor(PrimitivesVisitor):
                 source = "auto_%s" % source if isinstance(source, int) else source
                 target = "auto_%s" % target if isinstance(target, int) else target
                 # output.append("D %s,%s,%s\n" % (source, value, target))
-                linkname = "%s_%s_%s" % (source, abs(hash(value)), target)
+                linkname = "%s_%s_%s" % (source, link_id, target)
+                link_id += 1
                 output.append("Edge _%s_0(%s, %s)\n" % (linkname, source, target))
                 output.append("Node _%s_2(%s)\n" % (linkname, value))
                 output.append("Edge _%s_1(_%s_0, _%s_2)\n" % (linkname, linkname, linkname))