[Rd] Ordered comparison operators on language objects will signal errors

Henrik Bengtsson henr|k@bengt@@on @end|ng |rom gm@||@com
Tue Mar 5 03:03:30 CET 2024


On Mon, Mar 4, 2024 at 8:45 AM luke-tierney--- via R-devel
<r-devel using r-project.org> wrote:
>
> Comparison operators == and != can be used on language objects
> (i.e. call objects and symbols). The == operator in particular often
> seems to be used as a shorthand for calling identical(). The current
> implementation involves comparing deparsed calls as strings. This has
> a number of drawbacks and we would like to transition to a more robust
> and efficient implementation. As a first step, R-devel will soon be
> modified to signal an error when the ordered comparison operators <,
> <=, >, >= are used on language objects. A small number of CRAN and
> BIOC packages will fail after this change. If you want to check your
> packages or code before the change is committed you can run the
> current R-devel with the environment variable setting
>
>      _R_COMPARE_LANG_OBJECTS=eqonly

A minor comment, which or may not matter, depending on how long you're
planning to keep that variable around. I believe all other "internal"
environment variables in the R source code that starts with _R_ also
ends with an underscore (_).  This name is an outlier in that sense.
So, maybe it should be named '_R_COMPARE_LANG_OBJECTS_' instead? (I
checked the source code - it's indeed without the trailing
underscore).

/Henrik

>
> where using such a comparison now produces
>
>      > quote(x + y) > 1
>      Error in quote(x + y) > 1 :
>        comparison (>) is not possible for language types
>
> 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 using uiowa.edu
> Iowa City, IA 52242                 WWW:  http://www.stat.uiowa.edu
>
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list