Skip to content
Snippets Groups Projects
Commit e2c04502 authored by Mick Jordan's avatar Mick Jordan
Browse files

add strtrim builtin; enables options(browser=recover)

parent afe6cf22
Branches
No related tags found
No related merge requests found
...@@ -493,6 +493,7 @@ public class BasePackage extends RBuiltinPackage { ...@@ -493,6 +493,7 @@ public class BasePackage extends RBuiltinPackage {
add(StandardGeneric.class, StandardGenericNodeGen::create); add(StandardGeneric.class, StandardGenericNodeGen::create);
add(Stop.class, StopNodeGen::create); add(Stop.class, StopNodeGen::create);
add(Strtoi.class, StrtoiNodeGen::create); add(Strtoi.class, StrtoiNodeGen::create);
add(Strtrim.class, StrtrimNodeGen::create);
add(Substitute.class, SubstituteNodeGen::create); add(Substitute.class, SubstituteNodeGen::create);
add(Substr.class, SubstrNodeGen::create); add(Substr.class, SubstrNodeGen::create);
add(Sum.class, SumNodeGen::create); add(Sum.class, SumNodeGen::create);
......
...@@ -28,6 +28,7 @@ import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; ...@@ -28,6 +28,7 @@ import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.Specialization;
import com.oracle.truffle.api.frame.MaterializedFrame; import com.oracle.truffle.api.frame.MaterializedFrame;
import com.oracle.truffle.api.frame.VirtualFrame; import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.r.nodes.builtin.CastBuilder;
import com.oracle.truffle.r.nodes.builtin.RBuiltinNode; import com.oracle.truffle.r.nodes.builtin.RBuiltinNode;
import com.oracle.truffle.r.nodes.builtin.RInvisibleBuiltinNode; import com.oracle.truffle.r.nodes.builtin.RInvisibleBuiltinNode;
import com.oracle.truffle.r.nodes.builtin.helpers.BrowserInteractNode; import com.oracle.truffle.r.nodes.builtin.helpers.BrowserInteractNode;
...@@ -67,6 +68,11 @@ public class BrowserFunctions { ...@@ -67,6 +68,11 @@ public class BrowserFunctions {
return new Object[]{"", RNull.instance, RRuntime.LOGICAL_TRUE, 0}; return new Object[]{"", RNull.instance, RRuntime.LOGICAL_TRUE, 0};
} }
@Override
protected void createCasts(CastBuilder casts) {
casts.toInteger(3);
}
@SuppressWarnings("unused") @SuppressWarnings("unused")
@Specialization @Specialization
protected RNull browser(VirtualFrame frame, String text, RNull condition, byte expr, int skipCalls) { protected RNull browser(VirtualFrame frame, String text, RNull condition, byte expr, int skipCalls) {
......
...@@ -19,36 +19,36 @@ public class TestBuiltin_strtrim extends TestBase { ...@@ -19,36 +19,36 @@ public class TestBuiltin_strtrim extends TestBase {
@Test @Test
public void teststrtrim1() { public void teststrtrim1() {
assertEval(Ignored.Unknown, "argv <- list(c('\\\'time\\\'', '\\\'status\\\''), 128); .Internal(strtrim(argv[[1]], argv[[2]]))"); assertEval("argv <- list(c('\\\'time\\\'', '\\\'status\\\''), 128); .Internal(strtrim(argv[[1]], argv[[2]]))");
} }
@Test @Test
public void teststrtrim2() { public void teststrtrim2() {
assertEval(Ignored.Unknown, "argv <- list('2014-03-17 14:47:20', 8); .Internal(strtrim(argv[[1]], argv[[2]]))"); assertEval("argv <- list('2014-03-17 14:47:20', 8); .Internal(strtrim(argv[[1]], argv[[2]]))");
} }
@Test @Test
public void teststrtrim3() { public void teststrtrim3() {
assertEval(Ignored.Unknown, "argv <- list(c('\\\'1\\\'', '\\\'2\\\'', NA), 128); .Internal(strtrim(argv[[1]], argv[[2]]))"); assertEval("argv <- list(c('\\\'1\\\'', '\\\'2\\\'', NA), 128); .Internal(strtrim(argv[[1]], argv[[2]]))");
} }
@Test @Test
public void teststrtrim4() { public void teststrtrim4() {
assertEval(Ignored.Unknown, "argv <- list(c('\\\'gray17\\\'', '\\\'grey17\\\''), 128); .Internal(strtrim(argv[[1]], argv[[2]]))"); assertEval("argv <- list(c('\\\'gray17\\\'', '\\\'grey17\\\''), 128); .Internal(strtrim(argv[[1]], argv[[2]]))");
} }
@Test @Test
public void teststrtrim5() { public void teststrtrim5() {
assertEval(Ignored.Unknown, "argv <- list(structure('\\\'@CRAN@\\\'', .Names = 'CRAN'), 128); .Internal(strtrim(argv[[1]], argv[[2]]))"); assertEval("argv <- list(structure('\\\'@CRAN@\\\'', .Names = 'CRAN'), 128); .Internal(strtrim(argv[[1]], argv[[2]]))");
} }
@Test @Test
public void teststrtrim6() { public void teststrtrim6() {
assertEval(Ignored.Unknown, "argv <- list('FALSE', FALSE); .Internal(strtrim(argv[[1]], argv[[2]]))"); assertEval("argv <- list('FALSE', FALSE); .Internal(strtrim(argv[[1]], argv[[2]]))");
} }
@Test @Test
public void teststrtrim8() { public void teststrtrim8() {
assertEval(Ignored.Unknown, "argv <- list(character(0), 40L); .Internal(strtrim(argv[[1]], argv[[2]]))"); assertEval("argv <- list(character(0), 40L); .Internal(strtrim(argv[[1]], argv[[2]]))");
} }
} }
...@@ -153,7 +153,8 @@ com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/R ...@@ -153,7 +153,8 @@ com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/R
com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/RowMeans.java,purdue.copyright com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/RowMeans.java,purdue.copyright
com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/RowSums.java,purdue.copyright com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/RowSums.java,purdue.copyright
com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/S3DispatchFunctions.java,purdue.copyright com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/S3DispatchFunctions.java,purdue.copyright
com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Sample.java,gnu_r_sample.copyright com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/S3DispatchFunctions.java,purdue.copyright
com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Strtrim.java,gnu_r_gentleman_ihaka2.copyright
com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Scan.java,gnu_r_scan.copyright com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Scan.java,gnu_r_scan.copyright
com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Slot.java,gnu_r_gentleman_ihaka.copyright com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Slot.java,gnu_r_gentleman_ihaka.copyright
com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/StandardGeneric.java,gnu_r_gentleman_ihaka.copyright com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/StandardGeneric.java,gnu_r_gentleman_ihaka.copyright
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment