pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/math/R



Module Name:    pkgsrc
Committed By:   mef
Date:           Thu May 14 13:50:46 UTC 2026

Modified Files:
        pkgsrc/math/R: Makefile PLIST distinfo
        pkgsrc/math/R/patches: patch-configure.ac

Log Message:
(math/R) Updated 4.5.3 to 4.6.0

Changes in R 4.6.0:

  Significant User-Visible Changes:

    * The R citation now provides a DOI (10.32614/R.manuals): please
      update your bibliographies accordingly.

    * The default C++ standard has been changed to C++20 where
      available (which it is on all known platforms from 2021 on): if
      not C++17 is used if available otherwise C++ is not supported (as
      before).

      (GCC 16 has also switched to C++20 as its default.)

      Packages can request C++17 if essential.

    * The Sweave driver Rtangle no longer puts empty lines at the end
      of tangled scripts.

  New Features:

    * The default AIC and BIC methods now check whether the methods
      namespace is loaded rather than stats4. They still use
      stats4::logLik (and stats4::nobs), but packages no longer need to
      load stats4 explicitly.

    * confint.default() now also works on S4 objects, as long as
      suitable coef() and vcov() methods exist.

    * binomial(identity) and quasibinomial(identity) now work without
      having to quote the argument.

    * str() now shows more via format() for external pointers.

    * terms(<formula>, specials = *) now treats non-syntactic specials
      more gracefully, thanks to Mikael Jagan's PR#18568.

    * help.start() gets a lib.loc option and its default for
      make.packages.html() is enhanced to allow, e.g., fast access to
      .Library when that contains only base and recommended packages.

    * In *.Rd help files, the \linkS4class macro now also works for
      links to other packages via \linkS4class[<pkg>]{<myClass>}, much
      nicer than the "workaround"
      \link[<pkg>:<myClass>-class]{<myClass>} necessary in earlier
      versions of R.

      Packages with the new syntax need to formally depend on R >=
      4.6.0.

    * tools::analyze_license() now also computes SPDX license
      identifiers, thanks to Thierry Onkelinx and LLuís Revilla.

    * read.dcf() now recognizes lines starting with # as comment lines.
      By Dirk Eddelbuettel, Laurent Gatto and Hugo Gruson.

    * tcltk::tclVersion() now only optionally includes the 'patch
      level', as Tcl full versions can be of the form 8.7a5 or 9.0b1
      without three clear components.

    * untar(tar = "internal") supports extras = "-P" to use unchanged
      the recorded file paths (as many external tar programs do).

    * extSoftVersion()[["zstd"]] now reports the version of the zstd
      compression library if available, thanks to Trevor Davis' patch
      proposal in PR#18914.

    * New logical option() quiet, defaulting to false, set to TRUE by
      R's command-line option --quiet (and similar), now can be
      switched during an R session.  Prompted by Dirk Eddelbuettel's
      proposal in PR#18913.

    * Credentials for basic HTTP authentication with download method
      "libcurl" can now be provided in a netrc file.  The path to the
      file can be specified in options("netrc").

    * tools::deparseLatex() gains a math argument, now used by the
      default bibstyle to format bibentry() fields with $...$ syntax
      via Rd \eqn markup.

    * gzcon() can now decompress a concatenation of compressed streams
      PR#18887.

    * Bibliographic citations and references in Rd files can now be
      auto-generated from bibentries in bibliographic databases in R or
      BibTeX formats.  See
      RShowDoc("R-exts#Bibliographic-citations-and-references") for
      more information.

    * Arguments to loadNamespace() which will be ignored because the
      namespace is already loaded are now noted.

    * chkDots()' optional argument allowed has been implemented thanks
      to Trevor Davis' proposal in PR#18936.

    * New function messageCondition() to create structured "message"
      objects analogous to warningCondition() and errorCondition()
      (PR#18940, by Trevor Davis).

    * wilcox.test() can now perform exact (conditional) inference in
      case of ties.  Based on contributions by Torsten Hothorn.

    * wilcox.test() can now optionally compute improved asymptotic
      p-values by including up to 3 correction terms of the Edgeworth
      series for the normal approximation.

    * barplot(.., orderH = *) for stacked bar plots allows to sort the
      stacks each according to size.

    * New argument panel.first for hist() (via plot.histogram()),
      barplot(), bxp(), and hence implicitly boxplot().  All except the
      former also gain a new panel.last.  Suggested by Marieke Stolte
      and Julian Welz.

    * plot.default() gets a new switch lim2 to indicate that the
      default xlim and ylim range computations only use _jointly_
      finite x- and y-values; indirectly suggested in PR#7986 by Jincai
      Jiang.

    * Rman.css, the stylesheet for the texi2any-generated HTML versions
      of the R manuals, was improved following joint efforts at the 'R
      Dev Days' of useR! 2024 and RSECon25.

    * New system Rd macro \manual{<name>}{<node>} to refer to a
      specific section _etc_ (possibly empty, for Top) of one of the R
      manuals (e.g., R-exts).

    * list.files() now has optional argument fixed to allow literal
      pattern matching.  Suggested and implemented by Duncan Murdoch in
      PR#18925.

    * substring(txt, i1, i2), substr(..) and their replacement versions
      now accept i2 = NULL to mean "to the end_of_string", thus
      fulfilling Kevin Ushey (and others') suggestions in PR#18851.

    * The default method for pretty() gets a new switch bounds for
      completeness, corresponding to .pretty().  Also, it now catches
      typos such as eps.corrected = 2, noted in PR#18521 by Mikko
      Korpela.

    * Plain-text help now renders Rd \describe lists using line breaks
      after item labels.  Set tools::Rd2txt_options(descStyle=NULL) to
      get the old behaviour with a simple space; a "colon" variant is
      also available.

    * x %notin% table newly in base is an idiom for !(x %in% table) and
      provided almost entirely for convenience and code readability,
      from an R-devel suggestion, after many years of private
      definitions mostly hidden in packages, including in R's tools
      package.

    * The default method of sequence() gets a new option recycle to
      swap between current (not fully recycling) and future behaviour
      where all three of (nvec, from, by) are jointly recycled.

    * ftable()s default method and the as.table() method for "ftable"s
      get a perm argument with back compatible default.  The as.table()
      method also gets a named.dim = FALSE switch, no longer creating a
      named dim(<result>) by default.

    * match.arg() gets a new option several.ok = "all", fulfilling the
      wish of Jim Hester in PR#16659.

    * provideDimnames() gets new switch use.names, as proposed
      including patch by Mikael Jagan, in PR#18975.

    * The default summary() is more informative for character vectors,
      optionally resorting to the factor method via the new argument
      character.method = "factor", e.g., when summarizing a data frame
      (PR#16750).

      It also provides more useful summaries for complex vectors, with
      polar determining if polar or cartesian coordinates are more
      relevant; mostly based on a proposal by Mikael Jagan.

    * Error messages from failed Rd \Sexpr code now include the call
      from the original condition (if available).  Warning messages now
      include Rd source locations.

    * When the environment variable R_WARN_BOUNDS_OPT is set to "yes",
      options(warn = val) will check if val is inside -1:2; this may
      happen unconditionally in the future.

    * weighted.residuals() now returns weighted working residuals for
      "glm" objects. It used to return deviance residuals, but these do
      not give the one-step approximated dfbeta values, as pointed out
      by Ravi Varadhan. influence.glm() has been amended so that it now
      returns an object with both a "wt.res" and a "dev.res" element.

    * Several influence measures for "glm" objects have been updated to
      use Pearson residuals rather than deviance residuals (the latter
      are not unbiased) and to not use leave-one-out estimates of
      dispersion in models with fixed dispersion. Thanks to Ravi
      Varadhan for discussions and testing of these updates.

    * R now supports custom binary types which are of the form
      "<system>.binary.<build>" where <system> is lower-case name
      (letters only) of the system and <build> is the name of the build
      (alphanumeric and dashes). The corresponding paths returned by
      contrib.url (which govern the repository layout) with the above
      type= have the form bin/<system>/<build>/contrib/<x.y> where
      <x.y> is the R version without patch level. This is a
      generalisation of the binary types previously supported on macOS.
      In addition, binary packages can have the extensions .tar.bz2,
      .tar.xz, .tar.zst and .tar.zstd with the corresponding
      compression support.

    * The value of .Platform$pkgType which defines the native binary
      type for the current build of R can be overridden with
      R_PLATFORM_PKGTYPE environment variable (previously this was only
      set by the macOS builds of R). This should be typically only done
      by the author of a binary R distribution to define the type of
      binaries supported by that build of R.

    * If R uses custom binary type in its .Platform$pkgType then R CMD
      INSTALL --build will produce
      <package>_<ver>_R_<system>-<build>.tar.xz binary files. Please
      note that future versions may use .zstd compression by default so
      package tooling should support any of the above mentioned
      extensions.

    * New facilities have been introduced for package integrity
      verification and package signing. The optional file SHA256 in a
      package contains SHA-256 hashes, lengths and paths of files
      provided in the package allowing for more reliable integrity
      verification (relative to MD5). This file is now generated by
      default in R CMD INSTALL --build and optionally via R CMD build
      --sha256. A package can be signed by creating a detached GnuPG
      signature file SHA256.sig signing the entirety of the SHA256
      file. Upon installation, the signature is verified using GnuPG,
      thus ensuring the integrity of the SHA256 file and by induction
      all files in the package.  Both source and binary packages can be
      signed. Currently, this only applies to tar-based packages, and
      the command-line GnuPG gpg tool (or equivalent tool named in the
      GPG environment variable) has to be available for signing and
      verification to work. R CMD INSTALL --sign can be used to sign
      binary packages, including its use with --build.  System-wide
      GnuPG keyrings for the R installation can be placed in
      <R_HOME>/etc/keyrings as files with .gpg extensions and will be
      checked first before consulting user's GnuPG keyring (if
      present).

    * Experimentally, several math library (math.h) functions, such as
      exp(.), log1p(), sin(), atanh(), when called from R, are now
      ensured to give fully accurate results in a small neighbourhood
      of special values, such as exp(0) == 1, log1p(0) == 0, etc.  This
      makes R slightly less platform dependent for these functions,
      notably on platforms with less accurate system math libraries,
      see also
      <https://blog.r-project.org/2026/01/30/debugging-sensitivity-to-c-math-library-on-linux/>.

    * Function free1way() implementing semiparametrically efficient
      inference procedures (likelihood- and permutation-based) in
      distribution-free stratified K-sample one-way layouts was added
      to the stats package.  Approximate (via power.free1way.test())
      and simulation-based (utilising rfree1way() for random number
      generation) power-assessment and sample-size planning as well as
      model diagnostics (available from a plot method and
      probability-probability plots in ppplot()) complement the
      functionality.  Provided by Torsten Hothorn.

    * plot.data.frame() now supports a formula argument.

    * New Rd macro \linkS4methods{}, e.g., for easier linking to method
      docs in other packages, proposed and coded by Mikael Jagan in
      PR#18998.

    * Class "difftime" is now also among the S4 "OldClasses".

    * New function bitstring() as a user-friendly wrapper around
      intToBits(), etc.

    * plot.lm() now omits the smoother in the residuals vs leverage
      plot. This never made much sense, but if you really want it, you
      can force the old behaviour by setting panel.raw=panel.smooth.

    * hatvalues() now has a method for nls (nonlinear model) results,
      prompted by the proposal of Patrice Kiener and Heather Turner in
      PR#18897.

    * The Sweave driver RweaveLatex now allows the value of logical and
      numerical chunk options (only) to be the name of an object
      defined in earlier, evaluated code chunks. This is useful to pass
      computed values to options. For options set this way for weaving
      purposes, the Rtangle driver rather uses their default values,
      with a warning.  By Vincent Goulet.

    * The Sweave driver RweaveLatex gains an option to include
      unparsable R code or arbitrary text in code chunks. Chunks marked
      as ignore.on.weave = TRUE are completely ignored on weaving,
      i.e., not even parsed. The chunks however remain written out
      verbatim on tangling.

      Similarly, the driver Rtangle gains an option to control the
      extraction of code chunks. Chunks marked as ignore.on.tangle=TRUE
      are processed as usual on weaving, but left out of the tangled
      scripts (or thrown away when split=TRUE).

      The drivers also support the shorter aliases weave for
      !ignore.on.weave, and tangle for !ignore.on.tangle. A further
      option ignore, available for both drivers, sets ignore.on.weave
      and ignore.on.tangle at once.

      By Vincent Goulet.

    * The Sweave driver Rtangle now provides an option chunk.sep to
      control the separator between code chunks in tangled scripts
      (with an unchanged default of \n\n).  Using check.sep=FALSE omits
      the separator (between two chunks when used as a chunk option).
      By Vincent Goulet.

    * The Sweave driver Rtangle now provides an option extension to
      specify the extension, without the leading dot, for the file name
      of a tangled code chunk when splitting is selected (the option
      has no effect with split=FALSE). If TRUE, the default extension
      of Rtangle (usually .R) is used; if FALSE, no extension is added
      to the file name.  By Vincent Goulet.

    * New function SweaveGetSourceName in package utils to obtain the
      name of the file being woven by an Sweave process launched from
      the command line.  By Vincent Goulet.

  Graphics:

    * The graphics engine version, R_GE_version, has been bumped to 17
      and so packages that provide graphics devices should be
      reinstalled.

      The glyphFont() function gains a variations argument, which
      allows variable font axes to be specified, e.g., c(wght = 100).

      Only the quartz() device and Cairo-based graphics devices (but
      not cairo_pdf()) support variable font axes so far.

  Installation on a Unix-Alike:

    * configure appends bsdtar to the list of command names it tries
      when finding a default for TAR.

    * Failures in building the documentation for the base packages,
      including from parsing their Rd files, are no longer ignored by
      make docs.

    * Building the R manuals now requires Texinfo 6.8 or later.

    * A new LIBR_LDFLAGS defaulting to LDFLAGS allows more flexibility,
      e.g., for distributions such as Gentoo, Debian or Ubuntu, fixing
      PR#18992; additionally a make failure to create libR.pc should no
      longer be ignored, fixing PR#18993; both thanks to Benjamin
      Drung.

  Checking an Installation:

    * There is a new directory tests/C++Standards which contains small
      packages which can be test-installed to check support for various
      C++ standards.  This is principally for use on Windows as on a
      Unix-alike this partially duplicates tests done by configure -
      although it can also be used to test the behaviour of R CMD
      INSTALL on unsupported standards.

  Package Installation:

    * Specifying C++11 or C++14 in src/Makevars has long given a note:
      in 99% of CRAN packages the specification was unnecessary as the
      default C++17 sufficed (in a few cases with a deprecation warning
      from some compilers).

      Support for these standards has been removed: the default C++
      standard will be used.

      R CMD config variables CXX11, CXX14 and their associated
      CXXxxFLAGS, CXXxxPICFLAGS CXXxxSTD, SHLIBCXXxxLD and
      SHLIBCXXxxLDFLAGS variables are no longer supported and reported
      as 'defunct'.

    * When installing binary packages the time stamp in the "Built"
      field is considered even if the package version is identical to
      allow binary package repositories to update binaries without the
      need to increase the package version.

    * The "Built" column returned by installed.packages() and
      old.packages() now contains the full value of the "Built" entry
      from the (installed) DESCRIPTION file. Previously, only the R
      version from the "Built" entry was returned.

    * If the timestamp passed as --built-timestamp to R CMD INSTALL is
      in RFC-2822 form (with time-zone offset) it will be converted to
      ISO UTC form to conform to the format used by R for purposes
      described above. (PR#19037, thanks to Dirk Eddelbuettel)

  C-Level Facilities:

    * New functions GEcreateDD() and GEfreeDD() for allocating (and
      initialising) DevDesc structures.  Can be used by external
      graphics devices.  Satisfies PR#18292.

    * New function R_eval_with_gd() designed to "lock" a graphics
      device during call to eval() within device drawing routines.
      External _on-screen_ graphics devices should consider using this
      function to avoid crashes from the device being closed by the
      user (e.g., a mouse click) during drawing.

    * Declarations for non-API functions LOGICAL0, INTEGER0, REAL0,
      COMPLEX0, and RAW0 have been removed from installed header files.

    * Non-API entry points Rf_acopy_string and Rf_lazy_duplicate have
      been added to those reported by R CMD check.

    * Packages using the non-API functions ATTRIB and SET_ATTRIB will
      now receive check NOTEs.  See 'Writing R Extensions' for
      alternatives to use.

    * R CMD check NOTEs on the use of these non-API entry points have
      been upgraded to WARNINGs in preparation for removing
      declarations and, where possible, hiding these entry points:
      R_nchar, R_tryWrap, Rf_GetOption, R_lsInternal, BODY, FORMALS,
      CLOENV, SET_TYPEOF, STRING_PTR, R_duplicate_attr, getConnection,
      R_data_class, STRING_PTR, SET_OBJECT, ATTRIB, SET_ATTRIB,
      Rf_findVarInFrame3.

    * The deprecated macros CHARACTER_DATA and CHARACTER_POINTER now
      return const pointers since using writable pointers in packages
      is not safe.

    * New function DATAPTR_RW() for use in implementing ALTREP Dataptr
      methods. This function should not be used in any other contexts.

    * New function R_class() as the C equivalent of class() in R.

    * New function Rf_isScalarString.

    * The R_ObjectTable type definitions formerly in R_ext/Callbacks.h
      are now available in the new header file R_ext/ObjectTable.h.
      This new header file should be used in packages instead of
      R_ext/Callbacks.h.

    * Task callback support declared in R_ext/Callbacks.h has been
      enabled again. It was disabled for R 4.5.0.

    * The non-API header file R_ext/PrtUtil.h is no longer copied to
      the installed include directory.

    * New function R_mapAttrib for iterating over the attributes of an
      object.

    * New functions R_altrep_class_name and R_altrep_class_package for
      retrieving the class name symbol and package name symbol of an
      ALTREP object. These should be used instead of ALTREP_CLASS.

    * New function R_getAttributes returns the same result as the R
      function attributes. New functions R_getAttribCount,
      R_getAttribNames, R_hasAttrib, R_nrow, and R_ncol.

    * The function Rf_isFrame has been removed; use Rf_isDataFrame
      instead.

    * The function VECTOR_PTR has been removed.

      The non-API function DATAPTR is no longer declared in an
      installed header file.

    * These entry points are now marked as hidden and no longer have
      declarations in installed header files: ENVFLAGS, EXTPTR_PROT,
      FRAME, ENCLOS, EXTPTR_PTR, EXTPTR_TAG, HASHTAB, IS_S4_OBJECT,
      LEVELS, NAMED, OBJECT, R_shallow_duplicate_attr,
      Rf_isValidString, Rf_lazy_duplicate, Rf_NonNullStringMatch,
      SETLENGTH, SETLEVELS, SET_BODY, SET_CLOENV, SET_ENCLOS,
      SET_FORMALS, SET_ENVFLAGS, SET_FRAME, SET_GROWABLE_BIT,
      SET_HASHTAB, SET_NAMED, SET_S4_OBJECT, SET_TRUELENGTH,
      STDVEC_DATAPTR, TRUELENGTH, UNSET_S4_OBJECT, XTRUELENGTH.

    * New experimental API for working with variable bindings in
      environments. The function R_GetBindingType identifies the
      binding type without forcing a delayed or active binding.  New
      bindings care created by R_MakeDelayedBinding,
      R_MakeForcedBinding and R_MakeMissingBinding.  Delayed and forced
      bindings can be inspected with R_ForcedBindingExpression,
      R_DelayedBindingExpression, and R_DelayedBindingEnvironment.
      Bindings for ... in function call environments can be examined
      with R_findDotsEnv, R_DotsExist, R_DotsLength, R_DotsNames,
      R_DotsElt, R_GetDotType, R_DotDelayedExpression,
      R_DotDelayedEnvironment, and R_DotForcedExpression. Contributed
      by Lionel Henry, Davis Vaughan, and Charlie Gao in PR#18928.

    * New function R_envSymbols returns a vector of the symbols for
      which an environment contains bindings (PR#18928).

    * R CMD check NOTEs on the use of the non-API entry points PRCODE,
      SET_PRCODE, PRENV, SET_PRENV, PRVALUE, SET_PRVALUE,
      R_PromiseExpr, and Rf_allocSExp have been upgraded to WARNINGs in
      preparation for removing declarations and, where possible, hiding
      these entry points.

    * New functions R_getVar and R_getVarEx. In most cases these can be
      used instead of the non-API functions Rf_findVar and
      Rf_findVarInFrame.  Other cases can be handled by the new API for
      working with variable bindings.

    * Packages using any non-API variables will now receive check
      NOTEs.

    * New function R_getRegisteredNamespace finds and returns the
      namespace environment registered for a name, or R_NilValue if
      none is found.

  Utilities:

    * R CMD check now reports further clang warnings including
      -Wkeyword-macro.  This is most commonly seen for the C23 keywords
      bool, true and false, but is also seen for nullptr (C23 and
      C++11). Masking these by macros _may_ generate correct code (but
      not always) and always results in confusing-to-read code.

    * The cascaded stylesheet R.css now adds less vertical white space
      when rendering Rd files' \itemize, \enumerate, and \describe list
      \items to HTML.

      Where R is used via extensive IDEs such as RStudio, their
      maintainers may need to adapt R.css files accordingly.

    * R CMD check when passed a tarball looks at its contents and so no
      longer derives the package name from the tarball name (which can
      now be arbitrary).

    * Package README.md files are now installed and featured in HTML
      help.

    * package.skeleton() now invisibly returns the path of the created
      directory, similar to prompt() et al., and allows creating blank
      skeletons without any R objects.

  Deprecated and Defunct:

    * structure(NULL, <name> = <val>) is now defunct.

    * Three tk*.slaves() functions were deprecated in favor of
      tk*.child() which do need Tcl/Tk version 8.6 or higher.

  Bug Fixes:

    * chol(x, pivot=TRUE) now zeroes the trailing submatrix when the
      algorithm stops early. Following the help page instructions on
      how to reconstruct the matrix in positive semidefinite cases gave
      incorrect results if the rank was 2 or more less than the
      dimension (PR#15853).

    * Profiling "mle" objects (stats4 package) could fail because
      profile MLE used starting value from full MLE. Now starts from
      profile MLE from previous step.

    * Setting attributes on primitive functions is now an error;
      previously it modified without copying (as noticed by Henrik
      Bengtsson on the R-devel mailing list).

      Relatedly, changing the environment() of a primitive function
      does no longer happen and gives a warning (to become an error,
      later).

    * Dataset LifeCycleSavings had a misspelled row name: "Guatamala"
      was corrected to "Guatemala".

    * The Pair(x,y) construction in the formula interface to paired
      tests did not work with the subset argument, due to the absence
      of a [.Pair method, which has now been added.

    * Subsetting "table" objects keeps S3 classes more consistently,
      fixing PR#18845.

    * When browser() is active or when otherwise debugging, R code such
      as if(TRUE) now longer triggers a new browser level, fixing
      PR#18885 (differently than the fix for PR#15770), with thanks to
      Ivan Krylov.

    * text() now truncates labels to maximum length of x and y (if it
      is longer), fixing PR#7084.  Thanks to Heather Turner, Ella Kaye,
      and Philippe Grosjean.

    * <Date> %in% set is again as fast as it was before R 4.3.0, _via_
      a new S3 method mtfrm.Date.

      <character> %in% <Date> and vice versa are now documented to work
      in concordance with == and as an exception to the typical match()
      behaviour which relies on "univariate" mtfrm() alone.

    * It is now possible to convert _to_ "snpc" units via, e.g.,
      grid::convertWidth(), fixing PR#18915. Thanks to Trevor Davis.

    * The precip dataset had typos in the names "Bismarck" and
      "Pittsburgh" (PR#18895).

    * tools::checkReplaceFuns() now deals better with replacement
      methods _not_ available as regular functions in the namespace.

    * length(xpr) <- n now also works for expression vectors, the same
      as for lists, i.e., padding with NULL entries if the length is
      increased.  Thanks to Mikael Jagan's PR#18917.

    * <complex>[i] <- NA now only sets the _real_ part to NA,
      consistently with the as.complex(NA) behaviour since R 4.4.0;
      thanks to Mikael Jagan's PR#18918.

    * format(<list>) calling format.default() now calls generic
      format() on each list element (rather than format.default()).

    * tools::Rd2HTML() detects paragraphs in more cases of
      \Sexpr-generated Rd code, fixing a regression in R 3.6.0
      originally reported by Georgi Boshnakov and later also in
      PR#18470.  An inactive #ifdef block no longer breaks the
      paragraph.

    * Parsing a multi-line string from Rd \Sexpr code no longer doubles
      the newlines.

    * requireNamespace(.., versionCheck = *) now shows an error and
      returns FALSE when the package version check is not fulfilled,
      thanks to Iris Simmons and Trevor Davis's PR#18255.
      Additionally, the versionCheck argument is checked and when
      invalid, an error is signalled to avoid subsequent confusing
      error messages.

    * requireNamespace() now throws an error even if the name space is
      already loaded if it is called with an unmatched argument such as
      quitely = TRUE or quiet = TRUE (argument quietly cannot be
      abbreviated as it follows ...).

    * rep() signals more specific error messages, notably when using
      both times and each optional arguments.  Fixes PR#18926, thanks
      to Ella Kaye and collaborators at useR! 2025's 'R Dev Day'.

    * jitter(x, amount, factor) becomes more robust for non-finite x or
      also negative amount, factor.  help(jitter) is easier to read,
      fixing PR#17279, thanks to its contributors.

    * Plain-text help (Rd2txt) lacked markup for \cited titles, which
      are now wrapped in single quotes.

    * Default column labels are now correctly aligned when printing a
      matrix with right alignment (PR#18943, thanks to Mikael Jagan).

    * poly(fct, n) signals an error again, for a non-ordered factor
      fct, thanks to Roland Fuss' notice on R-devel.

    * terms(<formula>, simplify=TRUE) now works correctly also in the
      cases where the formula has more than one term with NAs such as
      f(u, b=NA) or g(NA), finally fixing PR#15275 thanks to Mikael
      Jagan's patch.

    * The help page example(matplot) now correctly labels Sepal vs
      Petal dimensions in its first iris data plot, thanks to Jeff
      Dick's post on R-devel.

    * diff(m, lag, dif) for matrix m now still returns matrices, also
      when lag * dif > nrow(m) (PR#18972, thanks to Mikael Jagan and
      Suharto Anggono).  diff(<ts-matrix>) remains matrix, even when it
      has length zero.

    * Values returned by active binding functions are now marked as not
      mutable to prevent unintended mutation in complex assignment
      operations.

    * The default method of sequence() now allows to fully recycle all
      three of (nvec, from, by) as always documented; with thanks to
      Mikael Jagan's report and patch in PR#18304.  Its behaviour
      remains back compatible for now, but can be switched to future
      behaviour via environment variable R_sequence_recycle, or
      explicit recycle = TRUE.

    * Subassignment, x[ind] <- val, to 1-dimensional arrays no longer
      "drops" them to simple vectors when ind is a name, fixing
      PR#18973, reported by Thomas Soeiro.

    * The implicitGeneric definition for toeplitz() produced a default
      method that failed when toeplitz(x, r) was called with more than
      the first argument.  Simple fix from Mikael Jagan.

    * The error message for array(dim = c()) now uses "'dim'", thanks
      to Hugo Gruson.

    * Some legal but strange nested complex assignments are handled a
      bit more robustly in interpreted code.

    * cacheMetaData() does not to mangle primitive generics.

    * The S4 method norm(<ANY>, type = <missing>) for the implicit
      generic norm() now uses type = "O" as has been the intention for
      more than ten years, fixing PR#18979 thanks to Mikael Jagan.

    * On Windows terminals Ctrl-C now breaks out of waiting for
      keyboard input, fixing PR#18982.

    * The default summary() and its factor method now label missing
      values NAs rather than NA's, fixing a decades-old grammatical
      faux pas inherited from S (PR#16348 and PR#18948).

    * Asymmetric toeplitz(x, r) is type consistent now, even when r of
      length 0 or 1 is not used directly.  Fixes PR#18996, thanks to
      Mikael Jagan's patch and test.

    * format(r) now keeps names(r) also for raw objects r.

    * rep.int() and rep_len() again drop names also for factors, fixing
      a regression in R 4.0.0.  (Thanks to a report by Rui Barradas and
      PR#18999 by Suharto Anggono.)

    * str(x) with a list-like x of a class having an str() S3 method
      using NextMethod(), now no longer outputs "List of <...>" in the
      default method, thanks to Ian Farm's report and fix proposal in
      PR#19001.

    * as.POSIXlt(ch), as.Date(ch) etc now also work correctly when ch
      contains "Inf", via strptime(.), fixing PR#19006.

    * c(<POSIXlt>, ..) now fully preserves sub-second accuracy,
      fulfilling a part of Suharto Anggono's wishlist PR#18989.

    * When subassigning "POSIXlt", e.g., <dat>[i] <- v, v is now
      converted to the time zone of dat, before being assigned, see
      PR#18919.

    * The "tzcode" attribute of "POSIXlt" objects should no longer
      depend on earlier calls, fixing PR#19005 thanks to Ivan Krylov, a
      patch by Suharto Anggono and reports of "Non-deterministic
      POSIXlt tzone in Europe/London .." on R-devel.

    * In intervals with very low density cdplot() was unreliable,
      returning probabilities that are greater than one or NaN
      (PR#19011).  Fix from Christoph Dalitz and Achim Zeileis.

    * R CMD build now installs packages providing their own vignette
      engine (PR#18191).  Patch by Paul Smith.

    * ar.burg(), ar.yw() and ar.ols() deal better with non finite AIC
      values thanks to Simone Giannerini's remarks on R-devel.

    * Parsing deeply nested expressions no longer should segfault in
      certain circumstances, fixing five different checks on context
      stack size, thanks to Kevin Ushey's report and Michael Chirico's
      patch in PR#18994.

    * The internal cwilcox function used in computations for the
      Wilcoxon distribution is now based on an implementation of a
      formula by Andreas Löffler provided by Andreas Löffler, Aidan
      Lakshman, and Ivan Krylov, substantially reducing the memory
      complexity of the original implementation (PR#18655).

    * When Ops group methods for matrix-"ts" return a zero-extent
      matrix, its type is correct now.  E.g., <int> + <dbl> now returns
      type "double", see also PR#18972.

    * intToUtf8(<negative>) now returns NA and no longer accesses
      invalid memory, thanks to Kevin Ushey's report with patch in
      PR#19052.

    * When file.choose() is terminated with an EOF, it now signals an
      error rather than returning garbage, thanks to Kevin Ushey's
      report and patch in PR#19053,


To generate a diff of this commit:
cvs rdiff -u -r1.283 -r1.284 pkgsrc/math/R/Makefile
cvs rdiff -u -r1.46 -r1.47 pkgsrc/math/R/PLIST
cvs rdiff -u -r1.117 -r1.118 pkgsrc/math/R/distinfo
cvs rdiff -u -r1.16 -r1.17 pkgsrc/math/R/patches/patch-configure.ac

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/math/R/Makefile
diff -u pkgsrc/math/R/Makefile:1.283 pkgsrc/math/R/Makefile:1.284
--- pkgsrc/math/R/Makefile:1.283        Wed May 13 21:57:26 2026
+++ pkgsrc/math/R/Makefile      Thu May 14 13:50:46 2026
@@ -1,12 +1,13 @@
-# $NetBSD: Makefile,v 1.283 2026/05/13 21:57:26 mef Exp $
+# $NetBSD: Makefile,v 1.284 2026/05/14 13:50:46 mef Exp $
 
 #
 # If updating this package, please try to ensure PLIST.Darwin is kept in sync
 # to avoid unnecessarily breaking macOS users.
 #
-DISTNAME=      R-4.5.3
+DISTNAME=      R-4.6.0
 CATEGORIES=    math
 MASTER_SITES=  ${MASTER_SITE_R_CRAN:=base/R-4/}
+EXTRACT_SUFX=  .tar.xz
 
 MAINTAINER=    pkgsrc-users%NetBSD.org@localhost
 HOMEPAGE=      https://www.R-project.org/

Index: pkgsrc/math/R/PLIST
diff -u pkgsrc/math/R/PLIST:1.46 pkgsrc/math/R/PLIST:1.47
--- pkgsrc/math/R/PLIST:1.46    Wed May 13 21:57:26 2026
+++ pkgsrc/math/R/PLIST Thu May 14 13:50:46 2026
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.46 2026/05/13 21:57:26 mef Exp $
+@comment $NetBSD: PLIST,v 1.47 2026/05/14 13:50:46 mef Exp $
 bin/R
 bin/Rscript
 info/R-FAQ.info.gz
@@ -179,9 +179,9 @@ lib/R/include/R_ext/Lapack.h
 lib/R/include/R_ext/Linpack.h
 lib/R/include/R_ext/MathThreads.h
 lib/R/include/R_ext/Memory.h
+lib/R/include/R_ext/ObjectTable.h
 lib/R/include/R_ext/Parse.h
 lib/R/include/R_ext/Print.h
-lib/R/include/R_ext/PrtUtil.h
 lib/R/include/R_ext/QuartzDevice.h
 lib/R/include/R_ext/RS.h
 lib/R/include/R_ext/RStartup.h
@@ -229,7 +229,6 @@ lib/R/library/KernSmooth/po/fr/LC_MESSAG
 lib/R/library/KernSmooth/po/it/LC_MESSAGES/R-KernSmooth.mo
 lib/R/library/KernSmooth/po/ko/LC_MESSAGES/R-KernSmooth.mo
 lib/R/library/KernSmooth/po/pl/LC_MESSAGES/R-KernSmooth.mo
-lib/R/library/lattice/help/figures/logo.svg
 lib/R/library/MASS/CITATION
 lib/R/library/MASS/DESCRIPTION
 lib/R/library/MASS/INDEX
@@ -858,6 +857,7 @@ lib/R/library/lattice/NEWS.md
 lib/R/library/lattice/R/lattice
 lib/R/library/lattice/R/lattice.rdb
 lib/R/library/lattice/R/lattice.rdx
+lib/R/library/lattice/README.md
 lib/R/library/lattice/data/Rdata.rdb
 lib/R/library/lattice/data/Rdata.rds
 lib/R/library/lattice/data/Rdata.rdx
@@ -871,6 +871,7 @@ lib/R/library/lattice/doc/grid.pdf
 lib/R/library/lattice/doc/index.html
 lib/R/library/lattice/help/AnIndex
 lib/R/library/lattice/help/aliases.rds
+lib/R/library/lattice/help/figures/logo.svg
 lib/R/library/lattice/help/lattice.rdb
 lib/R/library/lattice/help/lattice.rdx
 lib/R/library/lattice/help/paths.rds
@@ -1048,6 +1049,7 @@ lib/R/library/rpart/NEWS.Rd
 lib/R/library/rpart/R/rpart
 lib/R/library/rpart/R/rpart.rdb
 lib/R/library/rpart/R/rpart.rdx
+lib/R/library/rpart/README.md
 lib/R/library/rpart/data/Rdata.rdb
 lib/R/library/rpart/data/Rdata.rds
 lib/R/library/rpart/data/Rdata.rdx
@@ -1331,7 +1333,8 @@ lib/R/library/tools/help/tools.rdx
 lib/R/library/tools/html/00Index.html
 lib/R/library/tools/html/R.css
 lib/R/library/tools/libs/tools.so
-lib/R/library/tools/wre.txt
+lib/R/library/tools/misc/top.txt
+lib/R/library/tools/misc/wre.txt
 lib/R/library/translations/DESCRIPTION
 lib/R/library/translations/ar/LC_MESSAGES/R-base.mo
 lib/R/library/translations/ar/LC_MESSAGES/R-methods.mo
@@ -1833,6 +1836,9 @@ lib/R/library/utils/R/utils.rdb
 lib/R/library/utils/R/utils.rdx
 lib/R/library/utils/Sweave/Sweave-test-1.Rnw
 lib/R/library/utils/Sweave/example-1.Rnw
+lib/R/library/utils/Sweave/example-2.Rnw
+lib/R/library/utils/Sweave/example-3.Rnw
+lib/R/library/utils/Sweave/example-4.Rnw
 lib/R/library/utils/doc/Sweave.pdf
 lib/R/library/utils/help/AnIndex
 lib/R/library/utils/help/aliases.rds
@@ -1845,8 +1851,8 @@ lib/R/library/utils/iconvlist
 lib/R/library/utils/libs/utils.so
 lib/R/library/utils/misc/exDIF.csv
 lib/R/library/utils/misc/exDIF.dif
-${PLIST.x11}lib/R/modules/R_X11.so
-${PLIST.x11}lib/R/modules/R_de.so
+lib/R/modules/R_X11.so
+lib/R/modules/R_de.so
 lib/R/modules/internet.so
 lib/R/modules/lapack.so
 lib/R/share/R/REMOVE.R
@@ -1855,18 +1861,35 @@ lib/R/share/R/examples-header.R
 lib/R/share/R/nspackloader.R
 lib/R/share/R/tests-startup.R
 lib/R/share/Rd/macros/system.Rd
+lib/R/share/bibliographies/R.rds
+lib/R/share/bibliographies/base.R
+lib/R/share/bibliographies/datasets.R
+lib/R/share/bibliographies/grDevices.R
+lib/R/share/bibliographies/graphics.R
+lib/R/share/bibliographies/grid.R
+lib/R/share/bibliographies/methods.R
+lib/R/share/bibliographies/parallel.R
+lib/R/share/bibliographies/splines.R
+lib/R/share/bibliographies/stats.R
+lib/R/share/bibliographies/utils.R
 lib/R/share/dictionaries/R_Rd_files.rds
+lib/R/share/dictionaries/R_Rd_files.txt
 lib/R/share/dictionaries/R_manuals.rds
+lib/R/share/dictionaries/R_manuals.txt
 lib/R/share/dictionaries/R_vignettes.rds
+lib/R/share/dictionaries/R_vignettes.txt
 lib/R/share/dictionaries/en_stats.rds
+lib/R/share/dictionaries/en_stats.txt
 lib/R/share/encodings/Adobe-glyphlist
 lib/R/share/encodings/character-sets
 lib/R/share/java/README
 lib/R/share/java/getsp.class
 lib/R/share/licenses/AGPL-3
+lib/R/share/licenses/Apache-2.0
 lib/R/share/licenses/Artistic-2.0
 lib/R/share/licenses/BSD_2_clause
 lib/R/share/licenses/BSD_3_clause
+lib/R/share/licenses/CC0-1.0
 lib/R/share/licenses/GPL-2
 lib/R/share/licenses/GPL-3
 lib/R/share/licenses/LGPL-2

Index: pkgsrc/math/R/distinfo
diff -u pkgsrc/math/R/distinfo:1.117 pkgsrc/math/R/distinfo:1.118
--- pkgsrc/math/R/distinfo:1.117        Wed May 13 21:57:26 2026
+++ pkgsrc/math/R/distinfo      Thu May 14 13:50:46 2026
@@ -1,9 +1,9 @@
-$NetBSD: distinfo,v 1.117 2026/05/13 21:57:26 mef Exp $
+$NetBSD: distinfo,v 1.118 2026/05/14 13:50:46 mef Exp $
 
-BLAKE2s (R-4.5.3.tar.gz) = 587e35a109716f1521c896d772b19d5d3af06c4ea82c3a0e45af2c49fd52bc89
-SHA512 (R-4.5.3.tar.gz) = 9481ba6a8584954954d754116d45cbaec4f7003e2f1b1b450b05df6487e0f87950949e20c6a6805e5429b55a0f00208c1c1ef9a05fa3cc8c8d220fe9963cc56b
-Size (R-4.5.3.tar.gz) = 40518619 bytes
-SHA1 (patch-configure.ac) = 17caa1621e93a04be23fc037805fd7240a52d17b
+BLAKE2s (R-4.6.0.tar.xz) = d51fbdc7b1c102086e9395971f6b2a2fc03fc6d9588da35cad810ef56f8e4ea5
+SHA512 (R-4.6.0.tar.xz) = d891378209298169781d7a785bc959aabf6cb79754e2d303245ce87fa5f1b5c77817a365a6adf4bc64d283bb72a4d774811332ee80638cae2390649bb2934b37
+Size (R-4.6.0.tar.xz) = 30948604 bytes
+SHA1 (patch-configure.ac) = d688dfd94d987b3b22d20bb040ff44ee3612f3ad
 SHA1 (patch-src_extra_xdr_xdr__mem.c) = 2e607b070db8b24a6ad5501e9c7c1549bf1b1d82
 SHA1 (patch-src_extra_xdr_xdr__stdio.c) = 91ea16599693e9dc14e631880fbe1c52f0f2009f
 SHA1 (patch-src_include_R__ext_Error.h) = 2d1eaebff5e57d73d301f7e818daa0b959a5c0f2

Index: pkgsrc/math/R/patches/patch-configure.ac
diff -u pkgsrc/math/R/patches/patch-configure.ac:1.16 pkgsrc/math/R/patches/patch-configure.ac:1.17
--- pkgsrc/math/R/patches/patch-configure.ac:1.16       Tue Apr 14 10:33:41 2026
+++ pkgsrc/math/R/patches/patch-configure.ac    Thu May 14 13:50:46 2026
@@ -1,4 +1,4 @@
-$NetBSD: patch-configure.ac,v 1.16 2026/04/14 10:33:41 jperkin Exp $
+$NetBSD: patch-configure.ac,v 1.17 2026/05/14 13:50:46 mef Exp $
 
 Do not add any system paths to R_LD_LIBRARY_PATH, it conflicts at runtime
 with what has been correctly written to the RPATH.
@@ -25,8 +25,8 @@ release    line # 
 10.99.12   4770   withval=$with_blas; if test "${withval}" = no; then
  9.3       4392   withval=$with_blas; R_ARG_USE(blas)
 
---- configure.ac.orig  2025-04-20 22:15:02.000000000 +0000
-+++ configure.ac
+--- configure.ac.orig  2026-03-27 08:02:02.000000000 +0900
++++ configure.ac       2026-05-14 21:35:51.308108681 +0900
 @@ -33,6 +33,7 @@ m4_define([R_VERSION],
  AC_INIT([R],[R_VERSION],[https://bugs.r-project.org],[R],[https://www.r-project.org])
  AC_CONFIG_SRCDIR([src/include/Defn.h])
@@ -64,6 +64,15 @@ release    line # 
      ## don't use version in libRblas so we can replace it with any BLAS implementation
      RBLAS_LDFLAGS="-install_name libRblas.dylib -headerpad_max_install_names"
      ;;
+@@ -1961,7 +1964,7 @@ if test -z "${CXX20}"; then
+   use_CXX20=no
+ fi
+ if test -n "${CXX}" && test -z "${CXXSTD}"; then
+-  if test "$use_CXX20" == "yes"; then
++  if test "$use_CXX20" = "yes"; then
+ dnl Set default C++ compiler to C++20 as available
+     CXX=${CXX20}
+     CXXSTD=${CXX20STD}
 @@ -2895,7 +2898,7 @@ for arg in ${LDFLAGS} ${FLIBS} ${BLAS_LI
    case "${arg}" in
      -L*)



Home | Main Index | Thread Index | Old Index