def compile(self):
        # If we weren't in the cache we /must/ have arguments
        if not hasattr(self, '_args'):
            raise RuntimeError("JITModule not in cache, but has no args associated")

        # Prior to the instantiation and compilation of the JITModule, a fusion
        # kernel object needs be created. This is because the superclass' method
        # expects a single kernel, not a list as we have at this point.
        self._kernel = Kernel(self._kernel)
        # Set compiler and linker options
        slope_dir = os.environ['SLOPE_DIR']
        self._kernel._name = 'executor'
        self._kernel._headers.extend(slope.Executor.meta['headers'])
        self._kernel._include_dirs.extend(['%s/%s' % (slope_dir,
                                                      slope.get_include_dir())])
        self._libraries += ['-L%s/%s' % (slope_dir, slope.get_lib_dir()),
                            slope.get_lib_name() % '-l%s']
        compiler = coffee.plan.compiler.get('name')
        self._cppargs += slope.get_compile_opts(compiler)
        fun = super(JITModule, self).compile()

        if hasattr(self, '_all_args'):
            # After the JITModule is compiled, can drop any reference to now
            # useless fields, which would otherwise cause memory leaks
            del self._all_args
            del self._executor

        return fun
dataset/ETHPy150Open OP2/PyOP2/pyop2/fusion.py/JITModule.compile/swapped operands of `%`