Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Truffle] Add RubyStatement wrapper node.
Browse files Browse the repository at this point in the history
chrisseaton committed Jan 20, 2016
1 parent a378e52 commit 2786a43
Showing 5 changed files with 42 additions and 5 deletions.
2 changes: 1 addition & 1 deletion truffle/pom.rb
Original file line number Diff line number Diff line change
@@ -18,7 +18,7 @@
repository( :url => 'http://lafo.ssw.uni-linz.ac.at/nexus/content/repositories/snapshots/',
:id => 'truffle' )

truffle_version = '6b76a24fffbd52e713a9477f0de62d071674cc90-SNAPSHOT'
truffle_version = 'd7b4d7c6176d1a14f7ef9d20747ca8a92d1c6377'
jar 'com.oracle.truffle:truffle-api:' + truffle_version
jar 'com.oracle.truffle:truffle-debug:' + truffle_version
jar 'com.oracle.truffle:truffle-dsl-processor:' + truffle_version, :scope => 'provided'
8 changes: 4 additions & 4 deletions truffle/pom.xml
Original file line number Diff line number Diff line change
@@ -41,23 +41,23 @@ DO NOT MODIFIY - GENERATED CODE
<dependency>
<groupId>com.oracle.truffle</groupId>
<artifactId>truffle-api</artifactId>
<version>6b76a24fffbd52e713a9477f0de62d071674cc90-SNAPSHOT</version>
<version>d7b4d7c6176d1a14f7ef9d20747ca8a92d1c6377</version>
</dependency>
<dependency>
<groupId>com.oracle.truffle</groupId>
<artifactId>truffle-debug</artifactId>
<version>6b76a24fffbd52e713a9477f0de62d071674cc90-SNAPSHOT</version>
<version>d7b4d7c6176d1a14f7ef9d20747ca8a92d1c6377</version>
</dependency>
<dependency>
<groupId>com.oracle.truffle</groupId>
<artifactId>truffle-dsl-processor</artifactId>
<version>6b76a24fffbd52e713a9477f0de62d071674cc90-SNAPSHOT</version>
<version>d7b4d7c6176d1a14f7ef9d20747ca8a92d1c6377</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.oracle.truffle</groupId>
<artifactId>truffle-tck</artifactId>
<version>6b76a24fffbd52e713a9477f0de62d071674cc90-SNAPSHOT</version>
<version>d7b4d7c6176d1a14f7ef9d20747ca8a92d1c6377</version>
<scope>test</scope>
</dependency>
<dependency>
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/*
* Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved. This
* code is released under a tri EPL/GPL/LGPL license. You can use it,
* redistribute it and/or modify it under the terms of the:
*
* Eclipse Public License version 1.0
* GNU General Public License version 2
* GNU Lesser General Public License version 2.1
*/
package org.jruby.truffle.nodes;

import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.instrumentation.Instrumentable;
import com.oracle.truffle.api.instrumentation.InstrumentationTag;

@Instrumentable(tags = {InstrumentationTag.STATEMENT}, factory = RubyStatementNodeWrapper.class)
public class RubyStatementNode extends RubyNode {

@Child private RubyNode child;

public RubyStatementNode(RubyNode child) {
super(child.getContext(), child.getSourceSection());
this.child = child;
}

public RubyStatementNode(RubyStatementNode node) {
this((RubyNode) node.child.deepCopy());
}

@Override
public Object execute(VirtualFrame frame) {
return child.execute(frame);
}
}
Original file line number Diff line number Diff line change
@@ -145,6 +145,7 @@ public RubyContext unprotectedFindContext(Node node) {

@Override
public void installInstrumentations(RubyContext context, Instrumenter instrumenter) {
System.err.println("install instrumentations");
context.setAttachmentsManager(new AttachmentsManager(context, instrumenter));
}
}
Original file line number Diff line number Diff line change
@@ -27,6 +27,7 @@
import org.jruby.runtime.Helpers;
import org.jruby.truffle.nodes.RubyNode;
import org.jruby.truffle.nodes.RubyRootNode;
import org.jruby.truffle.nodes.RubyStatementNode;
import org.jruby.truffle.nodes.ThreadLocalObjectNode;
import org.jruby.truffle.nodes.arguments.ArrayIsAtLeastAsLargeAsNode;
import org.jruby.truffle.nodes.arguments.IsRubiniusUndefinedNode;
@@ -3023,6 +3024,7 @@ private void copyNewline(org.jruby.ast.Node from, org.jruby.ast.Node to) {

private RubyNode addNewlineIfNeeded(org.jruby.ast.Node jrubyNode, RubyNode node) {
if (jrubyNode.isNewline()) {
node = new RubyStatementNode(node);
node.setAtNewline();
}

0 comments on commit 2786a43

Please sign in to comment.