Ejemplo n.º 1
0
def py_lowering_stage(targetctx, library, interp, flags):
    fndesc = funcdesc.PythonFunctionDescriptor.from_object_mode_function(
        interp)
    lower = objmode.PyLower(targetctx, library, fndesc, interp)
    lower.lower()
    if not flags.no_cpython_wrapper:
        lower.create_cpython_wrapper()
    env = lower.env
    call_helper = lower.call_helper
    has_dynamic_globals = lower.has_dynamic_globals
    del lower

    if flags.no_compile:
        return _LowerResult(fndesc,
                            call_helper,
                            cfunc=None,
                            env=env,
                            has_dynamic_globals=has_dynamic_globals)
    else:
        # Prepare for execution
        cfunc = targetctx.get_executable(library, fndesc, env)
        return _LowerResult(fndesc,
                            call_helper,
                            cfunc=cfunc,
                            env=env,
                            has_dynamic_globals=has_dynamic_globals)
Ejemplo n.º 2
0
def py_lowering_stage(targetctx, interp, nocompile):
    fndesc = lowering.PythonFunctionDescriptor.from_object_mode_function(
        interp)
    lower = objmode.PyLower(targetctx, fndesc, interp)
    lower.lower()

    if nocompile:
        return None, lower.module, lower.function, fndesc
    else:
        cfunc = targetctx.get_executable(lower.function, fndesc, lower.env)
        return cfunc, lower.module, lower.function, fndesc
Ejemplo n.º 3
0
def py_lowering_stage(targetctx, library, interp, flags):
    fndesc = lowering.PythonFunctionDescriptor.from_object_mode_function(
        interp)
    lower = objmode.PyLower(targetctx, library, fndesc, interp)
    lower.lower(create_wrapper=not flags.no_cpython_wrapper)
    env = lower.env
    exception_map = lower.exceptions
    del lower

    if flags.no_compile:
        return fndesc, exception_map, None
    else:
        # Prepare for execution
        cfunc = targetctx.get_executable(library, fndesc, env)
        return fndesc, exception_map, cfunc