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

From: Duncan Murdoch <>
Date: Sun, 22 Feb 2009 16:18:55 -0500

On 22/02/2009 4:08 PM, Wacek Kusnierczyk wrote:
> Peter Dalgaard wrote:

>> 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.

But then we'd confuse developers, who would see a huge dump of messages from every other debugging session, when they just wanted to see their own, and who would be forced to wade through leftover never-used DEBUG(x) calls in code when they were reading the source.

This is not a common error: as far as I know, there are no other unintentional PrintValue calls anywhere in the source. So I think the current system (just take them out before committing) is working.

Duncan Murdoch mailing list Received on Sun 22 Feb 2009 - 20:27:13 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 - 21:30:36 GMT.

Mailing list information is available at Please read the posting guide before posting to the list.

list of date sections of archive