|
@@ -1,6 +1,7 @@
|
|
|
import modelverse_kernel.primitives as primitive_functions
|
|
|
import modelverse_kernel.compiled as compiled_functions
|
|
|
import modelverse_jit.jit as jit
|
|
|
+import modelverse_jit.intrinsics as jit_intrinsics
|
|
|
import sys
|
|
|
import time
|
|
|
|
|
@@ -24,38 +25,12 @@ class ModelverseKernel(object):
|
|
|
self.jit.compiled_function_lookup = lambda func_name: \
|
|
|
getattr(compiled_functions, func_name, None)
|
|
|
|
|
|
- self.register_intrinsics()
|
|
|
+ jit_intrinsics.register_intrinsics(self.jit)
|
|
|
|
|
|
# To disable the JIT, uncomment the line below:
|
|
|
# self.jit.set_jit_enabled(False)
|
|
|
self.debug_info = "(no debug information found)"
|
|
|
|
|
|
- def register_intrinsics(self):
|
|
|
- """Registers intrinsics with the JIT."""
|
|
|
- self.jit.register_binary_intrinsic('value_eq', '==')
|
|
|
- self.jit.register_binary_intrinsic('value_neq', '!=')
|
|
|
-
|
|
|
- self.jit.register_binary_intrinsic('bool_and', 'and')
|
|
|
- self.jit.register_binary_intrinsic('bool_or', 'or')
|
|
|
-
|
|
|
- self.jit.register_binary_intrinsic('integer_addition', '+')
|
|
|
- self.jit.register_binary_intrinsic('integer_subtraction', '-')
|
|
|
- self.jit.register_binary_intrinsic('integer_multiplication', '*')
|
|
|
- self.jit.register_binary_intrinsic('integer_division', '/')
|
|
|
- self.jit.register_binary_intrinsic('integer_gt', '>')
|
|
|
- self.jit.register_binary_intrinsic('integer_gte', '>=')
|
|
|
- self.jit.register_binary_intrinsic('integer_lt', '<')
|
|
|
- self.jit.register_binary_intrinsic('integer_lte', '<=')
|
|
|
-
|
|
|
- self.jit.register_binary_intrinsic('float_addition', '+')
|
|
|
- self.jit.register_binary_intrinsic('float_subtraction', '-')
|
|
|
- self.jit.register_binary_intrinsic('float_multiplication', '*')
|
|
|
- self.jit.register_binary_intrinsic('float_division', '/')
|
|
|
- self.jit.register_binary_intrinsic('float_gt', '>')
|
|
|
- self.jit.register_binary_intrinsic('float_gte', '>=')
|
|
|
- self.jit.register_binary_intrinsic('float_lt', '<')
|
|
|
- self.jit.register_binary_intrinsic('float_lte', '<=')
|
|
|
-
|
|
|
def execute_yields(self, username, operation, params, reply):
|
|
|
try:
|
|
|
self.success = True
|