Re: [Rd] 'unique' error message is printed despite silent=TRUE (PR#13547)

From: Wacek Kusnierczyk <Waclaw.Marcin.Kusnierczyk_at_idi.ntnu.no>
Date: Sun, 22 Feb 2009 22:08:05 +0100

Peter Dalgaard wrote:
> macrakis@alum.mit.edu wrote:
>>

<snip>

>>> try(.Internal(unique(quote(hello),NULL,NULL)),silent=TRUE)
>> hello
>>
>> I guess it is using the internal equivalent of print rather than the
>> internal equivalent of stop.
>>
>
> silent=TRUE is a red herring (this has nothing to do with try()).
>
> However, inside do_duplicated (unique.c) we have
>
> if (!isVector(x)) {
> PrintValue(x);
> error(_("%s() applies only to vectors"),
> (PRIMVAL(op) == 0 ? "duplicated" : "unique"));
> }
>
> This is due to
>
> ------------------------------------------------------------------------
> r32306 | ripley | 2004-12-23 22:06:27 +0100 (Thu, 23 Dec 2004) | 2 lines
>
> Apparently unique/duplicated are supposed to work on NULL, despite
> their help!
>
> ...which makes little sense to explain the PrintValue(x). I suspect
> this is a debugging printout that was inadvertently left in.

hmm, why wouldn't you use something like

    DEBUG(x)

with DEBUG being a macro defined so that it's replacement is void unless a specific flag or environment variable is set specifically for the purpose of debugging? you would then avoid confusing users' code just because one PrintValue has been inadvertently left in the sources.

vQ



R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Sun 22 Feb 2009 - 20:10:38 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Sun 22 Feb 2009 - 20:30:34 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.

list of date sections of archive