Skip to content
Snippets Groups Projects
Commit 9007d7b4 authored by Lukas Stadler's avatar Lukas Stadler
Browse files

fix whitespace differences in warning messages with options(warn=1), more...

fix whitespace differences in warning messages with options(warn=1), more thorough search for current frame in Utils.getActualCurrentFrame
parent 28053639
No related branches found
No related tags found
No related merge requests found
......@@ -767,7 +767,7 @@ public class RErrorHandling {
// (is 74 a given percentage of console width?)
if (preamble.length() + 1 + message.length() >= 74) {
// +1 is for the extra space following the colon
return preamble + " \n " + message;
return preamble + "\n " + message;
} else {
return preamble + " " + message;
}
......
......@@ -475,7 +475,17 @@ public final class Utils {
// Truffle/R system has started
return null;
}
return RArguments.unwrap(frameInstance.getFrame(FrameAccess.MATERIALIZE));
Frame frame = RArguments.unwrap(frameInstance.getFrame(FrameAccess.MATERIALIZE));
if (!RArguments.isRFrame(frame)) {
return Truffle.getRuntime().iterateFrames(new FrameInstanceVisitor<Frame>() {
@Override
public Frame visitFrame(FrameInstance instance) {
Frame current = RArguments.unwrap(instance.getFrame(FrameAccess.MATERIALIZE));
return RArguments.isRFrame(current) ? current : null;
}
});
}
return frame;
}
private static final class TracebackVisitor implements FrameInstanceVisitor<Frame> {
......
......@@ -642,11 +642,11 @@ Error: no slot of name "foo" for this object of class "classRepresentation"
#{ getClass("ClassUnionRepresentation")@virtual }
[1] FALSE
 
##com.oracle.truffle.r.test.S4.TestS4.testSlotAccess#Ignored.ImplementationError#
##com.oracle.truffle.r.test.S4.TestS4.testSlotAccess#Ignored.SideEffects#
#{ setClass("foo", contains="numeric"); x<-new("foo"); res<-slot(x, ".Data"); removeClass("foo"); res }
numeric(0)
 
##com.oracle.truffle.r.test.S4.TestS4.testSlotAccess#Ignored.ImplementationError#
##com.oracle.truffle.r.test.S4.TestS4.testSlotAccess#Ignored.SideEffects#
#{ setClass("foo", contains="numeric"); x<-new("foo"); res<-x@.Data; removeClass("foo"); res }
numeric(0)
 
......@@ -1269,7 +1269,7 @@ $vectors
NULL
 
 
##com.oracle.truffle.r.test.builtins.TestBuiltin_La.testLa4#Ignored.Unimplemented#
##com.oracle.truffle.r.test.builtins.TestBuiltin_La.testLa4#
#argv <- list('S', structure(c(1, 0, 0, 0, 0, 1.4142135623731, 0, 0, 0, 0, 1.73205080756888, 0, 0, 0, 0, 2), .Dim = c(4L, 4L), Dimnames = list(character(0), character(0))), c(2, 1.73205080756888, 1.4142135623731, 1), structure(c(0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0), .Dim = c(4L, 4L)), structure(c(0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0), .Dim = c(4L, 4L))); .Internal(La_svd(argv[[1]], argv[[2]], argv[[3]], argv[[4]], argv[[5]]))
$d
[1] 2.000000 1.732051 1.414214 1.000000
......@@ -1327,7 +1327,7 @@ $vt
#argv <- list(structure(c(1, 1, 3, 3), .Dim = c(2L, 2L)), 'O'); .Internal(La_dgecon(argv[[1]], argv[[2]]))
[1] 0
 
##com.oracle.truffle.r.test.builtins.TestBuiltin_La.testLa8#Ignored.Unimplemented#
##com.oracle.truffle.r.test.builtins.TestBuiltin_La.testLa8#
#argv <- list('N', structure(c(-4, 0, 0, 0, 0, 0, 0, -406.725, 41.7955066364795, 0, 0, 0, 0, 0, -1550.79375, 381.717151319926, 49.8228991342168, 0, 0, 0, 0, -1277.325, 224.617432123818, -31.1858918860748, -282.060212912726, 0, 0, 0, -1042.675, 125.261805546114, -29.9849484767744, 164.425554254677, -170.353263600129, 0, 0, -469.696, 26.3795103523805, 4.19691803785862, -3.18974110831568, 0.0462484557378925, 1.46320172717486, 0, -7818, 18.2758880432689, 1.77525956575195, -1.45298766739792, -0.449176219307484, -0.281900648530911, -0.669305080560524), .Dim = c(7L, 7L), .Dimnames = list(c('1947', '1948', '1949', '1950', '1951', '1952', '1953'), c('(Intercept)', 'GNP.deflator', 'GNP', 'Unemployed', 'Armed.Forces', 'Population', 'Year'))), c(8164.12940108939, 457.24498274114, 324.584423503013, 134.312174464868, 4.95553195929945, 1.41954832076337, 0.000342370904183799), structure(0, .Dim = c(1L, 1L)), structure(0, .Dim = c(1L, 1L))); .Internal(La_svd(argv[[1]], argv[[2]], argv[[3]], argv[[4]], argv[[5]]))
$d
[1] 8.164129e+03 4.572450e+02 3.245844e+02 1.343122e+02 4.955532e+00
......@@ -7417,7 +7417,7 @@ In matrix(1:4, 3, 2) :
[2,] 3 4
[3,] 5 6
 
##com.oracle.truffle.r.test.builtins.TestBuiltin_asmatrix.testMatrix#Ignored.ReferenceError#
##com.oracle.truffle.r.test.builtins.TestBuiltin_asmatrix.testMatrix#
#{ matrix(1i,10,10) }
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 0+1i 0+1i 0+1i 0+1i 0+1i 0+1i 0+1i 0+1i 0+1i 0+1i
......@@ -7503,7 +7503,7 @@ In matrix(c(1, 2, 3, 4), 3, 2) :
[9,] 0+ 1i 0+ 1i 0+ 1i 0+ 1i 0+ 1i 0+ 1i 0+ 1i 0+ 1i 0+ 1i 0+ 1i
[10,] 0+100i 0+100i 0+100i 0+100i 0+100i 0+100i 0+100i 0+100i 0+100i 0+100i
 
##com.oracle.truffle.r.test.builtins.TestBuiltin_asmatrix.testMatrix#Ignored.ReferenceError#
##com.oracle.truffle.r.test.builtins.TestBuiltin_asmatrix.testMatrix#
#{ matrix(c(1i,NA),10,10) }
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 0+1i 0+1i 0+1i 0+1i 0+1i 0+1i 0+1i 0+1i 0+1i 0+1i
......@@ -22762,7 +22762,7 @@ FALSE
#argv <- list(c(0.00508571428571428, 0.876285714285715), structure(1L, class = c('terminal', 'connection')), 69); .Internal(dput(argv[[1]], argv[[2]], argv[[3]]))
c(0.00508571428571428, 0.876285714285715)
 
##com.oracle.truffle.r.test.builtins.TestBuiltin_dqr.testdqrcf#Ignored.OutputFormatting#
##com.oracle.truffle.r.test.builtins.TestBuiltin_dqr.testdqrcf#
#.Fortran(.F_dqrcf, 1, 1L, 1L, 1, 1, 1L, 1, 1L)
[[1]]
[1] 1
......@@ -24901,6 +24901,89 @@ NULL
Warning message:
In formals(argv[[1]]) : argument is not a function
 
##com.oracle.truffle.r.test.builtins.TestBuiltin_format.testFormat#
#.Internal(format(.GlobalEnv,FALSE,NA,0,0,3,TRUE,NA,'.'))
[1] "<environment: R_GlobalEnv>"
##com.oracle.truffle.r.test.builtins.TestBuiltin_format.testFormat#
#format(1.1, scientific=-10)
[1] "1.1e+00"
##com.oracle.truffle.r.test.builtins.TestBuiltin_format.testFormat#
#format(1.1, scientific=FALSE)
[1] "1.1"
##com.oracle.truffle.r.test.builtins.TestBuiltin_format.testFormat#
#format(1.1, scientific=TRUE)
[1] "1.1e+00"
##com.oracle.truffle.r.test.builtins.TestBuiltin_format.testFormat#
#format(1.1, scientific=c(-10, 1))
Error in prettyNum(.Internal(format(x, trim, digits, nsmall, width, 3L, :
invalid 'scientific' argument
##com.oracle.truffle.r.test.builtins.TestBuiltin_format.testFormat#
#format(1.1, scientific=c(TRUE, FALSE))
Error in prettyNum(.Internal(format(x, trim, digits, nsmall, width, 3L, :
invalid 'scientific' argument
##com.oracle.truffle.r.test.builtins.TestBuiltin_format.testFormat#
#format(1.6000085, digits=7)
[1] "1.600008"
##com.oracle.truffle.r.test.builtins.TestBuiltin_format.testFormat#
#format(1.6001095, digits=7)
[1] "1.60011"
##com.oracle.truffle.r.test.builtins.TestBuiltin_format.testFormat#
#format(1.60085, digits=5)
[1] "1.6009"
##com.oracle.truffle.r.test.builtins.TestBuiltin_format.testFormat#Ignored.OutputFormatting#
#format(1.6011095, digits=7)
[1] "1.601109"
##com.oracle.truffle.r.test.builtins.TestBuiltin_format.testFormat#
#format(4.125e-04, digits=3)
[1] "0.000412"
##com.oracle.truffle.r.test.builtins.TestBuiltin_format.testFormat#
#format(4.135e-04, digits=3)
[1] "0.000414"
##com.oracle.truffle.r.test.builtins.TestBuiltin_format.testFormat#
#format(7)
[1] "7"
##com.oracle.truffle.r.test.builtins.TestBuiltin_format.testFormat#
#format(7.42)
[1] "7.42"
##com.oracle.truffle.r.test.builtins.TestBuiltin_format.testFormat#
#format(9.999999995, digits=10)
[1] "9.999999995"
##com.oracle.truffle.r.test.builtins.TestBuiltin_format.testFormat#
#format(9.999999999995, digits=13); format(9.999999999995, digits=11)
[1] "9.999999999995"
[1] "10"
##com.oracle.truffle.r.test.builtins.TestBuiltin_format.testFormat#
#format(c(7,42))
[1] " 7" "42"
##com.oracle.truffle.r.test.builtins.TestBuiltin_format.testFormat#
#format(c(7.42,42.7))
[1] " 7.42" "42.70"
##com.oracle.truffle.r.test.builtins.TestBuiltin_format.testFormat#
#format(c(7.42,42.7,NA))
[1] " 7.42" "42.70" " NA"
##com.oracle.truffle.r.test.builtins.TestBuiltin_format.testFormat#
#format(c(9.99951, 13.1), digits=4)
[1] "10.0" "13.1"
##com.oracle.truffle.r.test.builtins.TestBuiltin_format.testformat1#Output.IgnoreErrorMessage#
#argv <- list(structure(c(0, 72.7, 56.4, 72.7, 0, 63.3, 56.4, 63.3, 0), .Dim = c(3L, 3L), .Dimnames = list(c('Girth', 'Height', 'Volume'), c('Girth', 'Height', 'Volume'))), FALSE, 7L, 0L, NULL, 3L, TRUE, NA, "."); .Internal(format(argv[[1]], argv[[2]], argv[[3]], argv[[4]], argv[[5]], argv[[6]], argv[[7]], argv[[8]], argv[[9]], , argv[[9]]))
Error in .Internal(format(argv[[1]], argv[[2]], argv[[3]], argv[[4]], :
......@@ -69312,6 +69395,11 @@ In sum(argv[[1]]) : integer overflow - use sum(as.numeric(.))
#sum( );
[1] 0
 
##com.oracle.truffle.r.test.builtins.TestBuiltin_summary.testSummary#
#summary(c(1.601,1.616))
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.601 1.605 1.609 1.609 1.612 1.616
##com.oracle.truffle.r.test.builtins.TestBuiltin_summary.testsummary1#Ignored.OutputFormatting#
#argv <- structure(list(object = structure(c(4L, 4L, 4L, 4L, 4L, 3L, 4L, 4L, 4L, 4L, 3L, 4L, 3L, 4L, 4L, 4L, 4L, 2L, 4L, 3L, 4L, 4L, 4L, 2L), .Dim = c(6L, 4L), .Dimnames = structure(list(c('25-34', '35-44', '45-54', '55-64', '65-74', '75+'), c('0-39g/day', '40-79', '80-119', '120+')), .Names = c('', '')), class = 'table')), .Names = 'object');do.call('summary', argv)
Number of cases in table: 88
......@@ -74127,6 +74215,14 @@ In f() : foo
Warning message:
In f() : foo
 
##com.oracle.truffle.r.test.builtins.TestBuiltin_warning.testwarning#
#options(warn=1); f <- function() warning('foo'); f()
Warning in f() : foo
##com.oracle.truffle.r.test.builtins.TestBuiltin_warning.testwarning#
#options(warn=1); f <- function() warning('foo'); f2 <- function() f(); f2()
Warning in f() : foo
##com.oracle.truffle.r.test.builtins.TestBuiltin_warning.testwarning#
#warning('foo')
Warning message:
......@@ -4,7 +4,7 @@
* http://www.gnu.org/licenses/gpl-2.0.html
*
* Copyright (c) 2014, Purdue University
* Copyright (c) 2014, 2016, Oracle and/or its affiliates
* Copyright (c) 2014, 2017, Oracle and/or its affiliates
*
* All rights reserved.
*/
......@@ -22,6 +22,8 @@ public class TestBuiltin_warning extends TestBase {
public void testwarning() {
assertEval("warning('foo')");
assertEval("f <- function() warning('foo'); f()");
assertEval("options(warn=1); f <- function() warning('foo'); f()");
assertEval("f <- function() warning('foo'); f2 <- function() f(); f2()");
assertEval("options(warn=1); f <- function() warning('foo'); f2 <- function() f(); f2()");
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment