From luke-tierney at uiowa.edu  Thu Sep 10 15:24:58 2015
From: luke-tierney at uiowa.edu (luke-tierney at uiowa.edu)
Date: Thu, 10 Sep 2015 08:24:58 -0500
Subject: [Rd] Using IDs to suppress specific messages and warnings
In-Reply-To: <CAPp_+=f5bsevd=Cpw5jTm2+H6qjES_qykMkVtBo4FPvC3+RHRA@mail.gmail.com>
References: <CAPp_+=dnGknY1_SzsMw48q89LCBvavrceUZj4hyowWt8YAOseg@mail.gmail.com>
	<alpine.DEB.2.10.1509100642530.2561@luke-Latitude>
	<CAPp_+=f5bsevd=Cpw5jTm2+H6qjES_qykMkVtBo4FPvC3+RHRA@mail.gmail.com>
Message-ID: <alpine.DEB.2.10.1509100816580.2561@luke-Latitude>

On Thu, 10 Sep 2015, Richard Cotton wrote:

> Thanks Luke,
>
> On 10 September 2015 at 14:47,  <luke-tierney at uiowa.edu> wrote:
>> Conditions have classes and the condition system is designed around
>> the idea that classes would be used for this sort of thing. That is
>> already how tryCatch and withCallingHandlers discriminate the
>> conditions to handle.
>
> That makes sense.  Though with my sqrt example, it's just a plain
> simpleWarning, which doesn't give you the opportunity to do special
> handling.
>
> tryCatch(sqrt(-1), warning = function(w) class(w))
> ## [1] "simpleWarning" "warning"       "condition"

Obviously, that is what happens now since e don't yet have a developed
hierarchy of classes. This, and most other internally generated
warnings/errors, would need to change to more specific classes of
warnings/errors once the hierarchy is developed.

>> Designing and implementing a condition class hierarchy to support this
>> is indeed the hard/tedious part.
>
> There are precedents from other languages that could be used as a
> template.  For example, .NET and Java both have very well defined
> exception hierarchies that could serve as a starting point.
>
> https://msdn.microsoft.com/en-us/library/z4c5tckx%28v=vs.110%29.aspx
> https://docs.oracle.com/javase/7/docs/api/java/lang/package-tree.html

The R condition system is based on the one in common lisp, which is
quite bit richer than Java's mechanism. Common Lisp's hierarchy would
be the best starting point, though ideas from the hierarchy in Java
could be useful as well.

> Who is the best person to ask/cajole to start getting this implemented?

I't been on my long todo list for a long time, but I don't expect to
have the time to do it myself anytime soon.  If someone else want to
put in the work I am willing to work with them.

Best,

luke

-- 
Luke Tierney
Ralph E. Wareham Professor of Mathematical Sciences
University of Iowa                  Phone:             319-335-3386
Department of Statistics and        Fax:               319-335-3017
    Actuarial Science
241 Schaeffer Hall                  email:   luke-tierney at uiowa.edu
Iowa City, IA 52242                 WWW:  http://www.stat.uiowa.edu



[Rd] Using IDs to suppress specific messages and warnings
luke-tierney at uiowa.edu