diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/RASTBuilder.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/RASTBuilder.java index 4b35745a57d38575a5f0b42a2bcb630315bdc1bc..12146234e43c84586c00c213f3f7ad86ade8ea97 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/RASTBuilder.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/RASTBuilder.java @@ -234,6 +234,11 @@ public final class RASTBuilder implements RCodeBuilder<RSyntaxNode> { FrameDescriptor descriptor = new FrameDescriptor(); FrameSlotChangeMonitor.initializeFunctionFrameDescriptor(name != null && !name.isEmpty() ? name : "<function>", descriptor); FunctionDefinitionNode rootNode = FunctionDefinitionNode.create(source, descriptor, argSourceSections, saveArguments, body, formals, name, argPostProcess); + + if (FastROptions.ForceSources.getBooleanValue()) { + // forces source sections to be generated + rootNode.getSourceSection(); + } return Truffle.getRuntime().createCallTarget(rootNode); } diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/FastROptions.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/FastROptions.java index f0005b639aa32fc19806700f8fc22b15120367ad..767d9529d17dc088decc4f2074ea812f7b27f6bf 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/FastROptions.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/FastROptions.java @@ -53,6 +53,7 @@ public enum FastROptions { RefCountIncrementOnly("Disable reference count decrements for experimental state transition implementation", false), UseInternalGraphics("Whether the internal (Java) graphics subsystem should be used", false), UseSpecials("Whether the fast-path special call nodes should be created for simple enough arguments.", true), + ForceSources("Generate source sections for unserialized code", false), // Promises optimizations EagerEval("If enabled, overrides all other EagerEval switches (see EagerEvalHelper)", false),