فهرست منبع

Remove old symbol checking code (in Python) and all related code in AL and Python compiled AL.

Yentl Van Tendeloo 9 سال پیش
والد
کامیت
576939d99e
4فایلهای تغییر یافته به همراه2 افزوده شده و 77 حذف شده
  1. 2 23
      bootstrap/compilation_manager.alc
  2. 0 3
      integration/utils.py
  3. 0 34
      interface/HUTN/hutn_compiler/linker.py
  4. 0 17
      kernel/modelverse_kernel/compiled.py

+ 2 - 23
bootstrap/compilation_manager.alc

@@ -1,23 +1,6 @@
 include "primitives.alh"
 include "constructors.alh"
 
-Element function read_symbols(root : Element, object_name : String):
-	Element keys
-	Element node
-	String rv
-	String key
-
-	node = root[object_name]["symbols"]
-	keys = dict_keys(node)
-	rv = ""
-	while (0 < read_nr_out(keys)):
-		key = set_pop(keys)
-		if (node[key]):
-			rv = (rv + key) + ":1\n"
-		else:
-			rv = (rv + key) + ":0\n"
-	return rv
-
 Element function compilation_manager():
 	String operation
 	String object_name
@@ -51,8 +34,6 @@ Element function compilation_manager():
 			dict_add(symbols, input(), input())
 	elif (operation == "remove_obj"):
 		dict_delete(root, input())
-	elif (operation == "read_symbols"):
-		output(read_symbols(root, input()))
 	elif (operation == "read_initializers"):
 		node = root[input()]["initializers"]
 		output(node)
@@ -72,7 +53,8 @@ Element function compilation_manager():
 			obj = input()
 
 		log("Start check!")
-		output(check_symbols(root, objs))
+		output(True)
+		//output(check_symbols(root, objs))
 	elif (operation == "is_defined"):
 		object_name = input()
 		if (dict_in(root, object_name)):
@@ -98,13 +80,11 @@ Boolean function check_symbols(root : Element, objs : Element):
 	copy_objs = set_copy(objs)
 	while (0 < list_len(copy_objs)):
 		obj = set_pop(copy_objs)
-		log("CHECK " + obj)
 		keys = dict_keys(root[obj]["symbols"])
 		while (0 < list_len(keys)):
 			key = set_pop(keys)
 
 			if (root[obj]["symbols"][key]):
-				log("  SYMB " + key)
 				// Defines
 				if (bool_not(dict_in(symbols, key))):
 					// Not yet in dictionary
@@ -128,7 +108,6 @@ Boolean function check_symbols(root : Element, objs : Element):
 		key = set_pop(keys)
 		if (bool_not(symbols[key])):
 			if (bool_not(bool_or(key == "output", key == "input"))):
-				log(cast_e2s(symbols[key]))
 				log("ERROR: undefined symbol " + key)
 				return False
 

+ 0 - 3
integration/utils.py

@@ -154,9 +154,7 @@ def run_file(files, parameters, expected, mode):
                         return False
 
                     while 1:
-                        print("Wait for result")
                         val = urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "get_output", "username": username})), timeout=120).read()
-                        print("Got result: " + str(val))
                         l, r = val.split("&", 1)
                         if l.startswith("id"):
                             id_str = l
@@ -336,5 +334,4 @@ def get_constructor(code):
 
     constructors = do_compile("__constraint.al", "interface/HUTN/grammars/actionlanguage.g", "CS")
 
-    print("Got constructors: " + str(constructors))
     return constructors

+ 0 - 34
interface/HUTN/hutn_compiler/linker.py

@@ -14,40 +14,6 @@ def link(address, username, objects):
     users = {}
     data = []
 
-    """
-    definers["main"] = None
-    for obj in objects:
-        data.append(("V", '3'))
-        data.append(("V", '"read_symbols"'))
-        data.append(("V", '"%s"' % obj))
-
-    data = flush_data(address, data, username)
-
-    for obj in objects:
-        print("[SYMB] %s" % (obj))
-        v = urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "get_output", "username": username}))).read()
-        lst = v.rsplit("=", 1)[1]
-        lst = lst.split("\n")
-        for e in lst:
-            if len(e) > 1:
-                name, defined = e.rsplit(":", 1)
-                if defined == "1":
-                    if definers.get(name, None):
-                        raise Exception("Double definition for symbol %s\nDefined in %s\nDefined in %s" % (name, definers[name], obj))
-                    definers[name] = obj
-                else:
-                    users.setdefault(name, []).append(obj)
-                    if name not in definers:
-                        definers[name] = None
-
-    # Check for undefined symbols with this linking set
-    for symbol in definers:
-        if definers[symbol] is None:
-            if symbol not in ["input", "output"]:
-                # Some symbols are built-ins which only look like functions
-                raise Exception("Undefined symbol %s.\nUsed by modules:\n\t%s" % (symbol, "\n\t".join(users[symbol])))
-    """
-
     data.append(("V", '3'))
     data.append(("V", '"check_symbols"'))
     for obj in objects:

+ 0 - 17
kernel/modelverse_kernel/compiled.py

@@ -398,20 +398,3 @@ def selectPossibleOutgoing(a, b, c, **remainder):
             yield [("CE", [result, limit_set_names[i]])]
 
     raise PrimitiveFinished(result)
-
-def read_symbols(a, b, **remainder):
-    b_v =       yield [("RV", [b])]
-    obj =       yield [("RD", [a, b_v])]
-    node =      yield [("RD", [obj, "symbols"])]
-    keys =      yield [("RDK", [node])]
-    keys_v =    yield [("RV", [i]) for i in keys]
-    keys_v = [keys_v] if not isinstance(keys_v, list) else keys_v
-    is_in =     yield [("RD", [node, i]) for i in keys_v]
-    is_in = [is_in] if not isinstance(is_in, list) else is_in
-    is_in_v =   yield [("RV", [i]) for i in is_in]
-    is_in_v = [is_in_v] if not isinstance(is_in_v, list) else is_in_v
-
-    result_v = ["%s:%s\n" % (key, "1" if value else "0") for key, value in zip(keys_v, is_in_v)]
-    result_v = "".join(result_v)
-    result =    yield [("CNV", [result_v])]
-    raise PrimitiveFinished(result)