Package com.oracle.truffle.r.runtime.data.RPromise

Examples of com.oracle.truffle.r.runtime.data.RPromise.Closure


                    // If neither supplied nor default argument
                    evaledArgs[i] = RMissing.instance;
                } else {
                    // <null> for environment leads to it being fitted with the REnvironment on the
                    // callee side
                    Closure defaultClosure = formals.getOrCreateClosure(defaultArg);
                    evaledArgs[i] = RPromise.create(EvalPolicy.INLINED, PromiseType.ARG_DEFAULT, null, defaultClosure);
                }
            } else if (function.isBuiltin() && evaledArg instanceof RPromise) {
                RPromise promise = (RPromise) evaledArg;
                evaledArgs[i] = promise.evaluate(frame, promiseProfile);
View Full Code Here


            }
        }

        // Create promise
        EvalPolicy evalPolicy = promiseWrapper.getEvalPolicy(function, builtinRootNode, logicalIndex);
        Closure closure = closureCache.getOrCreateClosure(expr);
        Closure defaultClosure = formals.getOrCreateClosure(defaultValue);
        return PromiseNode.create(expr.getSourceSection(), RPromiseFactory.create(evalPolicy, promiseType, closure, defaultClosure));
    }
View Full Code Here

    }

    @SlowPath
    public static RPromise createPromise(Object rep, REnvironment env) {
        // TODO Cache closures? Maybe in the callers of this function?
        Closure closure = Closure.create(rep);
        return traceDataCreated(RPromise.create(EvalPolicy.PROMISED, PromiseType.NO_ARG, env.getFrame(), closure));
    }
View Full Code Here

        if (expr == null) {
            return null;
        }

        IdentityHashMap<RNode, Closure> cache = getContent();
        Closure result = cache.get(expr);
        if (result == null) {
            result = Closure.create(expr);
            cache.put(expr, result);
        }
        return result;
View Full Code Here

        // have to do the full out eval
        try {
            MaterializedFrame frame = promise.getFrame().materialize();
            REnvironment env = REnvironment.frameToEnvironment(frame);
            assert env != null;
            Closure closure = promise.getClosure();
            return eval(lookupBuiltin("eval"), closure.getCallTarget(), callSrc, env, null, RArguments.getDepth(frame));
        } catch (PutException ex) {
            // TODO a new, rather unlikely, error
            assert false;
            return null;
        }
View Full Code Here

        @Override
        @ExplodeLoop
        public Object execute(VirtualFrame frame) {
            Object[] promises = new Object[nodes.length];
            for (int i = 0; i < nodes.length; i++) {
                Closure closure = closureCache.getOrCreateClosure(nodes[i]);
                promises[i] = RPromise.create(EvalPolicy.PROMISED, PromiseType.ARG_SUPPLIED, frame.materialize(), closure);
            }
            return new RArgsValuesAndNames(promises, names);
        }
View Full Code Here

TOP

Related Classes of com.oracle.truffle.r.runtime.data.RPromise.Closure

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.