| % File src/library/base/man/capabilities.Rd |
| % Part of the R package, https://www.R-project.org |
| % Copyright 1995-2021 R Core Team |
| % Distributed under GPL 2 or later |
| |
| \name{capabilities} |
| \alias{capabilities} |
| \title{Report Capabilities of this Build of R} |
| \description{ |
| Report on the optional features which have been compiled into this |
| build of \R. |
| } |
| \usage{ |
| capabilities(what = NULL, |
| Xchk = any(nas \%in\% c("X11", "jpeg", "png", "tiff"))) |
| } |
| \arguments{ |
| \item{what}{character vector or \code{NULL}, specifying |
| required components. \code{NULL} implies that all are required.} |
| \item{Xchk}{\code{\link{logical}} with a smart default, indicating if |
| X11-related capabilities should be fully checked, notably on macOS. |
| If set to false, may avoid a warning \dQuote{No protocol specified} |
| and e.g., the "X11" capability may be returned as \code{NA}.} |
| } |
| #ifdef unix |
| \section{Note to macOS users}{ |
| Capabilities \code{"jpeg"}, \code{"png"} and \code{"tiff"} refer to |
| the X11-based versions of these devices. If |
| \code{capabilities("aqua")} is true, then these devices with |
| \code{type = "quartz"} will be available, and out-of-the-box will be the |
| default type. Thus for example the \code{\link{tiff}} device will be |
| available if \code{capabilities("aqua") || capabilities("tiff")} if |
| the defaults are unchanged. |
| } |
| #endif |
| \value{ |
| A named logical vector. Current components are |
| \item{jpeg}{is the \code{\link{jpeg}} function operational?} |
| \item{png}{is the \code{\link{png}} function operational?} |
| \item{tiff}{is the \code{\link{tiff}} function operational?} |
| \item{tcltk}{is the \pkg{tcltk} package operational? |
| #ifdef unix |
| Note that to make use of Tk you will almost always need to check |
| that \code{"X11"} is also available. |
| #endif |
| } |
| #ifdef unix |
| \item{X11}{are the \code{\link{X11}} graphics device and the |
| X11-based data editor available? This loads the X11 module if not |
| already loaded, and checks that the default display can be |
| contacted unless a \code{X11} device has already been used.} |
| |
| \item{aqua}{is the \code{\link{quartz}} function operational? |
| Only on some macOS builds, including \acronym{CRAN} binary |
| distributions of \R. |
| |
| Note that this is distinct from \code{.Platform$GUI == "AQUA"}, |
| which is true only when using the Mac \code{R.app} GUI console.} |
| #endif |
| #ifdef windows |
| \item{X11}{always \code{FALSE} on Windows.} |
| \item{aqua}{\code{FALSE} except on macOS.} |
| #endif |
| \item{http/ftp}{does the default method for \code{\link{url}} and |
| \code{\link{download.file}} support \samp{http://} and \samp{ftp://} |
| URLs? Always \code{TRUE} as from \R 3.3.0. However, in recent |
| versions the default method is \code{"libcurl"} which depends on an |
| external library and it is conceivable that library might not |
| support \samp{ftp://} in future.} |
| \item{sockets}{are \code{\link{make.socket}} and related functions |
| available? Always \code{TRUE} as from \R 3.3.0.} |
| \item{libxml}{is there support for integrating \code{libxml} with |
| the \R event loop? \code{TRUE} as from \R 3.3.0, \code{FALSE} as |
| from \R 4.2.0.} |
| \item{fifo}{are FIFO \link{connections} supported?} |
| \item{cledit}{is command-line editing available in the current \R |
| session? This is false in non-interactive sessions. |
| #ifdef unix |
| It will be true for the command-line interface if \code{readline} |
| support has been compiled in and \option{--no-readline} was |
| \emph{not} used when \R was invoked. (If \option{--interactive} |
| was used, command-line editing will not actually be available.) |
| #endif |
| } |
| \item{iconv}{is internationalization conversion via |
| \code{\link{iconv}} supported? Always true in current \R.} |
| \item{NLS}{is there Natural Language Support (for message translations)?} |
| \item{Rprof}{is there support for \code{\link{Rprof}()} profiling? This |
| is true if \R was configured (before compilation) with default settings |
| which include \command{--enable-R-profiling}.} |
| \item{profmem}{is there support for memory profiling? See |
| \code{\link{tracemem}}.} |
| \item{cairo}{is there support for the \code{\link{svg}}, |
| \code{\link{cairo_pdf}} and \code{\link{cairo_ps}} devices, and |
| for \code{type = "cairo"} in the \code{\link{bmp}}, |
| \code{\link{jpeg}}, \code{\link{png}} and \code{\link{tiff}} |
| devices? |
| #ifdef unix |
| Prior to \R 4.1.0 this also indicated Cairo support in the |
| \code{\link{X11}} device, but it is now possible to build \R with |
| Cairo support for the bitmap devices without support for the |
| \code{X11} device (usually when that is not supported at all). |
| #endif |
| } |
| |
| \item{ICU}{is ICU available for collation? See the help on |
| \link{Comparison} and \code{\link{icuSetCollate}}: it is never |
| used for a C locale.} |
| |
| \item{long.double}{does this build use a \code{C} \code{long double} |
| type which is longer than \code{double}? Some platforms do not |
| have such a type, and on others its use can be suppressed by the |
| configure option \option{--disable-long-double}. |
| |
| Although not guaranteed, it is a reasonable assumption that if |
| present long doubles will have at least as much range and accuracy |
| as the ISO/IEC 60559 80-bit \sQuote{extended precision} format. Since |
| \R{}\sspace{}4.0.0 \code{\link{.Machine}} gives information on the |
| long-double type (if present). |
| } |
| |
| \item{libcurl}{is \code{libcurl} available in this build? Used by |
| function \code{\link{curlGetHeaders}} and optionally by |
| \code{\link{download.file}} and \code{\link{url}}. As from \R |
| 3.3.0 always true for Unix-alikes, and as from \R 4.2.0 true on Windows.} |
| } |
| \seealso{ |
| \code{\link{.Platform}}, \code{\link{extSoftVersion}}, and |
| \code{\link{grSoftVersion}} (and links there) |
| for availability of capabilities \emph{external} to \R but |
| used from \R functions. |
| } |
| \examples{ |
| capabilities() |
| |
| if(!capabilities("ICU")) |
| warning("ICU is not available") |
| |
| ## Does not call the internal X11-checking function: |
| capabilities(Xchk = FALSE) |
| |
| ## See also the examples for 'connections'. |
| } |
| \keyword{utilities} |