pkgsrc-WIP-changes archive

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

(math/R) updated 4.3.2 to 4.3.3, see COMMIT_MSG



Module Name:	pkgsrc-wip
Committed By:	Makoto Fujiwara <makoto%ki.nu@localhost>
Pushed By:	mef
Date:		Sat Mar 9 12:54:03 2024 +0900
Changeset:	25e70b02979b2df37d283c46f0c2520b47d19a59

Modified Files:
	R/COMMIT_MSG
	R/Makefile
	R/PLIST
	R/distinfo
	R/patches/patch-configure.ac
	R/patches/patch-m4_R.m4
Added Files:
	R/patches/patch-src_include_R__ext_Error.h
	R/patches/patch-src_library_stats_src_Makefile.in
	R/patches/patch-src_main_character.c
Removed Files:
	R/TODO

Log Message:
(math/R) updated 4.3.2 to 4.3.3, see COMMIT_MSG

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=25e70b02979b2df37d283c46f0c2520b47d19a59

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

diffstat:
 R/COMMIT_MSG                                      | 1026 ++-------------------
 R/Makefile                                        |   30 +-
 R/PLIST                                           |   14 +-
 R/TODO                                            |   95 --
 R/distinfo                                        |   15 +-
 R/patches/patch-configure.ac                      |   22 +-
 R/patches/patch-m4_R.m4                           |   16 +-
 R/patches/patch-src_include_R__ext_Error.h        |   16 +
 R/patches/patch-src_library_stats_src_Makefile.in |   14 +
 R/patches/patch-src_main_character.c              |   24 +
 10 files changed, 164 insertions(+), 1108 deletions(-)

diffs:
diff --git a/R/COMMIT_MSG b/R/COMMIT_MSG
index 9e4b8aa228..c1d3aa16df 100644
--- a/R/COMMIT_MSG
+++ b/R/COMMIT_MSG
@@ -1,987 +1,99 @@
-(math/R) Updated 4.2.3 to 4.3.2 with remedy for strtoi
+(math/R) Updated 4.3.2 to 4.3.3
 
-- pkgsrc side change
-  strtoi function now conflicts with NetBSD function. Renaming R' side one
-  into strtoiR (All the strings for now) by SUBST, thus including do_strtoi.
-
-- upstream info
-CHANGES IN R 4.3.2:
+CHANGES IN R 4.3.3:
 
   NEW FEATURES:
 
