diff --git a/r-admin/Installing-R-under-Windows.html b/r-admin/Installing-R-under-Windows.html index 06d59ba..7f2d17a 100644 --- a/r-admin/Installing-R-under-Windows.html +++ b/r-admin/Installing-R-under-Windows.html @@ -336,7 +336,7 @@

3  R Windows FAQ for more details on the binary installer and for information on use on older Windows systems.

diff --git a/r-admin/Installing-R-under-macOS.html b/r-admin/Installing-R-under-macOS.html index 3fc7e64..59bdf78 100644 --- a/r-admin/Installing-R-under-macOS.html +++ b/r-admin/Installing-R-under-macOS.html @@ -330,7 +330,7 @@

4 

Package R-4.4.0 Under development.pkg also be installed on ‘Apple Silicon’ CPUs using ‘Rosetta’ emulation1, but the native build is preferred. It is a little faster (and for some tasks, considerably so) but may give different numerical results from the more common x86_64 platforms (on Windows, Linux, … as well as macOS) as ARM hardware lacks extended-precision floating-point operations.

  • 1 You may be asked to install Rosetta at first use – https://support.apple.com/en-us/HT211861 – which may need administrator privileges.

  • It is important that if you use a binary installer package that your OS is fully updated: look at ‘Software Update’ in ‘System Preferences’ to be sure.

    To install, just double-click on the icon of the file you downloaded. At the ‘Installation Type’ stage, note the option to ‘Customize’. This currently shows four components: everyone will need the ‘R Framework’ component: the remaining components are optional. (The ‘Tcl/Tk’ component is needed to use package tcltk. The ‘Texinfo’ component is only needed by those installing source packages or R from its sources.)

    diff --git a/r-ints/Function-and-variable-index.html b/r-ints/Function-and-variable-index.html index 5451287..823a495 100644 --- a/r-ints/Function-and-variable-index.html +++ b/r-ints/Function-and-variable-index.html @@ -1015,515 +1015,521 @@

    Function and variable index

    -_R_CHECK_VC_DIRS_: +_R_CHECK_VALIDATE_UTF8_:   Tools -_R_CHECK_VIGNETTES_NLINES_: +_R_CHECK_VC_DIRS_:   Tools -_R_CHECK_VIGNETTES_SKIP_RUN_MAYBE_: +_R_CHECK_VIGNETTES_NLINES_:   Tools -_R_CHECK_VIGNETTE_TIMING_CPU_TO_ELAPSED_THRESHOLD_: +_R_CHECK_VIGNETTES_SKIP_RUN_MAYBE_:   Tools -_R_CHECK_WALL_FORTRAN_: +_R_CHECK_VIGNETTE_TIMING_CPU_TO_ELAPSED_THRESHOLD_:   Tools -_R_CHECK_WINDOWS_DEVICE_: +_R_CHECK_WALL_FORTRAN_:   Tools -_R_CHECK_XREFS_MIND_SUSPECT_ANCHORS_: +_R_CHECK_WINDOWS_DEVICE_:   Tools -_R_CHECK_XREFS_PKGS_ARE_DECLARED_: +_R_CHECK_XREFS_MIND_SUSPECT_ANCHORS_:   Tools -_R_CHECK_XREFS_REPOSITORIES_: +_R_CHECK_XREFS_PKGS_ARE_DECLARED_:   Tools -_R_CHECK_XREFS_USE_ALIASES_FROM_CRAN_: +_R_CHECK_XREFS_REPOSITORIES_:   Tools -_R_INSTALL_LIBS_ONLY_FORCE_DEPENDS_IMPORTS_: +_R_CHECK_XREFS_USE_ALIASES_FROM_CRAN_:   Tools -_R_SHLIB_BUILD_OBJECTS_SYMBOL_TABLES_: +_R_INSTALL_LIBS_ONLY_FORCE_DEPENDS_IMPORTS_:   Tools -_R_WIN_CHECK_INVALID_PARAMETERS_: +_R_SHLIB_BUILD_OBJECTS_SYMBOL_TABLES_:   Tools + +_R_WIN_CHECK_INVALID_PARAMETERS_: +  +Tools + + A - + alloca:   Memory allocators - + ARGSUSED:   Rest of header - + ATTRIB:   Attributes - + attribute_hidden:   Hiding C entry points - + C - + copyMostAttrib:   Attributes - + D - + DDVAL:   Rest of header - + debug bit:   Rest of header - + DispatchGeneric:   Argument evaluation - + DispatchOrEval:   Argument evaluation - + dump.frames:   Global environment - + DUPLICATE_ATTRIB:   Attributes - + E - + emacs:   R coding standards - + error:   Warnings and errors - + errorcall:   Warnings and errors - + G - + gp bits:   Rest of header - + I - + invisible:   Autoprinting - + L - + last.warning:   Base environment - + LEVELS:   Rest of header - + M - + make:   R coding standards - + makeinfo:   R coding standards - + MISSING:   Rest of header - + MISSING:   Missingness - + mkChar:   The CHARSXP cache - + mkCharLenCE:   The CHARSXP cache - + N - + NAMED:   Rest of header - + NAMED:   Argument evaluation - + NAMED:   .Internal vs .Primitive - + named bits:   Rest of header - + P - + Perl:   R coding standards - + PRIMPRINT:   Autoprinting - + PRSEEN:   Rest of header - + R - + Rdll.hide:   Hiding C entry points - + R_alloc:   Memory allocators - + R_AllocStringBuffer:   Memory allocators - + R_BaseNamespace:   Namespaces - + R_Calloc:   Memory allocators - + R_CheckStack:   Memory allocators - + R_CheckStack2:   Memory allocators - + R_Free:   Memory allocators - + R_FreeStringBuffer:   Memory allocators - + R_FreeStringBufferL:   Memory allocators - + R_MissingArg:   Missingness - + R_Realloc:   Memory allocators - + R_Visible:   Autoprinting - + S - + SETLEVELS:   Rest of header - + SET_ARGUSED:   Rest of header - + SET_ATTRIB:   Attributes - + SET_DDVAL:   Rest of header - + SET_MISSING:   Rest of header - + SET_NAMED:   Rest of header - + spare bit:   Rest of header - + T - + trace bit:   Rest of header - + U - + UseMethod:   Contexts - + V - + vmaxget:   Memory allocators - + vmaxset:   Memory allocators - + W - + warning:   Warnings and errors - + warningcall:   diff --git a/r-ints/R-Internal-Structures.html b/r-ints/R-Internal-Structures.html index 4212ebf..786598d 100644 --- a/r-ints/R-Internal-Structures.html +++ b/r-ints/R-Internal-Structures.html @@ -496,8 +496,8 @@

    < 25 -S4SXP -S4 classes not of simple type +OBJSXP +objects not of simple type @@ -506,7 +506,7 @@

    <

    Language objects (LANGSXP) are calls (including formulae and so on). Internally they are pairlists with first element a reference2 to the function to be called with remaining elements the actual arguments for the call (and with the tags if present giving the specified argument names). Although this is not enforced, many places in the code assume that the pairlist is of length one or more, often without checking.

  • 2 a pointer to a function or a symbol to look up the function by name, or a language object to be evaluated to give a function.

  • Expressions are of type EXPRSXP: they are a vector of (usually language) objects most often seen as the result of parse().

    The functions are of types CLOSXP, SPECIALSXP and BUILTINSXP: where SEXPTYPEs are stored in an integer these are sometimes lumped into a pseudo-type FUNSXP with code 99. Functions defined via function are of type CLOSXP and have formals, body and environment.

    -

    The SEXPTYPE S4SXP is for S4 objects which do not consist solely of a simple type such as an atomic vector or function.

    +

    The SEXPTYPE OBJ is for S4 and other objects which do not consist solely of a simple type such as an atomic vector or function.

    1.1.2 Rest of header

    @@ -660,7 +660,7 @@

    length, truelength followed by a block of bytes.

    -
    S4SXP
    +
    OBJSXP

    two unused pointers and a tag.

    @@ -870,7 +870,7 @@

    [This section is currently a preliminary draft and should not be taken as definitive. The description assumes that R_NO_METHODS_TABLES has not been set.]

    1.12.1 Representation of S4 objects

    -

    S4 objects can be of any SEXPTYPE. They are either an object of a simple type (such as an atomic vector or function) with S4 class information or of type S4SXP. In all cases, the ‘S4 bit’ (bit 4 of the ‘general purpose’ field) is set, and can be tested by the macro/function IS_S4_OBJECT.

    +

    S4 objects can be of any SEXPTYPE. They are either an object of a simple type (such as an atomic vector or function) with S4 class information or of type OBJSXP. In all cases, the ‘S4 bit’ (bit 4 of the ‘general purpose’ field) is set, and can be tested by the macro/function IS_S4_OBJECT.

    S4 objects are created via new()12 and thence via the C function R_do_new_object. This duplicates the prototype of the class, adds a class attribute and sets the S4 bit. All S4 class attributes should be character vectors of length one with an attribute giving (as a character string) the name of the package (or .GlobalEnv) containing the class definition. Since S4 objects have a class attribute, the OBJECT bit is set.

  • 12 This can also create non-S4 objects, as in new("integer").

  • It is currently unclear what should happen if the class attribute is removed from an S4 object, or if this should be allowed.

    diff --git a/r-ints/Tools.html b/r-ints/Tools.html index 8f396a1..395e44e 100644 --- a/r-ints/Tools.html +++ b/r-ints/Tools.html @@ -757,6 +757,10 @@

    8  ¶ +
    +

    If set to a non-empty value, makes installation warnings about non-UTF-8 strings in a package’s code (R/*R) and help (man/*.Rd) files into errors. On most platforms invalid bytes in these files get converted to escapes (see iconv(sub = "byte")), but on others these lead to installation failure. Default: unset (but true for CRAN submission checks).

    +

    The following variables control checks for undeclared/unconditional use of other packages. They work by setting up a temporary library directory and setting .libPaths() to just that and .Library, so are only effective if additional packages are installed somewhere other than .Library. The temporary library is populated by symbolic links1 to installed packages not also in .Library.

  • 1 under Windows, junction points, or copies if environment variable R_WIN_NO_JUNCTIONS has a non-empty value.

  • diff --git a/r-ints/search.json b/r-ints/search.json index 9358257..d8c1b58 100644 --- a/r-ints/search.json +++ b/r-ints/search.json @@ -11,7 +11,7 @@ "href": "R-Internal-Structures.html#sexps", "title": "1  R Internal Structures", "section": "1.1 SEXPs", - "text": "1.1 SEXPs\nWhat R users think of as variables or objects are symbols which are bound to a value. The value can be thought of as either a SEXP (a pointer), or the structure it points to, a SEXPREC (and there are alternative forms used for vectors, namely VECSXP pointing to VECTOR_SEXPREC structures). So the basic building blocks of R objects are often called nodes, meaning SEXPRECs or VECTOR_SEXPRECs.\nNote that the internal structure of the SEXPREC is not made available to R Extensions: rather SEXP is an opaque pointer, and the internals can only be accessed by the functions provided.\nBoth types of node structure have as their first three fields a 64-bit sxpinfo header and then three pointers (to the attributes and the previous and next node in a doubly-linked list), and then some further fields. On a 32-bit platform a node1 occupies 32 bytes: on a 64-bit platform typically 56 bytes (depending on alignment constraints).1 strictly, a SEXPREC node; VECTOR_SEXPREC nodes are slightly smaller but followed by data in the node.\nThe first five bits of the sxpinfo header specify one of up to 32 SEXPTYPEs.\n\n1.1.1 SEXPTYPEs\nCurrently SEXPTYPEs 0:10 and 13:25 are in use. Values 11 and 12 were used for internal factors and ordered factors and have since been withdrawn. Note that the SEXPTYPE numbers are stored in saved objects and that the ordering of the types is used, so the gap cannot easily be reused.\n\n\n\n\nno\nSEXPTYPE\nDescription\n\n\n\n\n0\nNILSXP\nNULL\n\n\n1\nSYMSXP\nsymbols\n\n\n2\nLISTSXP\npairlists\n\n\n3\nCLOSXP\nclosures\n\n\n4\nENVSXP\nenvironments\n\n\n5\nPROMSXP\npromises\n\n\n6\nLANGSXP\nlanguage objects\n\n\n7\nSPECIALSXP\nspecial functions\n\n\n8\nBUILTINSXP\nbuiltin functions\n\n\n9\nCHARSXP\ninternal character strings\n\n\n10\nLGLSXP\nlogical vectors\n\n\n13\nINTSXP\ninteger vectors\n\n\n14\nREALSXP\nnumeric vectors\n\n\n15\nCPLXSXP\ncomplex vectors\n\n\n16\nSTRSXP\ncharacter vectors\n\n\n17\nDOTSXP\ndot-dot-dot object\n\n\n18\nANYSXP\nmake “any” args work\n\n\n19\nVECSXP\nlist (generic vector)\n\n\n20\nEXPRSXP\nexpression vector\n\n\n21\nBCODESXP\nbyte code\n\n\n22\nEXTPTRSXP\nexternal pointer\n\n\n23\nWEAKREFSXP\nweak reference\n\n\n24\nRAWSXP\nraw vector\n\n\n25\nS4SXP\nS4 classes not of simple type\n\n\n\n\nMany of these will be familiar from R level: the atomic vector types are LGLSXP, INTSXP, REALSXP, CPLXSP, STRSXP and RAWSXP. Lists are VECSXP and names (also known as symbols) are SYMSXP. Pairlists (LISTSXP, the name going back to the origins of R as a Scheme-like language) are rarely seen at R level, but are for example used for argument lists. Character vectors are effectively lists all of whose elements are CHARSXP, a type that is rarely visible at R level.\nLanguage objects (LANGSXP) are calls (including formulae and so on). Internally they are pairlists with first element a reference2 to the function to be called with remaining elements the actual arguments for the call (and with the tags if present giving the specified argument names). Although this is not enforced, many places in the code assume that the pairlist is of length one or more, often without checking.2 a pointer to a function or a symbol to look up the function by name, or a language object to be evaluated to give a function.\nExpressions are of type EXPRSXP: they are a vector of (usually language) objects most often seen as the result of parse().\nThe functions are of types CLOSXP, SPECIALSXP and BUILTINSXP: where SEXPTYPEs are stored in an integer these are sometimes lumped into a pseudo-type FUNSXP with code 99. Functions defined via function are of type CLOSXP and have formals, body and environment.\nThe SEXPTYPE S4SXP is for S4 objects which do not consist solely of a simple type such as an atomic vector or function.\n\n\n1.1.2 Rest of header\nNote that the size and structure of the header changed in R 3.5.0: see earlier editions of this manual for the previous layout.\nThe sxpinfo header is defined as a 64-bit C structure by\n#define NAMED_BITS 16\nstruct sxpinfo_struct {\n SEXPTYPE type : 5; /* discussed above */\n unsigned int scalar: 1; /* is this a numeric vector of length 1?\n unsigned int obj : 1; /* is this an object with a class attribute? */\n unsigned int alt : 1; /* is this an ALTREP object? */\n unsigned int gp : 16; /* general purpose, see below */\n unsigned int mark : 1; /* mark object as ‘in use’ in GC */\n unsigned int debug : 1;\n unsigned int trace : 1;\n unsigned int spare : 1; /* debug once and with reference counting */\n unsigned int gcgen : 1; /* generation for GC */\n unsigned int gccls : 3; /* class of node for GC */\n unsigned int named : NAMED_BITS; /* used to control copying */\n unsigned int extra : 32 - NAMED_BITS;\n}; /* Tot: 64 */\nThe debug bit is used for closures and environments. For closures it is set by debug() and unset by undebug(), and indicates that evaluations of the function should be run under the browser. For environments it indicates whether the browsing is in single-step mode.\nThe trace bit is used for functions for trace() and for other objects when tracing duplications (see tracemem).\nThe spare bit is used for closures to mark them for one-time debugging.\nThe named field is set and accessed by the SET_NAMED and NAMED macros, and take values 0, 1 and 2, or possibly higher if NAMEDMAX is set to a higher value. R has a ‘call by value’ illusion, so an assignment like\nb <- a\n[The NAMED mechanism has been replaced by reference counting.]\nappears to make a copy of a and refer to it as b. However, if neither a nor b are subsequently altered there is no need to copy. What really happens is that a new symbol b is bound to the same value as a and the named field on the value object is set (in this case to 2). When an object is about to be altered, the named field is consulted. A value of 2 or more means that the object must be duplicated before being changed. (Note that this does not say that it is necessary to duplicate, only that it should be duplicated whether necessary or not.) A value of 0 means that it is known that no other SEXP shares data with this object, and so it may safely be altered. A value of 1 is used for situations like\ndim(a) <- c(7, 2)\nwhere in principle two copies of a exist for the duration of the computation as (in principle)\na <- `dim<-`(a, c(7, 2))\nbut for no longer, and so some primitive functions can be optimized to avoid a copy in this case. [This mechanism is scheduled to be replaced in R 4.0.0.]\nThe gp bits are by definition ‘general purpose’. We label these from 0 to 15. Bits 0–5 and bits 14–15 have been used as described below (mainly from detective work on the sources).\nThe bits can be accessed and set by the LEVELS and SETLEVELS macros, which names appear to date back to the internal factor and ordered types and are now used in only a few places in the code. The gp field is serialized/unserialized for the SEXPTYPEs other than NILSXP, SYMSXP and ENVSXP.\nBits 14 and 15 of gp are used for ‘fancy bindings’. Bit 14 is used to lock a binding or an environment, and bit 15 is used to indicate an active binding. (For the definition of an ‘active binding’ see the header comments in file src/main/envir.c.) Bit 15 is used for an environment to indicate if it participates in the global cache.\nThe macros ARGUSED and SET_ARGUSED are used when matching actual and formal function arguments, and take the values 0, 1 and 2.\nThe macros MISSING and SET_MISSING are used for pairlists of arguments. Four bits are reserved, but only two are used (and exactly what for is not explained). It seems that bit 0 is used by matchArgs_NR to mark missingness on the returned argument list, and bit 1 is used to mark the use of a default value for an argument copied to the evaluation frame of a closure.\nBit 0 is used by macros DDVAL and SET_DDVAL. This indicates that a SYMSXP is one of the symbols ..n which are implicitly created when ... is processed, and so indicates that it may need to be looked up in a DOTSXP.\nBit 0 is used for PRSEEN, a flag to indicate if a promise has already been seen during the evaluation of the promise (and so to avoid recursive loops).\nBit 0 is used for HASHASH, on the PRINTNAME of the TAG of the frame of an environment. (This bit is not serialized for CHARSXP objects.)\nBits 0 and 1 are used for weak references (to indicate ‘ready to finalize’, ‘finalize on exit’).\nBit 0 is used by the condition handling system (on a VECSXP) to indicate a calling handler.\nBit 4 is turned on to mark S4 objects.\nBits 1, 2, 3, 5 and 6 are used for a CHARSXP to denote its encoding. Bit 1 indicates that the CHARSXP should be treated as a set of bytes, not necessarily representing a character in any known encoding. Bits 2, 3 and 6 are used to indicate that it is known to be in Latin-1, UTF-8 or ASCII respectively.\nBit 5 for a CHARSXP indicates that it is hashed by its address, that is NA_STRING or is in the CHARSXP cache (this is not serialized). Only exceptionally is a CHARSXP not hashed, and this should never happen in end-user code.\n\n\n1.1.3 The ‘data’\nA SEXPREC is a C structure containing the 64-bit header as described above, three pointers (to the attributes, previous and next node) and the node data, a union\nunion {\n struct primsxp_struct primsxp;\n struct symsxp_struct symsxp;\n struct listsxp_struct listsxp;\n struct envsxp_struct envsxp;\n struct closxp_struct closxp;\n struct promsxp_struct promsxp;\n} u;\nAll of these alternatives apart from the first (an int) are three pointers, so the union occupies three words.\nThe vector types are RAWSXP, CHARSXP, LGLSXP, INTSXP, REALSXP, CPLXSXP, STRSXP, VECSXP, EXPRSXP and WEAKREFSXP. Remember that such types are a VECTOR_SEXPREC, which again consists of the header and the same three pointers, but followed by two integers giving the length and ‘true length’3 of the vector, and then followed by the data (aligned as required: on most 32-bit systems with a 24-byte VECTOR_SEXPREC node the data can follow immediately after the node). The data are a block of memory of the appropriate length to store ‘true length’ elements (rounded up to a multiple of 8 bytes, with the 8-byte blocks being the ‘Vcells’ referred in the documentation for gc()).3 The only current use is for hash tables of environments (VECSXPs), where length is the size of the table and truelength is the number of primary slots in use, for the reference hash tables in serialization (VECSXPs), and for ‘growable’ vectors (atomic vectors, VECSXPs and EXPRSXPs) which are created by slightly over-committing when enlarging a vector during subassignment, so that some number of the following enlargements during subassignment can be performed in place), where truelength is the number of slots in use.\nThe ‘data’ for the various types are given in the table below. A lot of this is interpretation, i.e. the types are not checked.\n\nNILSXP\n\nThere is only one object of type NILSXP, R_NilValue, with no data.\n\nSYMSXP\n\nPointers to three nodes, the name, value and internal, accessed by PRINTNAME (a CHARSXP), SYMVALUE and INTERNAL. (If the symbol’s value is a .Internal function, the last is a pointer to the appropriate SEXPREC.) Many symbols have SYMVALUE R_UnboundValue.\n\nLISTSXP\n\nPointers to the CAR, CDR (usually a LISTSXP or NULL) and TAG (a SYMSXP or NULL).\n\nCLOSXP\n\nPointers to the formals (a pairlist), the body and the environment.\n\nENVSXP\n\nPointers to the frame, enclosing environment and hash table (NULL or a VECSXP). A frame is a tagged pairlist with tag the symbol and CAR the bound value.\n\nPROMSXP\n\nPointers to the value, expression and environment (in which to evaluate the expression). Once an promise has been evaluated, the environment is set to NULL.\n\nLANGSXP\n\nA special type of LISTSXP used for function calls. (The CAR references the function (perhaps via a symbol or language object), and the CDR the argument list with tags for named arguments.) R-level documentation references to ‘expressions’ / ‘language objects’ are mainly LANGSXPs, but can be symbols (SYMSXPs) or expression vectors (EXPRSXPs).\n\nSPECIALSXP\n\n\n\nBUILTINSXP\n\nAn integer giving the offset into the table of primitives/.Internals.\n\nCHARSXP\n\nlength, truelength followed by a block of bytes (allowing for the nul terminator).\n\nLGLSXP\n\n\n\nINTSXP\n\nlength, truelength followed by a block of C ints (which are 32 bits on all R platforms).\n\nREALSXP\n\nlength, truelength followed by a block of C doubles.\n\nCPLXSXP\n\nlength, truelength followed by a block of C99 double complexs.\n\nSTRSXP\n\nlength, truelength followed by a block of pointers (SEXPs pointing to CHARSXPs).\n\nDOTSXP\n\nA special type of LISTSXP for the value bound to a ... symbol: a pairlist of promises.\n\nANYSXP\n\nThis is used as a place holder for any type: there are no actual objects of this type.\n\nVECSXP\n\n\n\nEXPRSXP\n\nlength, truelength followed by a block of pointers. These are internally identical (and identical to STRSXP) but differ in the interpretations placed on the elements.\n\nBCODESXP\n\nFor the ‘byte-code’ objects generated by the compiler.\n\nEXTPTRSXP\n\nHas three pointers, to the pointer, the protection value (an R object which if alive protects this object) and a tag (a SYMSXP?).\n\nWEAKREFSXP\n\nA WEAKREFSXP is a special VECSXP of length 4, with elements key, value, finalizer and next. The key is NULL, an environment or an external pointer, and the finalizer is a function or NULL.\n\nRAWSXP\n\nlength, truelength followed by a block of bytes.\n\nS4SXP\n\ntwo unused pointers and a tag.\n\n\n\n\n1.1.4 Allocation classes\nAs we have seen, the field gccls in the header is three bits to label up to 8 classes of nodes. Non-vector nodes are of class 0, and ‘small’ vector nodes are of classes 1 to 5, with a class for custom allocator vector nodes 6 and ‘large’ vector nodes being of class 7. The ‘small’ vector nodes are able to store vector data of up to 8, 16, 32, 64 and 128 bytes: larger vectors are malloc-ed individually whereas the ‘small’ nodes are allocated from pages of about 2000 bytes. Vector nodes allocated using custom allocators (via allocVector3) are not counted in the gc memory usage statistics since their memory semantics is not under R’s control and may be non-standard (e.g., memory could be partially shared across nodes)." + "text": "1.1 SEXPs\nWhat R users think of as variables or objects are symbols which are bound to a value. The value can be thought of as either a SEXP (a pointer), or the structure it points to, a SEXPREC (and there are alternative forms used for vectors, namely VECSXP pointing to VECTOR_SEXPREC structures). So the basic building blocks of R objects are often called nodes, meaning SEXPRECs or VECTOR_SEXPRECs.\nNote that the internal structure of the SEXPREC is not made available to R Extensions: rather SEXP is an opaque pointer, and the internals can only be accessed by the functions provided.\nBoth types of node structure have as their first three fields a 64-bit sxpinfo header and then three pointers (to the attributes and the previous and next node in a doubly-linked list), and then some further fields. On a 32-bit platform a node1 occupies 32 bytes: on a 64-bit platform typically 56 bytes (depending on alignment constraints).1 strictly, a SEXPREC node; VECTOR_SEXPREC nodes are slightly smaller but followed by data in the node.\nThe first five bits of the sxpinfo header specify one of up to 32 SEXPTYPEs.\n\n1.1.1 SEXPTYPEs\nCurrently SEXPTYPEs 0:10 and 13:25 are in use. Values 11 and 12 were used for internal factors and ordered factors and have since been withdrawn. Note that the SEXPTYPE numbers are stored in saved objects and that the ordering of the types is used, so the gap cannot easily be reused.\n\n\n\n\nno\nSEXPTYPE\nDescription\n\n\n\n\n0\nNILSXP\nNULL\n\n\n1\nSYMSXP\nsymbols\n\n\n2\nLISTSXP\npairlists\n\n\n3\nCLOSXP\nclosures\n\n\n4\nENVSXP\nenvironments\n\n\n5\nPROMSXP\npromises\n\n\n6\nLANGSXP\nlanguage objects\n\n\n7\nSPECIALSXP\nspecial functions\n\n\n8\nBUILTINSXP\nbuiltin functions\n\n\n9\nCHARSXP\ninternal character strings\n\n\n10\nLGLSXP\nlogical vectors\n\n\n13\nINTSXP\ninteger vectors\n\n\n14\nREALSXP\nnumeric vectors\n\n\n15\nCPLXSXP\ncomplex vectors\n\n\n16\nSTRSXP\ncharacter vectors\n\n\n17\nDOTSXP\ndot-dot-dot object\n\n\n18\nANYSXP\nmake “any” args work\n\n\n19\nVECSXP\nlist (generic vector)\n\n\n20\nEXPRSXP\nexpression vector\n\n\n21\nBCODESXP\nbyte code\n\n\n22\nEXTPTRSXP\nexternal pointer\n\n\n23\nWEAKREFSXP\nweak reference\n\n\n24\nRAWSXP\nraw vector\n\n\n25\nOBJSXP\nobjects not of simple type\n\n\n\n\nMany of these will be familiar from R level: the atomic vector types are LGLSXP, INTSXP, REALSXP, CPLXSP, STRSXP and RAWSXP. Lists are VECSXP and names (also known as symbols) are SYMSXP. Pairlists (LISTSXP, the name going back to the origins of R as a Scheme-like language) are rarely seen at R level, but are for example used for argument lists. Character vectors are effectively lists all of whose elements are CHARSXP, a type that is rarely visible at R level.\nLanguage objects (LANGSXP) are calls (including formulae and so on). Internally they are pairlists with first element a reference2 to the function to be called with remaining elements the actual arguments for the call (and with the tags if present giving the specified argument names). Although this is not enforced, many places in the code assume that the pairlist is of length one or more, often without checking.2 a pointer to a function or a symbol to look up the function by name, or a language object to be evaluated to give a function.\nExpressions are of type EXPRSXP: they are a vector of (usually language) objects most often seen as the result of parse().\nThe functions are of types CLOSXP, SPECIALSXP and BUILTINSXP: where SEXPTYPEs are stored in an integer these are sometimes lumped into a pseudo-type FUNSXP with code 99. Functions defined via function are of type CLOSXP and have formals, body and environment.\nThe SEXPTYPE OBJ is for S4 and other objects which do not consist solely of a simple type such as an atomic vector or function.\n\n\n1.1.2 Rest of header\nNote that the size and structure of the header changed in R 3.5.0: see earlier editions of this manual for the previous layout.\nThe sxpinfo header is defined as a 64-bit C structure by\n#define NAMED_BITS 16\nstruct sxpinfo_struct {\n SEXPTYPE type : 5; /* discussed above */\n unsigned int scalar: 1; /* is this a numeric vector of length 1?\n unsigned int obj : 1; /* is this an object with a class attribute? */\n unsigned int alt : 1; /* is this an ALTREP object? */\n unsigned int gp : 16; /* general purpose, see below */\n unsigned int mark : 1; /* mark object as ‘in use’ in GC */\n unsigned int debug : 1;\n unsigned int trace : 1;\n unsigned int spare : 1; /* debug once and with reference counting */\n unsigned int gcgen : 1; /* generation for GC */\n unsigned int gccls : 3; /* class of node for GC */\n unsigned int named : NAMED_BITS; /* used to control copying */\n unsigned int extra : 32 - NAMED_BITS;\n}; /* Tot: 64 */\nThe debug bit is used for closures and environments. For closures it is set by debug() and unset by undebug(), and indicates that evaluations of the function should be run under the browser. For environments it indicates whether the browsing is in single-step mode.\nThe trace bit is used for functions for trace() and for other objects when tracing duplications (see tracemem).\nThe spare bit is used for closures to mark them for one-time debugging.\nThe named field is set and accessed by the SET_NAMED and NAMED macros, and take values 0, 1 and 2, or possibly higher if NAMEDMAX is set to a higher value. R has a ‘call by value’ illusion, so an assignment like\nb <- a\n[The NAMED mechanism has been replaced by reference counting.]\nappears to make a copy of a and refer to it as b. However, if neither a nor b are subsequently altered there is no need to copy. What really happens is that a new symbol b is bound to the same value as a and the named field on the value object is set (in this case to 2). When an object is about to be altered, the named field is consulted. A value of 2 or more means that the object must be duplicated before being changed. (Note that this does not say that it is necessary to duplicate, only that it should be duplicated whether necessary or not.) A value of 0 means that it is known that no other SEXP shares data with this object, and so it may safely be altered. A value of 1 is used for situations like\ndim(a) <- c(7, 2)\nwhere in principle two copies of a exist for the duration of the computation as (in principle)\na <- `dim<-`(a, c(7, 2))\nbut for no longer, and so some primitive functions can be optimized to avoid a copy in this case. [This mechanism is scheduled to be replaced in R 4.0.0.]\nThe gp bits are by definition ‘general purpose’. We label these from 0 to 15. Bits 0–5 and bits 14–15 have been used as described below (mainly from detective work on the sources).\nThe bits can be accessed and set by the LEVELS and SETLEVELS macros, which names appear to date back to the internal factor and ordered types and are now used in only a few places in the code. The gp field is serialized/unserialized for the SEXPTYPEs other than NILSXP, SYMSXP and ENVSXP.\nBits 14 and 15 of gp are used for ‘fancy bindings’. Bit 14 is used to lock a binding or an environment, and bit 15 is used to indicate an active binding. (For the definition of an ‘active binding’ see the header comments in file src/main/envir.c.) Bit 15 is used for an environment to indicate if it participates in the global cache.\nThe macros ARGUSED and SET_ARGUSED are used when matching actual and formal function arguments, and take the values 0, 1 and 2.\nThe macros MISSING and SET_MISSING are used for pairlists of arguments. Four bits are reserved, but only two are used (and exactly what for is not explained). It seems that bit 0 is used by matchArgs_NR to mark missingness on the returned argument list, and bit 1 is used to mark the use of a default value for an argument copied to the evaluation frame of a closure.\nBit 0 is used by macros DDVAL and SET_DDVAL. This indicates that a SYMSXP is one of the symbols ..n which are implicitly created when ... is processed, and so indicates that it may need to be looked up in a DOTSXP.\nBit 0 is used for PRSEEN, a flag to indicate if a promise has already been seen during the evaluation of the promise (and so to avoid recursive loops).\nBit 0 is used for HASHASH, on the PRINTNAME of the TAG of the frame of an environment. (This bit is not serialized for CHARSXP objects.)\nBits 0 and 1 are used for weak references (to indicate ‘ready to finalize’, ‘finalize on exit’).\nBit 0 is used by the condition handling system (on a VECSXP) to indicate a calling handler.\nBit 4 is turned on to mark S4 objects.\nBits 1, 2, 3, 5 and 6 are used for a CHARSXP to denote its encoding. Bit 1 indicates that the CHARSXP should be treated as a set of bytes, not necessarily representing a character in any known encoding. Bits 2, 3 and 6 are used to indicate that it is known to be in Latin-1, UTF-8 or ASCII respectively.\nBit 5 for a CHARSXP indicates that it is hashed by its address, that is NA_STRING or is in the CHARSXP cache (this is not serialized). Only exceptionally is a CHARSXP not hashed, and this should never happen in end-user code.\n\n\n1.1.3 The ‘data’\nA SEXPREC is a C structure containing the 64-bit header as described above, three pointers (to the attributes, previous and next node) and the node data, a union\nunion {\n struct primsxp_struct primsxp;\n struct symsxp_struct symsxp;\n struct listsxp_struct listsxp;\n struct envsxp_struct envsxp;\n struct closxp_struct closxp;\n struct promsxp_struct promsxp;\n} u;\nAll of these alternatives apart from the first (an int) are three pointers, so the union occupies three words.\nThe vector types are RAWSXP, CHARSXP, LGLSXP, INTSXP, REALSXP, CPLXSXP, STRSXP, VECSXP, EXPRSXP and WEAKREFSXP. Remember that such types are a VECTOR_SEXPREC, which again consists of the header and the same three pointers, but followed by two integers giving the length and ‘true length’3 of the vector, and then followed by the data (aligned as required: on most 32-bit systems with a 24-byte VECTOR_SEXPREC node the data can follow immediately after the node). The data are a block of memory of the appropriate length to store ‘true length’ elements (rounded up to a multiple of 8 bytes, with the 8-byte blocks being the ‘Vcells’ referred in the documentation for gc()).3 The only current use is for hash tables of environments (VECSXPs), where length is the size of the table and truelength is the number of primary slots in use, for the reference hash tables in serialization (VECSXPs), and for ‘growable’ vectors (atomic vectors, VECSXPs and EXPRSXPs) which are created by slightly over-committing when enlarging a vector during subassignment, so that some number of the following enlargements during subassignment can be performed in place), where truelength is the number of slots in use.\nThe ‘data’ for the various types are given in the table below. A lot of this is interpretation, i.e. the types are not checked.\n\nNILSXP\n\nThere is only one object of type NILSXP, R_NilValue, with no data.\n\nSYMSXP\n\nPointers to three nodes, the name, value and internal, accessed by PRINTNAME (a CHARSXP), SYMVALUE and INTERNAL. (If the symbol’s value is a .Internal function, the last is a pointer to the appropriate SEXPREC.) Many symbols have SYMVALUE R_UnboundValue.\n\nLISTSXP\n\nPointers to the CAR, CDR (usually a LISTSXP or NULL) and TAG (a SYMSXP or NULL).\n\nCLOSXP\n\nPointers to the formals (a pairlist), the body and the environment.\n\nENVSXP\n\nPointers to the frame, enclosing environment and hash table (NULL or a VECSXP). A frame is a tagged pairlist with tag the symbol and CAR the bound value.\n\nPROMSXP\n\nPointers to the value, expression and environment (in which to evaluate the expression). Once an promise has been evaluated, the environment is set to NULL.\n\nLANGSXP\n\nA special type of LISTSXP used for function calls. (The CAR references the function (perhaps via a symbol or language object), and the CDR the argument list with tags for named arguments.) R-level documentation references to ‘expressions’ / ‘language objects’ are mainly LANGSXPs, but can be symbols (SYMSXPs) or expression vectors (EXPRSXPs).\n\nSPECIALSXP\n\n\n\nBUILTINSXP\n\nAn integer giving the offset into the table of primitives/.Internals.\n\nCHARSXP\n\nlength, truelength followed by a block of bytes (allowing for the nul terminator).\n\nLGLSXP\n\n\n\nINTSXP\n\nlength, truelength followed by a block of C ints (which are 32 bits on all R platforms).\n\nREALSXP\n\nlength, truelength followed by a block of C doubles.\n\nCPLXSXP\n\nlength, truelength followed by a block of C99 double complexs.\n\nSTRSXP\n\nlength, truelength followed by a block of pointers (SEXPs pointing to CHARSXPs).\n\nDOTSXP\n\nA special type of LISTSXP for the value bound to a ... symbol: a pairlist of promises.\n\nANYSXP\n\nThis is used as a place holder for any type: there are no actual objects of this type.\n\nVECSXP\n\n\n\nEXPRSXP\n\nlength, truelength followed by a block of pointers. These are internally identical (and identical to STRSXP) but differ in the interpretations placed on the elements.\n\nBCODESXP\n\nFor the ‘byte-code’ objects generated by the compiler.\n\nEXTPTRSXP\n\nHas three pointers, to the pointer, the protection value (an R object which if alive protects this object) and a tag (a SYMSXP?).\n\nWEAKREFSXP\n\nA WEAKREFSXP is a special VECSXP of length 4, with elements key, value, finalizer and next. The key is NULL, an environment or an external pointer, and the finalizer is a function or NULL.\n\nRAWSXP\n\nlength, truelength followed by a block of bytes.\n\nOBJSXP\n\ntwo unused pointers and a tag.\n\n\n\n\n1.1.4 Allocation classes\nAs we have seen, the field gccls in the header is three bits to label up to 8 classes of nodes. Non-vector nodes are of class 0, and ‘small’ vector nodes are of classes 1 to 5, with a class for custom allocator vector nodes 6 and ‘large’ vector nodes being of class 7. The ‘small’ vector nodes are able to store vector data of up to 8, 16, 32, 64 and 128 bytes: larger vectors are malloc-ed individually whereas the ‘small’ nodes are allocated from pages of about 2000 bytes. Vector nodes allocated using custom allocators (via allocVector3) are not counted in the gc memory usage statistics since their memory semantics is not under R’s control and may be non-standard (e.g., memory could be partially shared across nodes)." }, { "objectID": "R-Internal-Structures.html#environments-and-variable-lookup", @@ -88,7 +88,7 @@ "href": "R-Internal-Structures.html#s4-objects", "title": "1  R Internal Structures", "section": "1.12 S4 objects", - "text": "1.12 S4 objects\n[This section is currently a preliminary draft and should not be taken as definitive. The description assumes that R_NO_METHODS_TABLES has not been set.]\n\n1.12.1 Representation of S4 objects\nS4 objects can be of any SEXPTYPE. They are either an object of a simple type (such as an atomic vector or function) with S4 class information or of type S4SXP. In all cases, the ‘S4 bit’ (bit 4 of the ‘general purpose’ field) is set, and can be tested by the macro/function IS_S4_OBJECT.\nS4 objects are created via new()12 and thence via the C function R_do_new_object. This duplicates the prototype of the class, adds a class attribute and sets the S4 bit. All S4 class attributes should be character vectors of length one with an attribute giving (as a character string) the name of the package (or .GlobalEnv) containing the class definition. Since S4 objects have a class attribute, the OBJECT bit is set.12 This can also create non-S4 objects, as in new(\"integer\").\nIt is currently unclear what should happen if the class attribute is removed from an S4 object, or if this should be allowed.\n\n\n1.12.2 S4 classes\nS4 classes are stored as R objects in the environment in which they are created, with names .__C__classname: as such they are not listed by default by ls.\nThe objects are S4 objects of class \"classRepresentation\" which is defined in the methods package.\nSince these are just objects, they are subject to the normal scoping rules and can be imported and exported from namespaces like other objects. The directives importClassesFrom and exportClasses are merely convenient ways to refer to class objects without needing to know their internal ‘metaname’ (although exportClasses does a little sanity checking via isClass).\n\n\n1.12.3 S4 methods\nDetails of the methods are stored in environments (typically hidden in the respective namespace) with a non-syntactic name of the form .__T__generic:package containing objects of class MethodDefinition for all methods defined in the current environment for the named generic derived from a specific package (which might be .GlobalEnv). This is sometimes referred to as a ‘methods table’.\nFor example,\n length(nM <- asNamespace(\"Matrix\") ) # 941 for Matrix 1.2-6\n length(meth <- grep(\"^[.]__T__\", names(nM), value=TRUE))# 107 generics with methods\n length(meth.Ops <- nM$`.__T__Ops:base`) # 71 methods for the 'Ops' (group)generic\n head(sort(names(meth.Ops))) ## \"abIndex#abIndex\" ... \"ANY#ddiMatrix\" \"ANY#ldiMatrix\" \"ANY#Matrix\"\nDuring an R session there is an environment associated with each non-primitive generic containing objects .AllMTable, .Generic, .Methods, .MTable, .SigArgs and .SigLength. .MTable and AllMTable are merged methods tables containing all the methods defined directly and via inheritance respectively. .Methods is a merged methods list.\nExporting methods from a namespace is more complicated than exporting a class. Note first that you do not export a method, but rather the directive exportMethods will export all the methods defined in the namespace for a specified generic: the code also adds to the list of generics any that are exported directly. For generics which are listed via exportMethods or exported themselves, the corresponding environment is exported and so will appear (as hidden object) in the package environment.\nMethods for primitives which are internally S4 generic (see below) are always exported, whether mentioned in the NAMESPACE file or not.\nMethods can be imported either via the directive importMethodsFrom or via importing a namespace by import. Also, if a generic is imported via importFrom, its methods are also imported. In all cases the generic will be imported if it is in the namespace, so importMethodsFrom is most appropriate for methods defined on generics in other packages. Since methods for a generic could be imported from several different packages, the methods tables are merged.\nWhen a package is attached methods:::cacheMetaData is called to update the internal tables: only the visible methods will be cached.\n\n\n1.12.4 Mechanics of S4 dispatch\nThis subsection does not discuss how S4 methods are chosen: see https://developer.r-project.org/howMethodsWork.pdf.\nFor all but primitive functions, setting a method on an existing function that is not itself S4 generic creates a new object in the current environment which is a call to standardGeneric with the old definition as the default method. Such S4 generics can also be created via a call to setGeneric13 and are standard closures in the R language, with environment the environment within which they are created. With the advent of namespaces this is somewhat problematic: if myfn was previously in a package with a name space there will be two functions called myfn on the search paths, and which will be called depends on which search path is in use. This is starkest for functions in the base namespace, where the original will be found ahead of the newly created function from any other package.13 although this is not recommended as it is less future-proof.\nPrimitive functions are treated quite differently, for efficiency reasons: this results in different semantics. setGeneric is disallowed for primitive functions. The methods namespace contains a list .BasicFunsList named by primitive functions: the entries are either FALSE or a standard S4 generic showing the effective definition. When setMethod (or setReplaceMethod) is called, it either fails (if the list entry is FALSE) or a method is set on the effective generic given in the list.\nActual dispatch of S4 methods for almost all primitives piggy-backs on the S3 dispatch mechanism, so S4 methods can only be dispatched for primitives which are internally S3 generic. When a primitive that is internally S3 generic is called with a first argument which is an S4 object and S4 dispatch is on (that is, the methods namespace is loaded), DispatchOrEval calls R_possible_dispatch (defined in file src/main/objects.c). (Members of the S3 group generics, which includes all the generic operators, are treated slightly differently: the first two arguments are checked and DispatchGroup is called.) R_possible_dispatch first checks an internal table to see if any S4 methods are set for that generic (and S4 dispatch is currently enabled for that generic), and if so proceeds to S4 dispatch using methods stored in another internal table. All primitives are in the base namespace, and this mechanism means that S4 methods can be set for (some) primitives and will always be used, in contrast to setting methods on non-primitives.\nThe exception is %*%, which is S4 generic but not S3 generic as its C code contains a direct call to R_possible_dispatch.\nThe primitive as.double is special, as as.numeric and as.real are copies of it. The methods package code partly refers to generics by name and partly by function, and maps as.double and as.real to as.numeric (since that is the name used by packages exporting methods for it).\nSome elements of the language are implemented as primitives, for example }. This includes the subset and subassignment ‘functions’ and they are S4 generic, again piggybacking on S3 dispatch.\n.BasicFunsList is generated when methods is installed, by computing all primitives, initially disallowing methods on all and then setting generics for members of .GenericArgsEnv, the S4 group generics and a short exceptions list in file BasicFunsList.R: this currently contains the subsetting and subassignment operators and an override for c." + "text": "1.12 S4 objects\n[This section is currently a preliminary draft and should not be taken as definitive. The description assumes that R_NO_METHODS_TABLES has not been set.]\n\n1.12.1 Representation of S4 objects\nS4 objects can be of any SEXPTYPE. They are either an object of a simple type (such as an atomic vector or function) with S4 class information or of type OBJSXP. In all cases, the ‘S4 bit’ (bit 4 of the ‘general purpose’ field) is set, and can be tested by the macro/function IS_S4_OBJECT.\nS4 objects are created via new()12 and thence via the C function R_do_new_object. This duplicates the prototype of the class, adds a class attribute and sets the S4 bit. All S4 class attributes should be character vectors of length one with an attribute giving (as a character string) the name of the package (or .GlobalEnv) containing the class definition. Since S4 objects have a class attribute, the OBJECT bit is set.12 This can also create non-S4 objects, as in new(\"integer\").\nIt is currently unclear what should happen if the class attribute is removed from an S4 object, or if this should be allowed.\n\n\n1.12.2 S4 classes\nS4 classes are stored as R objects in the environment in which they are created, with names .__C__classname: as such they are not listed by default by ls.\nThe objects are S4 objects of class \"classRepresentation\" which is defined in the methods package.\nSince these are just objects, they are subject to the normal scoping rules and can be imported and exported from namespaces like other objects. The directives importClassesFrom and exportClasses are merely convenient ways to refer to class objects without needing to know their internal ‘metaname’ (although exportClasses does a little sanity checking via isClass).\n\n\n1.12.3 S4 methods\nDetails of the methods are stored in environments (typically hidden in the respective namespace) with a non-syntactic name of the form .__T__generic:package containing objects of class MethodDefinition for all methods defined in the current environment for the named generic derived from a specific package (which might be .GlobalEnv). This is sometimes referred to as a ‘methods table’.\nFor example,\n length(nM <- asNamespace(\"Matrix\") ) # 941 for Matrix 1.2-6\n length(meth <- grep(\"^[.]__T__\", names(nM), value=TRUE))# 107 generics with methods\n length(meth.Ops <- nM$`.__T__Ops:base`) # 71 methods for the 'Ops' (group)generic\n head(sort(names(meth.Ops))) ## \"abIndex#abIndex\" ... \"ANY#ddiMatrix\" \"ANY#ldiMatrix\" \"ANY#Matrix\"\nDuring an R session there is an environment associated with each non-primitive generic containing objects .AllMTable, .Generic, .Methods, .MTable, .SigArgs and .SigLength. .MTable and AllMTable are merged methods tables containing all the methods defined directly and via inheritance respectively. .Methods is a merged methods list.\nExporting methods from a namespace is more complicated than exporting a class. Note first that you do not export a method, but rather the directive exportMethods will export all the methods defined in the namespace for a specified generic: the code also adds to the list of generics any that are exported directly. For generics which are listed via exportMethods or exported themselves, the corresponding environment is exported and so will appear (as hidden object) in the package environment.\nMethods for primitives which are internally S4 generic (see below) are always exported, whether mentioned in the NAMESPACE file or not.\nMethods can be imported either via the directive importMethodsFrom or via importing a namespace by import. Also, if a generic is imported via importFrom, its methods are also imported. In all cases the generic will be imported if it is in the namespace, so importMethodsFrom is most appropriate for methods defined on generics in other packages. Since methods for a generic could be imported from several different packages, the methods tables are merged.\nWhen a package is attached methods:::cacheMetaData is called to update the internal tables: only the visible methods will be cached.\n\n\n1.12.4 Mechanics of S4 dispatch\nThis subsection does not discuss how S4 methods are chosen: see https://developer.r-project.org/howMethodsWork.pdf.\nFor all but primitive functions, setting a method on an existing function that is not itself S4 generic creates a new object in the current environment which is a call to standardGeneric with the old definition as the default method. Such S4 generics can also be created via a call to setGeneric13 and are standard closures in the R language, with environment the environment within which they are created. With the advent of namespaces this is somewhat problematic: if myfn was previously in a package with a name space there will be two functions called myfn on the search paths, and which will be called depends on which search path is in use. This is starkest for functions in the base namespace, where the original will be found ahead of the newly created function from any other package.13 although this is not recommended as it is less future-proof.\nPrimitive functions are treated quite differently, for efficiency reasons: this results in different semantics. setGeneric is disallowed for primitive functions. The methods namespace contains a list .BasicFunsList named by primitive functions: the entries are either FALSE or a standard S4 generic showing the effective definition. When setMethod (or setReplaceMethod) is called, it either fails (if the list entry is FALSE) or a method is set on the effective generic given in the list.\nActual dispatch of S4 methods for almost all primitives piggy-backs on the S3 dispatch mechanism, so S4 methods can only be dispatched for primitives which are internally S3 generic. When a primitive that is internally S3 generic is called with a first argument which is an S4 object and S4 dispatch is on (that is, the methods namespace is loaded), DispatchOrEval calls R_possible_dispatch (defined in file src/main/objects.c). (Members of the S3 group generics, which includes all the generic operators, are treated slightly differently: the first two arguments are checked and DispatchGroup is called.) R_possible_dispatch first checks an internal table to see if any S4 methods are set for that generic (and S4 dispatch is currently enabled for that generic), and if so proceeds to S4 dispatch using methods stored in another internal table. All primitives are in the base namespace, and this mechanism means that S4 methods can be set for (some) primitives and will always be used, in contrast to setting methods on non-primitives.\nThe exception is %*%, which is S4 generic but not S3 generic as its C code contains a direct call to R_possible_dispatch.\nThe primitive as.double is special, as as.numeric and as.real are copies of it. The methods package code partly refers to generics by name and partly by function, and maps as.double and as.real to as.numeric (since that is the name used by packages exporting methods for it).\nSome elements of the language are implemented as primitives, for example }. This includes the subset and subassignment ‘functions’ and they are S4 generic, again piggybacking on S3 dispatch.\n.BasicFunsList is generated when methods is installed, by computing all primitives, initially disallowing methods on all and then setting generics for members of .GenericArgsEnv, the S4 group generics and a short exceptions list in file BasicFunsList.R: this currently contains the subsetting and subassignment operators and an override for c." }, { "objectID": "R-Internal-Structures.html#memory-allocators", @@ -249,7 +249,7 @@ "href": "Tools.html", "title": "8  Tools", "section": "", - "text": "The behavior of R CMD check can be controlled through a variety of command line arguments and environment variables.\nThere is an internal --install=value command line argument not shown by R CMD check --help, with possible values\n\ncheck:file\n\nAssume that installation was already performed with stdout/stderr to file, the contents of which need to be checked (without repeating the installation). This is useful for checks applied by repository maintainers: it reduces the check time by the installation time given that the package has already been installed. In this case, one also needs to specify where the package was installed to using command line option --library.\n\nfake\n\nFake installation, and turn off the run-time tests.\n\nskip\n\nSkip installation, e.g., when testing recommended packages bundled with R.\n\nno\n\nThe same as --no-install : turns off installation and the tests which require the package to be installed.\n\n\nThe following environment variables can be used to customize the operation of check: a convenient place to set these is the check environment file (default, ~/.R/check.Renviron).\n\n_R_CHECK_ALL_NON_ISO_C_ ¶\n\nIf true, do not ignore compiler (typically GCC) warnings about non ISO C code in system headers. Note that this may also show additional ISO C++ warnings. Default: false.\n\n_R_CHECK_FORCE_SUGGESTS_ ¶\n\nIf true, give an error if suggested packages are not available. Default: true (but false for CRAN submission checks).\n\n_R_CHECK_RD_CONTENTS_ ¶\n\nIf true, check Rd files for auto-generated content which needs editing, and missing argument documentation. Default: true.\n\n_R_CHECK_RD_LINE_WIDTHS_ ¶\n\nIf true, check Rd line widths in usage and examples sections. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_RD_STYLE_ ¶\n\nIf true, check whether Rd usage entries for S3 methods use the full function name rather than the appropriate \\method markup. Default: true.\n\n_R_CHECK_RD_XREFS_ ¶\n\nIf true, check the cross-references in .Rd files. Default: true.\n\n_R_CHECK_SUBDIRS_NOCASE_ ¶\n\nIf true, check the case of directories such as R and man. Default: true.\n\n_R_CHECK_SUBDIRS_STRICT_ ¶\n\nInitial setting for --check-subdirs. Default: default (which checks only tarballs, and checks in the src only if there is no configure file).\n\n_R_CHECK_USE_CODETOOLS_ ¶\n\nIf true, make use of the codetools package, which provides a detailed analysis of visibility of objects (but may give false positives). Default: true (if recommended packages are installed).\n\n_R_CHECK_USE_INSTALL_LOG_ ¶\n\nIf true, record the output from installing a package as part of its check to a log file (00install.out by default), even when running interactively. Default: true.\n\n_R_CHECK_VIGNETTES_NLINES_ ¶\n\nMaximum number of lines to show from the bottom of the output when reporting errors in running or re-building vignettes. ( Value 0 means all lines will be shown.) Default: 10 for running, 25 for re-building.\n\n_R_CHECK_CODOC_S4_METHODS_ ¶\n\nControl whether codoc() testing is also performed on S4 methods. Default: true.\n\n_R_CHECK_DOT_INTERNAL_ ¶\n\nControl whether the package code is scanned for .Internal calls, which should only be used by base (and occasionally by recommended) packages. Default: true.\n\n_R_CHECK_EXECUTABLES_ ¶\n\nControl checking for executable (binary) files. Default: true.\n\n_R_CHECK_EXECUTABLES_EXCLUSIONS_ ¶\n\nControl whether checking for executable (binary) files ignores files listed in the package’s BinaryFiles file. Default: true (but false for CRAN submission checks). However, most likely this package-level override mechanism will be removed eventually.\n\n_R_CHECK_PERMISSIONS_ ¶\n\nControl whether permissions of files should be checked. Default: true iff .Platform$OS.type == \"unix\".\n\n_R_CHECK_FF_CALLS_ ¶\n\nAllows turning off checkFF() testing. If set to registration, checks the registration information (number of arguments, correct choice of .C/.Fortran/.Call/.External) for such calls provided the package is installed. Default: true.\n\n_R_CHECK_FF_DUP_ ¶\n\nControls checkFF(check_DUP) Default: true (and forced to be true for CRAN submission checks).\n\n_R_CHECK_LICENSE_ ¶\n\nControl whether/how license checks are performed. A possible value is maybe (warn in case of problems, but not about standardizable non-standard license specs). Default: true.\n\n_R_CHECK_RD_EXAMPLES_T_AND_F_ ¶\n\nControl whether check_T_and_F() also looks for “bad” (global) T/F uses in examples. Off by default because this can result in false positives.\n\n_R_CHECK_RD_CHECKRD_MINLEVEL_ ¶\n\nControls the minimum level for reporting warnings from checkRd(). Default: -1.\n\n_R_CHECK_RD_NOTE_LOST_BRACES_ ¶\n\nIf true, some of the “lost braces” that checkRd() finds in LaTeX-like Rd contexts are reported (by raising their warning level to -1). This will often detect missing initial backslashes for Rd macros, unescaped in-text set braces, and description-like \\item{label}{desc} entries within \\itemize. Default: unset (but true for CRAN submission checks), currently; may be enabled unconditionally in the future.\n\n_R_CHECK_RD_ALLOW_EMPTY_ITEM_IN_DESCRIBE_ ¶\n\nControl whether empty items inside \\describe are allowed without a warning. This is a temporary stop gap measure meant to support legacy packages, and is likely to be removed in future versions of R. Default: false.\n\n_R_CHECK_XREFS_REPOSITORIES_ ¶\n\nIf set to a non-empty value, a space-separated list of repositories to use to determine known packages. Default: empty, when the CRAN and Bioconductor repositories known to R is used.\n\n_R_CHECK_SRC_MINUS_W_IMPLICIT_ ¶\n\nControl whether installation output is checked for compilation warnings about implicit function declarations (as spotted by GCC with command line option -Wimplicit-function-declaration, which is implied by -Wall). NB: implicit function declarations are errors in some recent C compilers, including Apple clang. Default: true from R 4.2.0, previously false.\n\n_R_CHECK_SRC_MINUS_W_UNUSED_ ¶\n\nControl whether installation output is checked for compilation warnings about unused code constituents (as spotted by GCC with command line option -Wunused, which is implied by -Wall). Default: true.\n\n_R_CHECK_WALL_FORTRAN_ ¶\n\nControl whether gfortran 4.0 or later -Wall warnings are used in the analysis of installation output. Default: false, even though the warnings are justifiable.\n\n_R_CHECK_ASCII_CODE_ ¶\n\nIf true, check R code for non-ascii characters. Default: true.\n\n_R_CHECK_ASCII_DATA_ ¶\n\nIf true, check data for non-ascii characters. En route, checks that all the datasets can be loaded and that their components can be accessed. Default: true.\n\n_R_CHECK_COMPACT_DATA_ ¶\n\nIf true, check data for ascii and uncompressed saves, and also check if using bzip2 or xz compression would be significantly better. Default: true.\n\n_R_CHECK_SKIP_ARCH_ ¶\n\nComma-separated list of architectures that will be omitted from checking in a multi-arch setup. Default: none.\n\n_R_CHECK_SKIP_TESTS_ARCH_ ¶\n\nComma-separated list of architectures that will be omitted from running tests in a multi-arch setup. Default: none.\n\n_R_CHECK_SKIP_EXAMPLES_ARCH_ ¶\n\nComma-separated list of architectures that will be omitted from running examples in a multi-arch setup. Default: none.\n\n_R_CHECK_VC_DIRS_ ¶\n\nShould the unpacked package directory be checked for version-control directories (CVS, .svn …)? Default: true for tarballs.\n\n_R_CHECK_PKG_SIZES_ ¶\n\nShould du be used to find the installed sizes of packages? R CMD check does check for the availability of du. but this option allows the check to be overruled if an unsuitable command is found (including one that does not respect the -k flag to report in units of 1Kb, or reports in a different format – the GNU, macOS and Solaris du commands have been tested). Default: true if du is found.\n\n_R_CHECK_PKG_SIZES_THRESHOLD_ ¶\n\nThreshold used for _R_CHECK_PKG_SIZES_ (in Mb). Default: 5\n\n_R_CHECK_DOC_SIZES_ ¶\n\nShould qpdf be used to check the installed sizes of PDFs? Default: true if qpdf is found.\n\n_R_CHECK_DOC_SIZES2_ ¶\n\nShould gs be used to check the installed sizes of PDFs? This is slower than (and in addition to) the previous check, but does detect figures with excessive detail (often hidden by over-plotting) or bitmap figures with too high a resolution. Requires that R_GSCMD is set to a valid program, or gs (or on Windows, gswin32.exe or gswin64c.exe) is on the path. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_ALWAYS_LOG_VIGNETTE_OUTPUT_ ¶\n\nBy default the output from running the R code in the vignettes is kept only if there is an error. This also applies to the build_vignettes.log log from the re-building of vignettes. Default: false.\n\n_R_CHECK_CLEAN_VIGN_TEST_ ¶\n\nShould the vign_test directory be removed if the test is successful? Default: true.\n\n_R_CHECK_REPLACING_IMPORTS_ ¶\n\nShould warnings about replacing imports be reported? These sometimes come from auto-generated NAMESPACE files in other packages, but most often from importing the whole of a namespace rather than using importFrom. Default: true.\n\n_R_CHECK_UNSAFE_CALLS_ ¶\n\nCheck for calls that appear to tamper with (or allow tampering with) already loaded code not from the current package: such calls may well contravene CRAN policies. Default: true.\n\n_R_CHECK_TIMINGS_ ¶\n\nOptionally report timings for installation, examples, tests and running/re-building vignettes as part of the check log. The format is [as/bs] for the total CPU time (including child processes) a and elapsed time b, except on Windows, when it is [bs]. In most cases timings are only given for OK checks. Times with an elapsed component over 10 mins are reported in minutes (with abbreviation m). The value is the smallest numerical value in elapsed seconds that should be reported: non-numerical values indicate that no report is required, a value of 0 that a report is always required. Default: \"\". (10 for CRAN checks unless set in the environment.)\n\n_R_CHECK_EXAMPLE_TIMING_THRESHOLD_ ¶\n\nIf timings are being recorded, set the threshold in seconds for reporting long-running examples (either user+system CPU time or elapsed time). Default: \"5\".\n\n_R_CHECK_EXAMPLE_TIMING_CPU_TO_ELAPSED_THRESHOLD_ ¶\n\nFor checks with timings enabled, report examples where the ratio of CPU time to elapsed time exceeds this threshold (and the CPU time is at least one second). This can help detect the simultaneous use of multiple CPU cores. Default: NA.\n\n_R_CHECK_TEST_TIMING_CPU_TO_ELAPSED_THRESHOLD_ ¶\n\nReport for running an individual test if the ratio of CPU time to elapsed time exceeds this threshold (and the CPU time is at least one second). Not supported on Windows. Default: NA.\n\n_R_CHECK_VIGNETTE_TIMING_CPU_TO_ELAPSED_THRESHOLD_ ¶\n\nReport if when running/re-building vignettes (individually or in aggregate) the ratio of CPU time to elapsed time exceeds this threshold (and the CPU time is at least one second). Not supported on Windows. Default: NA.\n\n_R_CHECK_INSTALL_TIMING_CPU_TO_ELAPSED_THRESHOLD_ ¶\n\nReport if for installation the ratio of CPU time to elapsed time exceeds this threshold (and the CPU time is at least one second). Not supported on Windows, only uses if _R_CHECK_TIMINGS_ is set Default: NA.\n\n_R_CHECK_CODETOOLS_PROFILE_ ¶\n\nA string with comma-separated name=value pairs (with value a logical constant) giving additional arguments for the codetools functions used for analyzing package code. E.g., use _R_CHECK_CODETOOLS_PROFILE_=\"suppressLocalUnused=FALSE\" to turn off suppressing warnings about unused local variables. Default: no additional arguments, corresponding to using skipWith = TRUE, suppressPartialMatchArgs = FALSE and suppressLocalUnused = TRUE.\n\n_R_CHECK_CRAN_INCOMING_ ¶\n\nCheck whether package is suitable for publication on CRAN. Default: false, except for CRAN submission checks.\n\n_R_CHECK_CRAN_INCOMING_REMOTE_ ¶\n\nInclude checks that require remote access among the above. Default: same as _R_CHECK_CRAN_INCOMING_\n\n_R_CHECK_XREFS_USE_ALIASES_FROM_CRAN_ ¶\n\nWhen checking anchored Rd xrefs, use Rd aliases from the CRAN package web areas in addition to those in the packages installed locally. Default: false.\n\n_R_SHLIB_BUILD_OBJECTS_SYMBOL_TABLES_ ¶\n\nMake the checks of compiled code more accurate by recording the symbol tables for objects (.o files) at installation in a file symbols.rds. (Only currently supported on Linux, Solaris, macOS, Windows and FreeBSD.) Default: true.\n\n_R_CHECK_CODE_ASSIGN_TO_GLOBALENV_ ¶\n\nShould the package code be checked for assignments to the global environment? Default: false (but true for CRAN submission checks).\n\n_R_CHECK_CODE_ATTACH_ ¶\n\nShould the package code be checked for calls to attach()? Default: false (but true for CRAN submission checks).\n\n_R_CHECK_CODE_DATA_INTO_GLOBALENV_ ¶\n\nShould the package code be checked for calls to data() which load into the global environment? Default: false (but true for CRAN submission checks).\n\n_R_CHECK_DOT_FIRSTLIB_ ¶\n\nShould the package code be checked for the presence of the obsolete function .First.lib()? Default: false (but true for CRAN submission checks).\n\n_R_CHECK_DEPRECATED_DEFUNCT_ ¶\n\nShould the package code be checked for the presence of recently deprecated or defunct functions (including completely removed functions). Also for platform-specific graphics devices. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_SCREEN_DEVICE_ ¶\n\nIf set to warn, give a warning if examples etc open a screen device. If set to stop, give an error. Default: empty (but stop for CRAN submission checks).\n\n_R_CHECK_WINDOWS_DEVICE_ ¶\n\nIf set to stop, give an error if a Windows-only device is used in example etc. This is only useful on Windows: the devices do not exist elsewhere. Default: empty (but stop for CRAN submission checks on Windows).\n\n_R_CHECK_TOPLEVEL_FILES_ ¶\n\nReport on top-level files in the package sources that are not described in ‘Writing R Extensions’ nor are commonly understood (like ChangeLog). Variations on standard names (e.g. COPYRIGHT) are also reported. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_GCT_N_ ¶\n\nShould the --use-gct use gctorture2(n) rather than gctorture(TRUE)? Use a positive integer to enable this. Default: 0.\n\n_R_CHECK_LIMIT_CORES_ ¶\n\nIf set, check the usage of too many cores in package parallel. If set to warn gives a warning, to false or FALSE the check is skipped, and any other non-empty value gives an error when more than 2 children are spawned. Default: unset (but TRUE for CRAN submission checks).\n\n_R_CHECK_CODE_USAGE_VIA_NAMESPACES_ ¶\n\nIf set, check code usage (via codetools) directly on the package namespace without loading and attaching the package and its suggests and enhances. Default: true (and true for CRAN submission checks).\n\n_R_CHECK_CODE_USAGE_WITH_ONLY_BASE_ATTACHED_ ¶\n\nIf set, check code usage (via codetools) with only the base package attached. Default: true.\n\n_R_CHECK_EXIT_ON_FIRST_ERROR_ ¶\n\nIf set to a true value, the check will exit on the first error. Default: false.\n\n_R_CHECK_OVERWRITE_REGISTERED_S3_METHODS_ ¶\n\nIf set to a true value, report already registered S3 methods in base/recommended packages which are overwritten when this package’s namespace is loaded. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_TESTS_NLINES_ ¶\n\nNumber of trailing lines of test output to reproduce in the log. If 0 all lines except the R preamble are reproduced. Default: 13.\n\n_R_CHECK_NATIVE_ROUTINE_REGISTRATION_ ¶\n\nIf set to a true value, report if the entry points to register native routines and to suppress dynamic search are not found in a package’s DLL. (NB: this requires system command nm to be on the PATH. On Windows, objdump.exe is first searched for in compiler toolchain specified via Makeconf (can be customized by environment variable BINPREF). If not found there, it must be on the PATH. On Unix this would be normal when using a package with compiled code (which are the only ones this checks), but Windows’ users should check. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_NO_STOP_ON_TEST_ERROR_ ¶\n\nIf set to a true value, do not stop running tests after first error (as if command line option --no-stop-on-test-error had been given). Default: false (but true for CRAN submission checks).\n\n_R_CHECK_PRAGMAS_ ¶\n\nRun additional checks on the pragmas in C/C++ source code and headers. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_COMPILATION_FLAGS_ ¶\n\nIf the package is installed and has C/C++/Fortran code, check the install log for non-portable flags (for example those added to src/Makevars during configuration). Currently -W flags are reported, except -Wall, -Wextra and -Weverything, and flags which appear to be attempts to suppress warnings are highlighted. See section ‘Writing portable packages’ in the ‘Writing R Extensions’ manual for the rationale of this check (and why even -Werror is unsafe).\nEnvironment variable _R_CHECK_COMPILATION_FLAGS_KNOWN_ can be set to a space-separated set of flags which come from the R build used for testing (flags such as -Wall and -Wextra are already known). For example, for CRAN builds of R >= 4.0.0 on macOS one could use\n_R_CHECK_COMPILATION_FLAGS_KNOWN_=\"-mmacosx-version-min=10.13\" \nDefault: unset.\n\n_R_CHECK_R_DEPENDS_ ¶\n\nCheck that any dependence on R is not on a recent patch-level version such as R (>= 3.3.3) since blocking installation of a package will also block its reverse dependencies. Possible values \"note\", \"warn\" and logical values (where currently true values are equivalent to \"note\"). Default: false (but \"warn\" for --as-cran).\n\n_R_CHECK_SERIALIZATION_ ¶\n\nCheck that serialized R objects in the package sources were serialized with version 2 and there is no dependence on R >= 3.5.0. (Version 3 is in use as from R 3.5.0 but should only be used when necessary.) Default: false (but true for CRAN submission checks).\n\n_R_CHECK_R_ON_PATH_ ¶\n\nThis checks if the package attempts to use R or Rscript from the path rather than that under test. It does so by putting scripts at the head of the path which print a message and fail. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_PACKAGES_USED_IN_TESTS_USE_SUBDIRS_ ¶\n\nIf set to a true value, also check the R code in common unit test subdirectories of tests for undeclared package dependencies. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_SHLIB_OPENMP_FLAGS_ ¶\n\nCheck correct and portable use of SHLIB_OPENMP_*FLAGS in src/Makevars (and similar). Default: false (but true for CRAN submission checks).\n\n_R_CHECK_CONNECTIONS_LEFT_OPEN_ ¶\n\nWhen checking examples, check for each example if connections are left open: if any are found, this is reported with a fatal error. NB: ‘connections’ includes most use of files and any parallel clusters which have not be stopped by stopCluster(). Default: false (but true for CRAN submission checks).\n\n_R_CHECK_FUTURE_FILE_TIMESTAMPS_ ¶\n\nCheck if any of the input files has a timestamp in the future (and to do so, checks that the system clock is correct to within 5 minutes). Default: false (but true for CRAN submission checks).\n\n_R_CHECK_LENGTH_1_CONDITION_ ¶\n\nNo longer in use: conditions of length greater than one in if or while statements are now an error.\n\n_R_CHECK_VIGNETTES_SKIP_RUN_MAYBE_ ¶\n\nShould running the R code in the vignettes be skipped if vignette outputs are to be rebuilt (which will involve running that code). Default: false (but true for CRAN checking)\n\n_R_CHECK_BUILD_VIGNETTES_SEPARATELY_ ¶\n\nPrior to R 3.6.0, re-building the vignette outputs was done in a single R session which allowed accidental reliance of one vignette on another (for example, in the loading of packages). The current default is to use a separate session for each vignette; this option allows testing the older behaviour, Default: true\n\n_R_CHECK_SYSTEM_CLOCK_ ¶\n\nAs part of the ‘checking for future file timestamps’ enabled by --as-cran, check the system clock against an external clock to catch errors such as the wrong day or even year. Not necessary on systems doing repeated checks. Default: true (but false for CRAN checking)\n\n_R_CHECK_AUTOCONF_ ¶\n\nFor packages with a configure file generated by GNU autoconf and either configure.ac or configure,.in, check that autoreconf can, if available, be run in a copy of the sources (this will detect missing source files and report autoconf warnings). Environment variable AUTORECONf controls the command used: it can give the full path to autoreconf (without spaces) and can include flags such as --warnings=obsolete (which is added for autoreconf version 2.68 or 2.69 and is the default for later versions). Default: false (but true for CRAN submission checks).\n\n_R_CHECK_DATALIST_ ¶\n\nCheck whether file data/datalist is out-of-date. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_THINGS_IN_CHECK_DIR_ ¶\n\nCheck and report at the end of the check run if files have been left in the check directory. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_THINGS_IN_TEMP_DIR_ ¶\n\nCheck and report at the end of the check run if files would have been left in the temporary directory (usually /tmp on a Unix-alike). It does this by setting the environment variable TEMPDIR to a subdirectory of the R session directory for the check process: if any files or directories are left there they are removed. Since some of these might be out of the user’s control, environment variable _R_CHECK_THINGS_IN_TEMP_DIR_EXCLUDE_ can specify an (extended regex) pattern of file paths not to be reported – CRAN uses ^ompi. for directories left behind by OpenMPI. There are rare instances where TEMPDIR is not respected and so files are left in /tmp (and not reported, but see the next item): one example is /tmp/boost_interprocess on some OSes. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_THINGS_IN_OTHER_DIRS_ ¶\n\nCheck and report at the end of the check run if new files or directories are created in a selected set of directories during the check run. (This is confined to files owned by the user running the check process.) Currently the directories monitored are the home directory, /tmp (excluding RtmpXXXXXX dirs), /dav/shm, ~/.cache (recursively) and ~/.local/share (recursively) or their equivalents on Windows and macOS (the directories in which the default settings for tools::R_user_dir() use a R subdirectory). Additional directories can be specified in environment variable _R_CHECK_THINGS_IN_OTHER_DIRS_XTRA_, separated by semicolons. Directories are reported with a trailing / on all platforms.\nEnvironment variable _R_CHECK_THINGS_IN_OTHER_DIRS_EXCLUDE_ can specify an (extended regex) pattern of file paths not to be reported – this should match absolute file paths with home represented by ~. For example, on a Linux system\n'^~/.cache/(mozilla/firefox|mesa_shader_cache)/'\nmatches cache directories used by Firefox and OpenGL (and their content). If the value starts with @ it is considered as a filepath which is read with each line treated as a pattern to be matched.\nNote that other processes (include check runs in parallel) may create new files in these directories which will get reported. However, this optional check is very useful for narrowing down possible packages which are leaving behind unexpected files. Default: false\n\n_R_CHECK_BASHISMS_ ¶\n\nCheck the top-level scripts configure (unless generated by autoconf) and cleanup for non-Bourne-shell code, using the Perl script checkbashisms if available. This includes reporting scripts using the non-portable #! /bin/bash. (Script checkbashisms is available in most Linux distributions in a package named either devscripts or devscripts-checkbashisms and from https://sourceforge.net/projects/checkbaskisms/files.) Default: false (but true for CRAN submission checks except on Windows).\n\n_R_CHECK_ORPHANED_ ¶\n\nCheck if dependencies are orphaned packages. As from R 4.1.0 this checks strict dependencies recursively, so will report any orphaned packages which are needed to attach the package by library() as well as any orphaned packages which are suggested. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_EXCESSIVE_IMPORTS_ ¶\n\nA positive integer. If set, give a NOTE if the number of imports from non-base packages exceed this threshold. Large numbers of imports make a package vulnerable to any of them becoming unavailable. Default: unset (but 20 for CRAN submission checks)\n\n_R_CHECK_DONTTEST_EXAMPLES_ ¶\n\nIf true and examples are found with \\donttest sections, the tests are run in one pass with these commented out and then in a second pass including the \\donttest sections, (for the main architecture only). Only for the first pass are the results compared to any .Rout.save file and timings analysed. Overridden by --run-donttest. Default: false unless --as-cran is specified (which can be overridden by setting _R_CHECK_DONTTEST_EXAMPLES_=false).\n\n_R_CHECK_XREFS_PKGS_ARE_DECLARED_ ¶\n\nCheck if packages used in ‘anchored’ cross-references in .Rd files (those of the form \\link[pkg]{foo} and \\link[pkg:bar]{foo}) are declared in the DESCRIPTION file and so these links can be checked. Default: false.\n\n_R_CHECK_XREFS_MIND_SUSPECT_ANCHORS_ ¶\n\nCheck if package-anchored Rd cross-references are to files (and not aliases). Default: false.\n\n_R_CHECK_BOGUS_RETURN_ ¶\n\nIf true and _R_CHECK_USE_CODETOOLS_ is also true, functions are scanned for use of return rather than return(). Default: false (but true for CRAN submission checks).\n\n_R_CHECK_MATRIX_DATA_ ¶\n\nBy default, the check for a mismatch between the data length and the dimensions in a call to matrix gives a warning: setting this to a true value gives an error with a compact traceback. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_CODE_CLASS_IS_STRING_ ¶\n\nCheck if package code has if() condition which compare the class of an object to a string. See https://blog.r-project.org/2019/11/09/when-you-think-class.-think-again/ why this is a bad idea. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_RD_VALIDATE_RD2HTML_ ¶\n\nCheck the validity of the package HTML help pages using HTML Tidy (https://www.html-tidy.org/) (if a suitable version is available on the system path for executables or its path is specified by environment variable R_TIDYCMD). macOS users are advised to install 5.8.0 or later from https://binaries.html-tidy.org/. Default: false (but true for CRAN submission checks). --as-cran can be overridden by setting this variable to a false value.\n\n_R_CHECK_RD_MATH_RENDERING_ ¶\n\nCheck whether HTML math rendering via KaTeX works (if package V8 is available). See https://blog.r-project.org/2022/04/08/enhancements-to-html-documentation/. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_NEWS_IN_PLAIN_TEXT_ ¶\n\nCheck whether news() can successfully read package news in plain text (file NEWS) format. Default: false (but true for CRAN submission checks).\n\n_R_WIN_CHECK_INVALID_PARAMETERS_ ¶\n\nCheck whether arguments passed to the Windows C runtime are valid. When enabled and a C runtime function is called with an invalid parameter, R prints diagnostic information and unconditionally terminates. By default, R for Windows following MinGW-W64 default causes UCRT to ignore invalid parameters, but they may cause R to abort e.g. when R is embedded into applications built with a different compiler toolchain. One may set the value to \"watson\" for interactive debugging on Windows via _invoke_watson. Default: disabled.\n\n_R_CHECK_BROWSER_NONINTERACTIVE_ ¶\n\nIf set to a true value, trap non-interactive debugger invocations. These are most likely caused by leftover browser() statements in package code. Default: unset (but true for CRAN submission checks).\n\n_R_CHECK_URLS_SHOW_301_STATUS_ ¶\n\nIf set to a true value, checking URLs show check status 301 for HTTP response status code “301 Moved Permanently”. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_UNDOC_USE_ALL_NAMES_ ¶\n\nIf set to a true value, checking for undocumented objects does not ignore objects with names starting with a dot (which prior to the advent of namespaces conventionally were considered as “internal”). Default: false (but true for CRAN submission checks).\n\n_R_CHECK_S3_METHODS_SHOW_POSSIBLE_ISSUES_ ¶\n\nDefault: false (but true for CRAN submission checks). If set to a true value, checking S3 methods also notes “possible issues”, including issues with apparent methods not registered and methods registered for non-generics. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_MBCS_CONVERSION_FAILURE_ ¶\n\nIf set to a non-empty value, makes warnings from pdf() and postscript() about conversion failures from an MBCS (usually UTF-8) into errors. Default: unset (but true for CRAN submission checks).\n\n\nThe following variables control checks for undeclared/unconditional use of other packages. They work by setting up a temporary library directory and setting .libPaths() to just that and .Library, so are only effective if additional packages are installed somewhere other than .Library. The temporary library is populated by symbolic links1 to installed packages not also in .Library.1 under Windows, junction points, or copies if environment variable R_WIN_NO_JUNCTIONS has a non-empty value.\n\n_R_CHECK_INSTALL_DEPENDS_ ¶\n\nIf set to a true value and a test installation is to be done, this is done with a temporary library populated by all the Depends/Imports/LinkingTo packages. Default: false (but true for CRAN submission checks).\nNote that this is actually implemented in R CMD INSTALL, so it is available to those who first install recording to a log, then call R CMD check.\n\n_R_CHECK_SUGGESTS_ONLY_ ¶\n\nIf set to a true value, running examples, tests and vignettes is done with a temporary library directory populated by all the Depends/Imports/Suggests packages. (As exceptions, packages in a VignetteBuilder field are always made available.) Default: false (but true for CRAN submission checks: some of the regular checks use true and some use false).\n\n_R_CHECK_DEPENDS_ONLY_ ¶\n\nAs for _R_CHECK_SUGGESTS_ONLY_ but using only Depends/Imports (and the exceptions, including test-suite managers in Suggests). Default: false\n\n_R_CHECK_DEPENDS_ONLY_DATA_ ¶\n\nApply _R_CHECK_DEPENDS_ONLY_ only to the check of loading from the data directory, so checks if any dataset depends on packages which are in Suggests or undeclared. Default: false (but true for CRAN submission checks)\n\n\n_R_CHECK_DEPENDS_ONLY_EXAMPLES_ ¶\n_R_CHECK_DEPENDS_ONLY_TESTS_ ¶\n_R_CHECK_DEPENDS_ONLY_VIGNETTES_ ¶\n: Apply _R_CHECK_DEPENDS_ONLY_ only to the checking of examples, tests or vignettes. These can be used on their own, or with a false value to override _R_CHECK_DEPENDS_ONLY_. Default: the value of _R_CHECK_DEPENDS_ONLY_ or false if that is unset.\n\n_R_CHECK_NO_RECOMMENDED_ ¶\n\nIf set to a true value, augment the previous checks to make recommended packages unavailable unless declared (even if installed in .Library). Default: false (but true for CRAN submission checks).\nThis may give false positives on code which uses grDevices::densCols and stats:::.asSparse / stats:::.Diag as these invoke KernSmooth and Matrix respectively. (Those in stats are called from various contrasts functions if sparse = TRUE is used.)\n\n\nCRAN’s submission checks use something like\n_R_CHECK_CRAN_INCOMING_=TRUE\n_R_CHECK_CRAN_INCOMING_REMOTE_=TRUE\n_R_CHECK_VC_DIRS_=TRUE\n_R_CHECK_TIMINGS_=10\n_R_CHECK_INSTALL_DEPENDS_=TRUE\n_R_CHECK_SUGGESTS_ONLY_=TRUE\n_R_CHECK_NO_RECOMMENDED_=TRUE\n_R_CHECK_EXECUTABLES_EXCLUSIONS_=FALSE\n_R_CHECK_DOC_SIZES2_=TRUE\n_R_CHECK_CODE_ASSIGN_TO_GLOBALENV_=TRUE\n_R_CHECK_CODE_ATTACH_=TRUE\n_R_CHECK_CODE_DATA_INTO_GLOBALENV_=TRUE\n_R_CHECK_CODE_USAGE_VIA_NAMESPACES_=TRUE\n_R_CHECK_DOT_FIRSTLIB_=TRUE\n_R_CHECK_DEPRECATED_DEFUNCT_=TRUE\n_R_CHECK_REPLACING_IMPORTS_=TRUE\n_R_CHECK_SCREEN_DEVICE_=stop\n_R_CHECK_TOPLEVEL_FILES_=TRUE\n_R_CHECK_OVERWRITE_REGISTERED_S3_METHODS_=TRUE\n_R_CHECK_PRAGMAS_=TRUE\n_R_CHECK_COMPILATION_FLAGS_=TRUE\n_R_CHECK_R_DEPENDS_=warn\n_R_CHECK_SERIALIZATION_=TRUE\n_R_CHECK_R_ON_PATH_=TRUE\n_R_CHECK_PACKAGES_USED_IN_TESTS_USE_SUBDIRS_=TRUE\n_R_CHECK_SHLIB_OPENMP_FLAGS_=TRUE\n_R_CHECK_CONNECTIONS_LEFT_OPEN_=TRUE\n_R_CHECK_FUTURE_FILE_TIMESTAMPS_=TRUE\n_R_CHECK_AUTOCONF_=true\n_R_CHECK_DATALIST_=true\n_R_CHECK_THINGS_IN_CHECK_DIR_=true\n_R_CHECK_THINGS_IN_TEMP_DIR_=true\n_R_CHECK_BASHISMS_=true\n_R_CHECK_ORPHANED_=true\n_R_CHECK_BOGUS_RETURN_=true\n_R_CHECK_MATRIX_DATA_=TRUE\n_R_CHECK_CODE_CLASS_IS_STRING_=true\n_R_CHECK_RD_VALIDATE_RD2HTML_=true\n_R_CHECK_RD_MATH_RENDERING_=true\n_R_CHECK_NEWS_IN_PLAIN_TEXT_=true\n_R_CHECK_BROWSER_NONINTERACTIVE_=true\n_R_CHECK_URLS_SHOW_301_STATUS_=true\n_R_CHECK_UNDOC_USE_ALL_NAMES_=true\n_R_CHECK_S3_METHODS_SHOW_POSSIBLE_ISSUES_=true\n_R_CHECK_RD_NOTE_LOST_BRACES_=true\nThese are turned on by R CMD check --as-cran: the incoming checks also use\n_R_CHECK_FORCE_SUGGESTS_=FALSE\nsince some packages do suggest other packages not available on CRAN or other commonly-used repositories.\nSeveral environment variables can be used to set ‘timeouts’: limits for the elapsed time taken by the sub-processes used for parts of the checks. A value of 0 indicates no limit, and is the default. Character strings ending in s, m or h indicate a number of seconds, minutes or hours respectively: other values are interpreted as a whole number of seconds (with invalid inputs being treated as no limit).\n\n_R_CHECK_ELAPSED_TIMEOUT_ ¶\n\nThe default timeout for sub-processes not otherwise mentioned, and the default value for all except _R_CHECK_ONE_TEST_ELAPSED_TIMEOUT_. (This is also used by tools::check_packages_in_dir.)\n\n_R_CHECK_INSTALL_ELAPSED_TIMEOUT_ ¶\n\nLimit for when R CMD INSTALL is run by check.\n\n_R_CHECK_EXAMPLES_ELAPSED_TIMEOUT_ ¶\n\nLimit for running all the examples for one sub-architecture.\n\n_R_CHECK_ONE_TEST_ELAPSED_TIMEOUT_ ¶\n\nLimit for running one test for one sub-architecture. Default _R_CHECK_TESTS_ELAPSED_TIMEOUT_.\n\n_R_CHECK_TESTS_ELAPSED_TIMEOUT_ ¶\n\nLimit for running all the tests for one sub-architecture (and the default limit for running one test).\n\n_R_CHECK_ONE_VIGNETTE_ELAPSED_TIMEOUT_ ¶\n\nLimit for running the R code in one vignette, including for re-building each vignette separately.\n\n_R_CHECK_BUILD_VIGNETTES_ELAPSED_TIMEOUT_ ¶\n\nLimit for re-building all vignettes.\n\n_R_CHECK_PKGMAN_ELAPSED_TIMEOUT_ ¶\n\nLimit for each attempt at building the PDF package manual.\n\n\nAnother variable which enables stricter checks is to set R_CHECK_CONSTANTS to 5. This checks that nothing2 changes the values of ‘constants’3 in R code. This is best used in conjunction with setting R_JIT_STRATEGY to 3, which checks code on first use (by default most code is only checked after byte-compilation on second use). Unfortunately these checks slow down checking of examples, tests and vignettes, typically two-fold but in the worst cases at least a hundred-fold.2 The usual culprits are calls to compiled code via .Call or .External which alter their arguments.3 things which the byte compiler assumes do not change, e.g. function bodies.\nThe following environment variables can be used to customize the operation of INSTALL.\n\n_R_INSTALL_LIBS_ONLY_FORCE_DEPENDS_IMPORTS_ ¶\n\nIf true, give an error if installing only package libraries via --libs-only and some package imported or depended on is not available. Default: true (false only for special applications, which analyze native code of packages).\n\n\nFootnotes" + "text": "The behavior of R CMD check can be controlled through a variety of command line arguments and environment variables.\nThere is an internal --install=value command line argument not shown by R CMD check --help, with possible values\n\ncheck:file\n\nAssume that installation was already performed with stdout/stderr to file, the contents of which need to be checked (without repeating the installation). This is useful for checks applied by repository maintainers: it reduces the check time by the installation time given that the package has already been installed. In this case, one also needs to specify where the package was installed to using command line option --library.\n\nfake\n\nFake installation, and turn off the run-time tests.\n\nskip\n\nSkip installation, e.g., when testing recommended packages bundled with R.\n\nno\n\nThe same as --no-install : turns off installation and the tests which require the package to be installed.\n\n\nThe following environment variables can be used to customize the operation of check: a convenient place to set these is the check environment file (default, ~/.R/check.Renviron).\n\n_R_CHECK_ALL_NON_ISO_C_ ¶\n\nIf true, do not ignore compiler (typically GCC) warnings about non ISO C code in system headers. Note that this may also show additional ISO C++ warnings. Default: false.\n\n_R_CHECK_FORCE_SUGGESTS_ ¶\n\nIf true, give an error if suggested packages are not available. Default: true (but false for CRAN submission checks).\n\n_R_CHECK_RD_CONTENTS_ ¶\n\nIf true, check Rd files for auto-generated content which needs editing, and missing argument documentation. Default: true.\n\n_R_CHECK_RD_LINE_WIDTHS_ ¶\n\nIf true, check Rd line widths in usage and examples sections. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_RD_STYLE_ ¶\n\nIf true, check whether Rd usage entries for S3 methods use the full function name rather than the appropriate \\method markup. Default: true.\n\n_R_CHECK_RD_XREFS_ ¶\n\nIf true, check the cross-references in .Rd files. Default: true.\n\n_R_CHECK_SUBDIRS_NOCASE_ ¶\n\nIf true, check the case of directories such as R and man. Default: true.\n\n_R_CHECK_SUBDIRS_STRICT_ ¶\n\nInitial setting for --check-subdirs. Default: default (which checks only tarballs, and checks in the src only if there is no configure file).\n\n_R_CHECK_USE_CODETOOLS_ ¶\n\nIf true, make use of the codetools package, which provides a detailed analysis of visibility of objects (but may give false positives). Default: true (if recommended packages are installed).\n\n_R_CHECK_USE_INSTALL_LOG_ ¶\n\nIf true, record the output from installing a package as part of its check to a log file (00install.out by default), even when running interactively. Default: true.\n\n_R_CHECK_VIGNETTES_NLINES_ ¶\n\nMaximum number of lines to show from the bottom of the output when reporting errors in running or re-building vignettes. ( Value 0 means all lines will be shown.) Default: 10 for running, 25 for re-building.\n\n_R_CHECK_CODOC_S4_METHODS_ ¶\n\nControl whether codoc() testing is also performed on S4 methods. Default: true.\n\n_R_CHECK_DOT_INTERNAL_ ¶\n\nControl whether the package code is scanned for .Internal calls, which should only be used by base (and occasionally by recommended) packages. Default: true.\n\n_R_CHECK_EXECUTABLES_ ¶\n\nControl checking for executable (binary) files. Default: true.\n\n_R_CHECK_EXECUTABLES_EXCLUSIONS_ ¶\n\nControl whether checking for executable (binary) files ignores files listed in the package’s BinaryFiles file. Default: true (but false for CRAN submission checks). However, most likely this package-level override mechanism will be removed eventually.\n\n_R_CHECK_PERMISSIONS_ ¶\n\nControl whether permissions of files should be checked. Default: true iff .Platform$OS.type == \"unix\".\n\n_R_CHECK_FF_CALLS_ ¶\n\nAllows turning off checkFF() testing. If set to registration, checks the registration information (number of arguments, correct choice of .C/.Fortran/.Call/.External) for such calls provided the package is installed. Default: true.\n\n_R_CHECK_FF_DUP_ ¶\n\nControls checkFF(check_DUP) Default: true (and forced to be true for CRAN submission checks).\n\n_R_CHECK_LICENSE_ ¶\n\nControl whether/how license checks are performed. A possible value is maybe (warn in case of problems, but not about standardizable non-standard license specs). Default: true.\n\n_R_CHECK_RD_EXAMPLES_T_AND_F_ ¶\n\nControl whether check_T_and_F() also looks for “bad” (global) T/F uses in examples. Off by default because this can result in false positives.\n\n_R_CHECK_RD_CHECKRD_MINLEVEL_ ¶\n\nControls the minimum level for reporting warnings from checkRd(). Default: -1.\n\n_R_CHECK_RD_NOTE_LOST_BRACES_ ¶\n\nIf true, some of the “lost braces” that checkRd() finds in LaTeX-like Rd contexts are reported (by raising their warning level to -1). This will often detect missing initial backslashes for Rd macros, unescaped in-text set braces, and description-like \\item{label}{desc} entries within \\itemize. Default: unset (but true for CRAN submission checks), currently; may be enabled unconditionally in the future.\n\n_R_CHECK_RD_ALLOW_EMPTY_ITEM_IN_DESCRIBE_ ¶\n\nControl whether empty items inside \\describe are allowed without a warning. This is a temporary stop gap measure meant to support legacy packages, and is likely to be removed in future versions of R. Default: false.\n\n_R_CHECK_XREFS_REPOSITORIES_ ¶\n\nIf set to a non-empty value, a space-separated list of repositories to use to determine known packages. Default: empty, when the CRAN and Bioconductor repositories known to R is used.\n\n_R_CHECK_SRC_MINUS_W_IMPLICIT_ ¶\n\nControl whether installation output is checked for compilation warnings about implicit function declarations (as spotted by GCC with command line option -Wimplicit-function-declaration, which is implied by -Wall). NB: implicit function declarations are errors in some recent C compilers, including Apple clang. Default: true from R 4.2.0, previously false.\n\n_R_CHECK_SRC_MINUS_W_UNUSED_ ¶\n\nControl whether installation output is checked for compilation warnings about unused code constituents (as spotted by GCC with command line option -Wunused, which is implied by -Wall). Default: true.\n\n_R_CHECK_WALL_FORTRAN_ ¶\n\nControl whether gfortran 4.0 or later -Wall warnings are used in the analysis of installation output. Default: false, even though the warnings are justifiable.\n\n_R_CHECK_ASCII_CODE_ ¶\n\nIf true, check R code for non-ascii characters. Default: true.\n\n_R_CHECK_ASCII_DATA_ ¶\n\nIf true, check data for non-ascii characters. En route, checks that all the datasets can be loaded and that their components can be accessed. Default: true.\n\n_R_CHECK_COMPACT_DATA_ ¶\n\nIf true, check data for ascii and uncompressed saves, and also check if using bzip2 or xz compression would be significantly better. Default: true.\n\n_R_CHECK_SKIP_ARCH_ ¶\n\nComma-separated list of architectures that will be omitted from checking in a multi-arch setup. Default: none.\n\n_R_CHECK_SKIP_TESTS_ARCH_ ¶\n\nComma-separated list of architectures that will be omitted from running tests in a multi-arch setup. Default: none.\n\n_R_CHECK_SKIP_EXAMPLES_ARCH_ ¶\n\nComma-separated list of architectures that will be omitted from running examples in a multi-arch setup. Default: none.\n\n_R_CHECK_VC_DIRS_ ¶\n\nShould the unpacked package directory be checked for version-control directories (CVS, .svn …)? Default: true for tarballs.\n\n_R_CHECK_PKG_SIZES_ ¶\n\nShould du be used to find the installed sizes of packages? R CMD check does check for the availability of du. but this option allows the check to be overruled if an unsuitable command is found (including one that does not respect the -k flag to report in units of 1Kb, or reports in a different format – the GNU, macOS and Solaris du commands have been tested). Default: true if du is found.\n\n_R_CHECK_PKG_SIZES_THRESHOLD_ ¶\n\nThreshold used for _R_CHECK_PKG_SIZES_ (in Mb). Default: 5\n\n_R_CHECK_DOC_SIZES_ ¶\n\nShould qpdf be used to check the installed sizes of PDFs? Default: true if qpdf is found.\n\n_R_CHECK_DOC_SIZES2_ ¶\n\nShould gs be used to check the installed sizes of PDFs? This is slower than (and in addition to) the previous check, but does detect figures with excessive detail (often hidden by over-plotting) or bitmap figures with too high a resolution. Requires that R_GSCMD is set to a valid program, or gs (or on Windows, gswin32.exe or gswin64c.exe) is on the path. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_ALWAYS_LOG_VIGNETTE_OUTPUT_ ¶\n\nBy default the output from running the R code in the vignettes is kept only if there is an error. This also applies to the build_vignettes.log log from the re-building of vignettes. Default: false.\n\n_R_CHECK_CLEAN_VIGN_TEST_ ¶\n\nShould the vign_test directory be removed if the test is successful? Default: true.\n\n_R_CHECK_REPLACING_IMPORTS_ ¶\n\nShould warnings about replacing imports be reported? These sometimes come from auto-generated NAMESPACE files in other packages, but most often from importing the whole of a namespace rather than using importFrom. Default: true.\n\n_R_CHECK_UNSAFE_CALLS_ ¶\n\nCheck for calls that appear to tamper with (or allow tampering with) already loaded code not from the current package: such calls may well contravene CRAN policies. Default: true.\n\n_R_CHECK_TIMINGS_ ¶\n\nOptionally report timings for installation, examples, tests and running/re-building vignettes as part of the check log. The format is [as/bs] for the total CPU time (including child processes) a and elapsed time b, except on Windows, when it is [bs]. In most cases timings are only given for OK checks. Times with an elapsed component over 10 mins are reported in minutes (with abbreviation m). The value is the smallest numerical value in elapsed seconds that should be reported: non-numerical values indicate that no report is required, a value of 0 that a report is always required. Default: \"\". (10 for CRAN checks unless set in the environment.)\n\n_R_CHECK_EXAMPLE_TIMING_THRESHOLD_ ¶\n\nIf timings are being recorded, set the threshold in seconds for reporting long-running examples (either user+system CPU time or elapsed time). Default: \"5\".\n\n_R_CHECK_EXAMPLE_TIMING_CPU_TO_ELAPSED_THRESHOLD_ ¶\n\nFor checks with timings enabled, report examples where the ratio of CPU time to elapsed time exceeds this threshold (and the CPU time is at least one second). This can help detect the simultaneous use of multiple CPU cores. Default: NA.\n\n_R_CHECK_TEST_TIMING_CPU_TO_ELAPSED_THRESHOLD_ ¶\n\nReport for running an individual test if the ratio of CPU time to elapsed time exceeds this threshold (and the CPU time is at least one second). Not supported on Windows. Default: NA.\n\n_R_CHECK_VIGNETTE_TIMING_CPU_TO_ELAPSED_THRESHOLD_ ¶\n\nReport if when running/re-building vignettes (individually or in aggregate) the ratio of CPU time to elapsed time exceeds this threshold (and the CPU time is at least one second). Not supported on Windows. Default: NA.\n\n_R_CHECK_INSTALL_TIMING_CPU_TO_ELAPSED_THRESHOLD_ ¶\n\nReport if for installation the ratio of CPU time to elapsed time exceeds this threshold (and the CPU time is at least one second). Not supported on Windows, only uses if _R_CHECK_TIMINGS_ is set Default: NA.\n\n_R_CHECK_CODETOOLS_PROFILE_ ¶\n\nA string with comma-separated name=value pairs (with value a logical constant) giving additional arguments for the codetools functions used for analyzing package code. E.g., use _R_CHECK_CODETOOLS_PROFILE_=\"suppressLocalUnused=FALSE\" to turn off suppressing warnings about unused local variables. Default: no additional arguments, corresponding to using skipWith = TRUE, suppressPartialMatchArgs = FALSE and suppressLocalUnused = TRUE.\n\n_R_CHECK_CRAN_INCOMING_ ¶\n\nCheck whether package is suitable for publication on CRAN. Default: false, except for CRAN submission checks.\n\n_R_CHECK_CRAN_INCOMING_REMOTE_ ¶\n\nInclude checks that require remote access among the above. Default: same as _R_CHECK_CRAN_INCOMING_\n\n_R_CHECK_XREFS_USE_ALIASES_FROM_CRAN_ ¶\n\nWhen checking anchored Rd xrefs, use Rd aliases from the CRAN package web areas in addition to those in the packages installed locally. Default: false.\n\n_R_SHLIB_BUILD_OBJECTS_SYMBOL_TABLES_ ¶\n\nMake the checks of compiled code more accurate by recording the symbol tables for objects (.o files) at installation in a file symbols.rds. (Only currently supported on Linux, Solaris, macOS, Windows and FreeBSD.) Default: true.\n\n_R_CHECK_CODE_ASSIGN_TO_GLOBALENV_ ¶\n\nShould the package code be checked for assignments to the global environment? Default: false (but true for CRAN submission checks).\n\n_R_CHECK_CODE_ATTACH_ ¶\n\nShould the package code be checked for calls to attach()? Default: false (but true for CRAN submission checks).\n\n_R_CHECK_CODE_DATA_INTO_GLOBALENV_ ¶\n\nShould the package code be checked for calls to data() which load into the global environment? Default: false (but true for CRAN submission checks).\n\n_R_CHECK_DOT_FIRSTLIB_ ¶\n\nShould the package code be checked for the presence of the obsolete function .First.lib()? Default: false (but true for CRAN submission checks).\n\n_R_CHECK_DEPRECATED_DEFUNCT_ ¶\n\nShould the package code be checked for the presence of recently deprecated or defunct functions (including completely removed functions). Also for platform-specific graphics devices. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_SCREEN_DEVICE_ ¶\n\nIf set to warn, give a warning if examples etc open a screen device. If set to stop, give an error. Default: empty (but stop for CRAN submission checks).\n\n_R_CHECK_WINDOWS_DEVICE_ ¶\n\nIf set to stop, give an error if a Windows-only device is used in example etc. This is only useful on Windows: the devices do not exist elsewhere. Default: empty (but stop for CRAN submission checks on Windows).\n\n_R_CHECK_TOPLEVEL_FILES_ ¶\n\nReport on top-level files in the package sources that are not described in ‘Writing R Extensions’ nor are commonly understood (like ChangeLog). Variations on standard names (e.g. COPYRIGHT) are also reported. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_GCT_N_ ¶\n\nShould the --use-gct use gctorture2(n) rather than gctorture(TRUE)? Use a positive integer to enable this. Default: 0.\n\n_R_CHECK_LIMIT_CORES_ ¶\n\nIf set, check the usage of too many cores in package parallel. If set to warn gives a warning, to false or FALSE the check is skipped, and any other non-empty value gives an error when more than 2 children are spawned. Default: unset (but TRUE for CRAN submission checks).\n\n_R_CHECK_CODE_USAGE_VIA_NAMESPACES_ ¶\n\nIf set, check code usage (via codetools) directly on the package namespace without loading and attaching the package and its suggests and enhances. Default: true (and true for CRAN submission checks).\n\n_R_CHECK_CODE_USAGE_WITH_ONLY_BASE_ATTACHED_ ¶\n\nIf set, check code usage (via codetools) with only the base package attached. Default: true.\n\n_R_CHECK_EXIT_ON_FIRST_ERROR_ ¶\n\nIf set to a true value, the check will exit on the first error. Default: false.\n\n_R_CHECK_OVERWRITE_REGISTERED_S3_METHODS_ ¶\n\nIf set to a true value, report already registered S3 methods in base/recommended packages which are overwritten when this package’s namespace is loaded. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_TESTS_NLINES_ ¶\n\nNumber of trailing lines of test output to reproduce in the log. If 0 all lines except the R preamble are reproduced. Default: 13.\n\n_R_CHECK_NATIVE_ROUTINE_REGISTRATION_ ¶\n\nIf set to a true value, report if the entry points to register native routines and to suppress dynamic search are not found in a package’s DLL. (NB: this requires system command nm to be on the PATH. On Windows, objdump.exe is first searched for in compiler toolchain specified via Makeconf (can be customized by environment variable BINPREF). If not found there, it must be on the PATH. On Unix this would be normal when using a package with compiled code (which are the only ones this checks), but Windows’ users should check. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_NO_STOP_ON_TEST_ERROR_ ¶\n\nIf set to a true value, do not stop running tests after first error (as if command line option --no-stop-on-test-error had been given). Default: false (but true for CRAN submission checks).\n\n_R_CHECK_PRAGMAS_ ¶\n\nRun additional checks on the pragmas in C/C++ source code and headers. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_COMPILATION_FLAGS_ ¶\n\nIf the package is installed and has C/C++/Fortran code, check the install log for non-portable flags (for example those added to src/Makevars during configuration). Currently -W flags are reported, except -Wall, -Wextra and -Weverything, and flags which appear to be attempts to suppress warnings are highlighted. See section ‘Writing portable packages’ in the ‘Writing R Extensions’ manual for the rationale of this check (and why even -Werror is unsafe).\nEnvironment variable _R_CHECK_COMPILATION_FLAGS_KNOWN_ can be set to a space-separated set of flags which come from the R build used for testing (flags such as -Wall and -Wextra are already known). For example, for CRAN builds of R >= 4.0.0 on macOS one could use\n_R_CHECK_COMPILATION_FLAGS_KNOWN_=\"-mmacosx-version-min=10.13\" \nDefault: unset.\n\n_R_CHECK_R_DEPENDS_ ¶\n\nCheck that any dependence on R is not on a recent patch-level version such as R (>= 3.3.3) since blocking installation of a package will also block its reverse dependencies. Possible values \"note\", \"warn\" and logical values (where currently true values are equivalent to \"note\"). Default: false (but \"warn\" for --as-cran).\n\n_R_CHECK_SERIALIZATION_ ¶\n\nCheck that serialized R objects in the package sources were serialized with version 2 and there is no dependence on R >= 3.5.0. (Version 3 is in use as from R 3.5.0 but should only be used when necessary.) Default: false (but true for CRAN submission checks).\n\n_R_CHECK_R_ON_PATH_ ¶\n\nThis checks if the package attempts to use R or Rscript from the path rather than that under test. It does so by putting scripts at the head of the path which print a message and fail. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_PACKAGES_USED_IN_TESTS_USE_SUBDIRS_ ¶\n\nIf set to a true value, also check the R code in common unit test subdirectories of tests for undeclared package dependencies. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_SHLIB_OPENMP_FLAGS_ ¶\n\nCheck correct and portable use of SHLIB_OPENMP_*FLAGS in src/Makevars (and similar). Default: false (but true for CRAN submission checks).\n\n_R_CHECK_CONNECTIONS_LEFT_OPEN_ ¶\n\nWhen checking examples, check for each example if connections are left open: if any are found, this is reported with a fatal error. NB: ‘connections’ includes most use of files and any parallel clusters which have not be stopped by stopCluster(). Default: false (but true for CRAN submission checks).\n\n_R_CHECK_FUTURE_FILE_TIMESTAMPS_ ¶\n\nCheck if any of the input files has a timestamp in the future (and to do so, checks that the system clock is correct to within 5 minutes). Default: false (but true for CRAN submission checks).\n\n_R_CHECK_LENGTH_1_CONDITION_ ¶\n\nNo longer in use: conditions of length greater than one in if or while statements are now an error.\n\n_R_CHECK_VIGNETTES_SKIP_RUN_MAYBE_ ¶\n\nShould running the R code in the vignettes be skipped if vignette outputs are to be rebuilt (which will involve running that code). Default: false (but true for CRAN checking)\n\n_R_CHECK_BUILD_VIGNETTES_SEPARATELY_ ¶\n\nPrior to R 3.6.0, re-building the vignette outputs was done in a single R session which allowed accidental reliance of one vignette on another (for example, in the loading of packages). The current default is to use a separate session for each vignette; this option allows testing the older behaviour, Default: true\n\n_R_CHECK_SYSTEM_CLOCK_ ¶\n\nAs part of the ‘checking for future file timestamps’ enabled by --as-cran, check the system clock against an external clock to catch errors such as the wrong day or even year. Not necessary on systems doing repeated checks. Default: true (but false for CRAN checking)\n\n_R_CHECK_AUTOCONF_ ¶\n\nFor packages with a configure file generated by GNU autoconf and either configure.ac or configure,.in, check that autoreconf can, if available, be run in a copy of the sources (this will detect missing source files and report autoconf warnings). Environment variable AUTORECONf controls the command used: it can give the full path to autoreconf (without spaces) and can include flags such as --warnings=obsolete (which is added for autoreconf version 2.68 or 2.69 and is the default for later versions). Default: false (but true for CRAN submission checks).\n\n_R_CHECK_DATALIST_ ¶\n\nCheck whether file data/datalist is out-of-date. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_THINGS_IN_CHECK_DIR_ ¶\n\nCheck and report at the end of the check run if files have been left in the check directory. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_THINGS_IN_TEMP_DIR_ ¶\n\nCheck and report at the end of the check run if files would have been left in the temporary directory (usually /tmp on a Unix-alike). It does this by setting the environment variable TEMPDIR to a subdirectory of the R session directory for the check process: if any files or directories are left there they are removed. Since some of these might be out of the user’s control, environment variable _R_CHECK_THINGS_IN_TEMP_DIR_EXCLUDE_ can specify an (extended regex) pattern of file paths not to be reported – CRAN uses ^ompi. for directories left behind by OpenMPI. There are rare instances where TEMPDIR is not respected and so files are left in /tmp (and not reported, but see the next item): one example is /tmp/boost_interprocess on some OSes. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_THINGS_IN_OTHER_DIRS_ ¶\n\nCheck and report at the end of the check run if new files or directories are created in a selected set of directories during the check run. (This is confined to files owned by the user running the check process.) Currently the directories monitored are the home directory, /tmp (excluding RtmpXXXXXX dirs), /dav/shm, ~/.cache (recursively) and ~/.local/share (recursively) or their equivalents on Windows and macOS (the directories in which the default settings for tools::R_user_dir() use a R subdirectory). Additional directories can be specified in environment variable _R_CHECK_THINGS_IN_OTHER_DIRS_XTRA_, separated by semicolons. Directories are reported with a trailing / on all platforms.\nEnvironment variable _R_CHECK_THINGS_IN_OTHER_DIRS_EXCLUDE_ can specify an (extended regex) pattern of file paths not to be reported – this should match absolute file paths with home represented by ~. For example, on a Linux system\n'^~/.cache/(mozilla/firefox|mesa_shader_cache)/'\nmatches cache directories used by Firefox and OpenGL (and their content). If the value starts with @ it is considered as a filepath which is read with each line treated as a pattern to be matched.\nNote that other processes (include check runs in parallel) may create new files in these directories which will get reported. However, this optional check is very useful for narrowing down possible packages which are leaving behind unexpected files. Default: false\n\n_R_CHECK_BASHISMS_ ¶\n\nCheck the top-level scripts configure (unless generated by autoconf) and cleanup for non-Bourne-shell code, using the Perl script checkbashisms if available. This includes reporting scripts using the non-portable #! /bin/bash. (Script checkbashisms is available in most Linux distributions in a package named either devscripts or devscripts-checkbashisms and from https://sourceforge.net/projects/checkbaskisms/files.) Default: false (but true for CRAN submission checks except on Windows).\n\n_R_CHECK_ORPHANED_ ¶\n\nCheck if dependencies are orphaned packages. As from R 4.1.0 this checks strict dependencies recursively, so will report any orphaned packages which are needed to attach the package by library() as well as any orphaned packages which are suggested. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_EXCESSIVE_IMPORTS_ ¶\n\nA positive integer. If set, give a NOTE if the number of imports from non-base packages exceed this threshold. Large numbers of imports make a package vulnerable to any of them becoming unavailable. Default: unset (but 20 for CRAN submission checks)\n\n_R_CHECK_DONTTEST_EXAMPLES_ ¶\n\nIf true and examples are found with \\donttest sections, the tests are run in one pass with these commented out and then in a second pass including the \\donttest sections, (for the main architecture only). Only for the first pass are the results compared to any .Rout.save file and timings analysed. Overridden by --run-donttest. Default: false unless --as-cran is specified (which can be overridden by setting _R_CHECK_DONTTEST_EXAMPLES_=false).\n\n_R_CHECK_XREFS_PKGS_ARE_DECLARED_ ¶\n\nCheck if packages used in ‘anchored’ cross-references in .Rd files (those of the form \\link[pkg]{foo} and \\link[pkg:bar]{foo}) are declared in the DESCRIPTION file and so these links can be checked. Default: false.\n\n_R_CHECK_XREFS_MIND_SUSPECT_ANCHORS_ ¶\n\nCheck if package-anchored Rd cross-references are to files (and not aliases). Default: false.\n\n_R_CHECK_BOGUS_RETURN_ ¶\n\nIf true and _R_CHECK_USE_CODETOOLS_ is also true, functions are scanned for use of return rather than return(). Default: false (but true for CRAN submission checks).\n\n_R_CHECK_MATRIX_DATA_ ¶\n\nBy default, the check for a mismatch between the data length and the dimensions in a call to matrix gives a warning: setting this to a true value gives an error with a compact traceback. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_CODE_CLASS_IS_STRING_ ¶\n\nCheck if package code has if() condition which compare the class of an object to a string. See https://blog.r-project.org/2019/11/09/when-you-think-class.-think-again/ why this is a bad idea. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_RD_VALIDATE_RD2HTML_ ¶\n\nCheck the validity of the package HTML help pages using HTML Tidy (https://www.html-tidy.org/) (if a suitable version is available on the system path for executables or its path is specified by environment variable R_TIDYCMD). macOS users are advised to install 5.8.0 or later from https://binaries.html-tidy.org/. Default: false (but true for CRAN submission checks). --as-cran can be overridden by setting this variable to a false value.\n\n_R_CHECK_RD_MATH_RENDERING_ ¶\n\nCheck whether HTML math rendering via KaTeX works (if package V8 is available). See https://blog.r-project.org/2022/04/08/enhancements-to-html-documentation/. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_NEWS_IN_PLAIN_TEXT_ ¶\n\nCheck whether news() can successfully read package news in plain text (file NEWS) format. Default: false (but true for CRAN submission checks).\n\n_R_WIN_CHECK_INVALID_PARAMETERS_ ¶\n\nCheck whether arguments passed to the Windows C runtime are valid. When enabled and a C runtime function is called with an invalid parameter, R prints diagnostic information and unconditionally terminates. By default, R for Windows following MinGW-W64 default causes UCRT to ignore invalid parameters, but they may cause R to abort e.g. when R is embedded into applications built with a different compiler toolchain. One may set the value to \"watson\" for interactive debugging on Windows via _invoke_watson. Default: disabled.\n\n_R_CHECK_BROWSER_NONINTERACTIVE_ ¶\n\nIf set to a true value, trap non-interactive debugger invocations. These are most likely caused by leftover browser() statements in package code. Default: unset (but true for CRAN submission checks).\n\n_R_CHECK_URLS_SHOW_301_STATUS_ ¶\n\nIf set to a true value, checking URLs show check status 301 for HTTP response status code “301 Moved Permanently”. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_UNDOC_USE_ALL_NAMES_ ¶\n\nIf set to a true value, checking for undocumented objects does not ignore objects with names starting with a dot (which prior to the advent of namespaces conventionally were considered as “internal”). Default: false (but true for CRAN submission checks).\n\n_R_CHECK_S3_METHODS_SHOW_POSSIBLE_ISSUES_ ¶\n\nDefault: false (but true for CRAN submission checks). If set to a true value, checking S3 methods also notes “possible issues”, including issues with apparent methods not registered and methods registered for non-generics. Default: false (but true for CRAN submission checks).\n\n_R_CHECK_MBCS_CONVERSION_FAILURE_ ¶\n\nIf set to a non-empty value, makes warnings from pdf() and postscript() about conversion failures from an MBCS (usually UTF-8) into errors. Default: unset (but true for CRAN submission checks).\n\n_R_CHECK_VALIDATE_UTF8_ ¶\n\nIf set to a non-empty value, makes installation warnings about non-UTF-8 strings in a package’s code (R/*R) and help (man/*.Rd) files into errors. On most platforms invalid bytes in these files get converted to escapes (see iconv(sub = \"byte\")), but on others these lead to installation failure. Default: unset (but true for CRAN submission checks).\n\n\nThe following variables control checks for undeclared/unconditional use of other packages. They work by setting up a temporary library directory and setting .libPaths() to just that and .Library, so are only effective if additional packages are installed somewhere other than .Library. The temporary library is populated by symbolic links1 to installed packages not also in .Library.1 under Windows, junction points, or copies if environment variable R_WIN_NO_JUNCTIONS has a non-empty value.\n\n_R_CHECK_INSTALL_DEPENDS_ ¶\n\nIf set to a true value and a test installation is to be done, this is done with a temporary library populated by all the Depends/Imports/LinkingTo packages. Default: false (but true for CRAN submission checks).\nNote that this is actually implemented in R CMD INSTALL, so it is available to those who first install recording to a log, then call R CMD check.\n\n_R_CHECK_SUGGESTS_ONLY_ ¶\n\nIf set to a true value, running examples, tests and vignettes is done with a temporary library directory populated by all the Depends/Imports/Suggests packages. (As exceptions, packages in a VignetteBuilder field are always made available.) Default: false (but true for CRAN submission checks: some of the regular checks use true and some use false).\n\n_R_CHECK_DEPENDS_ONLY_ ¶\n\nAs for _R_CHECK_SUGGESTS_ONLY_ but using only Depends/Imports (and the exceptions, including test-suite managers in Suggests). Default: false\n\n_R_CHECK_DEPENDS_ONLY_DATA_ ¶\n\nApply _R_CHECK_DEPENDS_ONLY_ only to the check of loading from the data directory, so checks if any dataset depends on packages which are in Suggests or undeclared. Default: false (but true for CRAN submission checks)\n\n\n_R_CHECK_DEPENDS_ONLY_EXAMPLES_ ¶\n_R_CHECK_DEPENDS_ONLY_TESTS_ ¶\n_R_CHECK_DEPENDS_ONLY_VIGNETTES_ ¶\n: Apply _R_CHECK_DEPENDS_ONLY_ only to the checking of examples, tests or vignettes. These can be used on their own, or with a false value to override _R_CHECK_DEPENDS_ONLY_. Default: the value of _R_CHECK_DEPENDS_ONLY_ or false if that is unset.\n\n_R_CHECK_NO_RECOMMENDED_ ¶\n\nIf set to a true value, augment the previous checks to make recommended packages unavailable unless declared (even if installed in .Library). Default: false (but true for CRAN submission checks).\nThis may give false positives on code which uses grDevices::densCols and stats:::.asSparse / stats:::.Diag as these invoke KernSmooth and Matrix respectively. (Those in stats are called from various contrasts functions if sparse = TRUE is used.)\n\n\nCRAN’s submission checks use something like\n_R_CHECK_CRAN_INCOMING_=TRUE\n_R_CHECK_CRAN_INCOMING_REMOTE_=TRUE\n_R_CHECK_VC_DIRS_=TRUE\n_R_CHECK_TIMINGS_=10\n_R_CHECK_INSTALL_DEPENDS_=TRUE\n_R_CHECK_SUGGESTS_ONLY_=TRUE\n_R_CHECK_NO_RECOMMENDED_=TRUE\n_R_CHECK_EXECUTABLES_EXCLUSIONS_=FALSE\n_R_CHECK_DOC_SIZES2_=TRUE\n_R_CHECK_CODE_ASSIGN_TO_GLOBALENV_=TRUE\n_R_CHECK_CODE_ATTACH_=TRUE\n_R_CHECK_CODE_DATA_INTO_GLOBALENV_=TRUE\n_R_CHECK_CODE_USAGE_VIA_NAMESPACES_=TRUE\n_R_CHECK_DOT_FIRSTLIB_=TRUE\n_R_CHECK_DEPRECATED_DEFUNCT_=TRUE\n_R_CHECK_REPLACING_IMPORTS_=TRUE\n_R_CHECK_SCREEN_DEVICE_=stop\n_R_CHECK_TOPLEVEL_FILES_=TRUE\n_R_CHECK_OVERWRITE_REGISTERED_S3_METHODS_=TRUE\n_R_CHECK_PRAGMAS_=TRUE\n_R_CHECK_COMPILATION_FLAGS_=TRUE\n_R_CHECK_R_DEPENDS_=warn\n_R_CHECK_SERIALIZATION_=TRUE\n_R_CHECK_R_ON_PATH_=TRUE\n_R_CHECK_PACKAGES_USED_IN_TESTS_USE_SUBDIRS_=TRUE\n_R_CHECK_SHLIB_OPENMP_FLAGS_=TRUE\n_R_CHECK_CONNECTIONS_LEFT_OPEN_=TRUE\n_R_CHECK_FUTURE_FILE_TIMESTAMPS_=TRUE\n_R_CHECK_AUTOCONF_=true\n_R_CHECK_DATALIST_=true\n_R_CHECK_THINGS_IN_CHECK_DIR_=true\n_R_CHECK_THINGS_IN_TEMP_DIR_=true\n_R_CHECK_BASHISMS_=true\n_R_CHECK_ORPHANED_=true\n_R_CHECK_BOGUS_RETURN_=true\n_R_CHECK_MATRIX_DATA_=TRUE\n_R_CHECK_CODE_CLASS_IS_STRING_=true\n_R_CHECK_RD_VALIDATE_RD2HTML_=true\n_R_CHECK_RD_MATH_RENDERING_=true\n_R_CHECK_NEWS_IN_PLAIN_TEXT_=true\n_R_CHECK_BROWSER_NONINTERACTIVE_=true\n_R_CHECK_URLS_SHOW_301_STATUS_=true\n_R_CHECK_UNDOC_USE_ALL_NAMES_=true\n_R_CHECK_S3_METHODS_SHOW_POSSIBLE_ISSUES_=true\n_R_CHECK_RD_NOTE_LOST_BRACES_=true\nThese are turned on by R CMD check --as-cran: the incoming checks also use\n_R_CHECK_FORCE_SUGGESTS_=FALSE\nsince some packages do suggest other packages not available on CRAN or other commonly-used repositories.\nSeveral environment variables can be used to set ‘timeouts’: limits for the elapsed time taken by the sub-processes used for parts of the checks. A value of 0 indicates no limit, and is the default. Character strings ending in s, m or h indicate a number of seconds, minutes or hours respectively: other values are interpreted as a whole number of seconds (with invalid inputs being treated as no limit).\n\n_R_CHECK_ELAPSED_TIMEOUT_ ¶\n\nThe default timeout for sub-processes not otherwise mentioned, and the default value for all except _R_CHECK_ONE_TEST_ELAPSED_TIMEOUT_. (This is also used by tools::check_packages_in_dir.)\n\n_R_CHECK_INSTALL_ELAPSED_TIMEOUT_ ¶\n\nLimit for when R CMD INSTALL is run by check.\n\n_R_CHECK_EXAMPLES_ELAPSED_TIMEOUT_ ¶\n\nLimit for running all the examples for one sub-architecture.\n\n_R_CHECK_ONE_TEST_ELAPSED_TIMEOUT_ ¶\n\nLimit for running one test for one sub-architecture. Default _R_CHECK_TESTS_ELAPSED_TIMEOUT_.\n\n_R_CHECK_TESTS_ELAPSED_TIMEOUT_ ¶\n\nLimit for running all the tests for one sub-architecture (and the default limit for running one test).\n\n_R_CHECK_ONE_VIGNETTE_ELAPSED_TIMEOUT_ ¶\n\nLimit for running the R code in one vignette, including for re-building each vignette separately.\n\n_R_CHECK_BUILD_VIGNETTES_ELAPSED_TIMEOUT_ ¶\n\nLimit for re-building all vignettes.\n\n_R_CHECK_PKGMAN_ELAPSED_TIMEOUT_ ¶\n\nLimit for each attempt at building the PDF package manual.\n\n\nAnother variable which enables stricter checks is to set R_CHECK_CONSTANTS to 5. This checks that nothing2 changes the values of ‘constants’3 in R code. This is best used in conjunction with setting R_JIT_STRATEGY to 3, which checks code on first use (by default most code is only checked after byte-compilation on second use). Unfortunately these checks slow down checking of examples, tests and vignettes, typically two-fold but in the worst cases at least a hundred-fold.2 The usual culprits are calls to compiled code via .Call or .External which alter their arguments.3 things which the byte compiler assumes do not change, e.g. function bodies.\nThe following environment variables can be used to customize the operation of INSTALL.\n\n_R_INSTALL_LIBS_ONLY_FORCE_DEPENDS_IMPORTS_ ¶\n\nIf true, give an error if installing only package libraries via --libs-only and some package imported or depended on is not available. Default: true (false only for special applications, which analyze native code of packages).\n\n\nFootnotes" }, { "objectID": "R-coding-standards.html", @@ -298,7 +298,7 @@ "href": "Function-and-variable-index.html", "title": "Function and variable index", "section": "", - "text": "Jump to:  \n.   _  \nA   C   D   E   G   I   L   M   N   P   R   S   T   U   V   W  \n\n\n\n\n\n\n\nIndex Entry\n \nSection\n\n\n.\n\n\n\n\n\n\n.Device:\n \nBase environment\n\n\n\n.Devices:\n \nBase environment\n\n\n\n.Internal:\n \n.Internal vs .Primitive\n\n\n\n.Last.value:\n \nBase environment\n\n\n\n.Options:\n \nBase environment\n\n\n\n.Primitive:\n \n.Internal vs .Primitive\n\n\n\n.Random.seed:\n \nGlobal environment\n\n\n\n.SavedPlots:\n \nGlobal environment\n\n\n\n.Traceback:\n \nBase environment\n\n\n_\n\n\n\n\n\n\n_R_CHECK_ALL_NON_ISO_C_:\n \nTools\n\n\n\n_R_CHECK_ALWAYS_LOG_VIGNETTE_OUTPUT_:\n \nTools\n\n\n\n_R_CHECK_ASCII_CODE_:\n \nTools\n\n\n\n_R_CHECK_ASCII_DATA_:\n \nTools\n\n\n\n_R_CHECK_AUTOCONF_:\n \nTools\n\n\n\n_R_CHECK_BASHISMS_:\n \nTools\n\n\n\n_R_CHECK_BOGUS_RETURN_:\n \nTools\n\n\n\n_R_CHECK_BROWSER_NONINTERACTIVE_:\n \nTools\n\n\n\n_R_CHECK_BUILD_VIGNETTES_ELAPSED_TIMEOUT_:\n \nTools\n\n\n\n_R_CHECK_BUILD_VIGNETTES_SEPARATELY_:\n \nTools\n\n\n\n_R_CHECK_CLEAN_VIGN_TEST_:\n \nTools\n\n\n\n_R_CHECK_CODETOOLS_PROFILE_:\n \nTools\n\n\n\n_R_CHECK_CODE_ASSIGN_TO_GLOBALENV_:\n \nTools\n\n\n\n_R_CHECK_CODE_ATTACH_:\n \nTools\n\n\n\n_R_CHECK_CODE_CLASS_IS_STRING_:\n \nTools\n\n\n\n_R_CHECK_CODE_DATA_INTO_GLOBALENV_:\n \nTools\n\n\n\n_R_CHECK_CODE_USAGE_VIA_NAMESPACES_:\n \nTools\n\n\n\n_R_CHECK_CODE_USAGE_WITH_ONLY_BASE_ATTACHED_:\n \nTools\n\n\n\n_R_CHECK_CODOC_S4_METHODS_:\n \nTools\n\n\n\n_R_CHECK_COMPACT_DATA_:\n \nTools\n\n\n\n_R_CHECK_COMPILATION_FLAGS_:\n \nTools\n\n\n\n_R_CHECK_CONNECTIONS_LEFT_OPEN_:\n \nTools\n\n\n\n_R_CHECK_CRAN_INCOMING_:\n \nTools\n\n\n\n_R_CHECK_CRAN_INCOMING_REMOTE_:\n \nTools\n\n\n\n_R_CHECK_DATALIST_:\n \nTools\n\n\n\n_R_CHECK_DEPENDS_ONLY_:\n \nTools\n\n\n\n_R_CHECK_DEPENDS_ONLY_DATA_:\n \nTools\n\n\n\n_R_CHECK_DEPENDS_ONLY_EXAMPLES_:\n \nTools\n\n\n\n_R_CHECK_DEPENDS_ONLY_TESTS_:\n \nTools\n\n\n\n_R_CHECK_DEPENDS_ONLY_VIGNETTES_:\n \nTools\n\n\n\n_R_CHECK_DEPRECATED_DEFUNCT_:\n \nTools\n\n\n\n_R_CHECK_DOC_SIZES2_:\n \nTools\n\n\n\n_R_CHECK_DOC_SIZES_:\n \nTools\n\n\n\n_R_CHECK_DONTTEST_EXAMPLES_:\n \nTools\n\n\n\n_R_CHECK_DOT_FIRSTLIB_:\n \nTools\n\n\n\n_R_CHECK_DOT_INTERNAL_:\n \nTools\n\n\n\n_R_CHECK_ELAPSED_TIMEOUT_:\n \nTools\n\n\n\n_R_CHECK_EXAMPLES_ELAPSED_TIMEOUT_:\n \nTools\n\n\n\n_R_CHECK_EXAMPLE_TIMING_CPU_TO_ELAPSED_THRESHOLD_:\n \nTools\n\n\n\n_R_CHECK_EXAMPLE_TIMING_THRESHOLD_:\n \nTools\n\n\n\n_R_CHECK_EXCESSIVE_IMPORTS_:\n \nTools\n\n\n\n_R_CHECK_EXECUTABLES_:\n \nTools\n\n\n\n_R_CHECK_EXECUTABLES_EXCLUSIONS_:\n \nTools\n\n\n\n_R_CHECK_EXIT_ON_FIRST_ERROR_:\n \nTools\n\n\n\n_R_CHECK_FF_CALLS_:\n \nTools\n\n\n\n_R_CHECK_FF_DUP_:\n \nTools\n\n\n\n_R_CHECK_FORCE_SUGGESTS_:\n \nTools\n\n\n\n_R_CHECK_FUTURE_FILE_TIMESTAMPS_:\n \nTools\n\n\n\n_R_CHECK_GCT_N_:\n \nTools\n\n\n\n_R_CHECK_INSTALL_DEPENDS_:\n \nTools\n\n\n\n_R_CHECK_INSTALL_ELAPSED_TIMEOUT_:\n \nTools\n\n\n\n_R_CHECK_INSTALL_TIMING_CPU_TO_ELAPSED_THRESHOLD_:\n \nTools\n\n\n\n_R_CHECK_LENGTH_1_CONDITION_:\n \nTools\n\n\n\n_R_CHECK_LICENSE_:\n \nTools\n\n\n\n_R_CHECK_LIMIT_CORES_:\n \nTools\n\n\n\n_R_CHECK_MATRIX_DATA_:\n \nTools\n\n\n\n_R_CHECK_MBCS_CONVERSION_FAILURE_:\n \nTools\n\n\n\n_R_CHECK_NATIVE_ROUTINE_REGISTRATION_:\n \nTools\n\n\n\n_R_CHECK_NEWS_IN_PLAIN_TEXT_:\n \nTools\n\n\n\n_R_CHECK_NO_RECOMMENDED_:\n \nTools\n\n\n\n_R_CHECK_NO_STOP_ON_TEST_ERROR_:\n \nTools\n\n\n\n_R_CHECK_ONE_TEST_ELAPSED_TIMEOUT_:\n \nTools\n\n\n\n_R_CHECK_ONE_VIGNETTE_ELAPSED_TIMEOUT_:\n \nTools\n\n\n\n_R_CHECK_ORPHANED_:\n \nTools\n\n\n\n_R_CHECK_OVERWRITE_REGISTERED_S3_METHODS_:\n \nTools\n\n\n\n_R_CHECK_PACKAGES_USED_IN_TESTS_USE_SUBDIRS_:\n \nTools\n\n\n\n_R_CHECK_PERMISSIONS_:\n \nTools\n\n\n\n_R_CHECK_PKGMAN_ELAPSED_TIMEOUT_:\n \nTools\n\n\n\n_R_CHECK_PKG_SIZES_:\n \nTools\n\n\n\n_R_CHECK_PKG_SIZES_THRESHOLD_:\n \nTools\n\n\n\n_R_CHECK_PRAGMAS_:\n \nTools\n\n\n\n_R_CHECK_RD_ALLOW_EMPTY_ITEM_IN_DESCRIBE_:\n \nTools\n\n\n\n_R_CHECK_RD_CHECKRD_MINLEVEL_:\n \nTools\n\n\n\n_R_CHECK_RD_CONTENTS_:\n \nTools\n\n\n\n_R_CHECK_RD_EXAMPLES_T_AND_F_:\n \nTools\n\n\n\n_R_CHECK_RD_LINE_WIDTHS_:\n \nTools\n\n\n\n_R_CHECK_RD_MATH_RENDERING_:\n \nTools\n\n\n\n_R_CHECK_RD_NOTE_LOST_BRACES_:\n \nTools\n\n\n\n_R_CHECK_RD_STYLE_:\n \nTools\n\n\n\n_R_CHECK_RD_VALIDATE_RD2HTML_:\n \nTools\n\n\n\n_R_CHECK_RD_XREFS_:\n \nTools\n\n\n\n_R_CHECK_REPLACING_IMPORTS_:\n \nTools\n\n\n\n_R_CHECK_R_DEPENDS_:\n \nTools\n\n\n\n_R_CHECK_R_ON_PATH_:\n \nTools\n\n\n\n_R_CHECK_S3_METHODS_SHOW_POSSIBLE_ISSUES_:\n \nTools\n\n\n\n_R_CHECK_SCREEN_DEVICE_:\n \nTools\n\n\n\n_R_CHECK_SERIALIZATION_:\n \nTools\n\n\n\n_R_CHECK_SHLIB_OPENMP_FLAGS_:\n \nTools\n\n\n\n_R_CHECK_SKIP_ARCH_:\n \nTools\n\n\n\n_R_CHECK_SKIP_EXAMPLES_ARCH_:\n \nTools\n\n\n\n_R_CHECK_SKIP_TESTS_ARCH_:\n \nTools\n\n\n\n_R_CHECK_SRC_MINUS_W_IMPLICIT_:\n \nTools\n\n\n\n_R_CHECK_SRC_MINUS_W_UNUSED_:\n \nTools\n\n\n\n_R_CHECK_SUBDIRS_NOCASE_:\n \nTools\n\n\n\n_R_CHECK_SUBDIRS_STRICT_:\n \nTools\n\n\n\n_R_CHECK_SUGGESTS_ONLY_:\n \nTools\n\n\n\n_R_CHECK_SYSTEM_CLOCK_:\n \nTools\n\n\n\n_R_CHECK_TESTS_ELAPSED_TIMEOUT_:\n \nTools\n\n\n\n_R_CHECK_TESTS_NLINES_:\n \nTools\n\n\n\n_R_CHECK_TEST_TIMING_CPU_TO_ELAPSED_THRESHOLD_:\n \nTools\n\n\n\n_R_CHECK_THINGS_IN_CHECK_DIR_:\n \nTools\n\n\n\n_R_CHECK_THINGS_IN_OTHER_DIRS_:\n \nTools\n\n\n\n_R_CHECK_THINGS_IN_TEMP_DIR_:\n \nTools\n\n\n\n_R_CHECK_TIMINGS_:\n \nTools\n\n\n\n_R_CHECK_TOPLEVEL_FILES_:\n \nTools\n\n\n\n_R_CHECK_UNDOC_USE_ALL_NAMES_:\n \nTools\n\n\n\n_R_CHECK_UNSAFE_CALLS_:\n \nTools\n\n\n\n_R_CHECK_URLS_SHOW_301_STATUS_:\n \nTools\n\n\n\n_R_CHECK_USE_CODETOOLS_:\n \nTools\n\n\n\n_R_CHECK_USE_INSTALL_LOG_:\n \nTools\n\n\n\n_R_CHECK_VC_DIRS_:\n \nTools\n\n\n\n_R_CHECK_VIGNETTES_NLINES_:\n \nTools\n\n\n\n_R_CHECK_VIGNETTES_SKIP_RUN_MAYBE_:\n \nTools\n\n\n\n_R_CHECK_VIGNETTE_TIMING_CPU_TO_ELAPSED_THRESHOLD_:\n \nTools\n\n\n\n_R_CHECK_WALL_FORTRAN_:\n \nTools\n\n\n\n_R_CHECK_WINDOWS_DEVICE_:\n \nTools\n\n\n\n_R_CHECK_XREFS_MIND_SUSPECT_ANCHORS_:\n \nTools\n\n\n\n_R_CHECK_XREFS_PKGS_ARE_DECLARED_:\n \nTools\n\n\n\n_R_CHECK_XREFS_REPOSITORIES_:\n \nTools\n\n\n\n_R_CHECK_XREFS_USE_ALIASES_FROM_CRAN_:\n \nTools\n\n\n\n_R_INSTALL_LIBS_ONLY_FORCE_DEPENDS_IMPORTS_:\n \nTools\n\n\n\n_R_SHLIB_BUILD_OBJECTS_SYMBOL_TABLES_:\n \nTools\n\n\n\n_R_WIN_CHECK_INVALID_PARAMETERS_:\n \nTools\n\n\nA\n\n\n\n\n\n\nalloca:\n \nMemory allocators\n\n\n\nARGSUSED:\n \nRest of header\n\n\n\nATTRIB:\n \nAttributes\n\n\n\nattribute_hidden:\n \nHiding C entry points\n\n\nC\n\n\n\n\n\n\ncopyMostAttrib:\n \nAttributes\n\n\nD\n\n\n\n\n\n\nDDVAL:\n \nRest of header\n\n\n\ndebug bit:\n \nRest of header\n\n\n\nDispatchGeneric:\n \nArgument evaluation\n\n\n\nDispatchOrEval:\n \nArgument evaluation\n\n\n\ndump.frames:\n \nGlobal environment\n\n\n\nDUPLICATE_ATTRIB:\n \nAttributes\n\n\nE\n\n\n\n\n\n\nemacs:\n \nR coding standards\n\n\n\nerror:\n \nWarnings and errors\n\n\n\nerrorcall:\n \nWarnings and errors\n\n\nG\n\n\n\n\n\n\ngp bits:\n \nRest of header\n\n\nI\n\n\n\n\n\n\ninvisible:\n \nAutoprinting\n\n\nL\n\n\n\n\n\n\nlast.warning:\n \nBase environment\n\n\n\nLEVELS:\n \nRest of header\n\n\nM\n\n\n\n\n\n\nmake:\n \nR coding standards\n\n\n\nmakeinfo:\n \nR coding standards\n\n\n\nMISSING:\n \nRest of header\n\n\n\nMISSING:\n \nMissingness\n\n\n\nmkChar:\n \nThe CHARSXP cache\n\n\n\nmkCharLenCE:\n \nThe CHARSXP cache\n\n\nN\n\n\n\n\n\n\nNAMED:\n \nRest of header\n\n\n\nNAMED:\n \nArgument evaluation\n\n\n\nNAMED:\n \n.Internal vs .Primitive\n\n\n\nnamed bits:\n \nRest of header\n\n\nP\n\n\n\n\n\n\nPerl:\n \nR coding standards\n\n\n\nPRIMPRINT:\n \nAutoprinting\n\n\n\nPRSEEN:\n \nRest of header\n\n\nR\n\n\n\n\n\n\nRdll.hide:\n \nHiding C entry points\n\n\n\nR_alloc:\n \nMemory allocators\n\n\n\nR_AllocStringBuffer:\n \nMemory allocators\n\n\n\nR_BaseNamespace:\n \nNamespaces\n\n\n\nR_Calloc:\n \nMemory allocators\n\n\n\nR_CheckStack:\n \nMemory allocators\n\n\n\nR_CheckStack2:\n \nMemory allocators\n\n\n\nR_Free:\n \nMemory allocators\n\n\n\nR_FreeStringBuffer:\n \nMemory allocators\n\n\n\nR_FreeStringBufferL:\n \nMemory allocators\n\n\n\nR_MissingArg:\n \nMissingness\n\n\n\nR_Realloc:\n \nMemory allocators\n\n\n\nR_Visible:\n \nAutoprinting\n\n\nS\n\n\n\n\n\n\nSETLEVELS:\n \nRest of header\n\n\n\nSET_ARGUSED:\n \nRest of header\n\n\n\nSET_ATTRIB:\n \nAttributes\n\n\n\nSET_DDVAL:\n \nRest of header\n\n\n\nSET_MISSING:\n \nRest of header\n\n\n\nSET_NAMED:\n \nRest of header\n\n\n\nspare bit:\n \nRest of header\n\n\nT\n\n\n\n\n\n\ntrace bit:\n \nRest of header\n\n\nU\n\n\n\n\n\n\nUseMethod:\n \nContexts\n\n\nV\n\n\n\n\n\n\nvmaxget:\n \nMemory allocators\n\n\n\nvmaxset:\n \nMemory allocators\n\n\nW\n\n\n\n\n\n\nwarning:\n \nWarnings and errors\n\n\n\nwarningcall:\n \nWarnings and errors\n\n\n\n\n\n\nJump to:  \n.   _  \nA   C   D   E   G   I   L   M   N   P   R   S   T   U   V   W" + "text": "Jump to:  \n.   _  \nA   C   D   E   G   I   L   M   N   P   R   S   T   U   V   W  \n\n\n\n\n\n\n\nIndex Entry\n \nSection\n\n\n.\n\n\n\n\n\n\n.Device:\n \nBase environment\n\n\n\n.Devices:\n \nBase environment\n\n\n\n.Internal:\n \n.Internal vs .Primitive\n\n\n\n.Last.value:\n \nBase environment\n\n\n\n.Options:\n \nBase environment\n\n\n\n.Primitive:\n \n.Internal vs .Primitive\n\n\n\n.Random.seed:\n \nGlobal environment\n\n\n\n.SavedPlots:\n \nGlobal environment\n\n\n\n.Traceback:\n \nBase environment\n\n\n_\n\n\n\n\n\n\n_R_CHECK_ALL_NON_ISO_C_:\n \nTools\n\n\n\n_R_CHECK_ALWAYS_LOG_VIGNETTE_OUTPUT_:\n \nTools\n\n\n\n_R_CHECK_ASCII_CODE_:\n \nTools\n\n\n\n_R_CHECK_ASCII_DATA_:\n \nTools\n\n\n\n_R_CHECK_AUTOCONF_:\n \nTools\n\n\n\n_R_CHECK_BASHISMS_:\n \nTools\n\n\n\n_R_CHECK_BOGUS_RETURN_:\n \nTools\n\n\n\n_R_CHECK_BROWSER_NONINTERACTIVE_:\n \nTools\n\n\n\n_R_CHECK_BUILD_VIGNETTES_ELAPSED_TIMEOUT_:\n \nTools\n\n\n\n_R_CHECK_BUILD_VIGNETTES_SEPARATELY_:\n \nTools\n\n\n\n_R_CHECK_CLEAN_VIGN_TEST_:\n \nTools\n\n\n\n_R_CHECK_CODETOOLS_PROFILE_:\n \nTools\n\n\n\n_R_CHECK_CODE_ASSIGN_TO_GLOBALENV_:\n \nTools\n\n\n\n_R_CHECK_CODE_ATTACH_:\n \nTools\n\n\n\n_R_CHECK_CODE_CLASS_IS_STRING_:\n \nTools\n\n\n\n_R_CHECK_CODE_DATA_INTO_GLOBALENV_:\n \nTools\n\n\n\n_R_CHECK_CODE_USAGE_VIA_NAMESPACES_:\n \nTools\n\n\n\n_R_CHECK_CODE_USAGE_WITH_ONLY_BASE_ATTACHED_:\n \nTools\n\n\n\n_R_CHECK_CODOC_S4_METHODS_:\n \nTools\n\n\n\n_R_CHECK_COMPACT_DATA_:\n \nTools\n\n\n\n_R_CHECK_COMPILATION_FLAGS_:\n \nTools\n\n\n\n_R_CHECK_CONNECTIONS_LEFT_OPEN_:\n \nTools\n\n\n\n_R_CHECK_CRAN_INCOMING_:\n \nTools\n\n\n\n_R_CHECK_CRAN_INCOMING_REMOTE_:\n \nTools\n\n\n\n_R_CHECK_DATALIST_:\n \nTools\n\n\n\n_R_CHECK_DEPENDS_ONLY_:\n \nTools\n\n\n\n_R_CHECK_DEPENDS_ONLY_DATA_:\n \nTools\n\n\n\n_R_CHECK_DEPENDS_ONLY_EXAMPLES_:\n \nTools\n\n\n\n_R_CHECK_DEPENDS_ONLY_TESTS_:\n \nTools\n\n\n\n_R_CHECK_DEPENDS_ONLY_VIGNETTES_:\n \nTools\n\n\n\n_R_CHECK_DEPRECATED_DEFUNCT_:\n \nTools\n\n\n\n_R_CHECK_DOC_SIZES2_:\n \nTools\n\n\n\n_R_CHECK_DOC_SIZES_:\n \nTools\n\n\n\n_R_CHECK_DONTTEST_EXAMPLES_:\n \nTools\n\n\n\n_R_CHECK_DOT_FIRSTLIB_:\n \nTools\n\n\n\n_R_CHECK_DOT_INTERNAL_:\n \nTools\n\n\n\n_R_CHECK_ELAPSED_TIMEOUT_:\n \nTools\n\n\n\n_R_CHECK_EXAMPLES_ELAPSED_TIMEOUT_:\n \nTools\n\n\n\n_R_CHECK_EXAMPLE_TIMING_CPU_TO_ELAPSED_THRESHOLD_:\n \nTools\n\n\n\n_R_CHECK_EXAMPLE_TIMING_THRESHOLD_:\n \nTools\n\n\n\n_R_CHECK_EXCESSIVE_IMPORTS_:\n \nTools\n\n\n\n_R_CHECK_EXECUTABLES_:\n \nTools\n\n\n\n_R_CHECK_EXECUTABLES_EXCLUSIONS_:\n \nTools\n\n\n\n_R_CHECK_EXIT_ON_FIRST_ERROR_:\n \nTools\n\n\n\n_R_CHECK_FF_CALLS_:\n \nTools\n\n\n\n_R_CHECK_FF_DUP_:\n \nTools\n\n\n\n_R_CHECK_FORCE_SUGGESTS_:\n \nTools\n\n\n\n_R_CHECK_FUTURE_FILE_TIMESTAMPS_:\n \nTools\n\n\n\n_R_CHECK_GCT_N_:\n \nTools\n\n\n\n_R_CHECK_INSTALL_DEPENDS_:\n \nTools\n\n\n\n_R_CHECK_INSTALL_ELAPSED_TIMEOUT_:\n \nTools\n\n\n\n_R_CHECK_INSTALL_TIMING_CPU_TO_ELAPSED_THRESHOLD_:\n \nTools\n\n\n\n_R_CHECK_LENGTH_1_CONDITION_:\n \nTools\n\n\n\n_R_CHECK_LICENSE_:\n \nTools\n\n\n\n_R_CHECK_LIMIT_CORES_:\n \nTools\n\n\n\n_R_CHECK_MATRIX_DATA_:\n \nTools\n\n\n\n_R_CHECK_MBCS_CONVERSION_FAILURE_:\n \nTools\n\n\n\n_R_CHECK_NATIVE_ROUTINE_REGISTRATION_:\n \nTools\n\n\n\n_R_CHECK_NEWS_IN_PLAIN_TEXT_:\n \nTools\n\n\n\n_R_CHECK_NO_RECOMMENDED_:\n \nTools\n\n\n\n_R_CHECK_NO_STOP_ON_TEST_ERROR_:\n \nTools\n\n\n\n_R_CHECK_ONE_TEST_ELAPSED_TIMEOUT_:\n \nTools\n\n\n\n_R_CHECK_ONE_VIGNETTE_ELAPSED_TIMEOUT_:\n \nTools\n\n\n\n_R_CHECK_ORPHANED_:\n \nTools\n\n\n\n_R_CHECK_OVERWRITE_REGISTERED_S3_METHODS_:\n \nTools\n\n\n\n_R_CHECK_PACKAGES_USED_IN_TESTS_USE_SUBDIRS_:\n \nTools\n\n\n\n_R_CHECK_PERMISSIONS_:\n \nTools\n\n\n\n_R_CHECK_PKGMAN_ELAPSED_TIMEOUT_:\n \nTools\n\n\n\n_R_CHECK_PKG_SIZES_:\n \nTools\n\n\n\n_R_CHECK_PKG_SIZES_THRESHOLD_:\n \nTools\n\n\n\n_R_CHECK_PRAGMAS_:\n \nTools\n\n\n\n_R_CHECK_RD_ALLOW_EMPTY_ITEM_IN_DESCRIBE_:\n \nTools\n\n\n\n_R_CHECK_RD_CHECKRD_MINLEVEL_:\n \nTools\n\n\n\n_R_CHECK_RD_CONTENTS_:\n \nTools\n\n\n\n_R_CHECK_RD_EXAMPLES_T_AND_F_:\n \nTools\n\n\n\n_R_CHECK_RD_LINE_WIDTHS_:\n \nTools\n\n\n\n_R_CHECK_RD_MATH_RENDERING_:\n \nTools\n\n\n\n_R_CHECK_RD_NOTE_LOST_BRACES_:\n \nTools\n\n\n\n_R_CHECK_RD_STYLE_:\n \nTools\n\n\n\n_R_CHECK_RD_VALIDATE_RD2HTML_:\n \nTools\n\n\n\n_R_CHECK_RD_XREFS_:\n \nTools\n\n\n\n_R_CHECK_REPLACING_IMPORTS_:\n \nTools\n\n\n\n_R_CHECK_R_DEPENDS_:\n \nTools\n\n\n\n_R_CHECK_R_ON_PATH_:\n \nTools\n\n\n\n_R_CHECK_S3_METHODS_SHOW_POSSIBLE_ISSUES_:\n \nTools\n\n\n\n_R_CHECK_SCREEN_DEVICE_:\n \nTools\n\n\n\n_R_CHECK_SERIALIZATION_:\n \nTools\n\n\n\n_R_CHECK_SHLIB_OPENMP_FLAGS_:\n \nTools\n\n\n\n_R_CHECK_SKIP_ARCH_:\n \nTools\n\n\n\n_R_CHECK_SKIP_EXAMPLES_ARCH_:\n \nTools\n\n\n\n_R_CHECK_SKIP_TESTS_ARCH_:\n \nTools\n\n\n\n_R_CHECK_SRC_MINUS_W_IMPLICIT_:\n \nTools\n\n\n\n_R_CHECK_SRC_MINUS_W_UNUSED_:\n \nTools\n\n\n\n_R_CHECK_SUBDIRS_NOCASE_:\n \nTools\n\n\n\n_R_CHECK_SUBDIRS_STRICT_:\n \nTools\n\n\n\n_R_CHECK_SUGGESTS_ONLY_:\n \nTools\n\n\n\n_R_CHECK_SYSTEM_CLOCK_:\n \nTools\n\n\n\n_R_CHECK_TESTS_ELAPSED_TIMEOUT_:\n \nTools\n\n\n\n_R_CHECK_TESTS_NLINES_:\n \nTools\n\n\n\n_R_CHECK_TEST_TIMING_CPU_TO_ELAPSED_THRESHOLD_:\n \nTools\n\n\n\n_R_CHECK_THINGS_IN_CHECK_DIR_:\n \nTools\n\n\n\n_R_CHECK_THINGS_IN_OTHER_DIRS_:\n \nTools\n\n\n\n_R_CHECK_THINGS_IN_TEMP_DIR_:\n \nTools\n\n\n\n_R_CHECK_TIMINGS_:\n \nTools\n\n\n\n_R_CHECK_TOPLEVEL_FILES_:\n \nTools\n\n\n\n_R_CHECK_UNDOC_USE_ALL_NAMES_:\n \nTools\n\n\n\n_R_CHECK_UNSAFE_CALLS_:\n \nTools\n\n\n\n_R_CHECK_URLS_SHOW_301_STATUS_:\n \nTools\n\n\n\n_R_CHECK_USE_CODETOOLS_:\n \nTools\n\n\n\n_R_CHECK_USE_INSTALL_LOG_:\n \nTools\n\n\n\n_R_CHECK_VALIDATE_UTF8_:\n \nTools\n\n\n\n_R_CHECK_VC_DIRS_:\n \nTools\n\n\n\n_R_CHECK_VIGNETTES_NLINES_:\n \nTools\n\n\n\n_R_CHECK_VIGNETTES_SKIP_RUN_MAYBE_:\n \nTools\n\n\n\n_R_CHECK_VIGNETTE_TIMING_CPU_TO_ELAPSED_THRESHOLD_:\n \nTools\n\n\n\n_R_CHECK_WALL_FORTRAN_:\n \nTools\n\n\n\n_R_CHECK_WINDOWS_DEVICE_:\n \nTools\n\n\n\n_R_CHECK_XREFS_MIND_SUSPECT_ANCHORS_:\n \nTools\n\n\n\n_R_CHECK_XREFS_PKGS_ARE_DECLARED_:\n \nTools\n\n\n\n_R_CHECK_XREFS_REPOSITORIES_:\n \nTools\n\n\n\n_R_CHECK_XREFS_USE_ALIASES_FROM_CRAN_:\n \nTools\n\n\n\n_R_INSTALL_LIBS_ONLY_FORCE_DEPENDS_IMPORTS_:\n \nTools\n\n\n\n_R_SHLIB_BUILD_OBJECTS_SYMBOL_TABLES_:\n \nTools\n\n\n\n_R_WIN_CHECK_INVALID_PARAMETERS_:\n \nTools\n\n\nA\n\n\n\n\n\n\nalloca:\n \nMemory allocators\n\n\n\nARGSUSED:\n \nRest of header\n\n\n\nATTRIB:\n \nAttributes\n\n\n\nattribute_hidden:\n \nHiding C entry points\n\n\nC\n\n\n\n\n\n\ncopyMostAttrib:\n \nAttributes\n\n\nD\n\n\n\n\n\n\nDDVAL:\n \nRest of header\n\n\n\ndebug bit:\n \nRest of header\n\n\n\nDispatchGeneric:\n \nArgument evaluation\n\n\n\nDispatchOrEval:\n \nArgument evaluation\n\n\n\ndump.frames:\n \nGlobal environment\n\n\n\nDUPLICATE_ATTRIB:\n \nAttributes\n\n\nE\n\n\n\n\n\n\nemacs:\n \nR coding standards\n\n\n\nerror:\n \nWarnings and errors\n\n\n\nerrorcall:\n \nWarnings and errors\n\n\nG\n\n\n\n\n\n\ngp bits:\n \nRest of header\n\n\nI\n\n\n\n\n\n\ninvisible:\n \nAutoprinting\n\n\nL\n\n\n\n\n\n\nlast.warning:\n \nBase environment\n\n\n\nLEVELS:\n \nRest of header\n\n\nM\n\n\n\n\n\n\nmake:\n \nR coding standards\n\n\n\nmakeinfo:\n \nR coding standards\n\n\n\nMISSING:\n \nRest of header\n\n\n\nMISSING:\n \nMissingness\n\n\n\nmkChar:\n \nThe CHARSXP cache\n\n\n\nmkCharLenCE:\n \nThe CHARSXP cache\n\n\nN\n\n\n\n\n\n\nNAMED:\n \nRest of header\n\n\n\nNAMED:\n \nArgument evaluation\n\n\n\nNAMED:\n \n.Internal vs .Primitive\n\n\n\nnamed bits:\n \nRest of header\n\n\nP\n\n\n\n\n\n\nPerl:\n \nR coding standards\n\n\n\nPRIMPRINT:\n \nAutoprinting\n\n\n\nPRSEEN:\n \nRest of header\n\n\nR\n\n\n\n\n\n\nRdll.hide:\n \nHiding C entry points\n\n\n\nR_alloc:\n \nMemory allocators\n\n\n\nR_AllocStringBuffer:\n \nMemory allocators\n\n\n\nR_BaseNamespace:\n \nNamespaces\n\n\n\nR_Calloc:\n \nMemory allocators\n\n\n\nR_CheckStack:\n \nMemory allocators\n\n\n\nR_CheckStack2:\n \nMemory allocators\n\n\n\nR_Free:\n \nMemory allocators\n\n\n\nR_FreeStringBuffer:\n \nMemory allocators\n\n\n\nR_FreeStringBufferL:\n \nMemory allocators\n\n\n\nR_MissingArg:\n \nMissingness\n\n\n\nR_Realloc:\n \nMemory allocators\n\n\n\nR_Visible:\n \nAutoprinting\n\n\nS\n\n\n\n\n\n\nSETLEVELS:\n \nRest of header\n\n\n\nSET_ARGUSED:\n \nRest of header\n\n\n\nSET_ATTRIB:\n \nAttributes\n\n\n\nSET_DDVAL:\n \nRest of header\n\n\n\nSET_MISSING:\n \nRest of header\n\n\n\nSET_NAMED:\n \nRest of header\n\n\n\nspare bit:\n \nRest of header\n\n\nT\n\n\n\n\n\n\ntrace bit:\n \nRest of header\n\n\nU\n\n\n\n\n\n\nUseMethod:\n \nContexts\n\n\nV\n\n\n\n\n\n\nvmaxget:\n \nMemory allocators\n\n\n\nvmaxset:\n \nMemory allocators\n\n\nW\n\n\n\n\n\n\nwarning:\n \nWarnings and errors\n\n\n\nwarningcall:\n \nWarnings and errors\n\n\n\n\n\n\nJump to:  \n.   _  \nA   C   D   E   G   I   L   M   N   P   R   S   T   U   V   W" }, { "objectID": "Concept-index.html", diff --git a/search.json b/search.json index 3e04efb..7272332 100644 --- a/search.json +++ b/search.json @@ -1,16 +1,16 @@ [ - { - "objectID": "index.html", - "href": "index.html", - "title": "The R Manuals", - "section": "", - "text": "This is a restyled version of the R manuals, originally provided by the R Development Core team.\n\n\n\n\nAn Introduction to R\nBased on the former 'Notes on R', gives an introduction to the language and how to use R for doing statistical analysis and graphics.\n\n\nR Data Import/Export\nDescribes the import and export facilities available either in R itself or via packages which are available from CRAN.\n\n\nR Installation and Administration\nA guide to installation and administration for R\n\n\nWriting R Extensions\nCovers how to create your own packages, write R help files, and the foreign language (C, C++, Fortran, ...) interfaces.\n\n\nR Language Definition\nDocuments the language per se. That is, the objects that it works on, and the details of the expression evaluation process, which are useful to know when programming R functions.\n\n\nR Internals\nA guide to the internal structures of R and coding standards for the core team working on R itself.\n\n\n\n\n\nThe primary aim of this site is to provide a re-styled and searchable version of the manuals, but we try very hard to keep the actual content as close to the original as possible. The r-styling consists mainly of:\n\nSplitting chapters into separate pages\nAdd code formatting\n\nOriginal R Manuals can be found at https://cran.r-project.org/manuals.html. The manuals in this website are built automatically from the originals using Quarto. Code can be found at https://github.com/rstudio/r-manuals.\nThe original license from the R Core development team explicitly allows modified versions of the original manual, under these terms:\n\nPermission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one." - }, { "objectID": "about.html", "href": "about.html", "title": "About this website", "section": "", "text": "Original R Manuals can be found at https://cran.r-project.org/manuals.html. The manuals in this website are built automatically from the originals using Quarto. You can find the scripts that do the conversion at https://github.com/rstudio/r-manuals." + }, + { + "objectID": "index.html", + "href": "index.html", + "title": "The R Manuals", + "section": "", + "text": "This is a restyled version of the R manuals, originally provided by the R Development Core team.\n\n\n\n\nAn Introduction to R\nBased on the former 'Notes on R', gives an introduction to the language and how to use R for doing statistical analysis and graphics.\n\n\nR Data Import/Export\nDescribes the import and export facilities available either in R itself or via packages which are available from CRAN.\n\n\nR Installation and Administration\nA guide to installation and administration for R\n\n\nWriting R Extensions\nCovers how to create your own packages, write R help files, and the foreign language (C, C++, Fortran, ...) interfaces.\n\n\nR Language Definition\nDocuments the language per se. That is, the objects that it works on, and the details of the expression evaluation process, which are useful to know when programming R functions.\n\n\nR Internals\nA guide to the internal structures of R and coding standards for the core team working on R itself.\n\n\n\n\n\nThe primary aim of this site is to provide a re-styled and searchable version of the manuals, but we try very hard to keep the actual content as close to the original as possible. The r-styling consists mainly of:\n\nSplitting chapters into separate pages\nAdd code formatting\n\nOriginal R Manuals can be found at https://cran.r-project.org/manuals.html. The manuals in this website are built automatically from the originals using Quarto. Code can be found at https://github.com/rstudio/r-manuals.\nThe original license from the R Core development team explicitly allows modified versions of the original manual, under these terms:\n\nPermission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one." } ] \ No newline at end of file