Explorar el Código

Optimize dict_copy operation

Yentl Van Tendeloo hace 7 años
padre
commit
e2b0208a17
Se han modificado 1 ficheros con 7 adiciones y 0 borrados
  1. 7 0
      kernel/modelverse_kernel/compiled.py

+ 7 - 0
kernel/modelverse_kernel/compiled.py

@@ -502,3 +502,10 @@ def string_startswith(a, b, **remainder):
         b['value'], = yield [("RV", [b['id']])]
 
     yield [("RETURN", [{"value": a['value'].startswith(b['value'])}])]
+
+def dict_copy(a, **remainder):
+    keys, new = yield [("RDK", [a['id']]), ("CN", [])]
+    values = yield [("RDN", [a['id'], i]) for i in keys]
+    keys = yield [("RV", [i]) for i in keys]
+    yield [("CD", [new, k, v]) for k, v in zip(keys, values)]
+    yield [("RETURN", [{'id': new}])]