[R-pkg-devel] [External] SETLENGTH()

iuke-tier@ey m@iii@g oii uiow@@edu iuke-tier@ey m@iii@g oii uiow@@edu
Sun May 5 01:30:32 CEST 2024


On Sat, 4 May 2024, Vladimir Dergachev wrote:

> [Some people who received this message don't often get email from 
> volodya using mindspring.com. Learn why this is important at 
> https://aka.ms/LearnAboutSenderIdentification ]
>
> I noticed a note on RMVL package check page for development version of R:
>
> Found non-API call to R: ?SETLENGTH?
>
> Is this something that is work-in-progress for the development version, or
> has SETLENGTH() been deprecated ? What should I use instead ?

SETLENGTH has never been part of the API. It is not safe to use except
in a very, very limited set of circumstances. Using it in other
settings will confuse the memory manager, leading at least to
mis-calculation of memory use information and possibly to
segfaults. For most uses I have seen, copying to a new vector of the
right size is the only safe option.

The one context where something along these lines might be OK is for
growable vectors. This concept is emphatically not in the API at this
point, and the way it is currently implemented in base is not robust
enough to become an API (even though some packages have used it). It
is possible that a proper API for this will be added; at that point
SETLENGTH will be removed from the accessible entry points on
platforms that allow this.

So if you are getting a note about SETLENGTH, either stop using it or
be prepared to make some changes at fairly short notice.

[Similar considerations apply to SET_TRUELENGT. In most but not all
cases using it is less dangerous, but you should still look for other
options if you want your code to continue to work.]

Best,

luke

>
> thank you very much
>
> Vladimir Dergachev
> ______________________________________________
> R-package-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>

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



More information about the R-package-devel mailing list