diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/RBuiltinPackages.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/RBuiltinPackages.java index 3cbd00ed57c3e9eaf903e10f38d786feb529a321..2d774b7c73d36ab3feaafe8032a4ee7b639b35ee 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/RBuiltinPackages.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/RBuiltinPackages.java @@ -33,6 +33,7 @@ import com.oracle.truffle.api.CompilerAsserts; import com.oracle.truffle.api.RootCallTarget; import com.oracle.truffle.api.Truffle; import com.oracle.truffle.api.frame.FrameDescriptor; +import com.oracle.truffle.api.frame.FrameSlot; import com.oracle.truffle.api.frame.MaterializedFrame; import com.oracle.truffle.api.source.Source; import com.oracle.truffle.r.nodes.builtin.base.BasePackage; @@ -116,6 +117,11 @@ public final class RBuiltinPackages implements RBuiltinLookup { } catch (ParseException e) { throw new RInternalError(e, "error while parsing base source from %s", baseSource.getName()); } + // forcibly clear last.warnings during startup: + FrameSlot slot = baseFrame.getFrameDescriptor().findFrameSlot("last.warning"); + if (slot != null) { + FrameSlotChangeMonitor.setObject(baseFrame, slot, null); + } } finally { RContext.getInstance().setLoadingBase(false); }