-         * The default initialization of the '"repos"' option from the
-           'repositories' file at startup can be skipped by setting
-           environment variable 'R_REPOSITORIES' to 'NULL' such that
-           'getOption("repos")' is empty if not set elsewhere.
-
-         * 'qr.X()' is now an implicit S4 generic in 'methods'.
-
-         * 'iconv(to = "ASCII//TRANSLIT")' is emulated using
-           substitution on platforms which do not support it (notably
-           Alpine Linux).  This should give a human-readable conversion
-           in ASCII on all platforms (rather than 'NA_character_').
-
-         * 'trans3d()' gains options 'continuous' and 'verbose'
-           addressing the problem of possible "wrap around" when
-           projecting too long curves, as reported by Achim Zeileis in
-           PR#18537.
-
-         * 'tools::showNonASCII()' has been rewritten to work better on
-           macOS 14 (which has a changed implementation of 'iconv()').
-
-         * 'tiff(type = "quartz")' (the default on macOS) now warns if
-           'compression' is specified: it continues to be ignored.
-
-  INSTALLATION on a UNIX-ALIKE:
-
-         * There is some support for building with Intel's LLVM-based
-           compilers on 'x86_64' Linux, such as (C) 'icx', (C++) 'ipcx'
-           and (Fortran) 'ifx' from oneAPI 2023.x.y.
-
-         * There is support for using LLVM's 'flang-new' as the Fortran
-           compiler from LLVM 16.0.x (preferably 17.0.0 or later).
-
-  UTILITIES:
-
-         * 'R CMD check' reports the use of the Fortran 90 random
-           number generator 'RANDOM_NUMBER()' and the subroutines to
-           initialize it.
-
-           'Writing R Extensions' has example code to use R's RNGs from
-           Fortran.
-
-  BUG FIXES:
-
-         * 'substr(x, n, L) <- cc' now works (more) correctly for
-           multibyte UTF-8 strings 'x' when 'L > nchar(x)', thanks to a
-           report and patch by 'Architect 95'.
-
-         * 'contrib.url(character())' now returns 0-length
-           'character()' as documented, which also avoids spurious
-           warnings from 'available.packages()' et al. in the edge case
-           of an empty vector of repository URLs.
-
-         * 'readChar(., 4e8)' no longer fails, thanks to Kodi Arfer's
-           report (PR#18557).
-
-         * 'lapply(<list>, as.data.frame)' no longer warns falsely for
-           some base vector components.
-
-         * Communication between parent and child processes in the
-           'multicore' part of 'parallel' could fail on platforms that
-           do not support an arbitrarily large payload in system
-           functions 'read()'/'write()' on pipes (seen on macOS where a
-           restriction to 'INT_MAX' bytes is documented, without doing
-           a partial read unlike Linux). The payload is now split into
-           1Gb chunks to avoid that problem. (PR#18571)
-
-         * 'qqplot(x,y, conf.level=.)' gives better confidence bounds
-           when 'length(x) != length(y)', thanks to Alexander Ploner's
-           report and patch proposal (PR#18557).
-
-         * 'norm(<0-length>, "2")' now gives zero instead of an error,
-           as all the other norm types, thanks to Mikael Jagan's
-           PR#18542.
-
-         * Build-stage Rd macros \packageAuthor and \packageMaintainer
-           now process 'Authors@R', fixing 'NA' results when the
-           package 'DESCRIPTION' omits 'Author' and 'Maintainer'
-           fields.
-
-         * Formatting and printing complex numbers could give things
-           like '0.1683-0i' because of rounding error: '-0i' is now
-           replaced by '+0i'.
-
-         * 'postscript()' refused to accept a 'title' comment
-           containing the letter "W" (PR#18599).
-
-         * 'isoreg(c(1,Inf))' signals an error instead of segfaulting,
-           fixing PR#18603.
-
-         * 'tiff(type = "Xlib")' was only outputting the last page of
-           multi-page plots.
-
-         * 'tools::latexToUtf8()' again knows about '\~{n}' and other
-           letters with tilde, fixing a regression in R 4.3.0, and
-           about '\^{i}' as an alternative to '\^{\i}' (similarly with
-           other accents).  Furthermore, LaTeX codes for accented I
-           letters are now correctly converted, also fixing related
-           mistakes in 'tools::encoded_text_to_latex()'.
-
-         * 'tar(*, tar = "internal")' no longer creates out-of-spec tar
-           files in the very rare case of user or group names longer
-           than 32 bytes, fixing PR#17871 with thanks to Ivan Krylov.
-
-         * When using the "internal" timezone datetime code, adding a
-           fraction of a second no longer adds one second, fixing
-           PR#16856 from a patch by Ivan Krylov.
-
-         * 'tools::checkRd()' no longer produces spurious notes about
-           "unnecessary braces" from multi-line Rd results of \Sexpr
-           macros.
-
-CHANGES IN R 4.3.1:
-
-  C-LEVEL FACILITIES:
-
-         * The C-level API version of R's 'integrate()', 'Rdqags()' in
-           'Applic.h', now returns the correct number of integrand
-           evaluations 'neval', fixing PR#18515 reported and diagnosed
-           by Stephen Wade.
-
-         * The C prototypes for LAPACK calls 'dspgv' and 'dtptrs' in
-           'R_exts/Lapack.h' had one too many and one too few character
-           length arguments - but this has not caused any known issues.
-           To get the corrected prototypes, include
-
-                   #include <Rconfig.h> // for PR18534fixed
-                   #ifdef PR18534fixed
-                   # define usePR18534fix 1
-                   #endif
-                   #include <R_exts/Lapack.h>
-           
-           in your C/C++ code (PR#18534).
-
-  INSTALLATION:
-
-         * Many of the checks of esoteric Internet operations and those
-           using unreliable external sites have been moved to a new
-           target that is not run by default and primarily intended for
-           the core developers.  To run them use
-
-                   cd tests; make test-Internet-dev
-           
-  BUG FIXES:
-
-         * '.S3methods()', typically called from 'methods()', again
-           marks methods from package 'base' as 'visible'.
-
-           Also, the visibility of non-'base' methods is again
-           determined by the method's presence in 'search()'.
-
-         * 'tools::Rdiff()' is now more robust against invalid strings,
-           fixing installation tests on Windows without Rtools
-           installed (PR#18530).
-
-         * Fix (new) bug in 'hcl.colors(2, *)', by Achim Zeileis
-           (PR#18523).
-
-         * 'head(., <illegal>)' and 'tail(..)' now produce more useful
-           '"Error in ...."' error messages, fixing PR#18362.
-
-         * Package code syntax on Windows is checked in UTF-8 when
-           UTF-8 is the native encoding.
-
-         * 'na.contiguous(x)' now also returns the first run, when it
-           is at the beginning and there is a later one of the same
-           length; reported to R-devel, including a fix, by Georgi
-           Boshnakov.  Further, by default, it modifies only an
-           existing 'attr(*,"tsp")' but otherwise no longer sets one.
-
-         * 'chol(<not pos.def>, pivot = <T|F>)' now gives a correct
-           error or warning message (depending on 'pivot'), thanks to
-           Mikael Jagan's (PR#18541).
-
-CHANGES IN R 4.3.0:
-
-  SIGNIFICANT USER-VISIBLE CHANGES:
-
-         * Calling '&&' or '||' with LHS or (if evaluated) RHS of
-           length greater than one is now always an error, with a
-           report of the form
-
-               'length = 4' in coercion to 'logical(1)'
-           
-           Environment variable '_R_CHECK_LENGTH_1_LOGIC2_' no longer
-           has any effect.
-
-  NEW FEATURES:
-
-         * The included BLAS sources have been updated to those shipped
-           with LAPACK version 3.10.1.  (This caused some
-           platform-dependent changes to package check output.)  And
-           then to the sources from LAPACK version 3.11.0 (with changes
-           only to double complex subroutines).
-
-         * The included LAPACK sources have been updated to include the
-           four Fortran 90 routines rather than their Fortran 77
-           predecessors.  This may give some different signs in SVDs or
-           eigendecompositions..  (This completes the transition to
-           LAPACK 3.10.x begun in R 4.2.0.)
-
-         * The LAPACK sources have been updated to version 3.11.0.  (No
-           new subroutines have been added, so this almost entirely bug
-           fixes: Those fixes do affect some computations with 'NaN's,
-           including R's 'NA'.)
-
-         * The parser now signals _classederrors, notably in case of
-           the pipe operator '|>'.  The error object and message now
-           give line and column numbers, mostly as proposed and
-           provided by Duncan Murdoch in PR#18328.
-
-         * 'toeplitz()' is now generalized for asymmetric cases, with a
-           'toeplitz2()' variant.
-
-         * 'xy.coords()' and 'xyz.coords()' and consequently, e.g.,
-           'plot(x,y, log = "y")' now signal a _classedwarning about
-           negative values of y (where 'log(.)' is 'NA').  Such a
-           warning can be specifically suppressed or caught otherwise.
-
-         * Regular expression functions now check more thoroughly
-           whether their inputs are valid strings (in their encoding,
-           e.g. in UTF-8).
-
-         * The performance of 'grep()', 'sub()', 'gsub()' and
-           'strsplit()' has been improved, particularly with 'perl =
-           TRUE' and 'fixed = TRUE'.  Use of 'useBytes = TRUE' for
-           performance reasons should no longer be needed and is
-           discouraged: it may lead to incorrect results.
-
-         * 'apropos()' gains an argument 'dot_internals' which is used
-           by the completion ('help(rcompgen)') engine to also see
-           'base' internals such as '.POSIXct()'.
-
-         * Support in 'tools::Rdiff()' for comparing uncompressed PDF
-           files is further reduced - see its help page.
-
-         * 'qqplot(x, y, ...)' gains 'conf.level' and 'conf.args'
-           arguments for computing and plotting a confidence band for
-           the treatment function transforming the distribution of 'x'
-           into the distribution of 'y ' (Switzer, 1976, _Biometrika_).
-           Contributed by Torsten Hothorn.
-
-         * Performance of 'package_dependencies()' has been improved
-           for cases when the number of dependencies is large.
-
-         * Strings newly created by 'gsub()', 'sub()' and 'strsplit()',
-           when any of the inputs is marked as '"bytes"', are also
-           marked as '"bytes"'.  This reduces the risk of creating
-           invalid strings and accidental substitution of bytes deemed
-           invalid.
-
-         * Support for 'readLines(encoding = "bytes")' has been added
-           to allow processing special text files byte-by-byte, without
-           creating invalid strings.
-
-         * 'iconv(from = "")' now takes into account any declared
-           encoding of the input elements and uses it in preference to
-           the native encoding.  This reduces the risk of accidental
-           creation of invalid strings, particularly when different
-           elements of the input have different encoding (including
-           '"bytes"').
-
-         * Package repositories in 'getOption("repos")' are now
-           initialized from the 'repositories' file when 'utils' is
-           loaded (if not already set, e.g., in '.Rprofile').  (From a
-           report and patch proposal by Gabriel Becker in PR#18405.)
-
-         * 'compactPDF()' gets a 'verbose' option.
-
-         * 'type.convert()' and hence 'read.table()' get new option
-           'tryLogical = TRUE' with back compatible default.  When set
-           to false, converts '"F"' or '"T"' columns to character.
-
-         * Added new unit prefixes '"R"' and '"Q"' for abbreviating
-           (unrealistically large) sizes beyond 10^{27} in 'standard =
-           "SI"', thanks to Henrik Bengtsson's PR#18435.
-
-         * 'as.data.frame()''s default method now also works fine with
-           atomic objects inheriting from classes such as '"roman"',
-           '"octmode"' and '"hexmode"', such fulfilling the wish of
-           PR#18421, by Benjamin Feakins.
-
-         * The 'as.data.frame.vector()' utility now errors for
-           wrong-length 'row.names'.  It warned for almost six years,
-           with "Will be an error!".
-
-         * 'sessionInfo()' now also contains 'La_version()' and reports
-           codepage and timezone when relevant, in both 'print()' and
-           'toLatex()' methods which also get new option 'tzone' for
-           displaying timezone information when 'locale = FALSE'.
-
-         * New function 'R_compiled_by()' reports the C and Fortran
-           compilers used to build R, if known.
-
-         * 'predict(<lm>, newdata = *)' no longer unnecessarily creates
-           an 'offset' of all '0's.
-
-         * 'solve()' for complex inputs now uses argument 'tol' and by
-           default checks for 'computational singularity' (as it long
-           has done for numeric inputs).
-
-         * 'predict(<rank-deficient lm>, newdata=*)' now obeys a new
-           argument 'rankdeficient', with new default '"warnif"',
-           warning only if there are non-estimable cases in 'newdata'.
-           Other options include 'rankdeficient = "NA"', predicting
-           'NA' for non-estimable 'newdata' cases.  This addresses
-           PR#15072 by Russ Lenth and is based on his original proposal
-           and discussions in PR#16158 also by David Firth and Elin
-           Waring.  Still somewhat experimental.
-
-         * 'Rgui' console implementation now works better with the
-           'NVDA' screen reader when the full blinking cursor is
-           selected.  The underlying improvements in cursor handling
-           may help also other screen readers on Windows.
-
-         * The drop-field control in GraphApp can now be left with the
-           TAB key and all controls can be navigated in the reverse
-           order using the Shift+TAB key, improving accessibility of
-           the 'Rgui' configuration editor.
-
-         * 'qnorm(<very large negative>, log.p=TRUE)' is now fully
-           accurate (instead of to "only" minimally five digits).
-
-         * 'demo(error.catching)' now also shows off 'withWarnings()'
-           and 'tryCatchWEMs()'.
-
-         * As an experimental feature the placeholder '_' can now also
-           be used in the 'rhs' of a forward pipe '|>' expression as
-           the first argument in an extraction call, such as '_$coef'.
-           More generally, it can be used as the head of a chain of
-           extractions, such as '_$coef[[2]]'.
-
-         * Spaces in the environment variable used to choose the R
-           session's temporary directory ('TMPDIR', 'TMP' and 'TEMP'
-           are tried in turn) are now fatal.  (On Windows the 'short
-           path' version of the path is tried and used if that does not
-           contain a space.)
-
-         * 'all.equal.numeric()' gets a new optional switch 'giveErr'
-           to return the numeric error as attribute.  Relatedly,
-           'stopifnot(all.equal<some>(a, b, ..))' is as "smart" now, as
-           'stopifnot(all.equal(....))' has been already, thus allowing
-           customized 'all.equal<Some>()' wrappers.
-
-         * R on Windows is now able to work with path names longer than
-           260 characters when these are enabled in the system
-           (requires at least Windows 10 version 1607).  Packages
-           should be updated to work with long paths as well, instead
-           of assuming 'PATH_MAX' to be the maximum length.  Custom
-           front-ends and applications embedding R need to update their
-           manifests if they wish to allow this feature.  See
-           <https://blog.r-project.org/2023/03/07/path-length-limit-on-windows>
-           for more information.
-
-         * 'Object not found' and 'Missing argument' errors now give a
-           more accurate error context. Patch provided by Lionel Henry
-           in PR#18241.
-
-         * The '@' operator is now an S3 generic. Based on
-           contributions by Tomasz Kalinowski in PR#18482.
-
-         * New generic 'chooseOpsMethod()' provides a mechanism for
-           objects to resolve cases where two suitable methods are
-           found for an Ops Group Generic. This supports experimenting
-           with alternative object systems. Based on contributions by
-           Tomasz Kalinowski in PR#18484.
-
-         * 'inherits(x, what)' now accepts values other than a simple
-           character vector for argument 'what'. A new generic,
-           'nameOfClass()', is called to resolve the class name from
-           'what'. This supports experimenting with alternative object
-           systems. Based on contributions by Tomasz Kalinowski in
-           PR#18485.
-
-         * Detection of BLAS/LAPACK in use ('sessionInfo()') with
-           FlexiBLAS now reports the current backend.
-
-         * The '"data.frame"' method for 'subset()' now warns about
-           extraneous arguments, typically catching the use of '='
-           instead of '==' in the 'subset' expression.
-
-         * Calling 'a:b' when numeric 'a' or 'b' is longer than one may
-           now be made into an error by setting environment variable
-           '_R_CHECK_LENGTH_COLON_' to a true value, along the proposal
-           in PR#18419 by Henrik Bengtsson.
-
-         * 'density(x, weights = *)' now warns if automatic bandwidth
-           selection happens without using 'weights'; new optional
-           'warnWbw' may suppress the warning.  Prompted by Christoph
-           Dalitz' PR#18490 and its discussants.
-
-         * 'rm(list = *)' is faster and more readable thanks to Kevin
-           Ushey's PR#18492.
-
-         * The 'plot.lm()' function no longer produces a normal Q-Q
-           plot for GLMs. Instead it plots a half-normal Q-Q plot of
-           the absolute value of the standardized deviance residuals.
-
-         * The 'print()' method for class '"summary.glm"' no longer
-           shows summary statistics for the deviance residuals by
-           default.  Its optional argument 'show.residuals' can be used
-           to show them if required.
-
-         * The 'tapply()' function now accepts a data frame as its 'X'
-           argument, and allows 'INDEX' to be a formula in that case.
-           'by.data.frame()' similarly allows 'INDICES' to be a
-           formula.
-
-         * The performance of 'df[j] <- value' (including for missing
-           'j') and 'write.table(df)' has been improved for data frames
-           'df' with a large number of columns.  (Thanks to Gabriel
-           Becker's PR#18500, PR#18503 and discussants, prompted by a
-           report from Toby Dylan Hocking on the R-devel mailing list.)
-
-         * The matrix multiply operator '%*%' is now an S3 generic,
-           belonging to new group generic 'matrixOps'.  From Tomasz
-           Kalinowski's contribution in PR#18483.
-
-         * New function 'array2DF()' to convert arrays to data frames,
-           particularly useful for the list arrays created by
-           'tapply()'.
-
-  DATES and TIMES:
-
-         * On platforms where (non-UTC) datetimes before 1902 (or
-           before 1900 as with system functions on recent macOS) are
-           guessed by extrapolating time zones from 1902-2037, there is
-           a warning at the first use of extrapolation in a session.
-           (As all time zones post 2037 are extrapolation, we do not
-           warn on those.)
-
-         * (Platforms using '--with-internal-tzone', including Windows
-           and by default macOS). How years are printed in dates or
-           date-times can be controlled by environment variable
-           'R_PAD_YEARS_BY_ZERO'.  The default remains to pad to 4
-           digits by zeroes, but setting value 'no' gives no padding
-           (as used by default by 'glibc').
-
-         * 'strftime()' tries harder to determine the offset for the
-           '"%z"' format, and succeeds on the mainstream R platforms.
-
-         * 'strftime()' has a limit of 2048 bytes on the string
-           produced - attempting to exceed this is an error.
-           (Previously it silently truncated at 255 bytes.)
-
-         * 'sessionInfo()' records (and by default prints) the system
-           time zone as part of the locale information.  Also, the
-           source (system/internal) of the date-time conversion and
-           printing functions.
-
-         * Objects of class '"POSIXlt"' created in this version of R
-           always have 11 components: component 'zone' is always set,
-           and component 'gmtoff' is set for times in UTC and usually
-           set on the (almost all) platforms which have C-level
-           support, otherwise is 'NA'.
-
-         * There are comprehensive validity checks on the structure of
-           objects of class '"POSIXlt"' when converting (including
-           formatting and printing).  (This avoids mis-conversions of
-           hand-crafted objects.)
-
-         * There is some support for using the native date-time
-           routines on macOS: this is only viable on recent versions
-           (e.g. 12.6 and 13) and does get wrong some historical
-           changes (before 1900, during WWII).  Use of
-           '--with-internal-tzone' remains the default.
-
-         * 'as.POSIXct(<numeric>)' and 'as.POSIXlt(.)' (without
-           specifying 'origin') now work.  So does
-           'as.Date(<numeric>)'.
-
-         * 'as.Date.POSIXct(., tz)' now treats several 'tz' values,
-           notably '"GMT"' as equivalent to '"UTC"', proposed and
-           improved by Michael Chirico and Joshua Ulrich in PR#17674.
-
-         * Experimental 'balancePOSIXlt()' utility allows using
-           "ragged" and or out-of-range '"POSIXlt"' objects more
-           correctly, e.g., in subsetting and subassignments.  Such
-           objects are now documented.
-
-           More experimentally, a '"POSIXlt"' object may have an
-           attribute '"balanced"' indicating if it is known to be
-           filled or fully balanced.
-
-         * Functions 'axis.Date()' and 'axis.POSIXct()' are rewritten
-           to gain better default tick locations and better default
-           formats by using 'prettyDate()'. Thanks to Swetlana
-           Herbrandt.
-
-         * The mapping of Windows' names for time zones to IANA's
-           'Olson' names has been updated.  When ICU is available (it
-           is by default), it is used to get a mapping for the current
-           region set in Windows.  This can be overridden by setting
-           environment variable 'TZ' to the desired Olson name - see
-           'OlsonNames()' for those currently available.
-
-  GRAPHICS:
-
-         * The graphics engine version, 'R_GE_version', has been bumped
-           to '16' and so packages that provide graphics devices should
-           be reinstalled.
-
-         * The 'grDevices' and 'grid' packages have new functions for
-           rendering typeset glyphs, primarily:
-           'grDevices::glyphInfo()' and 'grid::grid.glyph()'.
-
-           Rendering of typeset glyphs is only supported so far on the
-           Cairo-based graphics devices and on the 'pdf()' and
-           'quartz()' devices.
-
-         * The defined behaviour for '"clear"' and '"source"'
-           compositing operators (via 'grid::grid.group()') has been
-           changed (to align better with simple interpretation of
-           original Porter-Duff definitions).
-
-         * Support for gradients, patterns, clipping paths, masks,
-           groups, compositing operators, and affine transformations
-           has been added to the 'quartz()' device.
-
-  INSTALLATION on a UNIX-ALIKE:
-
-         * A system installation of generic LAPACK 3.10.0 or later will
-           be preferred to the version in the R sources.
-
-           'configure' option '--with-lapack=no' (equivalently
-           '--without-lapack') forces compilation of the internal
-           LAPACK sources.
-
-           If '--with-lapack' is not specified, a system 'liblapack' is
-           looked for and used if it reports version 3.10.0 or later
-           and does not contain BLAS routines.
-
-           Packages using LAPACK will need to be reinstalled if this
-           changes to using an external library.
-
-         * On 'aarch64' Linux platforms using GCC, 'configure' now
-           defaults to '-fPIC' (instead of '-fpic'), as desired in
-           PR#18326.
-
-         * 'configure' now checks conversion of datetimes between
-           'POSIXlt' and 'POSIXct' around year 2020.  Failure (which
-           has been seen on platforms missing 'tzdata') is fatal.
-
-         * If 'configure' option '--with-valgrind-instrumentation' is
-           given value '1' or '2', option
-           '--with-system-valgrind-headers' is now the default and
-           ignored (with a warning).  It is highly recommended that the
-           system headers are installed alongside 'valgrind': they are
-           part of its packaging on some Linux distributions and
-           packaged separately (e.g. in the 'valgrind-devel' RPM) on
-           others.  'configure' will give a warning if they are not
-           found.
-
-           The system headers will be required in a future release of R
-           to build with 'valgrind' instrumentation.
-
-         * 'libcurl' 8.x is now accepted by 'configure': despite a
-           change in major version number it changes neither API nor
-           ABI.
-
-  INSTALLATION on WINDOWS:
-
-         * The makefiles and installer scripts for Windows have been
-           tailored to 'Rtools43', an update of the 'Rtools42'
-           toolchain.  It is based on 'gcc' 12 and newer versions of
-           MinGW-W64, binutils and libraries.  At this time R-devel can
-           still be built using Rtools42 without changes, but when
-           R-devel is installed via the installer, it will by default
-           look for Rtools43.
-
-         * Old make targets 'rsync-extsoft' and 32-bit ones that are no
-           longer needed have been removed.
-
-         * Default builds (including for packages) no longer select
-           C99.  Thus the C standard used is the default for the
-           compiler, which for the toolchain in 'Rtools43' is C17.
-           (This is consistent with Unix builds.)
-
-  PACKAGE INSTALLATION:
-
-         * The default C++ standard has been changed to C++17 where
-           available (which it is on all currently checked platforms):
-           if not C++14 or C++11 is used if available otherwise C++ is
-           not supported.
-
-         * 'USE_FC_LEN_T' is the default: this uses the correct
-           (compiler-dependent) prototypes for Fortran BLAS/LAPACK
-           routines called from C/C++, and requires adjustment of many
-           such calls - see 'Writing R Extensions' <c2><a7>6.6.1.
-
-         * There is initial support for C++23 as several compilers are
-           now supporting '-std=c++23' or '-std=c++2b' or similar.  As
-           for C++20, there no additional 'configure' checks for C++23
-           features beyond a check that the compiler reports a
-           '__cplusplus' value greater than that in the C++20 standard.
-           C++ feature tests should be used.
-
-         * There is support for a package to indicate the version of
-           the C standard which should be used to compile it, and for
-           the installing user to specify this.  In most cases R
-           defaults to the C compiler's default standard which is C17
-           (a `bug-fix' of C11) - earlier versions of R or compilers
-           may have defaulted to C99.
-
-           Current options are:
-
-           USE_C17 Use a standard that is at most C17.  The intention
-               is to allow legacy packages to still be installed when
-               later C standards become the default, including packages
-               using new keywords as identifiers or with K&R-style
-               function declarations.  This will use C17 if available,
-               falling back to C11.
-
-           USE_C90 Use the C90 (aka C89) standard.  (As that standard
-               did not require compilers to identify that version, all
-               we can verify is that the compiler does not claim to be
-               using a later standard.  It may accept C99 features -
-               for example 'clang' accepts // to make comments.)
-
-           USE_C99 Use the C99 standard. This should be rarely needed -
-               it avoids the few new features of C11/C17 which can be
-               useful if a package assumes them if C17 is specified and
-               they are not implemented.
-
-           USE_C23 Use C23 (or in future, later).  Compiler/library
-               support for C23 is still being implemented, but LLVM
-               clang from 15.0.0 and the upcoming GCC 13 have quite
-               extensive support.
-
-           These can be specified as part of the 'SystemRequirements'
-           field in the package's 'DESCRIPTION' file or _viaoptions
-           '--use-C17' and so on of 'R CMD INSTALL' and 'R CMD SHLIB'.
-
-           For further details see "Writing R Extensions" <c2><a7>1.2.5.
-
-         * (Windows) A 'src/Makefile.ucrt' or 'src/Makefile.win' file
-           is now included after 'R_HOME/etcR_ARCH/Makeconf' and so no
-           longer needs to include that file itself.  Installation of a
-           package with such a file now uses a site 'Makevars' file in
-           the same way as a package with a 'src/Makevars.win' file
-           would.
-
-         * 'configure' is now passed crucial variables such as 'CC' and
-           'CFLAGS' in its environment, as many packages were not
-           setting them (as documented in 'Writing R Extensions' <c2><a7>1.2).
-
-           This has most effect where 'configure' is used to compile
-           parts of the package - most often by 'cmake' or 'libtool'
-           which obfuscate the actual compile commands used.
-
-           Also used for 'configure.win' and 'configure.ucrt' on
-           Windows.
-
-  FORTRAN FLAGS:
-
-         * The flag '-fno-optimize-sibling-calls' is no longer forced
-           for 'gfortran' 7 and later.  It should no longer be needed
-           now using 'hidden' character-length arguments when calling
-           BLAS/LAPACK routines from C/C++ is the default even for
-           packages.  (Unless perhaps packages call Fortran code from
-           C/C++ without using R's headers and without allowing for
-           these arguments.)
-
-  C-LEVEL FACILITIES:
-
-         * The deprecated S-compatibility macros 'DOUBLE_*' in
-           'R_ext/Constants.h' (included by 'R.h') have been removed.
-
-         * The deprecated legacy typedefs of 'Sint' and 'Sfloat' in
-           header 'R.h' are no longer defined, and that header no
-           longer includes header 'limits.h' from C nor 'climits' from
-           C++.
-
-         * New macro 'CAD5R()' is provided in 'Rinternals.h' and used
-           in a few places in the R sources.
-
-         * ALTREP now supports 'VECSXP' vectors. Contributed by Gabor
-           Csardi in PR#17620.
-
-         * The 'Rcomplex' definition (in header 'R_ext/Complex.h') has
-           been extended to prevent possible mis-compilation when
-           interfacing with Fortran (PR#18430).  The new definition
-           causes compiler warnings with static initializers such as
-           '{1, 2}', which can be changed to '{.r=1, .i=2}'.
-
-           Using the new definition from C++ depends on compiler
-           extensions supporting C features that have not been
-           incorporated into the C++ standards but are available in
-           'g++' and 'clang++': this may result in C++ compiler
-           warnings but these have been worked around for recent
-           versions of common compilers (GCC, Apple/LLVM clang, Intel).
-
-           It is intended to change the inclusion of header
-           'R_ext/Complex.h' by other R headers, so C/C++ code files
-           which make use of 'Rcomplex' should include that header
-           explicitly.
-
-  UTILITIES:
-
-         * 'R CMD check' does more checking of package '.Rd' files,
-           warning about invalid email addresses and (some) invalid
-           URIs and noting empty '\item' labels in description lists.
-
-         * 'R CMD check' now also reports problems when reading package
-           news in md (file 'NEWS.md') and (optionally) plain text
-           (file 'NEWS') formats.
-
-         * '_R_CHECK_TIMINGS_' defaults to a value from the environment
-           even for 'R CMD check --as-cran'; this allows for
-           exceptionally fast or slow platforms.
-
-           It now applies to checking PDF and HTML versions of the
-           manuals, and 'checking CRAN incoming feasibility'.
-
-         * 'R CMD check' can optionally (but included in '--as-cran')
-           check whether HTML math rendering _viaKaTeX works for the
-           package '.Rd' files.
-
-         * Non-interactive debugger invocations can be trapped by
-           setting the environment variable
-           '_R_CHECK_BROWSER_NONINTERACTIVE_' to a true value.  This is
-           enabled by 'R CMD check --as-cran' to detect the use of
-           leftover 'browser()' statements in the package.
-
-         * The use of 'sprintf' and 'vsprintf' from C/C++ has been
-           deprecated in macOS 13 and is a known security risk.  'R CMD
-           check' now reports (on all platforms) if their use is found
-           in compiled code: replace by 'snprintf' or 'vsnprintf'
-           respectively. [*NB:* whether such calls get compiled into
-           the package is platform-dependent.]
-
-         * Where recorded at installation, 'R CMD check' reports the C
-           and Fortran compilers used to build R.
-
-           It reports the OS in use (if known, as given by 'osVersion')
-           as well as that R was built for.
-
-           It notes if a C++ standard was specified which is older than
-           the current default: many packages have used C++11 to mean
-           'not C++98' - as C++11 is the minimum supported since R
-           4.0.0, that specification can probably be removed.
-
-         * 'R CMD INSTALL' reports the compilers (and on macOS, the
-           SDK) used, and this is copied to the output of 'R CMD
-           check'.
-
-           Where a C++ standard is specified, it is reported.
-
-         * 'R CMD check''s 'checking compilation flags in Makevars' has
-           been relaxed to accept the use of flags such as '-std=f2008'
-           in 'PKG_FFLAGS'.
-
-         * 'tools::buildVignettes()' has a new argument 'skip', which
-           is used by 'R CMD check' to skip (and note) vignettes with
-           unavailable '\VignetteDepends' (PR#18318).
-
-         * New generic '.AtNames()' added to enable class-specific
-           completions after '@'. The formerly internal function
-           'findMatches()' is now exported, mainly for use in methods
-           for '.DollarNames()' and '.AtNames()'.
+         * 'iconv()' now fixes up variant encoding names such as
+           '"utf8"' case-insensitively.
 
   DEPRECATED AND DEFUNCT:
 
-         * 'default.stringsAsFactors()' is defunct.
-
-         * Calling 'as.data.frame.<class>()' directly (for 12 atomic
-           classes) is going to be formally deprecated, currently
-           activated by setting the environment variable
-           '_R_CHECK_AS_DATA_FRAME_EXPLICIT_METHOD_' to non-empty,
-           which also happens in 'R CMD check --as-cran'.
+         * The legacy 'encoding = "MacRoman"' is deprecated in 'pdf()'
+           and 'postscript()': support was incomplete in earlier
+           versions of R.
 
   BUG FIXES:
 
-         * Hashed 'environment's with sizes less than 5 can now grow.
-           (Reported to R-devel by Duncan Garmonsway.)
-
-         * 'as.character(<Rd>, deparse = TRUE)' failed to re-escape
-           curly braces in LaTeX-like text.  (Reported by Hadley
-           Wickham in PR#18324.)
-
-         * 'library()' now passes its 'lib.loc' argument when requiring
-           'Depends' packages; reported (with fix) in PR#18331 by
-           Mikael Jagan.
-
-         * 'R CMD Stangle': improved message about 'Output' files.
-
-         * 'head(x, n)' and 'tail(x, n)' now signal an error if 'n' is
-           not numeric, instead of incidentally "working" sometimes
-           returning all of 'x'.  Reported and discussed by Colin Fay,
-           in PR#18357.
-
-         * The '"lm"' method for 'summary()' now gives the correct
-           F-statistic when the model contains an offset.  Reported in
-           PR#18008.
-
-         * 'C()' and '`contrasts<-`()' now preserve factor level names
-           when given a function object (as opposed a function name
-           which did preserve names). Reported in PR#17616.
-
-         * 'c(a = 1, 2)[[]]' no longer matches '2' but rather signals a
-           _classederror.  Reported and analysed by Davis Vaughan in
-           PR#18367, a duplicate of PR#18004, by Jan Meis et al.  For
-           consistency, 'NULL[[]]' is also erroneous now.  'x[[]] <- v'
-           gives an error of the same class '"MissingSubscriptError"'.
-
-         * The 'relist()' function of 'utils' now supports 'NULL'
-           elements in the skeleton (PR#15854).
-
-         * 'ordered(levels = *)' (missing 'x') now works analogously to
-           'factor(, ordered=TRUE)'; reported (with fix) by Achim
-           Zeileis in PR#18389.
-
-         * User-defined Rd macro definitions can now span multiple
-           lines, thanks to a patch from Duncan Murdoch. Previously,
-           the Rd parser silently ignored everything after the first
-           line.
-
-         * Plain-text help ('tools::Rd2txt()') now preserves an initial
-           blank line for text following description list items.
-
-         * 'tools::Rd2HTML()' and 'tools::Rd2latex()' no longer split
-           \arguments and \value lists at Rd comments.
-
-         * 'tools::Rd2latex()' now correctly handles optional text
-           outside \items of argument lists as well as bracketed text
-           at the beginning of sections, e.g., \value{[NULL]}.
-
-         * 'as.character(<POSIXt>)' now behaves more in line with the
-           methods for atomic vectors such as numbers, and is no longer
-           influenced by 'options()'.  Ditto for
-           'as.character(<Date>)'.  The 'as.character()' method gets
-           arguments 'digits' and 'OutDec' with defaults _not_
-           depending on 'options()'.  Use of 'as.character(*, format =
-           .)' now warns.
-
-         * Similarly, the 'as.character.hexmode()' and '*.octmode()'
-           methods also behave as 'good citizen' methods and back
-           compatibility option 'keepStr = TRUE'.
-
-         * The 'as.POSIXlt(<POSIXlt>)' and 'as.POSIXct(<POSIXct>)'
-           default methods now do obey their 'tz' argument, also in
-           this case.
-
-         * 'as.POSIXlt(<Date>)' now does apply a 'tz' (time zone)
-           argument, as does 'as.POSIXct()'; partly suggested by Roland
-           Fu<c3><9f> on the R-devel mailing list.
-
-         * 'as.Date.POSIXlt(x)' now also works when the list components
-           are of unequal length, aka "partially filled" or "ragged".
-
-         * 'expand.model.frame()' looked up variables in the wrong
-           environment when applied to models fitted without 'data'.
-           Reported in PR#18414.
-
-         * 'time()' now (also) uses the 'ts.eps = getOption("ts.eps")'
-           argument and thus by default rounds values very close to the
-           start (or end) of a year.  Based on a proposal by Andre<c3><af> V.
-           Kostyrka on R-help.
-
-         * Printing of a 'factanal()' result with just one factor and
-           'sort = TRUE' now works regularly, fixing PR#17863 by
-           Timothy Bates, thanks to the 'R Contributors' working group.
-
-         * Printing 0-length objects of class '"factor"', '"roman"',
-           '"hexmode"', '"octmode"', '"person"', '"bibentry"', or
-           '"citation"' now prints something better, one of which fixes
-           PR#18422, reported by Benjamin Feakins.
-
-         * 'Sys.timezone()' queries 'timedatectl' only if 'systemd' is
-           loaded; addressing a report by Jan Gorecki in PR#17421.
-
-         * The formula method of 'cor.test()' had scoping problems when
-           'environment(formula)' was not the calling environment;
-           reported with a patch proposal by Mao Kobayashi in PR#18439.
-
-         * 'attach()' of an environment with active bindings now
-           preserves the active bindings.  Reported by Kevin Ushey in
-           PR#18425.
-
-         * BLAS detection now works also with system-provided libraries
-           not available as regular files.  This fixes detection of the
-           Accelerate framework on macOS since Big Sur.  Reported by
-           David Novgorodsky.
-
-         * 'download.file()' gives a helpful error message in case of
-           an invalid 'download.file.method' option, thanks to Colin
-           Fay's report in PR#18455.
-
-         * Sporadic crashes of 'Rterm' when using completion have been
-           fixed.
-
-         * 'Rprof()' is now more reliable.  A livelock in thread
-           initialization with too short sampling interval has been
-           fixed on macOS.  A deadlock in using the C runtime has been
-           fixed on Windows.  A potential deadlock has been prevented
-           on Unix.
+         * Arguments are now properly forwarded to methods on S4
+           generics with ... in the middle of their formal arguments.
+           This was broken for the case when a method introduced an
+           argument but did not include ... in its own formals. Thanks
+           to Herv<c3><a9> Pag<c3><a8>s for the report PR#18538.
 
-         * Cursor placement in 'Rgui' now works even after a
-           fixed-width font is selected.
+         * Some invalid 'file' arguments to 'pictex()', 'postscript()'
+           and 'xfig()' opened a file called 'NA' rather than throw an
+           error.  These included 'postscript(NULL)' (which some people
+           expected to work like 'pdf(NULL)').
 
-         * Mandatory options ('options()') are now set on startup so
-           that saving and restoring them always works (PR#18372).
+         * Passing 'filename = NA' to 'svg()', 'cairo_pdf()',
+           'cairo_ps()' or the Cairo-based bitmap devices opened a file
+           called 'NA': it now throws an error.
 
-         * Package installation, 'R CMD INSTALL' or
-           'install.packages(*)', now parses each of the '<pkg>/R/*.R'
-           files individually instead of first concatenating and then
-           'parse()'ing the large resulting file.  This allows parser
-           or syntax errors to be diagnosed with correct file names and
-           line numbers, thanks to Simon Dedman's report and Bill
-           Dunlap's patch in PR#17859.
+         * 'quartz(file = NA)' opened a file called 'NA', including
+           when used as a Quartz-based bitmap device.  It now gives an
+           error.
 
-           This _doesrequire syntactically self contained R source
-           files now, fixing another inadvertent bug.
+         * 'rank(<long vector>)' now works, fixing PR#18617, thanks to
+           Ilia Kats.
 
-         * 'predict.lm(<model with offset>)' now finds the offset in
-           the correct environment, thanks to Andr<c3><a9> Gillibert's report
-           and patch in PR#18456.
+         * 'seq.int()' did not adequately check its 'length.out'
+           argument.
 
-         * 'getInitial(<formula>)' now finds the 'selfStart' model in
-           the correct environment.  (Reported by Ivan Krylov in
-           PR#18368.)
+         * 'match(<POSIXct>, .)' is correct again for differing time
+           zones, ditto for '"POSIXlt"', fixing PR#18618 reported by
+           Bastian Klein.
 
-         * Fix for possible segfault when using recently-added graphics
-           features, such as gradients, clipping paths, masks, and
-           groups with 'pdf(file=NULL)'.
+         * 'drop.terms(*, dropx = <0-length>)' now works, fixing
+           PR#18563 as proposed by Mikael Jagan.
 
-         * 'class(m) <- class(m)' no longer changes a matrix 'm' by
-           adding a class _attribute_.
+         * 'drop.terms(*)' keeps ' + offset(.)' terms when it should,
+           PR#18565, and 'drop.terms()' no longer makes up a response,
+           PR#18566, fixing both bugs thanks to Mikael Jagan.
 
-         * 'packageDate(pkg)' now only warns once if there is no 'pkg'.
+         * 'getS3method("t", "test")' no longer finds the 't.test()'
+           function, fixing PR#18627.
 
-         * When 'ts()' creates a multivariate time series, '"mts"', it
-           also inherits from '"array"' now, and 'is.mts()' is
-           documented _andstricter.
+         * 'pdf()' and 'postscript()' support for the documented Adobe
+           encodings '"Greek"' and '"Cyrilllic"' was missing (although
+           the corresponding Windows' codepages could be used).
 
-         * 'Rd2txt()' now preserves line breaks of \verb Rd content and
-           from duplicated \cr.  The former also fixes the rendering of
-           verbatim output from Rd \Sexpr in plain-text help.
+         * Computations of glyph metric information for 'pdf()' and
+           'postscript()' did not take into account that
+           transliteration could replace one character by two or more
+           (only seen on macOS 14) and typically warned that the
+           information was not known.
 
-         * 'uniroot(f, interval)' should no longer wrongly converge
-           _outsidethe interval in some cases where 'abs(f(x)) ==
-           Inf' for an 'x' at the interval boundary, thanks to posts by
-           Ben Bolker and Serguei Sokol on R-devel.
+         * 'rank(x)' no longer overflows during integer addition, when
+           computing rank average for largish but not-yet long vector
+           'x', fixing PR#18630, thanks to Ilia Kats.
 
-         * Vectorized alpha handling in palette functions such as in
-           'gray()', 'rainbow()', or 'hcl.colors()' works correctly
-           now, thanks to Achim Zeileis' report and patch in PR#18476.
+         * 'list.files()' on Windows now returns also files with names
+           longer that 260 bytes (the Windows limit is 260 characters).
+           Previously, some file names particularly with 'East Asian'
+           characters were omitted.
 
-         * Formatting and 'print()'ing of 'bibentry' objects has
-           dropped the deprecated 'citation.bibtex.max' argument, such
-           that the 'bibtex' argument's default for 'print.bibentry()'
-           depends directly on the 'citation.bibtex.max' option,
-           whereas in 'format.bibentry()' the option no longer applies.
+         * 'cov2cor(<0 x 0>)' now works, fixing PR#18423 thanks to
+           Mikael Jagan and Elin Waring.
 
-         * Attempting to use a character string naming a foreign
-           function entry point in a foreign function call in a package
-           will now signal an error if the packages has called
-           'R_forceSymbols' to specify that symbols must be used.
+         * 'cov2cor(<negative diagonal>)' and similar now give one
+           warning instead of two, with better wording, fixing PR#18424
+           thanks to Mikael Jagan.
 
-         * An error in 'table()' could permanently set
-           'options(warn=2)' promoting all subsequent warnings to
-           errors.
+         * 'tools'':: startDynamicHelp()' now ensures 'port' is in
+           proper range, fixing PR#18645.
 
-         * The 'sigma()' function gave misleading results for binary
-           GLMs.  A new method for objects of class '"glm"' returns the
-           square root of the estimate of the dispersion parameter
-           using the same calculation as 'summary.glm()'.
+         * 'pbeta(x, a,b)' is correct now for 'x'=0 or 1 in the
+           boundary cases where 'a' or 'b' or both are 0, fixing
+           PR#18672 thanks to Michael Fay.
 
-         * 'bs()' and 'ns()' in the (typical) case of automatic knot
-           construction, when some of the supposedly inner knots
-           coincide with boundary knots, now moves them inside (with a
-           warning), building on PR#18442 by Ben Bolker.
+         * 'pmatch(x, table)' for large 'table', also called for data
+           frame row selection, 'dfrm[nm, ]', is now interruptible,
+           fixing PR#18656.
 
-         * 'R CMD' on Windows now skips the site profile with
-           '--no-site-file' and '--vanilla' even when 'R_PROFILE' is
-           set (PR#18512, from Kevin Ushey).
+         * 'predict(<rank-deficient lm>, newdata=*)' fix computing of
+           'nbasis', see Russ Lenth's comment 29 in PR#16158.
 
+         * Added a work-around for a bug in macOS 14.3.1 and higher
+           which prevents R plots in the Quartz Cocoa device from
+           updating on screen.
diff --git a/R/Makefile b/R/Makefile
index 371256bfa0..1e5d1bdee2 100644
--- a/R/Makefile
+++ b/R/Makefile
@@ -1,10 +1,10 @@
-# $NetBSD: Makefile,v 1.240 2023/06/06 12:41:50 riastradh Exp $
+# $NetBSD: Makefile,v 1.251 2024/02/15 07:48:50 markd Exp $
 
 #
 # If updating this package, please try to ensure PLIST.Darwin is kept in sync
 # to avoid unnecessarily breaking macOS users.
 #
-DISTNAME=	R-4.3.2
+DISTNAME=	R-4.3.3
 CATEGORIES=	math
 MASTER_SITES=	${MASTER_SITE_R_CRAN:=base/R-4/}
 
@@ -111,7 +111,7 @@ CONFIGURE_ARGS.Darwin+=	--disable-openmp
 # https://trac.macports.org/ticket/66095
 # Darwin 21 corresponds to macOS 12
 .if ${OPSYS} == "Darwin" && ${OS_VERSION:R} > 21
-MAKE_ENV.Darwin+= MACOSX_DEPLOYMENT_TARGET="12.0"
+MAKE_ENV.Darwin+=	MACOSX_DEPLOYMENT_TARGET="12.0"
 .endif
 
 # R_PAPERSIZE can be: A4, Letter, Legal, Executive
@@ -159,30 +159,6 @@ SUBST_STAGE.fixwrap=	post-build
 SUBST_FILES.fixwrap=	libtool
 SUBST_SED.fixwrap=	-e "s,${WRAPPER_BINDIR}/libtool,${PKG_LIBTOOL},g"
 
-SUBST_CLASSES+=		strtoi
-SUBST_STAGE.strtoi=	pre-configure
-SUBST_MESSAGE.strtoi=	Renaming strtoi to strtoiR to avoid conflict
-SUBST_FILES.strtoi=	\
-	tests/reg-tests-1d.R \
-	doc/NEWS.3 \
-	doc/html/NEWS.2.html \
-	doc/html/NEWS.3.html \
-	doc/NEWS.2 \
-	doc/NEWS.3.Rd \
-	doc/NEWS.2.Rd \
-	src/include/Internal.h \
-	src/library/base/man/hexmode.Rd \
-	src/library/base/man/octmode.Rd \
-	src/library/base/man/strtoi.Rd \
-	src/library/base/R/octhex.R \
-	src/library/base/R/version.R \
-	src/library/base/R/character.R \
-	src/gnuwin32/Rdll.hide \
-	src/main/names.c \
-	src/main/character.c
-
-SUBST_SED.strtoi=	-e "s,strtoi,strtoiR,g"
-
 BUILDLINK_API_DEPENDS.bzip2+=	bzip2>=1.0.5
 
 # failed to convert strong functions and variables: Invalid type identifier
diff --git a/R/PLIST b/R/PLIST
index a657327cbd..30fc58047e 100644
--- a/R/PLIST
+++ b/R/PLIST
@@ -334,10 +334,18 @@ lib/R/library/Matrix/help/AnIndex
 lib/R/library/Matrix/help/Matrix.rdb
 lib/R/library/Matrix/help/Matrix.rdx
 lib/R/library/Matrix/help/aliases.rds
+lib/R/library/Matrix/help/macros/local.Rd
 lib/R/library/Matrix/help/paths.rds
 lib/R/library/Matrix/html/00Index.html
 lib/R/library/Matrix/html/R.css
 lib/R/library/Matrix/include/Matrix.h
+lib/R/library/Matrix/include/Matrix/Matrix.h
+lib/R/library/Matrix/include/Matrix/alloca.h
+lib/R/library/Matrix/include/Matrix/cholmod-utils.h
+lib/R/library/Matrix/include/Matrix/cholmod.h
+lib/R/library/Matrix/include/Matrix/remap.h
+lib/R/library/Matrix/include/Matrix/stubs.c
+lib/R/library/Matrix/include/Matrix/version.h
 lib/R/library/Matrix/include/Matrix_stubs.c
 lib/R/library/Matrix/include/cholmod.h
 lib/R/library/Matrix/libs/Matrix.so
@@ -879,8 +887,6 @@ lib/R/library/mgcv/po/en@quot/LC_MESSAGES/R-mgcv.mo
 lib/R/library/mgcv/po/en@quot/LC_MESSAGES/mgcv.mo
 lib/R/library/mgcv/po/fr/LC_MESSAGES/R-mgcv.mo
 lib/R/library/mgcv/po/fr/LC_MESSAGES/mgcv.mo
-lib/R/library/mgcv/po/it/LC_MESSAGES/R-mgcv.mo
-lib/R/library/mgcv/po/it/LC_MESSAGES/mgcv.mo
 lib/R/library/mgcv/po/ko/LC_MESSAGES/R-mgcv.mo
 lib/R/library/mgcv/po/ko/LC_MESSAGES/mgcv.mo
 lib/R/library/mgcv/po/pl/LC_MESSAGES/R-mgcv.mo
@@ -1646,8 +1652,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
diff --git a/R/TODO b/R/TODO
deleted file mode 100644
index 18bdef0011..0000000000
--- a/R/TODO
+++ /dev/null
@@ -1,95 +0,0 @@
-strtoi issue
-It seems strtoi in NetBSD  and R became inconsistent.
-FreeBSD does not have strtoi defined yet.
-
-
-gcc -I../../src/extra  -I. -I../../src/include -I../../src/include -I/usr/pkg/include -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/X11R7/include -I/usr/pkg/include/freetype2 -I/usr/pkg/include/harfbuzz -I/usr/include/krb5 -I../../src/nmath -DHAVE_CONFIG_H   -fopenmp -fpic  -O2 -pthread -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/X11R7/include -I/usr/pkg/include/freetype2 -I/usr/pkg/include/harfbuzz -I/usr/include/krb5  -c character.c -o character.o
-character.c:1752:12: error: conflicting types for 'strtoi'
- 1752 | static int strtoi(SEXP s, int base)
-      |            ^~~~~~
-In file included from ../../src/include/Defn.h:907,
-                 from character.c:85:
-/usr/include/inttypes.h:81:10: note: previous declaration of 'strtoi' was here
-   81 | intmax_t strtoi(const char * __restrict, char ** __restrict, int,
-      |          ^~~~~~
-
-
-For the test, 
-if the NetBSD definition of following changed (which can not be
-done anyway), R-4.3.2 is packaged fine
-
---- /usr/include/inttypes.h.orig	2023-10-06 23:48:08.000000000 +0900
-+++ /usr/include/inttypes.h	2024-01-05 10:28:39.954745456 +0900
-@@ -78,8 +78,10 @@
- 
- 
- #if defined(_NETBSD_SOURCE)
-+/*
- intmax_t	strtoi(const char * __restrict, char ** __restrict, int,
- 	               intmax_t, intmax_t, int *);
-+*/
- uintmax_t	strtou(const char * __restrict, char ** __restrict, int,
- 	               uintmax_t, uintmax_t, int *);
- 
-
-Shall we rename strtoi in R to strtoiR  for the moment ?
-
-
-h97@makoto 11:10:52/240105(..wip/R)% (cd /tmp/wip/R/work/R-4.3.2/; find .  -exec grep strtoi '{}' /dev/null \;)
-./tests/reg-tests-1d.R:## strtoi("") :
-./tests/reg-tests-1d.R:stopifnot(is.na(strtoi("")),
-./tests/reg-tests-1d.R:          is.na(strtoi("", 2L)))
-./doc/NEWS.3:    • strtoi("", base) now gives NA on all platforms, following its
-./doc/html/NEWS.2.html:<li><p> New function <code>strtoi()</code>, a wrapper for the C function
-./doc/html/NEWS.3.html:<li> <p><code>strtoi("", base)</code> now gives <code>NA</code> on all platforms,
-./doc/NEWS.2:    • New function strtoi(), a wrapper for the C function strtol.
-./doc/NEWS.3.Rd:      \item \code{strtoi("", base)} now gives \code{NA} on all platforms,
-./doc/NEWS.2.Rd:      \item New function \code{strtoi()}, a wrapper for the C function
-./src/include/Internal.h:SEXP do_strtoi(SEXP,SEXP,SEXP,SEXP);
-./src/library/base/man/hexmode.Rd:  converting integers to hex, \code{\link{strtoi}} to convert hex
-./src/library/base/man/octmode.Rd:  converting integers to octal, \code{\link{strtoi}} to convert octal
-./src/library/base/man/strtoi.Rd:% File src/library/base/man/strtoi.Rd
-./src/library/base/man/strtoi.Rd:\name{strtoi}
-./src/library/base/man/strtoi.Rd:\alias{strtoi}
-./src/library/base/man/strtoi.Rd:\usage{strtoi(x, base = 0L)}
-./src/library/base/man/strtoi.Rd:strtoi(c("0xff", "077", "123"))
-./src/library/base/man/strtoi.Rd:strtoi(c("ffff", "FFFF"), 16L)
-./src/library/base/man/strtoi.Rd:strtoi(c("177", "377"), 8L)
-./src/library/base/R/octhex.R:        z <- strtoi(x, 8L)
-./src/library/base/R/octhex.R:        z <- strtoi(x, 16L)
-./src/library/base/R/version.R:        strtoi(substring(elt, first, last), 8L)
-./src/library/base/R/character.R:strtoi <-
-./src/library/base/R/character.R:    .Internal(strtoi(as.character(x), as.integer(base)))
-./src/gnuwin32/Rdll.hide: do_strtoi
-./src/main/names.c:{"strtoi",   do_strtoi,      0,      11,     2,      {PP_FUNCALL, PREC_FN,   0}},
-./src/main/character.c.orig:static int strtoi(SEXP s, int base)
-./src/main/character.c.orig:attribute_hidden SEXP do_strtoi(SEXP call, SEXP op, SEXP args, SEXP env)
-./src/main/character.c.orig:    INTEGER(ans)[i] = strtoi(STRING_ELT(x, i), base);
-./src/main/character.c:static int strtoi(SEXP s, int base)
-./src/main/character.c:attribute_hidden SEXP do_strtoi(SEXP call, SEXP op, SEXP args, SEXP env)
-./src/main/character.c: INTEGER(ans)[i] = strtoi(STRING_ELT(x, i), base);
-h97@makoto 11:11:02/240105(..wip/R)% 
-
-
-
-h97@makoto 12:19:10/240105(..wip/R)%  (cd /tmp/wip/R/work/R-4.3.2/; grep -lr strtoi  .)                         
-./tests/reg-tests-1d.R
-./doc/NEWS.3
-./doc/html/NEWS.2.html
-./doc/html/NEWS.3.html
-./doc/NEWS.2
-./doc/NEWS.3.Rd
-./doc/NEWS.2.Rd
-./src/include/Internal.h
-./src/library/base/man/hexmode.Rd
-./src/library/base/man/octmode.Rd
-./src/library/base/man/strtoi.Rd
-./src/library/base/R/octhex.R
-./src/library/base/R/version.R
-./src/library/base/R/character.R
-./src/gnuwin32/Rdll.hide
-./src/main/names.c
-./src/main/character.c.orig
-./src/main/character.c
-
-But this way ask all of R application/plug-in's to rename strtoi to strtoiR
diff --git a/R/distinfo b/R/distinfo
index 3bee8218bd..8d0de8b44a 100644
--- a/R/distinfo
+++ b/R/distinfo
@@ -1,7 +1,10 @@
-$NetBSD: distinfo,v 1.97 2023/03/22 13:53:29 wiz Exp $
+$NetBSD: distinfo,v 1.103 2024/02/15 07:48:50 markd Exp $
 
-BLAKE2s (R-4.3.2.tar.gz) = a79080d65222ec6698175c037390e666385567b1e123acf6ce1e33ee3f122005
-SHA512 (R-4.3.2.tar.gz) = 125114357f20d4a3248aee86727768d1dc15e07e44353f8a68fe2ef1fedae508e85d944301d00c0edd61e8b012b0b3cdcde53ac60be903713f96542d83ad5b1d
-Size (R-4.3.2.tar.gz) = 35039225 bytes
-SHA1 (patch-configure.ac) = 56a92d2d75ecdad45c06ca05ebc260af83a5a0ea
-SHA1 (patch-m4_R.m4) = 76a280dc2aeea2eb0e473ae770f636d00314d68a
+BLAKE2s (R-4.3.3.tar.gz) = 59e9ead4142a600fdb24f91f957aa89dee798284410d4b6fa17c77cb1eacacd4
+SHA512 (R-4.3.3.tar.gz) = 26291590d935ea5678771cdcaea013a6c030897eb762b0204e42b34b0f1d33aac1ec933f36caa18d2a31a057a4456bf629222e4f5679f24bc48a7a764b1aedbe
+Size (R-4.3.3.tar.gz) = 35861202 bytes
+SHA1 (patch-configure.ac) = 3cd063c424b7b9674f434d49c771b76dde73ac5c
+SHA1 (patch-m4_R.m4) = 48a1d38b5505cbb87bd2c156f262680156c07a02
+SHA1 (patch-src_include_R__ext_Error.h) = bc55a8bba6bf931e3f6794577e63bfafdfc740cf
+SHA1 (patch-src_library_stats_src_Makefile.in) = 4eb93292858392792c37a706399e2cef91821bbe
+SHA1 (patch-src_main_character.c) = c1be2cae404ecbdd547343b70e9d072e9e1d5549
diff --git a/R/patches/patch-configure.ac b/R/patches/patch-configure.ac
index dcfac9548d..c4b94ee299 100644
--- a/R/patches/patch-configure.ac
+++ b/R/patches/patch-configure.ac
@@ -1,10 +1,10 @@
-$NetBSD: patch-configure.ac,v 1.6 2022/03/23 21:16:44 wiz Exp $
+$NetBSD: patch-configure.ac,v 1.8 2024/01/08 23:13:03 mef Exp $
 
 Do not include system paths in R_LD_LIBRARY_PATH.
 NetBSD, FreeBSD, DragonFly, Darwin and Solaris fixes
 
---- configure.ac.orig	2023-05-02 07:15:02.000000000 +0900
-+++ configure.ac	2023-07-06 20:38:40.845664139 +0900
+--- configure.ac.orig	2019-06-08 08:57:35.738653089 +0000
++++ configure.ac
 @@ -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])
@@ -13,7 +13,7 @@ NetBSD, FreeBSD, DragonFly, Darwin and Solaris fixes
  
  ### * Information on the package.
  
-@@ -311,7 +312,7 @@ AC_ARG_ENABLE([BLAS-shlib],
+@@ -290,7 +291,7 @@ AC_ARG_ENABLE([BLAS-shlib],
  
  ## As from R 3.2.0 split up -L... and -lR
  if test "${want_R_shlib}" = yes; then
@@ -22,7 +22,7 @@ NetBSD, FreeBSD, DragonFly, Darwin and Solaris fixes
    LIBR1=-lR
  else
    LIBR0=
-@@ -894,7 +895,7 @@ case "${host_os}" in
+@@ -709,7 +710,7 @@ case "${host_os}" in
      ## Not so bad in later versions of Darwin, 
      ## where DYLD_FALLBACK_LIBRARY_PATH is used (see below).
      ;;
@@ -31,7 +31,7 @@ NetBSD, FreeBSD, DragonFly, Darwin and Solaris fixes
      for arg in ${LDFLAGS}; do
        case "${arg}" in
          -L*)
-@@ -1530,7 +1531,7 @@ rm -f libconftest${DYLIB_EXT} conftest.c
+@@ -1276,7 +1277,7 @@ rm -f libconftest${DYLIB_EXT} conftest.c
      fpicflags="${darwin_pic}"
      shlib_cxxldflags="${shlib_ldflags}"
      ;;
@@ -40,7 +40,7 @@ NetBSD, FreeBSD, DragonFly, Darwin and Solaris fixes
      ## maybe this needs to depend on the compiler:
      ## -export-dynamic used to work, but does not with clang.
      ## Seems FreeBSD has used the GNU linker since at least 3.0 (Oct 1998)
-@@ -1619,6 +1620,12 @@ dnl     ;;
+@@ -1365,6 +1366,12 @@ dnl     ;;
      ;;
    netbsd*)
      ## See the comments about FreeBSD
@@ -53,7 +53,7 @@ NetBSD, FreeBSD, DragonFly, Darwin and Solaris fixes
      if ${CPP} - -dM < /dev/null | grep __ELF__ >/dev/null ; then
        main_ldflags="-Wl,--export-dynamic"
        shlib_ldflags="-shared"
-@@ -1655,22 +1662,22 @@ dnl     ;;
+@@ -1401,22 +1408,22 @@ dnl     ;;
    solaris*)
  ## SPARC has only an 8k global object table, 1024 entries on 64-bit,
  ## so need PIC not pic.  They are the same on other Solaris platforms.
@@ -80,7 +80,7 @@ NetBSD, FreeBSD, DragonFly, Darwin and Solaris fixes
        cpicflags="-KPIC"
        if test "`basename ${CXX}`" = "CC" ; then
          ## Forte version 7 needs -lCstd: Forte 6 does not.	
-@@ -1749,7 +1756,7 @@ fi
+@@ -1495,7 +1502,7 @@ fi
  : ${CXXPICFLAGS="${cxxpicflags}"}
  if test -n "${CXX}" -a -z "${CXXPICFLAGS}"; then
    case "${host_os}" in
@@ -89,7 +89,7 @@ NetBSD, FreeBSD, DragonFly, Darwin and Solaris fixes
        ;;
      *)
        warn_cxxpicflags="I could not determine CXXPICFLAGS."
-@@ -1809,8 +1816,10 @@ dnl     ;;
+@@ -1555,8 +1562,10 @@ dnl     ;;
      MAJR_VERSION=`echo "${PACKAGE_VERSION}" | sed  -e "s/[[\.]][[1-9]]$/.0/"` 
      LIBR_LDFLAGS="-install_name libR.dylib -compatibility_version ${MAJR_VERSION}  -current_version ${PACKAGE_VERSION}  -headerpad_max_install_names"
      RLAPACK_LDFLAGS="-install_name libRlapack.dylib -compatibility_version ${MAJR_VERSION} -current_version ${PACKAGE_VERSION}  -headerpad_max_install_names"
@@ -101,7 +101,7 @@ NetBSD, FreeBSD, DragonFly, Darwin and Solaris fixes
      ;;
  dnl   hpux*)
  dnl     ## Needs to avoid embedding a relative path ../../../bin.
-@@ -2803,7 +2812,7 @@ case "${host_os}" in
+@@ -2482,7 +2491,7 @@ case "${host_os}" in
      r_ld_library_defaults="/usr/lib64:/lib64:/usr/lib:/lib"
      ;;
    solaris*)
diff --git a/R/patches/patch-m4_R.m4 b/R/patches/patch-m4_R.m4
index 97f87e7141..c209a5e1d8 100644
--- a/R/patches/patch-m4_R.m4
+++ b/R/patches/patch-m4_R.m4
@@ -1,10 +1,10 @@
-$NetBSD: patch-m4_R.m4,v 1.2 2023/03/22 13:53:29 wiz Exp $
+$NetBSD: patch-m4_R.m4,v 1.5 2024/01/08 23:15:39 mef Exp $
 
 Ensure tests for clog & co. fail, not just emit warning
 
---- m4/R.m4.orig	2023-04-05 07:15:01.000000000 +0900
-+++ m4/R.m4	2023-07-06 20:34:53.656339598 +0900
-@@ -225,7 +225,7 @@ if test -z "${texi2any_version_maj}" \
+--- m4/R.m4.orig	2023-07-30 07:15:01.000000000 +0900
++++ m4/R.m4	2024-01-09 08:02:14.228733733 +0900
+@@ -226,7 +226,7 @@ if test -z "${texi2any_version_maj}" \
  elif test ${texi2any_version_maj} -gt 5; then
    r_cv_prog_texi2any_v5=yes
  elif test ${texi2any_version_maj} -lt 5 \
@@ -13,7 +13,7 @@ Ensure tests for clog & co. fail, not just emit warning
    r_cv_prog_texi2any_v5=no
  else
    r_cv_prog_texi2any_v5=yes
-@@ -904,6 +904,9 @@ dnl Yes we need to double quote this ...
+@@ -905,6 +905,9 @@ dnl Yes we need to double quote this ...
  
  extern void F77_SYMBOL(cftest)(int *a, int *b, double *x, double *y);
  
@@ -23,7 +23,7 @@ Ensure tests for clog & co. fail, not just emit warning
  int main () {
    int a[3] = {17, 237, 2000000000}, b[2], res = 0;
    double x[3] = {3.14159265, 123.456789, 2.3e34}, z[3];
-@@ -999,6 +1002,9 @@ typedef union {
+@@ -1000,6 +1003,9 @@ typedef union {
  
  extern void F77_SYMBOL(cftest)(Rcomplex *x);
  
@@ -33,7 +33,7 @@ Ensure tests for clog & co. fail, not just emit warning
  int main () {
      Rcomplex z[3];
  
-@@ -3857,9 +3863,9 @@ R_CHECK_FUNCS([cabs carg cexp clog csqrt
+@@ -3858,9 +3864,9 @@ R_CHECK_FUNCS([cabs carg cexp clog csqrt
  AC_DEFUN([R_CHECK_DECL],
  [AS_VAR_PUSHDEF([ac_Symbol], [ac_cv_have_decl_$1])dnl
  AC_CACHE_CHECK([whether $1 exists and is declared], ac_Symbol,
@@ -46,7 +46,7 @@ Ensure tests for clog & co. fail, not just emit warning
  #endif
  ])],
                     [AS_VAR_SET(ac_Symbol, yes)],
-@@ -4630,9 +4636,9 @@ AC_CACHE_CHECK([if libcurl is >= 7.28.0]
+@@ -4682,9 +4688,9 @@ AC_CACHE_CHECK([if libcurl is >= 7.28.0]
  int main(void) 
  {
  #ifdef LIBCURL_VERSION_MAJOR
diff --git a/R/patches/patch-src_include_R__ext_Error.h b/R/patches/patch-src_include_R__ext_Error.h
new file mode 100644
index 0000000000..490c32f358
--- /dev/null
+++ b/R/patches/patch-src_include_R__ext_Error.h
@@ -0,0 +1,16 @@
+$NetBSD: patch-src_include_R__ext_Error.h,v 1.1 2024/03/05 16:12:33 jperkin Exp $
+
+Fix building with C++.
+
+--- src/include/R_ext/Error.h.orig	2024-03-05 16:09:06.557665563 +0000
++++ src/include/R_ext/Error.h
+@@ -35,7 +35,8 @@ extern "C" {
+  * In C11 there is _Noreturn * (or noreturn in header <stdnoreturn.h>).
+  */
+ #if defined NORET
+-#elif (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202301L)
++#elif (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202301L) || \
++      (defined(__cplusplus) && __cplusplus >= 201103L)
+ # define NORET [[noreturn]]
+ #elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201102L
+ # define NORET _Noreturn
diff --git a/R/patches/patch-src_library_stats_src_Makefile.in b/R/patches/patch-src_library_stats_src_Makefile.in
new file mode 100644
index 0000000000..9847dd8424
--- /dev/null
+++ b/R/patches/patch-src_library_stats_src_Makefile.in
@@ -0,0 +1,14 @@
+$NetBSD: patch-src_library_stats_src_Makefile.in,v 1.2 2016/07/26 04:53:33 wen Exp $
+
+${R_INCLUDE_DIR} is used in the default compiler flags.
+
+--- src/library/stats/src/Makefile.in.orig	2016-07-26 01:57:49.000000000 +0000
++++ src/library/stats/src/Makefile.in
+@@ -10,6 +10,7 @@ top_srcdir = @top_srcdir@
+ top_builddir = ../../../..
+ subdir = src/library/$(pkg)/src
+ R_HOME = $(top_builddir)
++R_INCLUDE_DIR = $(R_HOME)/include
+ ## for $(R_HOME)/etc${R_ARCH}/Makeconf
+ R_SHARE_DIR = $(R_HOME)/share
+ R_INCLUDE_DIR = $(R_HOME)/include
diff --git a/R/patches/patch-src_main_character.c b/R/patches/patch-src_main_character.c
new file mode 100644
index 0000000000..d1f5b71021
--- /dev/null
+++ b/R/patches/patch-src_main_character.c
@@ -0,0 +1,24 @@
+$NetBSD: patch-src_main_character.c,v 1.7 2024/02/15 07:48:50 markd Exp $
+
+rename strtoi() to avoild conflict with NetBSD function.
+
+--- src/main/character.c.orig	2023-07-04 22:15:01.000000000 +0000
++++ src/main/character.c
+@@ -1749,7 +1749,7 @@ attribute_hidden SEXP do_strtrim(SEXP ca
+     return s;
+ }
+ 
+-static int strtoi(SEXP s, int base)
++static int strtoiR(SEXP s, int base)
+ {
+     if(s == NA_STRING || CHAR(s)[0] == '\0') return(NA_INTEGER);
+ 
+@@ -1782,7 +1782,7 @@ attribute_hidden SEXP do_strtoi(SEXP cal
+ 
+     PROTECT(ans = allocVector(INTSXP, n = LENGTH(x)));
+     for(i = 0; i < n; i++)
+-	INTEGER(ans)[i] = strtoi(STRING_ELT(x, i), base);
++	INTEGER(ans)[i] = strtoiR(STRING_ELT(x, i), base);
+     UNPROTECT(1);
+ 
+     return ans;


Home | Main Index | Thread Index | Old Index