This delivers 64 bit index BLAS libraries alongside 32 bit ones. This is often
called ILP64 in the BLAS world, as opposed to LP64 where integers are 32 bit
due to the Fortran default integer type, not to be confused with the basic
system ABI used by C. For really large vectors on modern machines, you want
an 'ILP64' BLAS and layers on top of it.
In preparation of better support for vendor BLAS libraries, I had to realize
that you better use the C interfaces supplied by them, not the netlib one
strapped on. A simple reason of practicability: The vendor blas libraries,
just like openblas, like to ship all symbols in one library, so you get them
whether you want it or not. Also implementations may skip Fortran and implement
the underlying functionality directly in C anyway, so one might skip a
layer of indirection. Future will tell if other layers will follow. We still
have the framework of individual layers from Netlib to combine with certain
implementations that miss them (Accelerate framework comes to mind, which
needs further work).
The framework of netlib reference packages for the separate libraries
is instructive and helps keeping things small when you not need all of them.
The installation location of the headers is now in a subdirectory to be able
to have 32 and 64 bit variants independently. The 32 bit ones are linked to
${PREFIX}/include to keep the old picture. We could be brave and remove
those, but there is some value in a build just trying -lcblas and
inclusion of <cblas.h> to be happy.
There is one blas.buildlink3.mk that is supposed to be used only once and
so avoids a combination of conflicting libraries (as the 64 bit index symbols
have the same names as the 32 bit ones).
Basic usage for getting LAPACK+BLAS is still the same as before. You get
CBLAS and LAPACKE by setting BLAS_C_INTERFACE=yes in the package. The 64 bit
indices are selected via BLAS_INDEX64=yes.
Due to the special nature of the Accelerate framework, a package has to
explicitly indicate support for it and it will also not appear on the
list of implementations by default. The reason is that it does provide
mainly CBLAS and CLAPACK (another version of C interface to LAPACK, f2c-based)
and BLAS/LAPACK with f2c/g77 calling conventions. A default build with
gfortran would not like that
This commit also fixes up math/py-numpy and math/py-numpy16 to follow the
new scheme, as that are the only packages directly affected by the change
in CBLAS providership.
Change the way iconv_t void* conflict is handled
using a patch from upstream to fix PR pkg/56240 .
Due to the above remove
patch-libinterp_corefcn_input.cc and
patch-liboctave_wrappers_iconv-wrappers.h .
Execute autoconf in the configuration step so that
patch-configure.ac and patch-m4_acinclude.m4 is
actually used.
Change the PLIST so that -gnu is not used
references in patch-m4_acinclude.m4 mentions this.
Explicitly don't generate any docs since
generation octave.pdf breaks and it already exists.
Install info and man pages manually since they are
not installed due to docs not being generated.
Bump pkgrevision due to PLIST change.
Upstream changes:
CHANGES IN R 4.1.0:
FUTURE DIRECTIONS:
* It is planned that the 4.1.x series will be the last to support
32-bit Windows, with production of binary packages for that
series continuing until early 2023.
SIGNIFICANT USER-VISIBLE CHANGES:
* Data set esoph in package datasets now provides the correct
numbers of controls; previously it had the numbers of cases added
to these. (Reported by Alexander Fowler in PR#17964.)
NEW FEATURES:
* www.omegahat.net is no longer one of the repositories known by
default to setRepositories(). (Nowadays it only provides source
packages and is often unavailable.)
* Function package_dependencies() (in package tools) can now use
different dependency types for direct and recursive dependencies.
* The checking of the size of tarball in R CMD check --as-cran
<pkg> may be tweaked via the new environment variable
_R_CHECK_CRAN_INCOMING_TARBALL_THRESHOLD_, as suggested in
PR#17777 by Jan Gorecki.
* Using c() to combine a factor with other factors now gives a
factor, an ordered factor when combining ordered factors with
identical levels.
* apply() gains a simplify argument to allow disabling of
simplification of results.
* The format() method for class "ftable" gets a new option justify.
(Suggested by Thomas Soeiro.)
* New ...names() utility. (Proposed by Neal Fultz in PR#17705.)
* type.convert() now warns when its as.is argument is not
specified, as the help file always said it _should_. In that
case, the default is changed to TRUE in line with its change in
read.table() (related to stringsAsFactor) in R 4.0.0.
* When printing list arrays, classed objects are now shown _via_
their format() value if this is a short enough character string,
or by giving the first elements of their class vector and their
length.
* capabilities() gets new entry "Rprof" which is TRUE when R has
been configured with the equivalent of --enable-R-profiling (as
it is by default). (Related to Michael Orlitzky's report
PR#17836.)
* str(xS4) now also shows extraneous attributes of an S4 object
xS4.
* Rudimentary support for vi-style tags in rtags() and R CMD rtags
has been added. (Based on a patch from Neal Fultz in PR#17214.)
* checkRdContents() is now exported from tools; it and also
checkDocFiles() have a new option chkInternal allowing to check
Rd files marked with keyword "internal" as well. The latter can
be activated for R CMD check via environment variable
_R_CHECK_RD_INTERNAL_TOO_.
* New functions numToBits() and numToInts() extend the raw
conversion utilities to (double precision) numeric.
* Functions URLencode() and URLdecode() in package utils now work
on vectors of URIs. (Based on patch from Bob Rudis submitted
with PR#17873.)
* path.expand() can expand ~user on most Unix-alikes even when
readline is not in use. It tries harder to expand ~, for example
should environment variable HOME be unset.
* For HTML help (both dynamic and static), Rd file links to help
pages in external packages are now treated as references to
topics rather than file names, and fall back to a file link only
if the topic is not found in the target package. The earlier rule
which prioritized file names over topics can be restored by
setting the environment variable _R_HELP_LINKS_TO_TOPICS_ to a
false value.
* c() now removes NULL arguments before dispatching to methods,
thus simplifying the implementation of c() methods, _but_ for
back compatibility keeps NULL when it is the first argument.
(From a report and patch proposal by Lionel Henry in PR#17900.)
* Vectorize()'s result function's environment no longer keeps
unneeded objects.
* Function ...elt() now propagates visibility consistently with
..n. (Thanks to Lionel Henry's PR#17905.)
* capture.output() no longer uses non-standard evaluation to
evaluate its arguments. This makes evaluation of functions like
parent.frame() more consistent. (Thanks to Lionel Henry's
PR#17907.)
* packBits(bits, type="double") now works as inverse of
numToBits(). (Thanks to Bill Dunlap's proposal in PR#17914.)
* curlGetHeaders() has two new arguments, timeout to specify the
timeout for that call (overriding getOption("timeout")) and TLS
to specify the minimum TLS protocol version to be used for
https:// URIs (_inter alia_ providing a means to check for sites
using deprecated TLS versions 1.0 and 1.1).
* For nls(), an optional constant scaleOffset may be added to the
denominator of the relative offset convergence test for cases
where the fit of a model is expected to be exact, thanks to a
proposal by John Nash. nls(*, trace=TRUE) now also shows the
convergence criterion.
* Numeric differentiation _via_ numericDeriv() gets new optional
arguments eps and central, the latter for taking central divided
differences. The latter can be activated for nls() via
nls.control(nDcentral = TRUE).
* nls() now passes the trace and control arguments to getInitial(),
notably for all self-starting models, so these can also be fit in
zero-noise situations via a scaleOffset. For this reason, the
initial function of a selfStart model must now have ... in its
argument list.
* bquote(splice = TRUE) can now splice expression vectors with
attributes: this makes it possible to splice the result of
parse(keep.source = TRUE). (Report and patch provided by Lionel
Henry in PR#17869.)
* textConnection() gets an optional name argument.
* get(), exists(), and get0() now signal an error if the first
argument has length greater than 1. Previously additional
elements were silently ignored. (Suggested by Antoine Fabri on
R-devel.)
* R now provides a shorthand notation for creating functions, e.g.
\(x) x + 1 is parsed as function(x) x + 1.
* R now provides a simple native forward pipe syntax |>. The
simple form of the forward pipe inserts the left-hand side as the
first argument in the right-hand side call. The pipe
implementation as a syntax transformation was motivated by
suggestions from Jim Hester and Lionel Henry.
* all.equal(f, g) for functions now by default also compares their
environment(.)s, notably via new all.equal method for class
function. Comparison of nls() fits, e.g., may now need
all.equal(m1, m2, check.environment = FALSE).
* .libPaths() gets a new option include.site, allowing to _not_
include the site library. (Thanks to Dario Strbenac's suggestion
and Gabe Becker's PR#18016.)
* Lithuanian translations are now available. (Thanks to Rimantas
Zakauskas.)
* names() now works for DOTSXP objects. On the other hand, in
R-lang, the R language manual, we now warn against relying on the
structure or even existence of such dot-dot-dot objects.
* all.equal() no longer gives an error on DOTSXP objects.
* capabilities("cairo") now applies only to the file-based devices
as it is now possible (if very unusual) to build R with Cairo
support for those but not for X11().
* There is optional support for tracing the progress of
loadNamespace() - see its help.
* (Not Windows.) l10n_info() reports an additional element, the
name of the encoding as reported by the OS (which may differ from
the encoding part (if any) of the result from
Sys.getlocale("LC_CTYPE").
* New function gregexec() which generalizes regexec() to find _all_
disjoint matches and well as all substrings corresponding to
parenthesized subexpressions of the given regular expression.
(Contributed by Brodie Gaslam.)
* New function charClass() in package utils to query the
wide-character classification functions in use (such as
iswprint).
* The names of quantile()'s result no longer depend on the global
getOption("digits"), but quantile() gets a new optional argument
digits = 7 instead.
* grep(), sub(), regexp and variants work considerably faster for
long factors with few levels. (Thanks to Michael Chirico's
PR#18063.)
* Provide grouping of x11() graphics windows within a window
manager such as Gnome or Unity; thanks to a patch by Ivan Krylov
posted to R-devel.
* The split() method for class data.frame now allows the f argument
to be specified as a formula.
* sprintf now warns on arguments unused by the format string.
* New palettes "Rocket" and "Mako" for hcl.colors() (approximating
palettes of the same name from the 'viridisLite' package).
Contributed by Achim Zeileis.
* The base environment and its namespace are now locked (so one can
no longer add bindings to these or remove from these).
* Rterm handling of multi-byte characters has been improved,
allowing use of such characters when supported by the current
locale.
* Rterm now accepts ALT+ +xxxxxxxx sequences to enter Unicode
characters as hex digits.
* Environment variable LC_ALL on Windows now takes precedence over
LC_CTYPE and variables for other supported categories, matching
the POSIX behaviour.
* duplicated() and anyDuplicated() are now optimized for integer
and real vectors that are known to be sorted via the ALTREP
framework. Contributed by Gabriel Becker via PR#17993.
GRAPHICS:
* The graphics engine version, R_GE_version, has been bumped to 14
and so packages that provide graphics devices should be
reinstalled.
* Graphics devices should now specify deviceVersion to indicate
what version of the graphics engine they support.
* Graphics devices can now specify deviceClip. If TRUE, the
graphics engine will never perform any clipping of output itself.
The clipping that the graphics engine does perform (for both
canClip = TRUE and canClip = FALSE) has been improved to avoid
producing unnecessary artifacts in clipped output.
* The grid package now allows gpar(fill) to be a linearGradient(),
a radialGradient(), or a pattern(). The viewport(clip) can now
also be a grob, which defines a clipping path, and there is a new
viewport(mask) that can also be a grob, which defines a mask.
These new features are only supported so far on the Cairo-based
graphics devices and on the pdf() device.
* (Not Windows.) A warning is given when a Cairo-based type is
specified for a png(), jpeg(), tiff() or bmp() device but Cairo
is unsupported (so type = "Xlib" is tried instead).
* grSoftVersion() now reports the versions of FreeType and
FontConfig if they are used directly (not _via_ Pango), as is
most commonly done on macOS.
C-LEVEL FACILITIES:
* The _standalone_ libRmath math library and R's C API now provide
log1pexp() again as documented, and gain log1mexp().
INSTALLATION on a UNIX-ALIKE:
* configure checks for a program pkgconf if program pkg-config is
not found. These are now only looked for on the path (like
almost all other programs) so if needed specify a full path to
the command in PKG_CONFIG, for example in file config.site.
* C99 function iswblank is required - it was last seen missing ca
2003 so the workaround has been removed.
* There are new configure options --with-internal-iswxxxxx,
--with-internal-towlower and --with-internal-wcwidth which allows
the system functions for wide-character classification,
case-switching and width (wcwidth and wcswidth) to be replaced by
internal ones. The first has long been used on macOS, AIX (and
Windows) but this enables it to be unselected there and selected
for other platforms (it is the new default on Solaris). The
second is new in this version of R and is selected by default on
macOS and Solaris. The third has long been the default and
remains so as it contains customizations for East Asian
languages.
System versions of these functions are often minimally
implemented (sometimes only for ASCII characters) and may not
cover the full range of Unicode points: for example Solaris (and
Windows) only cover the Basic Multilingual Plane.
* Cairo installations without X11 are more likely to be detected by
configure, when the file-based Cairo graphics devices will be
available but not X11(type = "cairo").
* There is a new configure option --with-static-cairo which is the
default on macOS. This should be used when only static cairo
(and where relevant, Pango) libraries are available.
* Cairo-based graphics devices on platforms without Pango but with
FreeType/FontConfig will make use of the latter for font
selection.
LINK-TIME OPTIMIZATION on a UNIX-ALIKE:
* Configuring with flag --enable-lto=R now also uses LTO when
installing the recommended packages.
* R CMD INSTALL and R CMD SHLIB have a new flag --use-LTO to use
LTO when compiling code, for use with R configured with
--enable-lto=R. For R configured with --enable-lto, they have
the new flag --no-use-LTO.
Packages can opt in or out of LTO compilation _via_ a UseLTO
field in the DESCRIPTION file. (As usual this can be overridden
by the command-line flags.)
BUILDING R on Windows:
* for GCC >= 8, FC_LEN_T is defined in config.h and hence character
lengths are passed from C to Fortran in _inter alia_ BLAS and
LAPACK calls.
* There is a new text file src/gnuwin32/README.compilation, which
outlines how C/Fortran code compilation is organized and
documents new features:
* R can be built with Link-Time Optimization with a suitable
compiler - doing so with GCC 9.2 showed several
inconsistencies which have been corrected.
* There is support for cross-compiling the C and Fortran code
in R and standard packages on suitable (Linux) platforms.
This is mainly intended to allow developers to test later
versions of compilers - for example using GCC 9.2 or 10.x has
detected issues that GCC 8.3 in Rtools40 does not.
* There is experimental support for cross-building R packages
with C, C++ and/or Fortran code.
* The R installer can now be optionally built to support a single
architecture (only 64-bit or only 32-bit).
PACKAGE INSTALLATION:
* The default C++ standard has been changed to C++14 where
available (which it is on all currently checked platforms): if
not (as before) C++11 is used if available otherwise C++ is not
supported.
Packages which specify C++11 will still be installed using C++11.
C++14 compilers may give deprecation warnings, most often for
std::random_shuffle (deprecated in C++14 and removed in C++17).
Either specify C++11 (see 'Writing R Extensions') or modernize
the code and if needed specify C++14. The latter has been
supported since R 3.4.0 so the package's DESCRIPTION would need
to include something like
Depends: R (>= 3.4)
PACKAGE INSTALLATION on Windows:
* R CMD INSTALL and R CMD SHLIB make use of their flag --use-LTO
when the LTO_OPT make macro is set in file etc/${R_ARCH}/Makeconf
or in a personal/site Makevars file. (For details see 'Writing R
Extensions' SS4.5.)
This provides a valuable check on code consistency. It does work
with GCC 8.3 as in Rtools40, but that does not detect everything
the CRAN checks with current GCC do.
PACKAGE INSTALLATION on macOS:
* The default personal library directory on builds with
--enable-aqua (including CRAN builds) now differs by CPU type,
one of
~/Library/R/x86_64/x.y/library
~/Library/R/arm64/x.y/library
This uses the CPU type R (and hence the packages) were built for,
so when a x86_64 build of R is run under Rosetta emulation on an
arm64 Mac, the first is used.
UTILITIES:
* R CMD check can now scan package functions for bogus return
statements, which were possibly intended as return() calls (wish
of PR#17180, patch by Sebastian Meyer). This check can be
activated via the new environment variable
_R_CHECK_BOGUS_RETURN_, true for --as-cran.
* R CMD build omits tarballs and binaries of previous builds from
the top-level package directory. (PR#17828, patch by Sebastian
Meyer.)
* R CMD check now runs sanity checks on the use of LazyData, for
example that a data directory is present and that
LazyDataCompression is not specified without LazyData and has a
documented value. For packages with large LazyData databases
without specifying LazyDataCompression, there is a reference to
the code given in 'Writing R Extensions' SS1.1.6 to test the
choice of compression (as in all the CRAN packages tested a
non-default method was preferred).
* R CMD build removes LazyData and LazyDataCompression fields from
the DESCRIPTION file of packages without a data directory.
ENCODING-RELATED CHANGES:
* The parser now treats \Unnnnnnnn escapes larger than the upper
limit for Unicode points (\U10FFFF) as an error as they cannot be
represented by valid UTF-8.
Where such escapes are used for outputting non-printable
(including unassigned) characters, 6 hex digits are used (rather
than 8 with leading zeros). For clarity, braces are used, for
example \U{0effff}.
* The parser now looks for non-ASCII spaces on Solaris (as
previously on most other OSes).
* There are warnings (including from the parser) on the use of
unpaired surrogate Unicode points such as \uD834. (These cannot
be converted to valid UTF-8.)
* Functions nchar(), tolower(), toupper() and chartr() and those
using regular expressions have more support for inputs with a
marked Latin-1 encoding.
* The character-classification functions used (by default) to
replace the system iswxxxxx functions on Windows, macOS and AIX
have been updated to Unicode 13.0.0.
The character-width tables have been updated to include new
assignments in Unicode 13.0.0.
* The code for evaluating default (extended) regular expressions
now uses the same character-classification functions as the rest
of R (previously they differed on Windows, macOS and AIX).
* There is a build-time option to replace the system's
wide-character wctrans C function by tables shipped with R: use
configure option --with-internal-towlower or (on Windows)
-DUSE_RI18N_CASE in CFLAGS when building R. This may be needed
to allow tolower() and toupper() to work with Unicode characters
beyond the Basic Multilingual Plane where not supported by system
functions (e.g. on Solaris where it is the new default).
* R is more careful when truncating UTF-8 and other multi-byte
strings that are too long to be printed, passed to the system or
libraries or placed into an internal buffer. Truncation will no
longer produce incomplete multibyte characters.
DEPRECATED AND DEFUNCT:
* Function plclust() from the package stats and
package.dependencies(), pkgDepends(), getDepList(),
installFoundDepends(), and vignetteDepends() from package tools
are defunct.
* Defunct functions checkNEWS() and readNEWS() from package tools
and CRAN.packages() from utils have been removed.
* R CMD config CXXCPP is defunct (it was deprecated in R 3.6.2).
* parallel::detectCores() drops support for Irix (retired in 2013).
* The LINPACK argument to chol.default(), chol2inv(),
solve.default() and svd() has been defunct since R 3.1.0. It was
silently ignored up to R 4.0.3 but now gives an error.
* Subsetting/indexing, such as ddd[*] or ddd$x on a DOTSXP
(dot-dot-dot) object ddd has been disabled; it worked by accident
only and was undocumented.
BUG FIXES:
* Many more C-level allocations (mainly by malloc and strdup) are
checked for success with suitable alternative actions.
* Bug fix for replayPlot(); this was turning off graphics engine
display list recording if a recorded plot was replayed in the
same session. The impact of the bug became visible if resize the
device after replay OR if attempted another savePlot() after
replay (empty display list means empty screen on resize or empty
saved plot).
* R CMD check etc now warn when a package exports non-existing S4
classes or methods, also in case of no "methods" presence.
(Reported by Alex Bertram; reproducible example and patch by
Sebastian Meyer in PR#16662.)
* boxplot() now also accepts calls for labels such as ylab, the
same as plot(). (Reported by Marius Hofert.)
* The help page for xtabs() now correctly states that addNA is
setting na.action = na.pass among others. (Reported as PR#17770
by Thomas Soeiro.)
* The R CMD check <pkg> gives a longer and more comprehensible
message when DESCRIPTION misses dependencies, e.g., in Imports:.
(Thanks to the contributors of PR#17179.)
* update.default() now calls the generic update() on the formula to
work correctly for models with extended formulas. (As reported
and suggested by Neal Fultz in PR#17865.)
* The horizontal position of leaves in a dendrogram is now correct
also with center = FALSE. (PR#14938, patch from Sebastian
Meyer.)
* all.equal.POSIXt() no longer warns about and subsequently ignores
inconsistent "tzone" attributes, but describes the difference in
its return value (PR#17277). This check can be disabled _via_
the new argument check.tzone = FALSE as suggested by Sebastian
Meyer.
* as.POSIXct() now populates the "tzone" attribute from its tz
argument when x is a logical vector consisting entirely of NA
values.
* x[[2^31]] <- v now works. (Thanks to the report and patch by
Suharto Anggono in PR#17330.)
* In log-scale graphics, axis() ticks and label positions are now
computed more carefully and symmetrically in their range,
typically providing _more_ ticks, fulfilling wishes in PR#17936.
The change really corresponds to an improved axisTicks() (package
grDevices), potentially influencing grid and lattice, for
example.
* qnorm(<very large negative>, log.p=TRUE) is now correct to at
least five digits where it was catastrophically wrong,
previously.
* sum(df) and similar "Summary"- and "Math"-group member functions
now work for data frames df with logical columns, notably also of
zero rows. (Reported to R-devel by Martin "b706".)
* unsplit() had trouble with tibbles due to unsound use of rep(NA,
len)-indexing, which should use NA_integer_ (Reported to R-devel
by Mario Annau.)
* pnorm(x, log.p = TRUE) underflows to -Inf slightly later.
* show(<hidden S4 generic>) prints better and without quotes for
non-hidden S4 generics.
* read.table() and relatives treated an "NA" column name as missing
when check.names = FALSE PR#18007.
* Parsing strings containing UTF-16 surrogate pairs such as
"\uD834\uDD1E" works better on some (uncommon) platforms.
sprintf("%X", utf8ToInt("\uD834\uDD1E")) should now give "1D11E"
on all platforms.
* identical(x,y) is no longer true for differing DOTSXP objects,
fixing PR#18032.
* str() now works correctly for DOTSXP and related exotics, even
when these are doomed.
Additionally, it no longer fails for lists with a class and
"irregular" method definitions such that e.g. lapply(*) will
necessarily fail, as currently for different igraph objects.
* Too long lines in environment files (e.g. Renviron) no longer
crash R. This limit has been increased to 100,000 bytes.
(PR#18001.)
* There is a further workaround for FreeType giving incorrect
italic font faces with cairo-based graphics devices on macOS.
* add_datalist(*, force = TRUE) (from package tools) now actually
updates an existing data/datalist file for new content. (Thanks
to a report and patch by Sebastian Meyer in PR#18048.)
* cut.Date() and cut.POSIXt() could produce an empty last interval
for breaks = "months" or breaks = "years". (Reported as PR#18053
by Christopher Carbone.)
* Detection of the encoding of 'regular' macOS locales such as
en_US (which is UTF-8) had been broken by a macOS change:
fortunately these are now rarely used with en_US.UTF-8 being
preferred.
* sub() and gsub(pattern, repl, x, *) now keep attributes of x such
as names() also when pattern is NA (PR#18079).
* Time differences ("difftime" objects) get a replacement and a
rep() method to keep "units" consistent. (Thanks to a report and
patch by Nicolas Bennett in PR#18066.)
* The \RdOpts macro, setting defaults for \Sexpr options in an Rd
file, had been ineffective since R 2.12.0: it now works again.
(Thanks to a report and patch by Sebastian Meyer in PR#18073.)
* mclapply and pvec no longer accidentally terminate parallel
processes started before by mcparallel or related calls in
package parallel (PR#18078).
* grep and other functions for evaluating (extended) regular
expressions handle in Unicode also strings not explicitly flagged
UTF-8, but flagged native when running in UTF-8 locale.
* Fixed a crash in fifo implementation on Windows (PR#18031).
* Binary mode in fifo on Windows is now properly detected from
argument open (PR#15600, PR#18031).
# dplyr 1.0.6
* `add_count()` is now generic (#5837).
* `if_any()` and `if_all()` abort when a predicate is mistakingly used
as `.cols=` (#5732).
* Multiple calls to `if_any()` and/or `if_all()` in the same
expression are now properly disambiguated (#5782).
* `filter()` now inlines `if_any()` and `if_all()` expressions. This
greatly improves performance with grouped data frames.
* Fixed behaviour of `...` in top-level `across()` calls (#5813, #5832).
* `across()` now inlines lambda-formulas. This is slightly more performant and
will allow more optimisations in the future.
* Fixed issue in `bind_rows()` causing lists to be incorrectly transformed as
data frames (#5417, #5749).
* `select()` no longer creates duplicate variables when renaming a variable
to the same name as a grouping variable (#5841).
* `dplyr_col_select()` keeps attributes for bare data frames (#5294, #5831).
* Fixed quosure handling in `dplyr::group_by()` that caused issues with extra
arguments (tidyverse/lubridate#959).
* Removed the `name` argument from the `compute()` generic (@ianmcook, #5783).
* row-wise data frames of 0 rows and list columns are supported again (#5804).
# dplyr 1.0.5
* Fixed edge case of `slice_sample()` when `weight_by=` is used and there
0 rows (#5729).
* `across()` can again use columns in functions defined inline (#5734).
* Using testthat 3rd edition.
* Fixed bugs introduced in `across()` in previous version (#5765).
* `group_by()` keeps attributes unrelated to the grouping (#5760).
* The `.cols=` argument of `if_any()` and `if_all()` defaults to `everything()`.
# dplyr 1.0.4
* Improved performance for `across()`. This makes `summarise(across())` and
`mutate(across())` perform as well as the superseded colwise equivalents (#5697).
* New functions `if_any()` and `if_all()` (#4770, #5713).
* `summarise()` silently ignores NULL results (#5708).
* Fixed a performance regression in `mutate()` when warnings occur once per
group (#5675). We no longer instrument warnings with debugging information
when `mutate()` is called within `suppressWarnings()`.
# dplyr 1.0.3
* `summarise()` no longer informs when the result is ungrouped (#5633).
* `group_by(.drop = FALSE)` preserves ordered factors (@brianrice2, #5545).
* `count()` and `tally()` are now generic.
* Removed default fallbacks to lazyeval methods; this will yield
better error messages when you call a dplyr function with the wrong
input, and is part of our long term plan to remove the deprecated
lazyeval interface.
* `inner_join()` gains a `keep` parameter for consistency with the other
mutating joins (@patrickbarks, #5581).
* Improved performance with many columns, with a dynamic data mask using active
bindings and lazy chops (#5017).
* `mutate()` and friends preserves row names in data frames once more (#5418).
* `group_by()` uses the ungrouped data for the implicit mutate step (#5598).
You might have to define an `ungroup()` method for custom classes.
For example, see https://github.com/hadley/cubelyr/pull/3.
* `relocate()` can rename columns it relocates (#5569).
* `distinct()` and `group_by()` have better error messages when the
mutate step fails (#5060).
* Clarify that `between()` is not vectorised (#5493).
* Fixed `across()` issue where data frame columns would could not be referred to
with `all_of()` in the nested case (`mutate()` within `mutate()`) (#5498).
* `across()` handles data frames with 0 columns (#5523).
* `mutate()` always keeps grouping variables, unconditional to `.keep=` (#5582).
* dplyr now depends on R 3.3.0
# dplyr 1.0.2
* Fixed `across()` issue where data frame columns would mask objects referred to
from `all_of()` (#5460).
* `bind_cols()` gains a `.name_repair` argument, passed to
`vctrs::vec_cbind()` (#5451)
* `summarise(.groups = "rowwise")` makes a rowwise data frame even if
the input data is not grouped (#5422).
# dplyr 1.0.1
* New function `cur_data_all()` similar to `cur_data()` but includes
the grouping variables (#5342).
* `count()` and `tally()` no longer automatically weights by column `n` if
present (#5298). dplyr 1.0.0 introduced this behaviour because of Hadley's
faulty memory. Historically `tally()` automatically weighted and `count()`
did not, but this behaviour was accidentally changed in 0.8.2 (#4408) so that
neither automatically weighted by `n`. Since 0.8.2 is almost a year old,
and the automatically weighting behaviour was a little confusing anyway,
we've removed it from both `count()` and `tally()`.
Use of `wt = n()` is now deprecated; now just omit the `wt` argument.
* `coalesce()` now supports data frames correctly (#5326).
* `cummean()` no longer has off-by-one indexing problem (@cropgen, #5287).
* The call stack is preserved on error. This makes it possible to `recover()`
into problematic code called from dplyr verbs (#5308).
These produce poor code and it's always better to use the CPU-specific
intrinsics instead, which we already do on platforms where the test
suite doesn't fail.
Those cmake config files are not useful for us and they are incorrect
for the upcoming 64-bit-index variants. Also, we could switch back
to the Makefile build from cmake in future. Let's treat the question of
CMake as implementation detail of the packages.
The actual use is via mk/blas.bl3 in pkgsrc and pkg-config. There isn't
even added value in these files, were they to be correct. CMake builds
can use pkg-config just fine.
Changed in xts 0.12.1:
o Various function could change the tclass of xts objects. This would happen
in calls to reclass(), period.apply(), and for logical operations on
POSIXct indexes. Thanks to Tom Andrews for the report and testing, and to
Panagiotis Cheilaris for contributing test cases (#322, #323).
o plot.xts() now supports y-axis labels via 'ylab'. Thanks to Jasen Mackie
for the suggestion and PR (#333, #334).
o The API header has been updated to fix the signatures of do_merge_xts() and
is_xts, which did not return a SEXP as required of functions callable by
.Call(). Thanks to Tomas Kalibera for the report (#317), and Dirk
Eddelbuettel for the PR (#337). This is a breaking change, but is required
to avoid the potential for a segfault.
o Michael Chirico added an internal isUTC() function to recognize many UTC-
equivalent time zones (#319).
o first() now operates correctly on non-xts objects when 'n = -1'. Previously
it would always return the last two values. Thanks to GitHub user vxg20
for the report (#325).
o The .xts() constructor would create an xts object with row names if 'x' had
row names. This shouldn't happen, because xts objects do not have or
support row names (#298).
o Claymore Marshall added many examples of time-of-day subsetting to
?subset.xts. He also fixed a bug in time-of-day subsetting where subsetting
by hour only returned wrong results (#304, #326, #328).
Changed in xts 0.12-0:
o All the index-attributes have been removed from the xts object and are now
only attached to the index itself (#245). We took great care to maintain
backward compatibility, and throw warnings when deprecated functions are
called and when index-attributes are found on the xts object. But there
still may be some breaking changes lurking in edge cases.
o @SamoPP found one edge case (#297) where an error was thrown when index()
was called on an xts object with an index that had no tclass attribute.
o ...which led Joshua to find that the index setting functions did not
always copy index attributes (#305).
o Several binary operations (e.g. +, -, !=, <, etc.) on variations of
uncommon xts objects with other xts, matrix, or vector objects, could
result in malformed xts objects (#295). Some examples of the types of
uncommon xts objects: no dim attribute, zero-width, zero-length.
o Calling as.matrix() on an xts object without a dim attribute no longer
throws an error (#294).
o merge.xts() now honors check.names = FALSE (#293).
o The possible values for major.ticks, minor.ticks, and grid.ticks.on in the
Details section of ?plot.xts have been corrected. Thanks to Harvey Smith
(@harvey131) for the report and patch (#291).
o as.zoo.xts() is now only registered for zoo versions prior to 1.8-5. Methods
to convert an object to another class should reside in the package that
implements the target class. Thanks to Kurt Hornik for the report (#287).
o .parseISO8601() no longer has a potential length-1 logical error. Thanks to
Kurt Hornik for the report (#280).
o endpoints() now honors k > 0 when on = "quarters". Thanks to @alkment for
the report (#279).
o Performance for the period.XYZ() functions (sum, prod, min, max) is much
faster (#278). Thanks to Harvey Smith (@harvey131) for the report and
examples.
o merge.xts() now creates shorter column names when passed unnamed objects.
This is now consistent with zoo (#248).
o Time-of-day performance is ~200x faster, thanks to StackOverflow
user3226167 (#193).
Changes in Version 1.8-9
o Added a basic boxplot(x, ...) method for zoo objects that simply calls
boxplot(coredata(x), ...).
o Bug fix in [.zoo and [<-.zoo where indexing with matrices did not
work correctly anymore in R 4.x.y because "matrix" objects now additionally
inherit from "array" objects. (Reported by Bill Cunliffe.)
o Improved internal functionality in na.spline.default() in the same way
na.approx.default() was enhanced in zoo 1.7-14 and 1.7-13. One difference
is that while na.approx() requires at least two non-NA observations,
na.spline() just needs one non-NA observation (using a constant to
interpolate in that case).
o If the FUN in rollapply() returns a matrix or data.frame with more than
one row per element/time point, then this is flattened now so that the
result is again a matrix with one row per element/time point.
o merge.zoo() now handles the case of all indexes being integer or numeric
by coercing the integer indexes to numeric (reported by Simone Giannerini).
o zooreg(x) now allows to create an integer index if start (and end, if any)
are integer and the implied deltat is not numerically different from an
integer value.
Changes in Version 1.8-8
o diff.zoo(x, arithmetic = FALSE) now also works if x contains negative
data.
o merge.zoo() now handles the combination of Date and numeric indexes
explicitly to work around the new behavior of c.Date() in R >= 4.1.0.
Changes in Version 1.8-7
o Added scale_type() methods for yearmon/yearqtr to facilitate ggplot2
visualizations of zoo series with yearmon/yearqtr time index (suggested
by Brian Diggs). This requires at least ggplot2 3.0.0.
o In merge.zoo() "character" columns are now processed in the same way
as "logical" columns.
o Replaced the "fruitohms" example in the "zoo" vignette because the
corresponding "DAAG" package is not actively maintained on CRAN anymore.
Instead the "Journals" data from the "AER" package is used.
# forcats 0.5.1
* Re-license as MIT (#277).
* `fct_lump_n()` no longer uses a partial argument name (@malcolmbarrett, #276).
# forcats 0.5.0
* `as_factor()` gains a logical method that always returns a factor with
levels "FALSE" and "TRUE" (#185).
* `fct_c()`, `fct_collapse()` and `fct_recode()` are now explicitly
documented as using [dynamic dots](https://rlang.r-lib.org/reference/dyn-dots.html)
(@labouz, #234).
* `fct_collapse()` now accepts a `other_level` argument, to allow a
user-specified `Other` level (@gtm19, #194). It now correctly collapses
factors when `other_level` is not `NULL` (#172), and makes `"Other"` the
last level (#202) (@gtm19, #172 & #202)
* `fct_count()` no longer converts implicit NAs into explicit NAs (#151).
* `fct_inseq()` behaves more robustly when factor levels aren't all numbers
(#221).
* `fct_lump()` has been split up into three new functions: `fct_lump_prop()`,
`fct_lump_n()`, and `fct_lump_lowfreq()`. (@jonocarroll, #167, #142).
All `fct_lump_()` functions check their inputs more carefully
(@robinson_es, #169)
* `fct_reorder2()` gains a helper function `first2()`, that sorts `.y` by the
first value of `.x` (@jtr13).
# version 0.7-1
* allow longer units grouping; #270 addressing #269 @bart1
* fix regression in `set_units` method for `mixed_units` to ensure that
ordering is preserved; #272 addressing #271
# version 0.7-0
* add `load_units_xml` to enable database reloading as well as loading
user-provided unit systems; #254 addressing #243, #244
* add `install_unit` and `remove_unit` for adding/removing custom user-defined
symbols or names, with optional mapping to existing units;
`install_symbolic_unit`, `remove_symbolic_unit`, `install_conversion_constant`,
`install_conversion_offset` are deprecated; #261 addressing #89
* add `keep_units`, a helper to apply functions that do not preserve units;
#255 addressing #252
* fix `as_units("")`, which is now equivalent to `unitless`; #199
* fix plot axes for `plot.formula` and `plot.data.frame`; #213
* fix arithmetic for powers above 1 and below -1; #264
* improve arithmetic of logarithms; #249
* export `ud_are_convertible`; #263 addressing #258 @cregouby
* remove deprecations: `as.units`, `as_cf`, `make_unit`, `parse_unit`; #259
* remove deprecated pre-computed `ud_units` database; #259
# version 0.6-7
* port `isFALSE` to fix regression in old R versions; #230 addressing #229
* fix replacement operation for `units` objects; #233 addressing #232
* fix compatibility with dplyr 1.0; #247 addressing #239
# version 0.6-6
* prettier `str` print for units and mixed units; #228 addressing #227
* add compatibility with upcoming tibble v3.0.0; #225
Without this change, I have following error with 9.99.82 host (amd64) which
has gcc-10. And buildlink for libgfortran was only made for gcc-10 side.
Adding this line makes both gcc-7 and gcc-10 buildlinked.
The error I had was: ( the line folded)
** libs
----------
gcc -shared -Wl,-R/usr/pkg/lib/R/lib -L/usr/pkg/lib/R/lib
-L/usr/pkg/lib -L/usr/lib -Wl,-R/usr/lib -Wl,-R/usr/pkg/lib -pthrea d
-L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib -o classInt.so fish1.o init.o
-L/usr/pkg/gcc7/lib/gcc/x86_64--netbsd/7.5.0 -L/usr/pkg/gcc7/lib
-Wl,-R/usr/pkg/gcc7/x86_64--netbsd/lib/. -Wl,-R/usr/pkg/gcc7/lib/. -lgfortran
-lm -lquadmath -lpthread -Wl,-R/usr/pkg/lib/R/lib -L/usr/pkg/lib/R/lib
-lR
ld: cannot find -lgfortran
ld: cannot find -lquadmath
*** Error code 1
----------
Please correct me if my understanding (or correction) is wrong, sorry and tks
# generics 0.1.0
* Maintainer changed to Hadley Wickham.
* Re-licensed with MIT license.
* New `min_grid()`, `required_pkgs()`, and `tunable()` generics.
# `generics` 0.0.2
* Removed the `data` argument to `augment` to resolve issues with `broom`
# tibble 3.1.2
- Bump required versions of ellipsis and vctrs to avoid warning during package load.
# tibble 3.1.1
- `num()` and `char()` are reexported from pillar (#880).
- `tribble()` and `frame_matrix()` give an error if values are named (#871, @lorenzwalthert).
- Document `cli.num_colors` option (#410).
- Fix `new_tibble()` examples for compatibility with pillar 1.6.0.
# tibble 3.1.0
## Bug fixes
- `has_rownames()` now works correctly for data frames with a `"row.names"` attribute malformed due to a problem in `structure()` (#852).
- `tbl[FALSE, "column"] <- x` adds new column again (#846).
## Features
- Importing pillar 1.5.0, cli and crayon are now suggested packages (#475).
- `size_sum()` is now reexported from pillar (#850, @topepo).
- `as_tibble()` hints more often to use the `.name_repair` argument if column names are invalid (#855).
- `as_tibble.table()` mentions `.name_repair` argument in the error message (#839).
## Internal
- Remove compatibility code for pillar < 1.5.0 (#861).
- Moved most functions to the "stable" lifecycle (#860).
# tibble 3.0.6
- `vec_ptype_abbr.tbl_df()` and `type_sum.tbl_df()` now uses the name of the topmost class for subclasses of `"tbl_df"` (#843).
- Ignore errors in `formats.Rmd` vignette.
- Avoid tidy evaluation in pillar compatibility code.
# tibble 3.0.5
- Use testthat edition 3, compatible with testthat 3.0.1 (#827, #832).
# tibble 3.0.4
## Compatibility
- Establish compatibility with upcoming pillar 1.5.0 (#818).
- `tbl_sum()` shows "data frame" instead of "tibble" for objects inheriting from `"tbl"` but not `"tbl_df"` (#818).
- Register `format.tbl()` and `print.tbl()` methods only if pillar doesn't (#816).
- Use `vctrs::num_as_location()` internally for subset assignment of rows and columns for better error messages (#746).
- Adapt tests to the development version of testthat.
## Bug fixes
- Fix documentation link to `base::Extract`.
- `add_row(df)` adds an empty row again (#809, @DavisVaughan).
# tibble 3.0.3
- Fix test compatibility with rlang 0.4.7.
- Fix warning about `needs_dots` arguments with pillar >= 1.4.5 (#798).
# tibble 3.0.2
## Bug fixes
- `[[` works with classed indexes again, e.g. created with `glue::glue()` (#778).
- `add_column()` works without warning for 0-column data frames (#786).
- `tribble()` now better handles named inputs (#775) and objects of non-vtrs classes like `lubridate::Period` (#784) and `formattable::formattable` (#785).
## Performance
- Subsetting and subassignment are faster (#780, #790, #794).
- `is.null()` is preferred over `is_null()` for speed.
- Implement continuous benchmarking (#793).
## Compatibility
- `is_vector_s3()` is no longer reexported from pillar (#789).
# tibble 3.0.1
## Compatibility fixes
- `[<-.tbl_df()` coerces matrices to data frames (#762).
- Use delayed import for cli to work around unload problems in downstream packages (#754).
## Bug fixes
- More soft-deprecation warnings are actually visible.
- If `.name_repair` is a function, no repair messages are shown (#763).
- Remove superseded signal for `as_tibble.list()`, because `as_tibble_row()` only works for size 1.
## Enhancements
- `as_tibble(validate = )` now always triggers a deprecation warning.
- Subsetting and subassignment of rows with one-column matrices work again, with a deprecation warning (#760).
- Attempts to update a tibble row with an atomic vector give a clearer error message. Recycling message for subassignment appears only if target size is != 1.
- Tweak title of "Invariants" vignette.
# tibble 3.0.0
## Major breaking changes
- Subset assignment ("subassignment") and also subsetting has become stricter. Symptoms:
- Error: No common type for ...
- Error: Assigned data `...` must be compatible with ...
- `i` must have one dimension, not 2
- Error: Lossy cast from ... to ...
The "invariants" article at https://tibble.tidyverse.org/dev/articles/invariants.html describes the invariants that the operations follow in tibble, and the most important differences to data frames. We tried to make subsetting and subassignment as safe as possible, so that errors are caught early on, while introducing as little friction as possible.
- List classes are no longer automatically treated as vectors. Symptoms:
- Error: All columns in a tibble must be vectors
- Error: Expected a vector, not a `...` object
If you implement a class that wraps a list as S3 vector, you need to include `"list"` in the class:
```r
structure(x, class = c("your_s3_class", "list"))
```
Alternatively, implement a `vec_proxy()` method as described in https://vctrs.r-lib.org/reference/vec_data.html, or construct your class with `list_of()`.
- Added experimental support for inner names for all columns, of the form `tibble(a = c(b = 1))`. Inner names are no longer stripped when creating a tibble. They are maintained for slicing operations but not yet updated when assigning with a row subscript. This is a change that may break existing comparison tests that don't expect names in columns (#630). Symptoms:
- "names for target but not for current" when comparing
## Breaking changes
- `tibble()` now splices anonymous data frames, `tibble(tibble(a = 1), b = a)` is equivalent to `tibble(a = 1, b = a)`. This means that `tibble(iris)` now has five columns, use `tibble(iris = iris)` if the intention is to create a packed data frame (#581).
- The `name-repair` help topic is gone, refer to `?vctrs::vec_as_names` instead.
- `expression()` columns are converted to lists as a workaround for lacking support in vctrs (#657).
- `tribble()` is now stricter when combining values. All values in a column must be compatible, otherwise an error occurs (#204). The criteria for wrapping in a list column are now based on vctrs principles: non-vectors or vectors with `vctrs::vec_size()` unequal 1 are wrapped in lists.
- `$` warns unconditionally if column not found, `[[` doesn't warn.
- `add_row()` now uses `vctrs::vec_rbind()` under the hood, this means that all columns are combined with `vctrs::vec_c()`. In particular, factor columns will be converted to character if one of the columns is a character column.
## Soft deprecations
- Soft-deprecate `subclass` argument to `new_tibble()`.
- Soft-deprecate `as_tibble()` without arguments (#683).
- Preparing to move `glimpse()` and `tbl_sum()` to the pillar package. If your package implements these methods, please import the generics from pillar as soon as they become available there.
## Features
- Internals now make heavy use of the vctrs package, following most of the invariants defined there. Name repair is the responsibility of vctrs now (#464).
- All errors emitted directly by the package inherit from the `"tibble_error"` and `"rlang_error"` classes. In some cases, `"vctrs_error"` errors may be passed through. The exact subclass is subject to change.
Example: `tibble(a = quote(b))` raises an error that inherits from `"tibble_error_column_must_be_vector"`, `"tibble_error"` and `"rlang_error"`, and from `"error"` and `"condition"` like all errors. Do not rely on the wording of `"tibble_error_column_must_be_vector"`, this is likely to change.
Use the following pattern to catch errors emitted by tibble:
```r
tryCatch(
your_code(),
tibble_error = function(cnd) {
}
)
```
- New `tibble_row()` constructs tibbles that have exactly one row, or fails. Non-vector objects are automatically wrapped in a list, vectors (including lists) must have length one (#205).
- New `as_tibble_row()` and `as_tibble_col()` convert a bare vector to a one-row or one-column tibble, respectively. `as_tibble_col()` also works for non-bare vectors. Using `as_tibble()` for bare vectors is superseded (#447).
- `as_tibble.data.frame()` uses implicit row names if asked to create a column from row names. This allows lossless direct conversion of matrices with row names to tibbles (#567, @stufield).
- Implement `str.tbl_df()` (#480).
- `tribble()` now returns columns with `"unspecified"` type for 0-row tibbles.
- `add_row()` and `add_column()` now restore attributes to avoid errors when appending to sf objects or other tibble subclasses (#662).
- `add_column()` gains `.name_repair` argument. If not given, `.data` must have unique columns, with a deprecation message.
- Allow `POSIXlt` columns, they are now better supported by dplyr and other tools thanks to vctrs (#626).
- `tibble()` ignores NULL arguments, named or unnamed (#580).
- `view()` works for remote data sources by applying the same strategy as `print()` and `glimpse()`. The maximum number of rows in this case can be specified using the new `n` argument, by default it is taken from the new `"tibble.view_max"` option (#695).
## Output
- Formatting dimensions never uses scientific notation.
- `glimpse()` uses "Rows" and "Columns" instead of "Variables" and "Observations", because we're not sure if the data is tidy here (#614).
- `view()` now uses the created (or passed) title argument (#610, @xvrdm).
## Performance
- Construction and subsetting of large data frames is faster now (#717, @romainfrancois).
## Internal
- Import lifecycle package (#669).
- `new_tibble()` removes redundant subclasses from the `"class"` attribute.
- Using classed conditions. All classes start with `"tibble_error_"` and also contain `"tibble_error"` (#659).
- The magrittr pipe `%>%` is reexported.
# 1.1.1
* Fix spurious zero fractions in `pretty_bytes()` when formatting
vectors of sizes (#23).
# 1.1.0
* `pretty_dt()`, `pretty_ms()` and `pretty_sec()` now handle `NA` values
properly, and return `NA_character_` for them (#10, @petermeissner).
* `pretty_bytes()` now formats quantities just below the units better.
E.g. 1MB - 1B is formatted as `"1 MB"` instead of `""1000 kB"` (#18).
* `pretty_bytes()` now has multiple styles. In particular, a fixed width
style is useful for progress bars. Another style avoids the left-padding
with spaces.
* The new low level `compute_bytes()` function can be used to create
custom formatters for bytes.
This also affects py-{ailment,archinfo,cle,pyvex,claripy}, which get updated to
the same version at the same time.
I could not find any specific release notes or changelog.
The whole list of changes can be found at:
https://github.com/angr/angr/compare/v9.0.4378...v9.0.7833.
The upcoming lapack64 needs the library name liblapack64, the
variable for that was missing in the patch. This does not change
the build of math/lapack itself.
* What is new in gsl-2.6:
** add BLAS calls for the following functions:
- gsl_vector_memcpy
- gsl_vector_scale
- gsl_matrix_memcpy
- gsl_matrix_transpose_memcpy
- gsl_matrix_tricpy
- gsl_matrix_transpose_tricpy
** deprecated functions gsl_linalg_complex_householder_hm and
gsl_linalg_complex_householder_mh
** add unit tests for gsl_linalg_symmtd and gsl_linalg_hermtd
** multilarge TSQR algorithm has been converted to use the new Level 3 QR decomposition
** nonlinear least squares Cholesky solver now uses the new Level 3 BLAS
method; the old modified Cholesky solver is still available under
gsl_multifit_nlinear_solver_mcholesky and gsl_multilarge_nlinear_solver_mcholesky
** implemented Level 3 BLAS versions of several linear algebra routines:
- Triangular matrix inversion
- Cholesky decomposition and inversion (real and complex)
- LU decomposition and inversion (real and complex)
- QR decomposition (courtesy of Julien Langou)
- Generalized symmetric/hermitian eigensystem reduction to standard form
** removed deprecated function gsl_linalg_hessenberg()
** renamed gsl_interp2d_eval_e_extrap() to gsl_interp2d_eval_extrap_e()
to match documentation (reported by D. Lebrun-Grandie)
** renamed some of the gsl_sf_hermite functions to be more consistent
with rest of the library, and deprecated old function names
** updated gsl_sf_hermite_func() to use a newer algorithm
due to B. Bunck which is more stable for large x; also added
gsl_sf_hermite_func_fast() which uses the faster Cauchy integral
algorithm in the same paper by Bunck
** add gsl_vector_axpby()
** add un-pivoted LDLT decomposition and its banded
variant (gsl_linalg_ldlt_* and gsl_linalg_ldlt_band_*)
** add binary search tree module (gsl_bst); based on GNU libavl
** remove -u flag to gsl-histogram
** updated spmatrix module
- added routines and data structures for all types (float,uint,char,...)
- added gsl_spmatrix_scale_columns() and gsl_spmatrix_scale_rows()
- added gsl_spmatrix_add_to_dense()
- more efficient reallocation of COO/triplet matrices (no longer rebuilds binary tree)
- enhanced test suite
- added gsl_spmatrix_min_index()
** add routines for banded Cholesky decomposition (gsl_linalg_cholesky_band_*)
** documented gsl_linalg_LQ routines and added gsl_linalg_LQ_lssolve()
This updates octave and also gets some more recommened dependencies in,
namely qrupdate and Mesalib (for osmesa) and gl2ps as well as the
qscintilla editor. The glpk option is on by default again.
This version of octave comes rather close to a standard build, with
optimzied BLAS and GUI fluff. We are still missing SuiteSparse and
SUNDIALS solvers, see
https://octave.org/doc/v6.2.0/External-Packages.html
PortAudio should also be considered, and LLVM be watched if that
experimental JIT settles in.
Upstream changes since 5.x:
Summary of important user-visible changes for version 6.1.0 (2020-11-26):
------------------------------------------------------------------------
### General improvements
- The `intersect`, `setdiff`, `setxor`, `union`, and `unique` functions
accept a new sorting option `"stable"` which will return output values
in the same order as the input, rather than in ascending order.
- Complex RESTful web services can now be accessed by the `webread` and
`webwrite` functions alongside with the `weboptions` structure. One
major feature is the support for cookies to enable RESTful
communication with the web service.
Additionally, the system web browser can be opened by the `web`
function.
- The `linspace` function now produces symmetrical sequences when the
endpoints are symmetric. This is more intuitive and also compatible
with recent changes made in Matlab R2019b.
- The underlying algorithm of the `rand` function has been changed.
For single precision outputs, the algorithm has been fixed so that it
produces values strictly in the range (0, 1). Previously, it could
occasionally generate the right endpoint value of 1 (See bug #41742).
In addition, the new implementation uses a uniform interval between
floating point values in the range (0, 1) rather than targeting a
uniform density (# of random integers / length along real number
line).
- Numerical integration has been improved. The `quadv` function has
been re-written so that it can compute integrands of periodic
functions. At the same time, performance is better with ~3.5X fewer
function evaluations required. A bug in `quadgk` that caused complex
path integrals specified with `"Waypoints"` to occasionally be
calculated in the opposite direction was fixed.
- The `edit` function option `"editinplace"` now defaults to `true` and
the option `"home"` now defaults to the empty matrix `[]`. Files will
no longer be copied to the user's HOME directory for editing. The old
behavior can be restored by setting `"editinplace"` to `false` and
`"home"` to `"~/octave"`.
- The `format` command supports two new options: `uppercase` and
`lowercase` (default). With the default, print a lowercase 'e' for
the exponent character in scientific notation and lowercase 'a-f' for
the hex digits representing 10-15. With `uppercase`, print 'E' and
'A-F' instead. The previous uppercase formats, `E` and `G`, no longer
control the case of the output.
Additionally, the `format` command can be called with multiple options
for controlling the format, spacing, and case in arbitrary order.
For example:
format long e uppercase loose
Note, in the case of multiple competing format options the rightmost
one is used, and, in case of an error, the previous format remains
unchanged.
- L-value references (e.g., increment (++), decrement (--), and all
in-place assignment operators (+=, -=, *=, /=, etc.)) are no longer
allowed in anonymous functions.
- New warnings have been added about questionable uses of the colon ':'
range operator. Each has a new warning ID so that it can be disabled
if desired.
> `Octave:colon-complex-argument` : when any arg is complex
> `Octave:colon-nonscalar-argument` : when any arg is non-scalar
- The `regexp` and related functions now correctly handle and *require*
strings in UTF-8 encoding. As with any other function that requires
strings to be encoded in Octave's native encoding, you can use
`native2unicode` to convert from your preferred locale. For example,
the copyright symbol in UTF-8 is `native2unicode (169, "latin1")`.
- The startup file `octaverc` can now be located in the platform
dependent location for user local configuration files (e.g.,
${XDG_CONFIG_HOME}/octave/octaverc on Unix-like operating systems or
%APPDATA%\octave\octaverc on Windows).
- `pkg describe` now lists dependencies and inverse dependencies
(i.e., other installed packages that depend on the package in
question).
- `pkg test` now tests all functions in a package.
- When unloading a package, `pkg` now checks if any remaining loaded
packages depend on the one to be removed. If this is the case `pkg`
aborts with an explanatory error message. This behavior can be
overridden with the `-nodeps` option.
- The command
dbstop in CLASS at METHOD
now works to set breakpoints in classdef constructors and methods.
#### Graphics backend
- The use of Qt4 for graphics and the GUI is deprecated in Octave
version 6 and no further bug fixes will be made. Qt4 support will be
removed completely in Octave version 7.
- The `legend` function has been entirely rewritten. This fixes a
number of historical bugs, and also implements new properties such as
`"AutoUpdate"` and `"NumColumns"`. The gnuplot toolkit---which is no
longer actively maintained---still uses the old legend function.
- The `axis` function was updated which resolved 10 bugs affecting
axes to which `"equal"` had been applied.
- Graphic primitives now accept a color property value of `"none"`
which is useful when a particular primitive needs to be hidden
(for example, the Y-axis of an axes object with `"ycolor" = "none"`)
without hiding the entire primitive `"visibility" = "off"`.
- A new property `"FontSmoothing"` has been added to text and axes
objects that controls whether anti-aliasing is used during the
rendering of characters. The default is `"on"` which produces smooth,
more visually appealing text.
- The figure property `"windowscrollwheelfcn"`is now implemented.
This makes it possible to provide a callback function to be executed
when users manipulate the mouse wheel on a given figure.
- The figure properties `"pointer"`, `"pointershapecdata"`, and
`"pointershapehotspot"` are now implemented. This makes it possible
to change the shape of the cursor (pointer in Matlab-speak) displayed
in a plot window.
- The figure property `"paperpositionmode"` now has the default `"auto"`
rather than `"manual"`. This change is more intuitive and is
Matlab compatible.
- The appearance of patterned lines `"LineStyle" = ":"|"--"|"-."` has
been improved for small widths (`"LineWidth"` less than 1.5 pixels)
which is a common scenario.
- Printing to EPS files now uses a tight bounding box (`"-tight"`
argument to print) by default. This makes more sense for EPS
files which are normally embedded within other documents, and is
Matlab compatible. If necessary use the `"-loose"` option to
reproduce figures as they appeared in previous versions of Octave.
- The following print devices are no longer officially supported: cdr,
corel, aifm, ill, cgm, hpgl, mf and dxf. A warning will be thrown
when using those devices, and the code for supporting those formats
will eventually be removed from a future version of Octave.
- The placement of text subscripts and superscripts has been
re-engineered and now produces visually attractive results similar to
Latex.
### Matlab compatibility
- The function `unique` now returns column index vectors for the second
and third outputs. When duplicate values are present, the default
index to return is now the `"first"` occurrence. The previous Octave
behavior, or Matlab behavior from releases prior to R2012b, can be
obtained by using the `"legacy"` flag.
- The function `setdiff` with the `"rows"` argument now returns Matlab
compatible results. The previous Octave behavior, or Matlab behavior
from releases prior to R2012b, can be obtained by using the `"legacy"`
flag.
- The functions `intersect`, `setxor`, and `union` now accept a
`"legacy"` flag which changes the index values (second and third
outputs) as well as the orientation of all outputs to match Matlab
releases prior to R2012b.
- The function `streamtube` is Matlab compatible and plots tubes along
streamlines which are scaled by the vector field divergence. The
Octave-only extension `ostreamtube` can be used to visualize the flow
expansion and contraction of the vector field due to the local
crossflow divergence.
- The interpreter now supports handles to nested functions.
- The graphics properties `"LineWidth"` and `"MarkerSize"` are now
measured in points, *not* pixels. Compared to previous versions
of Octave, some lines and markers will appear 4/3 larger.
- The meta.class property "SuperClassList" has been renamed
"Superclasslist" for Matlab compatibility. The original name will
exist as an alias until Octave version 8.1.
- Inline functions created by the function `inline` are now of type
"inline" when interrogated with the `class` function. In previous
versions of Octave, the class returned was "function_handle". This
change is Matlab compatible. Inline functions are deprecated in
both Matlab and Octave and support may eventually be removed.
Anonymous functions can be used to replace all instances of inline
functions.
- The function `javaaddpath` now prepends new directories to the
existing dynamic classpath by default. To append them instead, use
the new `"-end"` argument. Multiple directories may now be specified
in a cell array of strings.
- An undocumented function `gui_mainfcn` has been added, for compatibility
with figures created with Matlab's GUIDE.
- Several validator functions of type `mustBe*` have been added. See
the list of new functions below.
### Alphabetical list of new functions added in Octave 6
* `auto_repeat_debug_command`
* `commandhistory`
* `commandwindow`
* `filebrowser`
* `is_same_file`
* `lightangle`
* `mustBeFinite`
* `mustBeGreaterThan`
* `mustBeGreaterThanOrEqual`
* `mustBeInteger`
* `mustBeLessThan`
* `mustBeLessThanOrEqual`
* `mustBeMember`
* `mustBeNegative`
* `mustBeNonempty`
* `mustBeNonNan`
* `mustBeNonnegative`
* `mustBeNonpositive`
* `mustBeNonsparse`
* `mustBeNonzero`
* `mustBeNumeric`
* `mustBeNumericOrLogical`
* `mustBePositive`
* `mustBeReal`
* `namedargs2cell`
* `newline`
* `ode23s`
* `ostreamtube`
* `rescale`
* `rotx`
* `roty`
* `rotz`
* `stream2`
* `stream3`
* `streamline`
* `streamtube`
* `uisetfont`
* `verLessThan`
* `web`
* `weboptions`
* `webread`
* `webwrite`
* `workspace`
### Deprecated functions and properties
The following functions and properties have been deprecated in Octave 6
and will be removed from Octave 8 (or whatever version is the second
major release after 6):
- Functions
Function | Replacement
-----------------------|------------------
`runtests` | `oruntests`
- Properties
Object | Property | Value
-----------------|---------------|------------
| |
- The environment variable used by `mkoctfile` for linker flags is now
`LDFLAGS` rather than `LFLAGS`. `LFLAGS` is deprecated, and a warning
is emitted if it is used, but it will continue to work.
### Removed functions and properties
The following functions and properties were deprecated in Octave 4.4
and have been removed from Octave 6.
- Functions
Function | Replacement
---------------------|------------------
`chop` | `sprintf` for visual results
`desktop` | `isguirunning`
`tmpnam` | `tempname`
`toascii` | `double`
`java2mat` | `__java2mat__`
- Properties
Object | Property | Value
---------------------|---------------------------|-----------------------
`annotation` | `edgecolor ("rectangle")` |
`axes` | `drawmode` |
`figure` | `doublebuffer` |
| `mincolormap` |
| `wvisual` |
| `wvisualmode` |
| `xdisplay` |
| `xvisual` |
| `xvisualmode` |
`line` | `interpreter` |
`patch` | `interpreter` |
`surface` | `interpreter` |
`text` | `fontweight` | `"demi"` and `"light"`
`uibuttongroup` | `fontweight` | `"demi"` and `"light"`
`uicontrol` | `fontweight` | `"demi"` and `"light"`
`uipanel` | `fontweight` | `"demi"` and `"light"`
`uitable` | `fontweight` | `"demi"` and `"light"`
It is wrong to disable OpenMP and this setting does nothing anyway.
Maybe it did in the past. Now, the build tries to use OpenMP if
possible and this is the right thing to do.
Repeat: This change doesn't affect the build at all since that variable
is not checked (since some time?).
(pkgsrc changes)
- Add TEST_DEPENDS+, but still one missing is there
(upstream changes)
# vctrs 0.3.8
* Compatibility with next version of rlang.
# vctrs 0.3.7
* `vec_ptype_abbr()` gains arguments to control whether to indicate
named vectors with a prefix (`prefix_named`) and indicate shaped
vectors with a suffix (`suffix_shape`) (#781, @krlmlr).
* `vec_ptype()` is now an optional _performance_ generic. It is not necessary
to implement, but if your class has a static prototype, you might consider
implementing a custom `vec_ptype()` method that returns a constant to
improve performance in some cases (such as common type imputation).
* New `vec_detect_complete()`, inspired by `stats::complete.cases()`. For most
vectors, this is identical to `!vec_equal_na()`. For data frames and
matrices, this detects rows that only contain non-missing values.
* `vec_order()` can now order complex vectors (#1330).
* Removed dependency on digest in favor of `rlang::hash()`.
* Fixed an issue where `vctrs_rcrd` objects were not being proxied correctly
when used as a data frame column (#1318).
* `register_s3()` is now licensed with the "unlicense" which makes it very
clear that it's fine to copy and paste into your own package
(@maxheld83, #1254).
# vctrs 0.3.6
* Fixed an issue with tibble 3.0.0 where removing column names with
`names(x) <- NULL` is now deprecated (#1298).
* Fixed a GCC 11 issue revealed by CRAN checks.
# vctrs 0.3.5
* New experimental `vec_fill_missing()` for filling in missing values with
the previous or following value. It is similar to `tidyr::fill()`, but
also works with data frames and has an additional `max_fill` argument to
limit the number of sequential missing values to fill.
* New `vec_unrep()` to compress a vector with repeated values. It is very
similar to run length encoding, and works nicely alongside `vec_rep_each()`
as a way to invert the compression.
* `vec_cbind()` with only empty data frames now preserves the common size of
the inputs in the result (#1281).
* `vec_c()` now correctly returns a named result with named empty inputs
(#1263).
* vctrs has been relicensed as MIT (#1259).
* Functions that make comparisons within a single vector, such as
`vec_unique()`, or between two vectors, such as `vec_match()`, now
convert all character input to UTF-8 before making comparisons (#1246).
* New `vec_identify_runs()` which returns a vector of identifiers for the
elements of `x` that indicate which run of repeated values they fall in
(#1081).
* Fixed an encoding translation bug with lists containing data frames which
have columns where `vec_size()` is different from the low level
`Rf_length()` (#1233).
# vctrs 0.3.4
* Fixed a GCC sanitiser error revealed by CRAN checks.
# vctrs 0.3.3
* The `table` class is now implemented as a wrapper type that
delegates its coercion methods. It used to be restricted to integer
tables (#1190).
* Named one-dimensional arrays now behave consistently with simple
vectors in `vec_names()` and `vec_rbind()`.
* `new_rcrd()` now uses `df_list()` to validate the fields. This makes
it more flexible as the fields can now be of any type supported by
vctrs, including data frames.
* Thanks to the previous change the `[[` method of records now
preserves list fields (#1205).
* `vec_data()` now preserves data frames. This is consistent with the
notion that data frames are a primitive vector type in vctrs. This
shouldn't affect code that uses `[[` and `length()` to manipulate
the data. On the other hand, the vctrs primitives like `vec_slice()`
will now operate rowwise when `vec_data()` returns a data frame.
* `outer` is now passed unrecycled to name specifications. Instead,
the return value is recycled (#1099).
* Name specifications can now return `NULL`. The names vector will
only be allocated if the spec function returns non-`NULL` during the
concatenation. This makes it possible to ignore outer names without
having to create an empty names vector when there are no inner
names:
```
zap_outer_spec <- function(outer, inner) if (is_character(inner)) inner
# `NULL` names rather than a vector of ""
names(vec_c(a = 1:2, .name_spec = zap_outer_spec))
#> NULL
# Names are allocated when inner names exist
names(vec_c(a = 1:2, c(b = 3L), .name_spec = zap_outer_spec))
#> [1] "" "" "b"
```
* Fixed several performance issues in `vec_c()` and `vec_unchop()`
with named vectors.
* The restriction that S3 lists must have a list-based proxy to be considered
lists by `vec_is_list()` has been removed (#1208).
* New performant `data_frame()` constructor for creating data frames in a way
that follows tidyverse semantics. Among other things, inputs are recycled
using tidyverse recycling rules, strings are never converted to factors,
list-columns are easier to create, and unnamed data frame input is
automatically spliced.
* New `df_list()` for safely and consistently constructing the data structure
underlying a data frame, a named list of equal-length vectors. It is useful
in combination with `new_data_frame()` for creating user-friendly
constructors for data frame subclasses that use the tidyverse rules for
recycling and determining types.
* Fixed performance issue with `vec_order()` on classed vectors which
affected `dplyr::group_by()` (tidyverse/dplyr#5423).
* `vec_set_names()` no longer alters the input in-place (#1194).
* New `vec_proxy_order()` that provides an ordering proxy for use in
`vec_order()` and `vec_sort()`. The default method falls through to
`vec_proxy_compare()`. Lists are special cased, and return an integer
vector proxy that orders by first appearance.
* List columns in data frames are no longer comparable through `vec_compare()`.
* The experimental `relax` argument has been removed from
`vec_proxy_compare()`.
Ellipsis 0.3.2
* Compatibility with next version of rlang.
* Changed license to MIT (#39).
----------------------------------------------------------------------
This includes a rework of our patchery with the hope of upstreaming a good deal
of it.
These are the upstream changes since 0.3.10:
Version 0.3.15
2-May-2021
common:
- imported improvements and bugfixes from Reference-LAPACK 3.9.1
- imported LAPACKE interface fixes from Reference-LAPACK PRs 534 + 537
- fixed a problem in the cpu detection of 0.3.14 that prevented cross-compilation
- fixed a sequence problem in the generation of softlinks to the library in GMAKE
RISC V:
- fixed compilation on RISCV (missing entry in getarch)
- fixed a potential division by zero in CROTG and ZROTG
POWER:
- fixed LAPACK testsuite failures seen with the NVIDIA HPC compiler
- improved CGEMM, DGEMM and ZGEMM performance on POWER10
- added an optimized ZGEMV kernel for POWER10
- fixed a potential division by zero in CROTG and ZROTG
x86_64:
- added support for Intel Control-flow Enforcement Technology (CET)
- reverted the DOMATCOPY_RT code to the generic C version
- fixed a bug in the AVX512 SGEMM kernel introduced in 0.3.14
- fixed misapplication of -msse flag to non-SSE cpus in DYNAMIC_ARCH
- added support for compilation of the benchmarks on older OSX versions
- fix propagation of the NO_AVX512 option in CMAKE builds
- fix compilation of the AVX512 SGEMM kernel with clang-cl on Windows
- fixed compilation of the CTESTs with INTERFACE64=1 (random faults on OSX)
- corrected the Haswell DROT kernel to require AVX2/FMA3 rather than AVX512
ARM:
- fixed a potential division by zero in CROTG and ZROTG
- fixed a potential overflow in IMATCOPY/ZIMATCOPY and the CTESTs
ARM64:
- fixed spurious reads outside the array in the SGEMM tcopy macro
- fixed a potential division by zero in CROTG and ZROTG
- fixed a segmentation fault in DYNAMIC_ARCH builds (reappeared in 0.3.14)
MIPS
- fixed a potential division by zero in CROTG and ZROTG
- fixed a potential overflow in IMATCOPY/ZIMATCOPY and the CTESTs
MIPS64:
- fixed a potential division by zero in CROTG and ZROTG
SPARC:
- fixed a potential division by zero in CROTG and ZROTG
====================================================================
Version 0.3.14
17-Mar-2021
common:
* Fixed a race condition on thread shutdown in non-OpenMP builds
* Fixed custom BUFFERSIZE option getting ignored in gmake builds
* Fixed CMAKE compilation of the TRMM kernels for GENERIC platforms
* Added CBLAS interfaces for CROTG, ZROTG, CSROT and ZDROT
* Improved performance of OMATCOPY_RT across all platforms
* Changed perl scripts to use env instead of a hardcoded /usr/bin/perl
* Fixed potential misreading of the GCC compiler version in the build scripts
* Fixed convergence problems in LAPACK complex GGEV/GGES (Reference-LAPACK #477)
* Reduced the stacksize requirements for running the LAPACK testsuite (Reference-LAPACK #335)
RISCV:
* Fixed compilation on RISCV (missing entry in getarch)
POWER:
* Fixed compilation for DYNAMIC_ARCH with clang and with old gcc versions
* Added support for compilation on FreeBSD/ppc64le
* Added optimized POWER10 kernels for SSCAL, DSCAL, CSCAL, ZSCAL
* Added optimized POWER10 kernels for SROT, DROT, CDOT, SASUM, DASUM
* Improved SSWAP, DSWAP, CSWAP, ZSWAP performance on POWER10
* Improved SCOPY and CCOPY performance on POWER10
* Improved SGEMM and DGEMM performance on POWER10
* Added support for compilation with the NVIDIA HPC compiler
x86_64:
* Added an optimized bfloat16 GEMM kernel for Cooperlake
* Added CPUID autodetection for Intel Rocket Lake and Tiger Lake cpus
* Improved the performance of SASUM,DASUM,SROT,DROT on AMD Ryzen cpus
* Added support for compilation with the NAG Fortran compiler
* Fixed recognition of the AMD AOCC compiler
* Fixed compilation for DYNAMIC_ARCH with clang on Windows
* Added support for running the BLAS/CBLAS tests on Windows
* Fixed signatures of the tls callback functions for Windows x64
* Fixed various issues with fma intrinsics support handling
ARM:
* Added support for embedded Cortex M targets via a new option EMBEDDED
ARMV8:
* Fixed the THUNDERX2T99 and NEOVERSEN1 DNRM2/ZNRM2 kernels for inputs with Inf
* Added support for the DYNAMIC_LIST option
* Added support for compilation with the NVIDIA HPC compiler
* Added support for compiling with the NAG Fortran compiler
====================================================================
Version 0.3.13
12-Dec-2020
common:
* Added a generic bfloat16 SBGEMV kernel
* Fixed a potentially severe memory leak after fork in OpenMP builds
that was introduced in 0.3.12
* Added detection of the Fujitsu Fortran compiler
* Added detection of the (e)gfortran compiler on OpenBSD
* Added support for overriding the default name of the library independently
from symbol suffixing in the gmake builds (already supported in cmake)
RISCV:
* Added a RISC V port optimized for C910V
POWER:
* Added optimized POWER10 kernels for SAXPY, CAXPY, SDOT, DDOT and DGEMV_N
* Improved DGEMM performance on POWER10
* Improved STRSM and DTRSM performance on POWER9 and POWER10
* Fixed segmemtation faults in DYNAMIC_ARCH builds
* Fixed compilation with the PGI compiler
x86:
* Fixed compilation of kernels that require SSE2 intrinsics since 0.3.12
x86_64:
* Added an optimized bfloat16 SBGEMV kernel for SkylakeX and Cooperlake
* Improved the performance of SASUM and DASUM kernels through parallelization
* Improved the performance of SROT and DROT kernels
* Improved the performance of multithreaded xSYRK
* Fixed OpenMP builds that use the LLVM Clang compiler together with GNU gfortran
(where linking of both the LLVM libomp and GNU libgomp could lead to lockups or
wrong results)
* Fixed miscompilations by old gcc 4.6
* Fixed misdetection of AVX2 capability in some Sandybridge cpus
* Fixed lockups in builds combining DYNAMIC_ARCH with TARGET=GENERIC on OpenBSD
ARM64:
* Fixed segmemtation faults in DYNAMIC_ARCH builds
MIPS:
* Improved kernels for Loongson 3R3 ("3A") and 3R4 ("3B") models, including MSA
* Fixed bugs in the MSA kernels for CGEMM, CTRMM, CGEMV and ZGEMV
* Added handling of zero increments in the MSA kernels for SSWAP and DSWAP
* Added DYNAMIC_ARCH support for MIPS64 (currently Loongson3R3/3R4 only)
SPARC:
* Fixed building 32 and 64 bit SPARC kernels with the SolarisStudio compilers
====================================================================
Version 0.3.12
24-Oct-2020
common:
* Fixed missing BLAS/LAPACK functions (inadvertently dropped during
the build system restructuring)
* Fixed argument conversion macro in LAPACKE_zgesvdq (LAPACK #458)
POWER:
* Added optimized SCOPY/CCOPY kernels for POWER10
* Increased and unified the default size of the GEMM BUFFER
* Fixed building for POWER10 in DYNAMIC_ARCH mode
* POWER10 compatibility test now checks binutils version as well
* Cleaned up compiler warnings
x86_64:
* corrected compiler version checks for AVX2 compatibility
* added compiler option -mavx2 for building with flang
* fixed direct SGEMM pathway for small matrix sizes (broken by
the code refactoring in 0.3.11)
* fixed unhandled partial register clobbers in several kernels
for AXPY,DOT,GEMV_N and GEMV_T flagged by gcc10 tree-vectorizer
ARMV8:
* improved Apple Vortex support to include cross-compiling
====================================================================
Version 0.3.11
17-Oct-2020
common:
* API change:
the newly added BFLOAT16 functions were renamed to use the
letter "B" instead of "H" to avoid potential confusion with
the IEEE "half precision float" type, i.e. the 0.3.10
SHGEMM is now SBGEMM and the corresponding build option
was changed from "BUILD_HALF" to "BUILD_BFLOAT16".
* Reduced the default BLAS3_MEM_ALLOC_THRESHOLD (used as an upper
limit for placing temporary arrays on the stack) to be compatible
with a stack size of 1mb (as imposed by the JAVA runtime library)
* Added mixed-precision dot function SBDOT and utility functions
shstobf16, shdtobf16, sbf16tos and dbf16tod to convert between
single or double precision float arrays and bfloat16 arrays
* Fixed prototypes of LAPACK_?ggsvp and LAPACK_?ggsvd functions
in lapack.h
* Fixed underflow and rounding errors in LAPACK SLANV2 and DLANV2
(causing miscalculations in e.g. SHSEQR/DHSEQR, LAPACK issue #263)
* Fixed workspace calculation in LAPACK ?GELQ (LAPACK issue #415)
* Fixed several bugs in the LAPACK testsuite
* Improved performance of TRMM and TRSM for certain problem sizes
* Fixed infinite recursions and workspace miscalculations in ReLAPACK
* CMAKE builds no longer require pkg-config for creating the .pc file
* Makefile builds no longer misread NO_CBLAS=0 or NO_LAPACK=0 as
enabling these options
* Fixed detection of gfortran when invoked through an mpi wrapper
* Improve thread reinitialization performance with OpenMP after a fork
* Added support for building only the subset of the library required
for a particular precision by specifying BUILD_SINGLE, BUILD_DOUBLE
* Optional function name prefixes and suffixes are now correctly
reflected in the generated cblas.h
* Added CMAKE build support for the LAPACK and multithreading tests
POWER:
* Added optimized support for POWER10
* Added support for compiling for POWER8 in 32bit mode
* Added support for compilation with LLVM/clang
* Added support for compilation with NVIDIA/PGI compilers
* Fixed building on big-endian POWER8
* Fixed miscompilation of ZDOTC by gcc10
* Fixed alignment errors in the POWER8 SAXPY kernel
* Improved CPU detection on AIX
* Supported building with older compilers on POWER9
x86_64:
* Added support for Intel Cooperlake
* Added autodetection of AMD Renoir/Matisse/Zen3 cpus
* Added autodetection of Intel Comet Lake cpus
* Reimplemented ?sum, ?dot and daxpy using universal intrinsics
* Reset the fpu state before using the fpu on Windows as a workaround
for a problem introduced in Windows 10 build 19041 (a.k.a. SDK 2004)
* Fixed potentially undefined behaviour in the dot and gemv_t kernels
* Fixed a potential segmentation fault in DYNAMIC_ARCH builds
* Fixed building for ZEN with PGI/NVIDIA and AMD AOCC compilers
ARMV7:
* Fixed cpu detection on BSD-like systems
ARMV8:
* Added preliminary support for Apple Vortex cpus
* Added support for the Cavium ThunderX3T110 cpu
* Fixed cpu detection on BSD-like systems
* Fixed compilation in -std=C18 mode
IBM Z:
* Added support for compiling with the clang compiler
* Improved GEMM performance on Z14
This is scheduled to be a dependency for math/octave to support the
named operations.
Qrupdate is a linear algebra library for fast updating of QR and Cholesky
decompositions.
Supported operations:
- QR rank-1 update (qr1up)
- QR column insert (qrinc)
- QR column delete (qrdec)
- QR column shift (qrshc)
- QR row insert (qrinr)
- QR row delete (qrder)
- Cholesky rank-1 update (ch1up)
- Cholesky rank-1 downdate (ch1dn)
- Cholesky symmetric insert (chinx)
- Cholesky symmetric insert (chdex)
- Cholesky symmetric shift (chshx)
- LU rank-1 update (lu1up)
- LU pivoted rank-1 update (lup1up)
-Adjusted estimation and rounding to include imaginary numbers
-Division with complex numbers
-Fixed negative scientific notation
-Basics of complex numbers
-Made sum() and ans compatible with complex numbers
-Implemented complex variants of prelude functions
-Allow a comma before 'dx' in integrals
-Always round values <= 10^-16 down to zero
-Finding square roots for estimate()
-Created synonym 'integral' for 'integrate'
-Convert fract to f64 before turning into string in estimate()
-Avoid panic because of invalid number literal
-Fixed integration with expressions like xdx
-Fixed rounding for complex numbers resulting in 0
-Integration with complex numbers
v0.18.2 (19 May 2021)
---------------------
This release reverts a regression in xarray's unstacking of dask-backed arrays.
v0.18.1 (18 May 2021)
---------------------
This release is intended as a small patch release to be compatible with the new
2021.5.0 ``dask.distributed`` release. It also includes a new
``drop_duplicates`` method, some documentation improvements, the beginnings of
our internal Index refactoring, and some bug fixes.
New Features
- Implement :py:meth:`DataArray.drop_duplicates`
to remove duplicate dimension values (:pull:`5239`).
- Allow passing ``combine_attrs`` strategy names to the ``keep_attrs`` parameter of
:py:func:`apply_ufunc` (:pull:`5041`)
- :py:meth:`Dataset.interp` now allows interpolation with non-numerical datatypes,
such as booleans, instead of dropping them. (:issue:`4761` :pull:`5008`).
- Raise more informative error when decoding time variables with invalid reference dates.
(:issue:`5199`, :pull:`5288`).
Bug fixes
- Opening netCDF files from a path that doesn't end in ``.nc`` without supplying
an explicit ``engine`` works again (:issue:`5295`), fixing a bug introduced in
0.18.0.
Documentation
- Clean up and enhance docstrings for the :py:class:`DataArray.plot` and ``Dataset.plot.*``
families of methods (:pull:`5285`).
- Explanation of deprecation cycles and how to implement them added to contributors
guide. (:pull:`5289`)
0.4.1
=====
-Use KalkNum's to_string() function in to_scientific_notation()
-kalk_web: Added integral and estimation support
-Combined to_scientific_notation() methods for both types, and added types,
and added tests
-Added wasm binding to KalkNum.estimate()
0.4.0
=====
-Fixed mod.rs errors for when rug is not used, and added some unit tests
-Estimation/rounding for final results
-Lex special symbols as one token
-Basic rounding for calculus functions
-Higher order derivatation
-Improved accuracy for derivation
-Basics of derivation
-Created 'Identifier' struct that contains prime count and name
-Fixed integrate function test
-Lex '**' as power sign
-Switched to Simpson's rule (composite, 3/8) for integration
-Fixed "dx" in integrals, and created calculus.rs
-Integration estimation
-Fixed zeroes being trimmed for non-rug numbers
-kalk: Fixed type error in kalk_num/regular.rs
-Trimming trailing zeroes for non-rug numbers
-Fixed xy^z precedence, from (xy)^2 to x(y^2)
the package previously used PKG_OPTIONS for this, but PKG_OPTIONS
are harmful in the case that they effect the resulting ABI of
library packages. this way, things that actually need fftwl and fftwq
can depend on these sub-packages.
this also fixes fftwq on NetBSD by making it pull in libquadmath.
another thing about PKG_OPTIONS for library components is that
they mean certain components don't get tested...
This was lost on the recent rework of the patches:
On NetBSD.
In PKGSRC_FORTRAM=gfortran case, libcblas has no RPATH=/usr/pkg/gccXX/lib
and libgfortran and libquadmath are not found.
In PKGSRC_FORTRAN=g95 case, libcblas has no
RPATH=/usr/pkg/lib/gcc-lib/x86_64--netbsd/4.1.2 and libf95 is not found.
Use Fortran compiler as linker instread of C compiler to fix link.
1.8:
Backwards compatibility breaks and deprecations
Please manually add any backwards compatibility breaks or deprecations here, in addition to the automatic listing below.
assumptions
AskHandler(), register_handler() and remove_handler() are deprecated. Handler now must be multipledispatch instance.
parsing
Parsing of "Q" returns AssumptionKeys instance in assumptions module. This means that sympify("Q") will no longer return a symbol.
Changes
assumptions
Q.infinite now correctly evaluates to True for oo, -oo, and zoo.
Assumption predicates now correctly evaluates to None for S.NaN.
Relational objects do not need to be wrapped by Q.is_true to be asked or refined anymore
Q.is_true wrapping over AppliedPredicate now just return the argument.
refine arg(x) when x is real and nonzero
assumptions/relation module is introduced. This module implements binary relation as predicate.
AskHandler(), register_handler() and remove_handler() are deprecated. Handler now must be multipledispatch instance.
Predicate now uses a single handler which is multipledispatch instance.
Predicate can now take multiple arguments.
Predicate("...") now returns UndefinedPredicate instance. To define a predicate, you must make a subclass of Predicate.
calculus
Using maximum with a piecewise expression over a domain no longer fails due to a bug fix in Piecewise.as_expr_set_pairs.
codegen
allowing for multi-dimensional arrays as arguments/locals in c code generation
create_expand_pow_optimization is now customizable with respect to requirement on base.
Support flattening of elementwise additions of array expressions.
Fixes to array-expressions in order to properly work with ZeroArray and ZeroMatrix.
Fixing matrix expression recognition from array-expressions.
Minor fixes to the way the AST of array expressions is built
Add normalization of CodegenArrayDiagonal when it's nested with CodegenArrayPermuteDims and CodegenArrayContraction.
Increased support for the normalization of array expressions and permutations of indices.
parse_matrix_expression( ) is now able to parse traces of matrices.
combinatorics
Added a section to the permutation docs about containment in permutation groups.
concrete
Improved infinite summation capability by adding residue formula.
A bug leading to incorrect evaluation of a summation of an exponential function was fixed.
core
Fixed a bug in Pow._eval_nseries that added Order terms to exact expansions
Fixed a bug in Expr.round that could lead to infinite recursion in integrate.
Removed deprecated ClassRegistry
get_integer_part no longer has a threshold on the approximation to closest integer based on difference, allowing floor to give more accurate results for smaller evalf precisions also
A bug causing match to fail for expressions with different signs was fixed. Previously this resulted in solve raising an exception for some inputs.
Make S(0.0) == S.false return False
.refine() method is moved from Expr to Basic.
gcd correctly handles unevaluated Mul
Fixed a bug leading to infinite recursion in the old assumptions under evaluate(False).
Fixed _eval_is_zero() functionality when imaginary numbers are involved.
Kind classification of objects is introduced. This feature is experimental, and can be replaced or deleted in the future.
Make class Eq with sets as arguments work with simplify().
Fixed a few broken cases of expr.is_integer
functions
Implemented Riemann Xi function
riemaan xi function
Added nseries expansion for besselj and bessely
Fixed leading term calculation of sin functions to handle angles outside (-pi, pi)
Added aseries expansion to error functions
Changes _eval_nseries of Abs to no longer return a Piecewise
Modified _eval_nseries to handle infinity and added _eval_as_leading_term in floor and ceiling
Added Generalized Incomplete, Generalized Regularized and Central Beta functions
Added _eval_nseries support to sign
Fixed assumption is_algebraic for exponentials with rational multiples of I*pi to be True.
geometry
Fix AssertError for vertical tangent
Geometric entities with symbolic coordinates will not be printed in SVG.
integrals
Fixed a bug that led to RecursionError in integrals involving hyperbolic functions.
The heurisch integration method was made faster by improvements in the sparse linear systems solver.
A bug leading to incorrect results when integrating Piecewise expressions where a condition simplifies to True was fixed.
logic
simplify_logic faster in most cases, especially for larger expressions.
refine() on Boolean objects reduces them to true or false if the truth value can be determined.
matrices
Fixed a bug that led to the wrong derivative result in matrix expressions.
The eye and zero functions have been made much faster for large matrices.
Added two new functions upper_triangular and lower_triangular, that return upper and lower triangular parts of a matrix.
Minus one, integers, rational numbers multiplied with MatAdd is automatically distributed.
Added function returning Wilkinson matrix
Implemented Singular Value decomposition for matrices
Implemented Upper Hessenberg Decomposition for a matrix
eigenvals, eigenvects without radical solution will be returned as CRootOf
Added function to calculate Generalized Schur Complement for Block Matrices
Added functions to compute LDU, UDL and LU decompositions for Block Matrices
Fixed issues with dot product for Matrix.orthogonalize with complex vectors.
Fixed zero division issues for Matrix.QRdecomposition with zero columns coming first than nonzero columns.
Added a function to compute the permanent of a matrix
Changed behaviour of eq() of class DenseMatrix
det has a new option 'gauss-ge' which is much faster in many cases
ntheory
Added documentation of ecm and qs functions
Fixed a bug in the is_gaussian_prime function for python complex numbers (e.g. 1+1j).
primerange now accepts a single argument i.e., primerange(input_arg) is valid and is same as primerange(2, input_arg).
Added motzkin numbers
parsing
Fixed issue with parsing logarithm bases without curly braces
Fix parse_expr parsing of expressions with methods when using the implicit_multiplications transformation.
Include the transformed code in the error message when the evaluation in parse_expr fails.
Extended the LaTeX parser with support for complex conjugates (via \overline{...}).
Latex parser does not evaluate sqrt expressions anymore.
physics.continuum_mechanics
make beam module compute correctly internal forces
physics.optics
Fixed bugs related to basic operations on TWave
physics.quantum
WignerD now evaluates to KroneckerDelta in some cases.
physics.units
Fix bug when input argument to a function is an integer
Change default behavior for functions (all function arguments must be dimensionless by default)
sin, cos, tan, cot, sec, and csc functions may have a dimensionless or angle input argument
Exponents must now be dimensionless
Constants such as pi and E are now treated as dimensionless (raised exception previously)
Numbers with an imaginary component are now treated as dimensionless (raised exception previously)
Fixed a bug with derived units and dimensions in check_dimensions.
Fix bug in convert_to returning wrong units in some cases where the linear equation system between canonical units is unsolvable.
physics.vector
Fix documentation for v1pt_theory
Introduced new methods on ReferenceFrame: .orient_axis(), .orient_explicit(), .orient_body_fixed(), .orient_space_fixed(), and .orient_quaternion(). .orient() calls out to each new method and it is recommended to use the new methods.
Added .xreplace() to Vector Class.
Added .xreplace() to Dyadic Class.
Added .evalf() to Vector class
Added .evalf() to Dyadic class
plotting
Added handling for OverflowError (when plotting functions like exp(1/x)).
polys
Added internal representation as both dense and sparse matrix
Added docstrings for Domain Matrix class
Add zeros method to DomainMatrix
A new sparse implementation of DomainMatrix is added.
make is_disjoint strict so that inequalities evaluated with solve() return consistent results
The DomainMatrix class has moved from sympy.polys.domainmatrix to sympy.polys.matrices and should now be imported as from sympy.polys.matrices import DomainMatrix.
A new polys FiniteExtension domain is added.
numberfields: implemented new algorithm for primitive_element in case ex=True.
added boilerplate index method for FracField
Solved bug in Poly.replace
Solve a bug in polytools.degree.
Use assumption system instead of structural equality check in __bool__ method of Expression domain element (fixing cases where Poly(...).is_zero would incorrectly return False)
printing
The pretty printer was made faster when printing large sequences (e.g. tuples, sets etc).
Fixed a bug which led to latex printing error in singularity function expressions.
Replaced the Theano printer with an Aesara printer
Symbols with Unicode character names and no underscores, like ω0 now properly pretty print subscripts.
Fix the printing of the vertical bar in ImageSet, ConditionSet, and ComplexRegion so that it is the full height in the pretty and LaTeX printers.
Fix the tag for the degree of a root with a rational base in MathML output.
irrational powers are no longer printed with square root sign, they are printed as fractional powers
Allow spreading assignments across multiple symbols when printing multi-member objects.
Support various array constructor types when printing arrays to GLSL.
Fixes a bug when printing negative expressions to GLSL with operators printed as functions.
Support a custom 0 substitution for printing expressions representing various GLSL types.
make cxxcode correctly print the first argument of Min/Max functions
sets
Added basic denesting functionaility for sets of the form ConditionSet(x, Contains(x, ...)).
ConditionSet.contains(x) now returns False if x is not in the base set (even if its substitution into the condition will cause an error).
FiniteSet.evalf with a subs argument now does the substitution. Previously, the argument was ignored.
Add .simplify to FiniteSet.
Make 'is_subset' work for ProductSet
changed behavior of Rationals.contains(float) to indeterminate
tests modified to include new behavior
.evalf() precisions with x and FiniteSet(x) is same now.
simplify
Fix simplify calls sympify without rational parameter
TRmorrie now takes powers of cos terms into account
solvers
Fixed a bug in solve that expanded hyperbolic function constants to equivalent exp form.
Handle x**r=0 case in invert_complex
Fixed a bug in solveset, which led to infinite recursion for solving some expressions involving radicals.
The new sparse DomainMatrix implementation is used in linsolve to make it much faster when solving large sparse systems of linear equations.
Modified symbols sorting in solvers._solve_system to ensure solve and linsolve solve the same way
Added solver for 2nd order nonlinear autonomous ODE.
speed improvement in a substep of rsolve_hyper (when computing constant solutions to constant coefficient recurrences).
Fixed incorrect solutions from rsolve for higher order recurrences
stats
Refactory and simplification of sampling backends for random variables.
Expectation can now be calculated across multiple Uniform RVs evaluating to zero
Implemented Matrix Student's t-distribution
Fixed simplification bug in Stochastic Processes by introducing abstract Distribution class
API changed for StochasticProcess.distribution which now expects a timestamp argument instead of RandomIndexedSymbol object.
Implemented FlorySchulz Distribution
implemented LogCauchy Distribution
Implemented Logit-Normal probability distribution
Fixes cdf computation of Discrete random variables by using integer limits
Added 2 new distributions in frv_types.
added support for fundamental matrix for regular markov chains
Added support for multiple RandomIndexedSymbols in DiscreteMarkovChain
tensor
Introduced objects ArraySymbol and ArrayElement for array expressions equivalent to MatrixSymbol and MatrixElement in the matrix expression module.
shape() function is introduced in array module.
Add class ZeroArray for array expressions of zero-valued elements.
Make Array differentiation(derive_by_array) work with non sympy expressions.
Added tensordiagonal( ) function to perform diagonalization of array expressions.
Adding an array with any other type now consistently gives NotImplemented.
utilities
Added official support for using CuPy to GPU accelerate lambdify functions.
Added Replacer class to simplify the creation of replacement expressions with MatchPy.
Added tests for optional parameter in MatchPy patterns.
Added string printers for MatchPy-compatible wildcards in sympy.utilities.matchpy_connector
Added WildDot, WildPlus and WildStar classes to MatchPy connector. These classes correspond to the dot, dot-plut and dot-star expressions in regular expression, but operate on SymPy expression trees and are aware of associative and commutative properties, features supported through the MatchPy library.
minlex no longer accepts is_set or small arguments
minlex and least_rotation now accept key= arguments similar to sorted.
vector
Fixed a bug with integral over ImplicitRegion objects
other
Expanding documentation to include all class members with docstrings
--1.2.0--
Released February 1, 2021
Features and optimizations:
* Support @ operator for matrix multiplication (Max Gaukler)
* Add eta() implementing the Dedekind eta function
* Optimized the python_trailing function (adhoc-king)
* Implement unary plus for matrices (Max Gaukler)
* Improved calculation of gram_index (p15-git-acc)
Compatibility:
* Enable sage backend by default only if SAGE_ROOT is set (Pauli Virtanen)
* Fix syntax warnings on CPython 3.8 (Sergey B Kirpichev)
* Changed version requirements to Python 2.7 and 3.4 or later
(Sergey B Kirpichev)
* Improvements to the setup and test code (Sergey B Kirpichev)
* Fix sys.version comparisons for compatibility with Python 3.10 (Jakub Wilk)
* Fixes to Python2/3 compatibility for printing (Christian Clauss)
Bug fixes:
* Fix a possible division by zero in shanks() (Pascal Hebbeker)
* Fixed indexing errors in deHoog, Knight & Stokes inverse laplace
transform algorithm (Kris Kuhlman)
* Corrected branch cuts of the elliprj() function in some cases
* Fix initialization of iv.matrix from non-interval matrix (Max Gaukler)
* Preserve function signatures in PrecisionManager (Viet Tran)
* Implemented float and complex conversions for ivmpf
(Jonathan Warner)
* Fixed issue with scalar-matrix multiplication for interval matrices
(Jonathan Warner)
* Fix estimation of quadrature error with multiple subintervals (Tom Minka)
* Fixed a problem with the defun decorators (Sergey B Kirpichev)
* Fix eigenvalue sorting by absolute value (Georg Ostrovski)
Cleanup:
* Documentation corrections (Paul Masson, S.Y. Lee)
* Remove inaccessible logic in fsum/fdot (Sergey B Kirpichev)
* Remove broken force_type option for matrix constructor (Max Gaukler)
* Fix text of the BSD license in LICENSE (Sergey B Kirpichev)
* Minor code cleanup (Frédéric Chapoton)
* Removed old, unused code
1.20.3:
BUG: Correct ``datetime64`` missing type overload for ``datetime.date``
MAINT: Remove ``__all__`` in favor of explicit re-exports
BLD: Strip extra newline when dumping gfortran version on MacOS
BUG: fix segfault in object/longdouble operations
MAINT: Use towncrier build explicitly
MAINT: Relax certain integer-type constraints
MAINT: Remove unsafe unions and ABCs from return-annotations
MAINT: Allow more recursion depth for scalar tests.
BUG: Initialize the full nditer buffer in case of error
BLD: remove unnecessary flag ``-faltivec`` on macOS
MAINT, CI: treats _SIMD module build warnings as errors through...
BUG: for MINGW, threads.h existence test requires GLIBC > 2.12
BUG: Make changelog recognize gh- as a PR number prefix.
REL, DOC: Prepare for the NumPy 1.20.3 release.
BUG: Fix failing mypy test in 1.20.x.
Fixes build errors of the form
/tmp/pkgsrc/math/arpack-ng/work.x86_64/arpack-ng-3.7.0/SRC/cnaitr.f:666:35:
383 | call svout (logfil, 1, rnorm, ndigit,
| 2
......
666 | call svout (logfil, 2, rtemp, ndigit,
| 1
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
seen in arpack-ng-3.7.0nb1
v0.18.0 (6 May 2021)
This release brings a few important performance improvements, a wide range of usability upgrades, lots of bug fixes, and some new features. These include a plugin API to add backend engines, a new theme for the documentation, curve fitting methods, and several new plotting functions.
v0.17.0 (24 Feb 2021)
This release brings a few important performance improvements, a wide range of usability upgrades, lots of bug fixes, and some new features. These include better cftime support, a new quiver plot, better unstack performance, more efficient memory use in rolling operations, and some python packaging improvements. We also have a few documentation improvements (and more planned!).
v0.16.2 (30 Nov 2020)
This release brings the ability to write to limited regions of zarr files, open zarr files with :py:func:`open_dataset` and :py:func:`open_mfdataset`, increased support for propagating attrs using the keep_attrs flag, as well as numerous bugfixes and documentation improvements.
v0.16.1 (2020-09-20)
This patch release fixes an incompatibility with a recent pandas change, which was causing an issue indexing with a datetime64. It also includes improvements to rolling, to_dataframe, cov & corr methods and bug fixes. Our documentation has a number of improvements, including fixing all doctests and confirming their accuracy on every commit.
v0.16.0 (2020-07-11)
This release adds xarray.cov & xarray.corr for covariance & correlation respectively; the idxmax & idxmin methods, the polyfit method & xarray.polyval for fitting polynomials, as well as a number of documentation improvements, other features, and bug fixes. Many thanks to all 44 contributors who contributed to this release:
version 1.5.6 (tag v1.5.6rel)
=============================
* move CI/CD tests from travis/appveyor to Github Actions.
* move netCDF4 dir under src so module can be imported in source directory.
* change numpy.bool to numpy.bool_ and numpy.float to numpy.float_ (float and
bool are deprecated in numpy 1.20)
* clean up docstrings so that they work with latest pdoc.
* update cython numpy API to remove deprecation warnings.
* Add "fromcdl" and "tocdl" Dataset methods for import/export of CDL
via ncdump/ncgen called externally via the subprocess module.
* remove python 2.7 support.
* broadcast data (if possible)to conform to variable shape when writing to a slice
version 1.5.5.1 (tag v1.5.5.1rel)
=================================
* rebuild binary wheels for linux and OSX to link netcdf-c 4.7.4 and hdf5 1.12.0.
version 1.5.5 (tag v1.5.5rel)
=============================
* have setup.py always try use nc-config first to find paths to netcdf and
hdf5 libraries and headers. Don't use pkg-config to find HDF5 if HDF5 env
vars are set (or read from setup.cfg).
* Change MIT license text to standard OSI wording.
version 1.5.4 (tag v1.5.4rel)
=============================
* fix printing of variable objects for variables that end with the letter 'u'
* make sure root group has 'name' attribute.
* add the ability to pack vlen floats to integers using
scale_factor/add_offset
* use len instead of deprecated numpy.alen
* check size on valid_range instead of using len.
* add `set_chunk_cache/get_chunk_cache` module functions to reset the
default chunk cache sizes before opening a Dataset.
* replace use of numpy's deprecated tostring() method with tobytes()
* bump minimal numpy version to 1.9 (first version to have tobytes()).
What's new in 1.2.4 (April 12, 2021)
Fixed regressions
- Fixed regression in :meth:`DataFrame.sum` when ``min_count`` greater than the :class:`DataFrame` shape was passed resulted in a ``ValueError`` (:issue:`39738`)
- Fixed regression in :meth:`DataFrame.to_json` raising ``AttributeError`` when run on PyPy (:issue:`39837`)
- Fixed regression in (in)equality comparison of ``pd.NaT`` with a non-datetimelike numpy array returning a scalar instead of an array (:issue:`40722`)
- Fixed regression in :meth:`DataFrame.where` not returning a copy in the case of an all True condition (:issue:`39595`)
- Fixed regression in :meth:`DataFrame.replace` raising ``IndexError`` when ``regex`` was a multi-key dictionary (:issue:`39338`)
- Fixed regression in repr of floats in an ``object`` column not respecting ``float_format`` when printed in the console or outputted through :meth:`DataFrame.to_string`, :meth:`DataFrame.to_html`, and :meth:`DataFrame.to_latex` (:issue:`40024`)
- Fixed regression in NumPy ufuncs such as ``np.add`` not passing through all arguments for :class:`DataFrame`
What's new in 1.2.3 (March 02, 2021)
Fixed regressions
- Fixed regression in :meth:`~DataFrame.to_excel` raising ``KeyError`` when giving duplicate columns with ``columns`` attribute (:issue:`39695`)
- Fixed regression in nullable integer unary ops propagating mask on assignment (:issue:`39943`)
- Fixed regression in :meth:`DataFrame.__setitem__` not aligning :class:`DataFrame` on right-hand side for boolean indexer (:issue:`39931`)
- Fixed regression in :meth:`~DataFrame.to_json` failing to use ``compression`` with URL-like paths that are internally opened in binary mode or with user-provided file objects that are opened in binary mode (:issue:`39985`)
- Fixed regression in :meth:`Series.sort_index` and :meth:`DataFrame.sort_index`, which exited with an ungraceful error when having kwarg ``ascending=None`` passed. Passing ``ascending=None`` is still considered invalid, and the improved error message suggests a proper usage (``ascending`` must be a boolean or a list-like of boolean) (:issue:`39434`)
- Fixed regression in :meth:`DataFrame.transform` and :meth:`Series.transform` giving incorrect column labels when passed a dictionary with a mix of list and non-list values (:issue:`40018`)
What's new in 1.2.2 (February 09, 2021)
---------------------------------------
These are the changes in pandas 1.2.2. See :ref:`release` for a full changelog
including other versions of pandas.
{{ header }}
.. ---------------------------------------------------------------------------
.. _whatsnew_122.regressions:
Fixed regressions
~~~~~~~~~~~~~~~~~
- Fixed regression in :func:`read_excel` that caused it to raise ``AttributeError`` when checking version of older xlrd versions (:issue:`38955`)
- Fixed regression in :class:`DataFrame` constructor reordering element when construction from datetime ndarray with dtype not ``"datetime64[ns]"`` (:issue:`39422`)
- Fixed regression in :meth:`DataFrame.astype` and :meth:`Series.astype` not casting to bytes dtype (:issue:`39474`)
- Fixed regression in :meth:`~DataFrame.to_pickle` failing to create bz2/xz compressed pickle files with ``protocol=5`` (:issue:`39002`)
- Fixed regression in :func:`pandas.testing.assert_series_equal` and :func:`pandas.testing.assert_frame_equal` always raising ``AssertionError`` when comparing extension dtypes (:issue:`39410`)
- Fixed regression in :meth:`~DataFrame.to_csv` opening ``codecs.StreamWriter`` in binary mode instead of in text mode and ignoring user-provided ``mode`` (:issue:`39247`)
- Fixed regression in :meth:`Categorical.astype` casting to incorrect dtype when ``np.int32`` is passed to dtype argument (:issue:`39402`)
- Fixed regression in :meth:`~DataFrame.to_excel` creating corrupt files when appending (``mode="a"``) to an existing file (:issue:`39576`)
- Fixed regression in :meth:`DataFrame.transform` failing in case of an empty DataFrame or Series (:issue:`39636`)
- Fixed regression in :meth:`~DataFrame.groupby` or :meth:`~DataFrame.resample` when aggregating an all-NaN or numeric object dtype column (:issue:`39329`)
- Fixed regression in :meth:`.Rolling.count` where the ``min_periods`` argument would be set to ``0`` after the operation (:issue:`39554`)
- Fixed regression in :func:`read_excel` that incorrectly raised when the argument ``io`` was a non-path and non-buffer and the ``engine`` argument was specified (:issue:`39528`)
.. ---------------------------------------------------------------------------
.. _whatsnew_122.bug_fixes:
Bug fixes
~~~~~~~~~
- :func:`pandas.read_excel` error message when a specified ``sheetname`` does not exist is now uniform across engines (:issue:`39250`)
- Fixed bug in :func:`pandas.read_excel` producing incorrect results when the engine ``openpyxl`` is used and the excel file is missing or has incorrect dimension information; the fix requires ``openpyxl`` >= 3.0.0, prior versions may still fail (:issue:`38956`, :issue:`39001`)
- Fixed bug in :func:`pandas.read_excel` sometimes producing a ``DataFrame`` with trailing rows of ``np.nan`` when the engine ``openpyxl`` is used (:issue:`39181`)
What's new in 1.2.1 (January 20, 2021)
--------------------------------------
These are the changes in pandas 1.2.1. See :ref:`release` for a full changelog
including other versions of pandas.
{{ header }}
.. ---------------------------------------------------------------------------
.. _whatsnew_121.regressions:
Fixed regressions
~~~~~~~~~~~~~~~~~
- Fixed regression in :meth:`~DataFrame.to_csv` that created corrupted zip files when there were more rows than ``chunksize`` (:issue:`38714`)
- Fixed regression in :meth:`~DataFrame.to_csv` opening ``codecs.StreamReaderWriter`` in binary mode instead of in text mode (:issue:`39247`)
- Fixed regression in :meth:`read_csv` and other read functions were the encoding error policy (``errors``) did not default to ``"replace"`` when no encoding was specified (:issue:`38989`)
- Fixed regression in :func:`read_excel` with non-rawbyte file handles (:issue:`38788`)
- Fixed regression in :meth:`DataFrame.to_stata` not removing the created file when an error occured (:issue:`39202`)
- Fixed regression in ``DataFrame.__setitem__`` raising ``ValueError`` when expanding :class:`DataFrame` and new column is from type ``"0 - name"`` (:issue:`39010`)
- Fixed regression in setting with :meth:`DataFrame.loc` raising ``ValueError`` when :class:`DataFrame` has unsorted :class:`MultiIndex` columns and indexer is a scalar (:issue:`38601`)
- Fixed regression in setting with :meth:`DataFrame.loc` raising ``KeyError`` with :class:`MultiIndex` and list-like columns indexer enlarging :class:`DataFrame` (:issue:`39147`)
- Fixed regression in :meth:`~DataFrame.groupby()` with :class:`Categorical` grouping column not showing unused categories for ``grouped.indices`` (:issue:`38642`)
- Fixed regression in :meth:`.GroupBy.sem` where the presence of non-numeric columns would cause an error instead of being dropped (:issue:`38774`)
- Fixed regression in :meth:`.DataFrameGroupBy.diff` raising for ``int8`` and ``int16`` columns (:issue:`39050`)
- Fixed regression in :meth:`DataFrame.groupby` when aggregating an ``ExtensionDType`` that could fail for non-numeric values (:issue:`38980`)
- Fixed regression in :meth:`.Rolling.skew` and :meth:`.Rolling.kurt` modifying the object inplace (:issue:`38908`)
- Fixed regression in :meth:`DataFrame.any` and :meth:`DataFrame.all` not returning a result for tz-aware ``datetime64`` columns (:issue:`38723`)
- Fixed regression in :meth:`DataFrame.apply` with ``axis=1`` using str accessor in apply function (:issue:`38979`)
- Fixed regression in :meth:`DataFrame.replace` raising ``ValueError`` when :class:`DataFrame` has dtype ``bytes`` (:issue:`38900`)
- Fixed regression in :meth:`Series.fillna` that raised ``RecursionError`` with ``datetime64[ns, UTC]`` dtype (:issue:`38851`)
- Fixed regression in comparisons between ``NaT`` and ``datetime.date`` objects incorrectly returning ``True`` (:issue:`39151`)
- Fixed regression in calling NumPy :func:`~numpy.ufunc.accumulate` ufuncs on DataFrames, e.g. ``np.maximum.accumulate(df)`` (:issue:`39259`)
- Fixed regression in repr of float-like strings of an ``object`` dtype having trailing 0's truncated after the decimal (:issue:`38708`)
- Fixed regression that raised ``AttributeError`` with PyArrow versions [0.16.0, 1.0.0) (:issue:`38801`)
- Fixed regression in :func:`pandas.testing.assert_frame_equal` raising ``TypeError`` with ``check_like=True`` when :class:`Index` or columns have mixed dtype (:issue:`39168`)
We have reverted a commit that resulted in several plotting related regressions in pandas 1.2.0 (:issue:`38969`, :issue:`38736`, :issue:`38865`, :issue:`38947` and :issue:`39126`).
As a result, bugs reported as fixed in pandas 1.2.0 related to inconsistent tick labeling in bar plots are again present (:issue:`26186` and :issue:`11465`)
What's new in 1.2.0 (December 26, 2020)
Performance improvements
- Performance improvements when creating DataFrame or Series with dtype ``str`` or :class:`StringDtype` from array with many string elements (:issue:`36304`, :issue:`36317`, :issue:`36325`, :issue:`36432`, :issue:`37371`)
- Performance improvement in :meth:`.GroupBy.agg` with the ``numba`` engine (:issue:`35759`)
- Performance improvements when creating :meth:`Series.map` from a huge dictionary (:issue:`34717`)
- Performance improvement in :meth:`.GroupBy.transform` with the ``numba`` engine (:issue:`36240`)
- :class:`.Styler` uuid method altered to compress data transmission over web whilst maintaining reasonably low table collision probability (:issue:`36345`)
- Performance improvement in :func:`to_datetime` with non-ns time unit for ``float`` ``dtype`` columns (:issue:`20445`)
- Performance improvement in setting values on an :class:`IntervalArray` (:issue:`36310`)
- The internal index method :meth:`~Index._shallow_copy` now makes the new index and original index share cached attributes, avoiding creating these again, if created on either. This can speed up operations that depend on creating copies of existing indexes (:issue:`36840`)
- Performance improvement in :meth:`.RollingGroupby.count` (:issue:`35625`)
- Small performance decrease to :meth:`.Rolling.min` and :meth:`.Rolling.max` for fixed windows (:issue:`36567`)
- Reduced peak memory usage in :meth:`DataFrame.to_pickle` when using ``protocol=5`` in python 3.8+ (:issue:`34244`)
- Faster ``dir`` calls when the object has many index labels, e.g. ``dir(ser)`` (:issue:`37450`)
- Performance improvement in :class:`ExpandingGroupby` (:issue:`37064`)
- Performance improvement in :meth:`Series.astype` and :meth:`DataFrame.astype` for :class:`Categorical` (:issue:`8628`)
- Performance improvement in :meth:`DataFrame.groupby` for ``float`` ``dtype`` (:issue:`28303`), changes of the underlying hash-function can lead to changes in float based indexes sort ordering for ties (e.g. :meth:`Index.value_counts`)
- Performance improvement in :meth:`pd.isin` for inputs with more than 1e6 elements (:issue:`36611`)
- Performance improvement for :meth:`DataFrame.__setitem__` with list-like indexers (:issue:`37954`)
- :meth:`read_json` now avoids reading entire file into memory when chunksize is specified (:issue:`34548`)
Bug fixes
Categorical
- :meth:`Categorical.fillna` will always return a copy, validate a passed fill value regardless of whether there are any NAs to fill, and disallow an ``NaT`` as a fill value for numeric categories (:issue:`36530`)
- Bug in :meth:`Categorical.__setitem__` that incorrectly raised when trying to set a tuple value (:issue:`20439`)
- Bug in :meth:`CategoricalIndex.equals` incorrectly casting non-category entries to ``np.nan`` (:issue:`37667`)
- Bug in :meth:`CategoricalIndex.where` incorrectly setting non-category entries to ``np.nan`` instead of raising ``TypeError`` (:issue:`37977`)
- Bug in :meth:`Categorical.to_numpy` and ``np.array(categorical)`` with tz-aware ``datetime64`` categories incorrectly dropping the time zone information instead of casting to object dtype (:issue:`38136`)
Datetime-like
- Bug in :meth:`DataFrame.combine_first` that would convert datetime-like column on other :class:`DataFrame` to integer when the column is not present in original :class:`DataFrame` (:issue:`28481`)
- Bug in :attr:`.DatetimeArray.date` where a ``ValueError`` would be raised with a read-only backing array (:issue:`33530`)
- Bug in ``NaT`` comparisons failing to raise ``TypeError`` on invalid inequality comparisons (:issue:`35046`)
- Bug in :class:`.DateOffset` where attributes reconstructed from pickle files differ from original objects when input values exceed normal ranges (e.g. months=12) (:issue:`34511`)
- Bug in :meth:`.DatetimeIndex.get_slice_bound` where ``datetime.date`` objects were not accepted or naive :class:`Timestamp` with a tz-aware :class:`.DatetimeIndex` (:issue:`35690`)
- Bug in :meth:`.DatetimeIndex.slice_locs` where ``datetime.date`` objects were not accepted (:issue:`34077`)
- Bug in :meth:`.DatetimeIndex.searchsorted`, :meth:`.TimedeltaIndex.searchsorted`, :meth:`PeriodIndex.searchsorted`, and :meth:`Series.searchsorted` with ``datetime64``, ``timedelta64`` or :class:`Period` dtype placement of ``NaT`` values being inconsistent with NumPy (:issue:`36176`, :issue:`36254`)
- Inconsistency in :class:`.DatetimeArray`, :class:`.TimedeltaArray`, and :class:`.PeriodArray` method ``__setitem__`` casting arrays of strings to datetime-like scalars but not scalar strings (:issue:`36261`)
- Bug in :meth:`.DatetimeArray.take` incorrectly allowing ``fill_value`` with a mismatched time zone (:issue:`37356`)
- Bug in :class:`.DatetimeIndex.shift` incorrectly raising when shifting empty indexes (:issue:`14811`)
- :class:`Timestamp` and :class:`.DatetimeIndex` comparisons between tz-aware and tz-naive objects now follow the standard library ``datetime`` behavior, returning ``True``/``False`` for ``!=``/``==`` and raising for inequality comparisons (:issue:`28507`)
- Bug in :meth:`.DatetimeIndex.equals` and :meth:`.TimedeltaIndex.equals` incorrectly considering ``int64`` indexes as equal (:issue:`36744`)
- :meth:`Series.to_json`, :meth:`DataFrame.to_json`, and :meth:`read_json` now implement time zone parsing when orient structure is ``table`` (:issue:`35973`)
- :meth:`astype` now attempts to convert to ``datetime64[ns, tz]`` directly from ``object`` with inferred time zone from string (:issue:`35973`)
- Bug in :meth:`.TimedeltaIndex.sum` and :meth:`Series.sum` with ``timedelta64`` dtype on an empty index or series returning ``NaT`` instead of ``Timedelta(0)`` (:issue:`31751`)
- Bug in :meth:`.DatetimeArray.shift` incorrectly allowing ``fill_value`` with a mismatched time zone (:issue:`37299`)
- Bug in adding a :class:`.BusinessDay` with nonzero ``offset`` to a non-scalar other (:issue:`37457`)
- Bug in :func:`to_datetime` with a read-only array incorrectly raising (:issue:`34857`)
- Bug in :meth:`Series.isin` with ``datetime64[ns]`` dtype and :meth:`.DatetimeIndex.isin` incorrectly casting integers to datetimes (:issue:`36621`)
- Bug in :meth:`Series.isin` with ``datetime64[ns]`` dtype and :meth:`.DatetimeIndex.isin` failing to consider tz-aware and tz-naive datetimes as always different (:issue:`35728`)
- Bug in :meth:`Series.isin` with ``PeriodDtype`` dtype and :meth:`PeriodIndex.isin` failing to consider arguments with different ``PeriodDtype`` as always different (:issue:`37528`)
- Bug in :class:`Period` constructor now correctly handles nanoseconds in the ``value`` argument (:issue:`34621` and :issue:`17053`)
Timedelta
- Bug in :class:`.TimedeltaIndex`, :class:`Series`, and :class:`DataFrame` floor-division with ``timedelta64`` dtypes and ``NaT`` in the denominator (:issue:`35529`)
- Bug in parsing of ISO 8601 durations in :class:`Timedelta` and :func:`to_datetime` (:issue:`29773`, :issue:`36204`)
- Bug in :func:`to_timedelta` with a read-only array incorrectly raising (:issue:`34857`)
- Bug in :class:`Timedelta` incorrectly truncating to sub-second portion of a string input when it has precision higher than nanoseconds (:issue:`36738`)
Timezones
- Bug in :func:`date_range` was raising ``AmbiguousTimeError`` for valid input with ``ambiguous=False`` (:issue:`35297`)
- Bug in :meth:`Timestamp.replace` was losing fold information (:issue:`37610`)
Numeric
- Bug in :func:`to_numeric` where float precision was incorrect (:issue:`31364`)
- Bug in :meth:`DataFrame.any` with ``axis=1`` and ``bool_only=True`` ignoring the ``bool_only`` keyword (:issue:`32432`)
- Bug in :meth:`Series.equals` where a ``ValueError`` was raised when NumPy arrays were compared to scalars (:issue:`35267`)
- Bug in :class:`Series` where two Series each have a :class:`.DatetimeIndex` with different time zones having those indexes incorrectly changed when performing arithmetic operations (:issue:`33671`)
- Bug in :mod:`pandas.testing` module functions when used with ``check_exact=False`` on complex numeric types (:issue:`28235`)
- Bug in :meth:`DataFrame.__rmatmul__` error handling reporting transposed shapes (:issue:`21581`)
- Bug in :class:`Series` flex arithmetic methods where the result when operating with a ``list``, ``tuple`` or ``np.ndarray`` would have an incorrect name (:issue:`36760`)
- Bug in :class:`.IntegerArray` multiplication with ``timedelta`` and ``np.timedelta64`` objects (:issue:`36870`)
- Bug in :class:`MultiIndex` comparison with tuple incorrectly treating tuple as array-like (:issue:`21517`)
- Bug in :meth:`DataFrame.diff` with ``datetime64`` dtypes including ``NaT`` values failing to fill ``NaT`` results correctly (:issue:`32441`)
- Bug in :class:`DataFrame` arithmetic ops incorrectly accepting keyword arguments (:issue:`36843`)
- Bug in :class:`.IntervalArray` comparisons with :class:`Series` not returning Series (:issue:`36908`)
- Bug in :class:`DataFrame` allowing arithmetic operations with list of array-likes with undefined results. Behavior changed to raising ``ValueError`` (:issue:`36702`)
- Bug in :meth:`DataFrame.std` with ``timedelta64`` dtype and ``skipna=False`` (:issue:`37392`)
- Bug in :meth:`DataFrame.min` and :meth:`DataFrame.max` with ``datetime64`` dtype and ``skipna=False`` (:issue:`36907`)
- Bug in :meth:`DataFrame.idxmax` and :meth:`DataFrame.idxmin` with mixed dtypes incorrectly raising ``TypeError`` (:issue:`38195`)
Conversion
- Bug in :meth:`DataFrame.to_dict` with ``orient='records'`` now returns python native datetime objects for datetime-like columns (:issue:`21256`)
- Bug in :meth:`Series.astype` conversion from ``string`` to ``float`` raised in presence of ``pd.NA`` values (:issue:`37626`)
Strings
- Bug in :meth:`Series.to_string`, :meth:`DataFrame.to_string`, and :meth:`DataFrame.to_latex` adding a leading space when ``index=False`` (:issue:`24980`)
- Bug in :func:`to_numeric` raising a ``TypeError`` when attempting to convert a string dtype Series containing only numeric strings and ``NA`` (:issue:`37262`)
Interval
- Bug in :meth:`DataFrame.replace` and :meth:`Series.replace` where :class:`Interval` dtypes would be converted to object dtypes (:issue:`34871`)
- Bug in :meth:`IntervalIndex.take` with negative indices and ``fill_value=None`` (:issue:`37330`)
- Bug in :meth:`IntervalIndex.putmask` with datetime-like dtype incorrectly casting to object dtype (:issue:`37968`)
- Bug in :meth:`IntervalArray.astype` incorrectly dropping dtype information with a :class:`CategoricalDtype` object (:issue:`37984`)
Indexing
- Bug in :meth:`PeriodIndex.get_loc` incorrectly raising ``ValueError`` on non-datelike strings instead of ``KeyError``, causing similar errors in :meth:`Series.__getitem__`, :meth:`Series.__contains__`, and :meth:`Series.loc.__getitem__` (:issue:`34240`)
- Bug in :meth:`Index.sort_values` where, when empty values were passed, the method would break by trying to compare missing values instead of pushing them to the end of the sort order (:issue:`35584`)
- Bug in :meth:`Index.get_indexer` and :meth:`Index.get_indexer_non_unique` where ``int64`` arrays are returned instead of ``intp`` (:issue:`36359`)
- Bug in :meth:`DataFrame.sort_index` where parameter ascending passed as a list on a single level index gives wrong result (:issue:`32334`)
- Bug in :meth:`DataFrame.reset_index` was incorrectly raising a ``ValueError`` for input with a :class:`MultiIndex` with missing values in a level with ``Categorical`` dtype (:issue:`24206`)
- Bug in indexing with boolean masks on datetime-like values sometimes returning a view instead of a copy (:issue:`36210`)
- Bug in :meth:`DataFrame.__getitem__` and :meth:`DataFrame.loc.__getitem__` with :class:`IntervalIndex` columns and a numeric indexer (:issue:`26490`)
- Bug in :meth:`Series.loc.__getitem__` with a non-unique :class:`MultiIndex` and an empty-list indexer (:issue:`13691`)
- Bug in indexing on a :class:`Series` or :class:`DataFrame` with a :class:`MultiIndex` and a level named ``"0"`` (:issue:`37194`)
- Bug in :meth:`Series.__getitem__` when using an unsigned integer array as an indexer giving incorrect results or segfaulting instead of raising ``KeyError`` (:issue:`37218`)
- Bug in :meth:`Index.where` incorrectly casting numeric values to strings (:issue:`37591`)
- Bug in :meth:`DataFrame.loc` returning empty result when indexer is a slice with negative step size (:issue:`38071`)
- Bug in :meth:`Series.loc` and :meth:`DataFrame.loc` raises when the index was of ``object`` dtype and the given numeric label was in the index (:issue:`26491`)
- Bug in :meth:`DataFrame.loc` returned requested key plus missing values when ``loc`` was applied to single level from a :class:`MultiIndex` (:issue:`27104`)
- Bug in indexing on a :class:`Series` or :class:`DataFrame` with a :class:`CategoricalIndex` using a list-like indexer containing NA values (:issue:`37722`)
- Bug in :meth:`DataFrame.loc.__setitem__` expanding an empty :class:`DataFrame` with mixed dtypes (:issue:`37932`)
- Bug in :meth:`DataFrame.xs` ignored ``droplevel=False`` for columns (:issue:`19056`)
- Bug in :meth:`DataFrame.reindex` raising ``IndexingError`` wrongly for empty DataFrame with ``tolerance`` not ``None`` or ``method="nearest"`` (:issue:`27315`)
- Bug in indexing on a :class:`Series` or :class:`DataFrame` with a :class:`CategoricalIndex` using list-like indexer that contains elements that are in the index's ``categories`` but not in the index itself failing to raise ``KeyError`` (:issue:`37901`)
- Bug on inserting a boolean label into a :class:`DataFrame` with a numeric :class:`Index` columns incorrectly casting to integer (:issue:`36319`)
- Bug in :meth:`DataFrame.iloc` and :meth:`Series.iloc` aligning objects in ``__setitem__`` (:issue:`22046`)
- Bug in :meth:`MultiIndex.drop` does not raise if labels are partially found (:issue:`37820`)
- Bug in :meth:`DataFrame.loc` did not raise ``KeyError`` when missing combination was given with ``slice(None)`` for remaining levels (:issue:`19556`)
- Bug in :meth:`DataFrame.loc` raising ``TypeError`` when non-integer slice was given to select values from :class:`MultiIndex` (:issue:`25165`, :issue:`24263`)
- Bug in :meth:`Series.at` returning :class:`Series` with one element instead of scalar when index is a :class:`MultiIndex` with one level (:issue:`38053`)
- Bug in :meth:`DataFrame.loc` returning and assigning elements in wrong order when indexer is differently ordered than the :class:`MultiIndex` to filter (:issue:`31330`, :issue:`34603`)
- Bug in :meth:`DataFrame.loc` and :meth:`DataFrame.__getitem__` raising ``KeyError`` when columns were :class:`MultiIndex` with only one level (:issue:`29749`)
- Bug in :meth:`Series.__getitem__` and :meth:`DataFrame.__getitem__` raising blank ``KeyError`` without missing keys for :class:`IntervalIndex` (:issue:`27365`)
- Bug in setting a new label on a :class:`DataFrame` or :class:`Series` with a :class:`CategoricalIndex` incorrectly raising ``TypeError`` when the new label is not among the index's categories (:issue:`38098`)
- Bug in :meth:`Series.loc` and :meth:`Series.iloc` raising ``ValueError`` when inserting a list-like ``np.array``, ``list`` or ``tuple`` in an ``object`` Series of equal length (:issue:`37748`, :issue:`37486`)
- Bug in :meth:`Series.loc` and :meth:`Series.iloc` setting all the values of an ``object`` Series with those of a list-like ``ExtensionArray`` instead of inserting it (:issue:`38271`)
Missing
- Bug in :meth:`.SeriesGroupBy.transform` now correctly handles missing values for ``dropna=False`` (:issue:`35014`)
- Bug in :meth:`Series.nunique` with ``dropna=True`` was returning incorrect results when both ``NA`` and ``None`` missing values were present (:issue:`37566`)
- Bug in :meth:`Series.interpolate` where kwarg ``limit_area`` and ``limit_direction`` had no effect when using methods ``pad`` and ``backfill`` (:issue:`31048`)
MultiIndex
- Bug in :meth:`DataFrame.xs` when used with :class:`IndexSlice` raises ``TypeError`` with message ``"Expected label or tuple of labels"`` (:issue:`35301`)
- Bug in :meth:`DataFrame.reset_index` with ``NaT`` values in index raises ``ValueError`` with message ``"cannot convert float NaN to integer"`` (:issue:`36541`)
- Bug in :meth:`DataFrame.combine_first` when used with :class:`MultiIndex` containing string and ``NaN`` values raises ``TypeError`` (:issue:`36562`)
- Bug in :meth:`MultiIndex.drop` dropped ``NaN`` values when non existing key was given as input (:issue:`18853`)
- Bug in :meth:`MultiIndex.drop` dropping more values than expected when index has duplicates and is not sorted (:issue:`33494`)
I/O
- :func:`read_sas` no longer leaks resources on failure (:issue:`35566`)
- Bug in :meth:`DataFrame.to_csv` and :meth:`Series.to_csv` caused a ``ValueError`` when it was called with a filename in combination with ``mode`` containing a ``b`` (:issue:`35058`)
- Bug in :meth:`read_csv` with ``float_precision='round_trip'`` did not handle ``decimal`` and ``thousands`` parameters (:issue:`35365`)
- :meth:`to_pickle` and :meth:`read_pickle` were closing user-provided file objects (:issue:`35679`)
- :meth:`to_csv` passes compression arguments for ``'gzip'`` always to ``gzip.GzipFile`` (:issue:`28103`)
- :meth:`to_csv` did not support zip compression for binary file object not having a filename (:issue:`35058`)
- :meth:`to_csv` and :meth:`read_csv` did not honor ``compression`` and ``encoding`` for path-like objects that are internally converted to file-like objects (:issue:`35677`, :issue:`26124`, :issue:`32392`)
- :meth:`DataFrame.to_pickle`, :meth:`Series.to_pickle`, and :meth:`read_pickle` did not support compression for file-objects (:issue:`26237`, :issue:`29054`, :issue:`29570`)
- Bug in :func:`LongTableBuilder.middle_separator` was duplicating LaTeX longtable entries in the List of Tables of a LaTeX document (:issue:`34360`)
- Bug in :meth:`read_csv` with ``engine='python'`` truncating data if multiple items present in first row and first element started with BOM (:issue:`36343`)
- Removed ``private_key`` and ``verbose`` from :func:`read_gbq` as they are no longer supported in ``pandas-gbq`` (:issue:`34654`, :issue:`30200`)
- Bumped minimum pytables version to 3.5.1 to avoid a ``ValueError`` in :meth:`read_hdf` (:issue:`24839`)
- Bug in :func:`read_table` and :func:`read_csv` when ``delim_whitespace=True`` and ``sep=default`` (:issue:`36583`)
- Bug in :meth:`DataFrame.to_json` and :meth:`Series.to_json` when used with ``lines=True`` and ``orient='records'`` the last line of the record is not appended with 'new line character' (:issue:`36888`)
- Bug in :meth:`read_parquet` with fixed offset time zones. String representation of time zones was not recognized (:issue:`35997`, :issue:`36004`)
- Bug in :meth:`DataFrame.to_html`, :meth:`DataFrame.to_string`, and :meth:`DataFrame.to_latex` ignoring the ``na_rep`` argument when ``float_format`` was also specified (:issue:`9046`, :issue:`13828`)
- Bug in output rendering of complex numbers showing too many trailing zeros (:issue:`36799`)
- Bug in :class:`HDFStore` threw a ``TypeError`` when exporting an empty DataFrame with ``datetime64[ns, tz]`` dtypes with a fixed HDF5 store (:issue:`20594`)
- Bug in :class:`HDFStore` was dropping time zone information when exporting a Series with ``datetime64[ns, tz]`` dtypes with a fixed HDF5 store (:issue:`20594`)
- :func:`read_csv` was closing user-provided binary file handles when ``engine="c"`` and an ``encoding`` was requested (:issue:`36980`)
- Bug in :meth:`DataFrame.to_hdf` was not dropping missing rows with ``dropna=True`` (:issue:`35719`)
- Bug in :func:`read_html` was raising a ``TypeError`` when supplying a ``pathlib.Path`` argument to the ``io`` parameter (:issue:`37705`)
- :meth:`DataFrame.to_excel`, :meth:`Series.to_excel`, :meth:`DataFrame.to_markdown`, and :meth:`Series.to_markdown` now support writing to fsspec URLs such as S3 and Google Cloud Storage (:issue:`33987`)
- Bug in :func:`read_fwf` with ``skip_blank_lines=True`` was not skipping blank lines (:issue:`37758`)
- Parse missing values using :func:`read_json` with ``dtype=False`` to ``NaN`` instead of ``None`` (:issue:`28501`)
- :meth:`read_fwf` was inferring compression with ``compression=None`` which was not consistent with the other ``read_*`` functions (:issue:`37909`)
- :meth:`DataFrame.to_html` was ignoring ``formatters`` argument for ``ExtensionDtype`` columns (:issue:`36525`)
- Bumped minimum xarray version to 0.12.3 to avoid reference to the removed ``Panel`` class (:issue:`27101`, :issue:`37983`)
- :meth:`DataFrame.to_csv` was re-opening file-like handles that also implement ``os.PathLike`` (:issue:`38125`)
- Bug in the conversion of a sliced ``pyarrow.Table`` with missing values to a DataFrame (:issue:`38525`)
- Bug in :func:`read_sql_table` raising a ``sqlalchemy.exc.OperationalError`` when column names contained a percentage sign (:issue:`37517`)
Period
- Bug in :meth:`DataFrame.replace` and :meth:`Series.replace` where :class:`Period` dtypes would be converted to object dtypes (:issue:`34871`)
Plotting
- Bug in :meth:`DataFrame.plot` was rotating xticklabels when ``subplots=True``, even if the x-axis wasn't an irregular time series (:issue:`29460`)
- Bug in :meth:`DataFrame.plot` where a marker letter in the ``style`` keyword sometimes caused a ``ValueError`` (:issue:`21003`)
- Bug in :meth:`DataFrame.plot.bar` and :meth:`Series.plot.bar` where ticks positions were assigned by value order instead of using the actual value for numeric or a smart ordering for string (:issue:`26186`, :issue:`11465`). This fix has been reverted in pandas 1.2.1, see :doc:`v1.2.1`
- Twinned axes were losing their tick labels which should only happen to all but the last row or column of 'externally' shared axes (:issue:`33819`)
- Bug in :meth:`Series.plot` and :meth:`DataFrame.plot` was throwing a :exc:`ValueError` when the Series or DataFrame was
indexed by a :class:`.TimedeltaIndex` with a fixed frequency and the x-axis lower limit was greater than the upper limit (:issue:`37454`)
- Bug in :meth:`.DataFrameGroupBy.boxplot` when ``subplots=False`` would raise a ``KeyError`` (:issue:`16748`)
- Bug in :meth:`DataFrame.plot` and :meth:`Series.plot` was overwriting matplotlib's shared y axes behavior when no ``sharey`` parameter was passed (:issue:`37942`)
- Bug in :meth:`DataFrame.plot` was raising a ``TypeError`` with ``ExtensionDtype`` columns (:issue:`32073`)
Styler
- Bug in :meth:`Styler.render` HTML was generated incorrectly because of formatting error in ``rowspan`` attribute, it now matches with w3 syntax (:issue:`38234`)
Groupby/resample/rolling
- Bug in :meth:`.DataFrameGroupBy.count` and :meth:`SeriesGroupBy.sum` returning ``NaN`` for missing categories when grouped on multiple ``Categoricals``. Now returning ``0`` (:issue:`35028`)
- Bug in :meth:`.DataFrameGroupBy.apply` that would sometimes throw an erroneous ``ValueError`` if the grouping axis had duplicate entries (:issue:`16646`)
- Bug in :meth:`DataFrame.resample` that would throw a ``ValueError`` when resampling from ``"D"`` to ``"24H"`` over a transition into daylight savings time (DST) (:issue:`35219`)
- Bug when combining methods :meth:`DataFrame.groupby` with :meth:`DataFrame.resample` and :meth:`DataFrame.interpolate` raising a ``TypeError`` (:issue:`35325`)
- Bug in :meth:`.DataFrameGroupBy.apply` where a non-nuisance grouping column would be dropped from the output columns if another groupby method was called before ``.apply`` (:issue:`34656`)
- Bug when subsetting columns on a :class:`~pandas.core.groupby.DataFrameGroupBy` (e.g. ``df.groupby('a')[['b']])``) would reset the attributes ``axis``, ``dropna``, ``group_keys``, ``level``, ``mutated``, ``sort``, and ``squeeze`` to their default values (:issue:`9959`)
- Bug in :meth:`.DataFrameGroupBy.tshift` failing to raise ``ValueError`` when a frequency cannot be inferred for the index of a group (:issue:`35937`)
- Bug in :meth:`DataFrame.groupby` does not always maintain column index name for ``any``, ``all``, ``bfill``, ``ffill``, ``shift`` (:issue:`29764`)
- Bug in :meth:`.DataFrameGroupBy.apply` raising error with ``np.nan`` group(s) when ``dropna=False`` (:issue:`35889`)
- Bug in :meth:`.Rolling.sum` returned wrong values when dtypes where mixed between float and integer and ``axis=1`` (:issue:`20649`, :issue:`35596`)
- Bug in :meth:`.Rolling.count` returned ``np.nan`` with :class:`~pandas.api.indexers.FixedForwardWindowIndexer` as window, ``min_periods=0`` and only missing values in the window (:issue:`35579`)
- Bug where :class:`pandas.core.window.Rolling` produces incorrect window sizes when using a ``PeriodIndex`` (:issue:`34225`)
- Bug in :meth:`.DataFrameGroupBy.ffill` and :meth:`.DataFrameGroupBy.bfill` where a ``NaN`` group would return filled values instead of ``NaN`` when ``dropna=True`` (:issue:`34725`)
- Bug in :meth:`.RollingGroupby.count` where a ``ValueError`` was raised when specifying the ``closed`` parameter (:issue:`35869`)
- Bug in :meth:`.DataFrameGroupBy.rolling` returning wrong values with partial centered window (:issue:`36040`)
- Bug in :meth:`.DataFrameGroupBy.rolling` returned wrong values with time aware window containing ``NaN``. Raises ``ValueError`` because windows are not monotonic now (:issue:`34617`)
- Bug in :meth:`.Rolling.__iter__` where a ``ValueError`` was not raised when ``min_periods`` was larger than ``window`` (:issue:`37156`)
- Using :meth:`.Rolling.var` instead of :meth:`.Rolling.std` avoids numerical issues for :meth:`.Rolling.corr` when :meth:`.Rolling.var` is still within floating point precision while :meth:`.Rolling.std` is not (:issue:`31286`)
- Bug in :meth:`.DataFrameGroupBy.quantile` and :meth:`.Resampler.quantile` raised ``TypeError`` when values were of type ``Timedelta`` (:issue:`29485`)
- Bug in :meth:`.Rolling.median` and :meth:`.Rolling.quantile` returned wrong values for :class:`.BaseIndexer` subclasses with non-monotonic starting or ending points for windows (:issue:`37153`)
- Bug in :meth:`DataFrame.groupby` dropped ``nan`` groups from result with ``dropna=False`` when grouping over a single column (:issue:`35646`, :issue:`35542`)
- Bug in :meth:`.DataFrameGroupBy.head`, :meth:`DataFrameGroupBy.tail`, :meth:`SeriesGroupBy.head`, and :meth:`SeriesGroupBy.tail` would raise when used with ``axis=1`` (:issue:`9772`)
- Bug in :meth:`.DataFrameGroupBy.transform` would raise when used with ``axis=1`` and a transformation kernel (e.g. "shift") (:issue:`36308`)
- Bug in :meth:`.DataFrameGroupBy.resample` using ``.agg`` with sum produced different result than just calling ``.sum`` (:issue:`33548`)
- Bug in :meth:`.DataFrameGroupBy.apply` dropped values on ``nan`` group when returning the same axes with the original frame (:issue:`38227`)
- Bug in :meth:`.DataFrameGroupBy.quantile` couldn't handle with arraylike ``q`` when grouping by columns (:issue:`33795`)
- Bug in :meth:`DataFrameGroupBy.rank` with ``datetime64tz`` or period dtype incorrectly casting results to those dtypes instead of returning ``float64`` dtype (:issue:`38187`)
Reshaping
- Bug in :meth:`DataFrame.crosstab` was returning incorrect results on inputs with duplicate row names, duplicate column names or duplicate names between row and column labels (:issue:`22529`)
- Bug in :meth:`DataFrame.pivot_table` with ``aggfunc='count'`` or ``aggfunc='sum'`` returning ``NaN`` for missing categories when pivoted on a ``Categorical``. Now returning ``0`` (:issue:`31422`)
- Bug in :func:`concat` and :class:`DataFrame` constructor where input index names are not preserved in some cases (:issue:`13475`)
- Bug in func :meth:`crosstab` when using multiple columns with ``margins=True`` and ``normalize=True`` (:issue:`35144`)
- Bug in :meth:`DataFrame.stack` where an empty DataFrame.stack would raise an error (:issue:`36113`). Now returning an empty Series with empty MultiIndex.
- Bug in :meth:`Series.unstack`. Now a Series with single level of Index trying to unstack would raise a ``ValueError`` (:issue:`36113`)
- Bug in :meth:`DataFrame.agg` with ``func={'name':<FUNC>}`` incorrectly raising ``TypeError`` when ``DataFrame.columns==['Name']`` (:issue:`36212`)
- Bug in :meth:`Series.transform` would give incorrect results or raise when the argument ``func`` was a dictionary (:issue:`35811`)
- Bug in :meth:`DataFrame.pivot` did not preserve :class:`MultiIndex` level names for columns when rows and columns are both multiindexed (:issue:`36360`)
- Bug in :meth:`DataFrame.pivot` modified ``index`` argument when ``columns`` was passed but ``values`` was not (:issue:`37635`)
- Bug in :meth:`DataFrame.join` returned a non deterministic level-order for the resulting :class:`MultiIndex` (:issue:`36910`)
- Bug in :meth:`DataFrame.combine_first` caused wrong alignment with dtype ``string`` and one level of ``MultiIndex`` containing only ``NA`` (:issue:`37591`)
- Fixed regression in :func:`merge` on merging :class:`.DatetimeIndex` with empty DataFrame (:issue:`36895`)
- Bug in :meth:`DataFrame.apply` not setting index of return value when ``func`` return type is ``dict`` (:issue:`37544`)
- Bug in :meth:`DataFrame.merge` and :meth:`pandas.merge` returning inconsistent ordering in result for ``how=right`` and ``how=left`` (:issue:`35382`)
- Bug in :func:`merge_ordered` couldn't handle list-like ``left_by`` or ``right_by`` (:issue:`35269`)
- Bug in :func:`merge_ordered` returned wrong join result when length of ``left_by`` or ``right_by`` equals to the rows of ``left`` or ``right`` (:issue:`38166`)
- Bug in :func:`merge_ordered` didn't raise when elements in ``left_by`` or ``right_by`` not exist in ``left`` columns or ``right`` columns (:issue:`38167`)
- Bug in :func:`DataFrame.drop_duplicates` not validating bool dtype for ``ignore_index`` keyword (:issue:`38274`)
ExtensionArray
- Fixed bug where :class:`DataFrame` column set to scalar extension type via a dict instantiation was considered an object type rather than the extension type (:issue:`35965`)
- Fixed bug where ``astype()`` with equal dtype and ``copy=False`` would return a new object (:issue:`28488`)
- Fixed bug when applying a NumPy ufunc with multiple outputs to an :class:`.IntegerArray` returning ``None`` (:issue:`36913`)
- Fixed an inconsistency in :class:`.PeriodArray`'s ``__init__`` signature to those of :class:`.DatetimeArray` and :class:`.TimedeltaArray` (:issue:`37289`)
- Reductions for :class:`.BooleanArray`, :class:`.Categorical`, :class:`.DatetimeArray`, :class:`.FloatingArray`, :class:`.IntegerArray`, :class:`.PeriodArray`, :class:`.TimedeltaArray`, and :class:`.PandasArray` are now keyword-only methods (:issue:`37541`)
- Fixed a bug where a ``TypeError`` was wrongly raised if a membership check was made on an ``ExtensionArray`` containing nan-like values (:issue:`37867`)
Other
- Bug in :meth:`DataFrame.replace` and :meth:`Series.replace` incorrectly raising an ``AssertionError`` instead of a ``ValueError`` when invalid parameter combinations are passed (:issue:`36045`)
- Bug in :meth:`DataFrame.replace` and :meth:`Series.replace` with numeric values and string ``to_replace`` (:issue:`34789`)
- Fixed metadata propagation in :meth:`Series.abs` and ufuncs called on Series and DataFrames (:issue:`28283`)
- Bug in :meth:`DataFrame.replace` and :meth:`Series.replace` incorrectly casting from ``PeriodDtype`` to object dtype (:issue:`34871`)
- Fixed bug in metadata propagation incorrectly copying DataFrame columns as metadata when the column name overlaps with the metadata name (:issue:`37037`)
- Fixed metadata propagation in the :class:`Series.dt`, :class:`Series.str` accessors, :class:`DataFrame.duplicated`, :class:`DataFrame.stack`, :class:`DataFrame.unstack`, :class:`DataFrame.pivot`, :class:`DataFrame.append`, :class:`DataFrame.diff`, :class:`DataFrame.applymap` and :class:`DataFrame.update` methods (:issue:`28283`, :issue:`37381`)
- Fixed metadata propagation when selecting columns with ``DataFrame.__getitem__`` (:issue:`28283`)
- Bug in :meth:`Index.intersection` with non-:class:`Index` failing to set the correct name on the returned :class:`Index` (:issue:`38111`)
- Bug in :meth:`RangeIndex.intersection` failing to set the correct name on the returned :class:`Index` in some corner cases (:issue:`38197`)
- Bug in :meth:`Index.difference` failing to set the correct name on the returned :class:`Index` in some corner cases (:issue:`38268`)
- Bug in :meth:`Index.union` behaving differently depending on whether operand is an :class:`Index` or other list-like (:issue:`36384`)
- Bug in :meth:`Index.intersection` with non-matching numeric dtypes casting to ``object`` dtype instead of minimal common dtype (:issue:`38122`)
- Bug in :meth:`IntervalIndex.union` returning an incorrectly-typed :class:`Index` when empty (:issue:`38282`)
- Passing an array with 2 or more dimensions to the :class:`Series` constructor now raises the more specific ``ValueError`` rather than a bare ``Exception`` (:issue:`35744`)
- Bug in ``dir`` where ``dir(obj)`` wouldn't show attributes defined on the instance for pandas objects (:issue:`37173`)
- Bug in :meth:`Index.drop` raising ``InvalidIndexError`` when index has duplicates (:issue:`38051`)
- Bug in :meth:`RangeIndex.difference` returning :class:`Int64Index` in some cases where it should return :class:`RangeIndex` (:issue:`38028`)
- Fixed bug in :func:`assert_series_equal` when comparing a datetime-like array with an equivalent non extension dtype array (:issue:`37609`)
- Bug in :func:`.is_bool_dtype` would raise when passed a valid string such as ``"boolean"`` (:issue:`38386`)
- Fixed regression in logical operators raising ``ValueError`` when columns of :class:`DataFrame` are a :class:`CategoricalIndex` with unused categories (:issue:`38367`)
Changes from 2.7.2 to 2.7.3
---------------------------
- Pinned Numpy versions to minimum supported version in an effort to alleviate
issues seen in Windows machines not having the same MSVC runtime installed as
was used to build the wheels.
- ARMv8 wheels are now available, thanks to `odidev` for the pull request.
Changes from 2.7.1 to 2.7.2
---------------------------
- Support for Python 2.7 and 3.5 is deprecated and will be discontinued when
`cibuildwheels` and/or GitHub Actions no longer support these versions.
- Wheels are now provided for Python 3.7, 3.5, 3.6, 3.7, 3.8, and 3.9 via
GitHub Actions.
- The block size is now exported into the namespace as `numexpr.__BLOCK_SIZE1__`
as a read-only value.
- If using MKL, the number of threads for VML is no longer forced to 1 on loading
the module. Testing has shown that VML never runs in multi-threaded mode for
the default BLOCKSIZE1 of 1024 elements, and forcing to 1 can have deleterious
effects on NumPy functions when built with MKL.
- Use of `ndarray.tostring()` in tests has been switch to `ndarray.tobytes()`
for future-proofing deprecation of `.tostring()`, if the version of NumPy is
greater than 1.9.
- Added a utility method `get_num_threads` that returns the (maximum) number of
threads currently in use by the virtual machine. The functionality of
`set_num_threads` whereby it returns the previous value has been deprecated
and will be removed in 2.8.X.
Wrappers 1.3.1 | Solver 1.3.1 | 11/01/2020
allow to avoid linking against VC2014_1 on windows
do not mark move constructor / assignment operator of expression as noexcept. This is to circumvent a suspected bug in the GCC compiler in the manylinux1 image.
Wrappers 1.3.0 | Solver 1.3.0 | 10/21/2020
add c++ benchmarks and run them on CIs
modernize the c++ code by using more c++11 features
introduce move semantic in some c++ constructors to improve performances
add support for Python 3.9
Wrappers 1.2.0 | Solver 1.2.0 | 03/26/2020
make the the c++ part of the code c++11 compliant
use cppy for Python/C bindings
Better have this listed as breakage for py36-numpy than not having the
bulk builds start up because the packages using this still want to
build it for python 3.6
Issues closed for 1.6.3
-----------------------
* Divide by zero in distance.yule
* prerelease_deps failures
* spatial rotation failure in (1.6.3) wheels repo (ARM64)
Pull requests for 1.6.3
-----------------------
* fix the matplotlib warning emitted during builing docs
* Divide by zero in yule dissimilarity of constant vectors
* deprecated np.typeDict
* substitute np.math.factorial with math.factorial
* add random seeds in Rotation module
1.20.2:
* Update f2py from master.
* ``diagflat`` could overflow on windows or 32-bit platforms
* Fix refcount leak in f2py ``complex_double_from_pyobj``.
* Fix tiny memory leaks when ``like=`` overrides are used
* Remove temporary change of descr/flags in VOID functions
* Segfault in nditer buffer dealloc for Object arrays
* Remove suspicious type casting
* remove nonsensical comparison of pointer < 0
* verify pointer against NULL before using it
* check if PyArray_malloc succeeded
* incorrect error fallthrough in nditer
* Backport CI fixes from main.
* Add annotations for ``dtype.__getitem__``, ``__mul__`` and...
* NameError in numpy.distutils.fcompiler.compaq
* Fixed ``where`` keyword for ``np.mean`` & ``np.var`` methods
* Update apt package list before Python install
* Ensure that re-exported sub-modules are properly annotated
* Fix ma coercion list-of-ma-arrays if they do not cast to...
* Fix small valgrind-found issues
* Fix small issues found with pytest-leaks
1.20.1:
* Add missing placeholder annotations
* Fix typo in ``numpy.__init__.py``
* don't mutate list of fake libraries while iterating over...
* gracefully shuffle memoryviews
* Use C linkage for random distributions
* fix when GitHub Actions builds trigger, and allow ci skips
* Allow unmodified use of isclose, allclose, etc. with timedelta
* Allow pickling all relevant DType types/classes
* Fix missing signed_char dependency.
* Change license date 2020 -> 2021
* CircleCI seems to occasionally time out, increase the limit
* Fix f2py bugs when wrapping F90 subroutines.
* crackfortran regex simplify
* threads.h existence test requires GLIBC > 2.12.
* Prepare for the NumPy 1.20.1 release.
1.20.0:
* enable multi-platform SIMD compiler optimizations
* NEP 36 (fair play)
* Deprecate aliases of builtin types in python 3.7+
* `np.resize` negative shape and subclasses edge case fixes
* Add the method `permuted` to Generator.
* Fix issues with non-reduce broadcasting axes
* Ensure PyArray_FromScalar always returns the requested dtype
* Technical decisions for new DTypes
* Create Preliminary DTypeMeta class and np.dtype subclasses
* Avoid exception in NpzFile destructor if constructor raises...
* Improved `__str__` for polynomials
* Remove Accelerate support
* [DOC] Added tutorial about the numpy.ma module.
* Add where argument to np.mean
* Deprecate passing shape=None to mean shape=()
* Ensure indexing errors will be raised even on empty results
* improve printing of arrays with multi-line reprs
* Correct documentation of ``__array__`` when used as output...
* Implement concatenate dtype and casting keyword arguments
* Deprecate `numpy.dual`.
* Potential fix for divmod(1.0, 0.0) to raise divbyzero and...
* Increase guidance and detail of np.polynomial docstring
* Add transition note to all lib/poly functions
* Rewrite of array-coercion to support new dtypes
* Add ``full_output`` argument to ``f2py.compile``.
* Deprecate ufunc.outer with matrix inputs
* Unify cached (C-level static) imports
* Allow attach docs twice but error if wrong
* Fix default fallback in genfromtxt
* ENH:Umath Replace raw SIMD of unary float point(32-64) with NPYV...
* added edge keyword argument to digitize
* Update the f2py section of the "Using Python as Glue" page.
* Improve `rec.array` function documentation
* include dt64/td64 isinstance checks in ``__init__.pxd``
* Clarifications for np.std
* Order percentile monotonically
* cleanups to quantile
* Update master after 1.19.x branch.
* Ensure out argument is returned by identity for 0d arrays
* Clarifications for ``np.var``.
* Add a note about performance of isclose compared to math.isclose
* Clean up the implementation of quantile
* Bump hypothesis from 5.12.0 to 5.14.0
* Improve "tobytes" docstring.
* Fix tools/download-wheels.py.
* Require Python >= 3.6 in setup.py
* Fix malformed docstrings in ma.
* Optimize Cpu feature detect in X86, fix for GCC on macOS
* np.info does not show keyword-only arguments
* Fix bad reference in ``numpy.ma``
* Fix detecting and testing armhf features
* Fix packbits documentation rendering,
* Fix troubleshooting code snippet when env vars are empty
* relpath fails for different drives on windows
* Fix ``np.ma.core.doc_note``
* Bump numpydoc version
* Stop Using PyEval_Call* and simplify some uses
* Improve the ARM cpu feature detection by parsing /proc/cpuinfo
* Reconstruct Testing Guideline.
* Cleanup 'tools/download-wheels.py'
* link np.interp to SciPy's interpolation functions (closes...
* Fix spelling typo - homogenous to homogeneous.
* Use AVX-512 for np.isnan, np.infinite, np.isinf and np.signbit
* Fix refcounting in add_newdoc
* Create a link for the circleCI artifact
* Fix dtype leak in `PyArray_FromAny` error path
* Indentation for docstrings
* Fix small leaks in error path and ``empty_like`` with shape
* Streamline download-wheels.
* Fix an obvious mistake in a message printed in doc/Makefile.
* Bump cython from 0.29.17 to 0.29.19
* Bump hypothesis from 5.14.0 to 5.15.1
* Bump pytest-cov from 2.8.1 to 2.9.0
* Use AVX-512 for np.frexp and np.ldexp
* add index for user docs.
* ARM Neon implementation with intrinsic for np.argmax.
* Tighten howto-docs guide
* Make ctypes optional on Windows
* Hardcode buffer handling for simple scalars
* Stop uploading wheels to Rackspace.
* Use a raw string for the fromstring docstring.
* Validate and disable CPU features in runtime
* Implement the NumPy C SIMD vectorization interface
* Update make dist html target.
* Update sphinx conf to use xelatex.
* turn on codecov patch diffs
* endpoints of array returned by geomspace() should match...
* support python 3.10
* Chain some exceptions.
* Improve intersect1d docstring
* Update assert_warns parameter list
* Simplify assert_warns in test_io.py
* make NEP 18 status Final
* Add style guide to howto_document
* NEP for C style guide
* Fix description of dtype default in linspace
* Add extern to PyArrayDTypeMeta_Type declaration
* Add a reference into NEP 29,
* Catch remaining cases of Py_SIZE and Py_TYPE as lvalues
* Fix deprecated warn for Intel/Apple/Clang Compiler
* make clearer that sinc is normalized by a factor pi
* update roadmap
* fixes einsum output order with optimization
* add a "make show" command to doc/Makefile
* Add a NEP link to all neps.
* extend error message when Accelerate is detected
* Improve assert_warns docstring with example
* Bump hypothesis from 5.15.1 to 5.16.0
* Fix development_workflow links
* fix GCC 10 major version comparison
* install mingw32 v7.3.0 for win32
* Fixes for 18 broken links
* use zip instead of range in piecewise
* add `norm=forward,backward` to numpy.fft functions
* Optimize the performace of np.packbits in ARM-based machine.
* Fix result when a gufunc output broadcasts the inputs.
* Point Contributing page to new NEP 45
* make Py_SET_SIZE and Py_SET_TYPE macros a bit safer
* Error when ``size`` is smaller than broadcast input...
* Correct MV Normal sig
* raise IEEE exception on AIX
* only single-polynomial fitting in np.polynomial.Polynomial.fit()
* Minor rounding correction in Generator.binomial
* trivial doc style fix in NEP 45.
* add type stubs from numpy-stubs
* make callbacks threadsafe
* replace \t by whitespace for readability
* MAINT:ARMHF Fix detecting feature groups NEON_HALF and NEON_VFPV4
* Improve buffer speed
* move thread-local declaration definition to common...
* Fix cython warning in random/_common.pyx.
* Bump pytest from 5.4.2 to 5.4.3
* Remove non-threadsafe sigint handling from fft calculation
* SSE2 intrinsic implementation for float64 input of np.enisum
* Ensure SeedSequence 0-padding does not collide with spawn...
* Remove deprecated numeric types and deprecate remaining
* drop win32 3.7, 3.6 builds
* simplifying annotations for np.core.from_numeric
* make typing module available at runtime
* Throw TypeError on operator concat on Numpy Arrays
* Add new tests for array coercion
* fix sin/cos bug when input is strided array
* fix name of first parameter to dtype constructor in type...
* Added an example for np.transpose(4d_array)
* changed np.generic arguments to positional-only
* Clarify dtype default for logspace and geomspace
* Disallow complex args in arange
* Raise TypeError for float->timedelta promotion
* Add ``__f2py_numpy_version__`` attribute to Fortran modules.
* Fix reference count leak in mapping.c
* Move and improve ``test_ignore_nan_ulperror``.
* make addition of types a "new feature" in release notes
* Avx512 intrinsics implementation for float64 input np.log
* Bump pytest-cov from 2.9.0 to 2.10.0
* Bump hypothesis from 5.16.0 to 5.16.1
* bump mypy version to 0.780
* Openblas 0.3.10
* add annotation for abs
* check if std=c99 is really required
* disable Shippable cache
* Expand array-creation benchmarks
* Implemented two dtype-related TODO's
* Initialize stop-reading in array_from_text
* Updated documentation for numpy.squeeze
* add tool to find functions missing types
* ENH,BUG:distutils Remove the origins from the implied features
* Some code clean up in loadtxt
* remove obsolete goal_time param
* Fix uint->timedelta promotion to raise TypeError
* Replace `PyUString_GET_SIZE` with `PyUnicode_GetLength`.
* Fix outdated docs link
* add a static typing test for memoryviews as ArrayLikes
* Added annotations to 8 functions from np.core.fromnumeric
* Update master after 1.19.0 release.
* Allow genfromtxt to unpack structured arrays
* Prefer generator expressions over list comprehensions...
* cross-reference numpy.dot and numpy.linalg.multi_dot
* Bump hypothesis from 5.16.1 to 5.16.3
* Bump mypy from 0.780 to 0.781
* Add lib.format.open_memmap to autosummary.
* Fix bug in AVX complex absolute while processing array of...
* remove blacklist/whitelist terms
* Add extra debugging information to CPU features detection
* Add support for file like objects to np.core.records.fromfile
* updated gcc minimum recommend version to build from source
* Allow `None` to be passed to certain `generic` subclasses
* fixed docstring for descr_to_dtype
* Remove "matrix" from `triu` docstring.
* add py.typed sentinel to package manifest
* Fixup quantile tests to not use `np.float`
* Add CPU entry for Emscripten / WebAssembly
* Disable Python 3.9-dev testing.
* Add instruction about stable symlink
* Disable use_hugepages in case of ValueError
* Add dep directive to alen docstring.
* Add RPATH support for AIX
* fix typo
* Fix PyArray_SearchSorted signature.
* Add annotations to the last 8 functions in numpy.core.fromnumeric
* Use f90 compiler specified in f2py command line args for...
* reword random c-api introduction, cython is documented in...
* Tweak a sentence about broadcasting.
* Prepend `ma.` to references in ``numpy.ma``
* Remove redundant word
* add unique() to See Also of repeat()
* add example to unique() and make connection to repeat()
* Chaining exceptions in numpy/core/_internal.py
* add manylinux1 OpenBlAS 0.3.10 hashes and test for them
* Add Matti Picus to steering council page
* make dtype generic over scalar type
* Added a section in the 'Iterating over arrays' doc page...
* Tidy exception chaining in _datasource.py
* Fixes for deprecated functions in scalartypes.c.src
* Bump mypy from 0.781 to 0.782
* Bump hypothesis from 5.16.3 to 5.19.0
* Update NumPy logos
* Remove unneeded call to PyUnicode_READY
* Fix deprecated functions in scalarapi.c
* switch to logo with text
* Bring the NumPy C SIMD vectorization interface "NPYV"...
* Add basic benchmarks for scalar indexing and assignment
* fix decode error when building and get rid of warn
* Minor RST formatting.
* update cython to 0.29.21
* Upgrade to Python 3.8 for DEBUG testing.
* Fix RST/numpydoc standard.
* Move typing tests
* Explicitly disallow object user dtypes
* add example to corrcoef function
* adding docs on passing dimensions as tuple to ndindex
* Remove overzealous automatic RST link
* Add explanation of 'K' and 'A' layout options to 'asarray*'...
* Add a reST label to /user/building.rst
* fix mgrid output for lower precision float inputs
* temporarily disable OpenBLAS hash checks
* Do not inherit flags from the structured part of a union...
* replace dec.slow with pytest.mark.slow
* Make void scalar to array creation copy when dtype is...
* fix inconsistent parameter name in np.ndindex docstring
* setuptools 49.2.0 emits a warning, avoid it
* add examples to random number generator pages
* describe ufunc copy behavior when input and output overlap
* Fix ``runtest.py`` warning.
* Add pandas to doc_requirements.txt
* fix sphinx deprecation
* Avoid using uninitialized bytes in getlimits.py.
* Explaining why datetime64 doesn't work for allclose + isclose
* improve SIMD features tables
* update openblas hashes, re-enable check
* Remove code that will never run
* Bump hypothesis from 5.19.0 to 5.19.1
* linspace should round towards -infinity
* Disable shippable until we can fix it.
* Remove Duplicated Code (function extract rmap)
* Remove Duplicated Code
* Change for loop (range -> for each)
* Deprecate NumPy object scalars
* clarify whats required for new features
* fix new compiler warnings on clang
* fix the search dir of dispatch-able sources
* Remove deprecated python function 'file()'
* Validate output size in bin- and multinomial
* Pin setuptools
* Update compiler check for AVX-512F
* fix the test for ``np.ones``
* edit to the documentation of lib/polynomial.py/polyfit
* Configure hypothesis in ``np.test()`` for determinism,...
* Remove unused pip install
* Fix bad MPL kwarg in docs
* Fix types including curly braces
* Remove the links for ``True`` and ``False``
* Integrate the new CPU dispatcher with umath generator
* Fix wrong markups in `arrays.dtypes`
* Remove links for C codes
* Fix the declarations of C fuctions
* also use Py_SET_REFCNT instead of Py_REFCNT
* Chaining exceptions in numpy/__init__.py
* update val to be scalar or array like optional
* Bump hypothesis from 5.19.1 to 5.20.2
* Speed up trim_zeros
* Fix string/bytes to complex assignment
* Add correctness vs strictness consideration for np.dtype
* Add ufunc docstring to generated docs.
* Update master after 1.19.1 release.
* Revert "Merge pull request 16248 from alexrockhill/edge"
* Fix memory leak of buffer-info cache due to relaxed strides
* Store exported buffer info on the array
* update OpenBLAS build
* Allow array-like types to be coerced as object array elements
* Deprecate size-one ragged array coercion
* Change the name of the folder "icons" to "logo".
* enable colors for `runtests.py --ipython`
* Clarify input to irfft/irfft2/irfftn
* Bump hypothesis from 5.20.2 to 5.23.2
* update numpy/lib/arraypad.py with appropriate chain exception
* Use arm64 instead of aarch64 on travisCI.
* Chain exception in ``distutils/fcompiler/environment.py``.
* Added the `order` parameter to `np.array()`
* Add Neon SIMD implementations for add, sub, mul, and div
* Fixed typo in lib/recfunctions.py
* Add pypy win32 CI testing.
* Increase the use of `Literal` types
* Add NumPy declarations to be used by Cython 3.0+
* Add the new NumPy logo to Sphinx pages
* Bump hypothesis from 5.23.2 to 5.23.9
* Bump pytest from 5.4.3 to 6.0.1
* pin setuptools < 49.2.0
* Revise glossary page
* clip() allows arguments.
* Updated NEP-35 with keyword-only instruction
* Simplify scalar power
* Improve error handling in umathmodule setup
* Disclaimer for FFT library
* Add error return to all casting functionality and NpyIter
* fix a compile and a test warning
* Clarify that `np.char` comparison functions always return...
* Use a less ambiguous example for array_split
* Bump hypothesis from 5.23.9 to 5.23.12
* core._internal style fixups
* Remove _EXTRAFLAGS variable
* fix typo in polydiv that prevented promotion to poly1d
* Revert boolean casting back to elementwise comparisons...
* Raise error on complex input to i0
* Remove obsolete conversion to set
* Remove the deprecated financial functions.
* Remove uses of PyString_FromString.
* use the pydata_sphinx_theme
* Fixes duplication of toctree content
* Bump pytest-cov from 2.10.0 to 2.10.1
* Bump hypothesis from 5.23.12 to 5.26.0
* Adjust NEP-35 to make it more user-accessible
* Add placeholder stubs for all sub-modules
* Split einsum into multiple files
* Handle errors from the PyCapsule API
* Fix spacing in vectorize doc
* Remove `np.ctypeslib.ctypes_load_library`
* make spacing consistent in NEP 41 bullet points
* fix ilp64 blas dot/vdot/... for strides > int32 max
* allow running mypy through runtests.py
* Remove duplicated symbols from link step
* Check for reduce intrinsics and AVX512BW mask operations
* Chain some exceptions in arraysetops.
* Chain ValueError in ma.timer_comparison
* Rewrite promotion using common DType and common instance
* Make arrayprint str and repr the ndarray defaults.
* Fix a few typos.
* Change handling of the expired financial functions.
* Add annotations to 3 functions in `np.core.function_base`
* Replace uses of PyString_AsString.
* ``Replace PyUString_*`` by ``PyUnicode_*`` equivalents.
* Replace PyInt macros with their PyLong replacement
* Add support for the abstract scalars to cython code
* Fix incorrect cython definition of npy_cfloat
* Clean up some Npy_ vs Py_ macro usage
* Remove references to PyCObject
* Update numpy4matlab
* Clean up some more bytes vs unicode handling
* Remove Void special case for "safe casting"
* Remove redundant headers
* Remove NPY_COPY_PYOBJECT_PTR
* Merge the npysort library into multiarray
* Add tests mapping out the rules for metadata in promotion
* revert trim_zeros changes from gh-16911
* Make `np.complexfloating` generic w.r.t. `np.floating`
* remove calls to PyUnicode_AsASCIIString,...
* Added missing methods to `np.flatiter`
* Correct error in description of ndarray.base
* Document `dtype.metadata`
* Use utf8 strings in more of datetime
* Add placeholder stubs for `ndarray` and `generic`
* Bump hypothesis from 5.26.0 to 5.30.0
* Remove some callers of functions in numpy.compat
* Make the window functions exactly symmetric
* Improve error handling in npy_cpu_init
* Fix the documented signatures of four `ufunc` methods
* Make the `NPY_CPU_DISPATCH_CALL` macros expressions not...
* Fixed headings for tutorials so they appear at new theme...
* Canonical_urls
* Fix various issues with the `np.generic` annotations
* enabled negation of library choices in NPY_*_ORDER
* comment out metadata added via javascript
* move informational files from numpy.doc.*.py to their...
* use sysconfig not distutils.sysconfig where possible
* Fix dimension discovery of within array ragged cases
* Added templates for different types of issues.
* Deprecated ndindex.ndincr
* Remove old PY_VERSION_HEX and sys.version_info code
* Avoid using ``np.random`` in typing tests.
* Fix link quick-start in old random API functions
* ``__array_interface__`` data address cannot be bytes
* Run slow CI jobs earlier so builds finishes sooner
* Add tool to help speed up Travis CI
* Fix docstring cross-referencing
* Added a PR "Reviewer guidelines" document.
* work around a bug in the new theme
* add fused multiply subtract/add intrinics for all supported...
* Bump hypothesis from 5.30.0 to 5.33.0
* Bump pydata-sphinx-theme from 0.3.2 to 0.4.0
* add new glossary terms
* remove some glosssary terms
* Fix the path to `mypy.ini` in `runtests.py`
* sysconfig attributes/distutils issue
* Annotate the arithmetic operations of `ndarray` and `generic`
* Merge together index page content into a single file
* Fix a typo in shape_base.
* Pass optimizations arguments to asv build
* Change the financial name access warning to DeprecationWarning
* Update master after 1.19.2 release.
* Simplify ufunc pickling
* Cleanup some pystring macros
* Replace remaining PyString macros.
* Replace PyUString_Check by PyUnicode_Check.
* fix pickling user-scalars by allowing non-format buffer...
* Replace some ``pyint_*`` macros defined in ``npy_3kcompat``.
* set upper versions for build dependencies
* (dtype-transfer) make copyswapn and legacy cast wrapper...
* Replace PyBaseString_Check by PyUnicode_Check
* Replace a couple of missed npy_3kcompat macros
* pin pygments to 2.6.1, 2.7.0 breaks custom NumPyC lexer
* Bump hypothesis from 5.33.0 to 5.35.1
* Bump pytest from 6.0.1 to 6.0.2
* Move the `fromnumeric` annotations to their own stub file
* Syntax-highlight .src files on github
* Mark vendored/generated files in .gitattributes
* Cleanup f2py/cfuncs.py
* Set deprecated fields to null in PyArray_InitArrFuncs
* allow registration of hard-coded structured dtypes
* Add annotations for five array construction functions
* Fix incorrect `.. deprecated::` syntax that led to this...
* improve `issubdtype` and scalar type docs
* Remove the tables of scalar types, and use `..autoclass`...
* update lexer highlighting and make numpydocs a regular...
* Chaining exceptions in npyio.py
* Regenerate table in NEP 29 (add numpy 1.18 and 1.19 to list)
* Fix syntax errors in docstrings for versionchanged, versionadded
* Add partial/non-contig load and store intrinsics for 32/64-bit
* Support for the NVIDIA HPC SDK nvfortran compiler
* Fix a macOS build failure when `NPY_BLAS_ORDER=""`
* Add PR prefix labeler and numpy prefix mapping
* Guide to writing how-tos
* How-to guide for I/O
* clarify residuals return param
* Add Npy__PyLong_AsInt function.
* Bump hypothesis from 5.35.1 to 5.35.3
* Finish replacing PyInt_Check
* Remove an obsolete paragraph.
* Edit nep-0042 for more clarity
* Add annotations for remaining `ndarray` / `generic` non-magic...
* Fixes module data docstrings.
* Fix default_rng docstring
* ensure _UFuncNoLoopError can be pickled
* Minor grammatical correction in quickstart doc.
* NumPy restyling for pydata theme
* Fix docstring for np.matmul
* Bump hypothesis from 5.35.3 to 5.36.1
* Remove old debug print statement.
* Replace "About NumPy" with "Document conventions"
* Update info on doc style rules
* Fix default void, datetime, and timedelta in array coercion
* Replace append_metastr_to_string function.
* Fixed ARGOUTVIEWM memory deallocation.
* rm incorrect alias from recarray user article.
* Rewrite can-cast logic in terms of NEP 42
* Add arraysetops to an autosummary
* Replace PyUString_ConcatAndDel in nditer_constr.c.
* Replace PyUString_ConcatAndDel in mapping.c.
* Replace the module-level `__getattr__` with explicit type...
* in PR template, set expectations for PR review timeline
* Cleanup remaining PyUString_ConcatAndDel use.
* Special case how numpy scalars are coerced to signed integer
* Mark the typing tests as slow
* Fix a parameter type in the `putmask` docs
* adding operational form documentation for array ops
* Deprecate coercion to subarray dtypes
* Fix memory leak in array-coercion error paths
* chains nested try-except in numpy/ma/core.py
* Remove bogus reference to _a_
* Fix formatting issues in description of .c.src files
* nep-0029 typo correction
* Move aliases for common scalar unions to `numpy.typing`
* Fix memoryleaks related to NEP 37 function overrides
* Fix the links for ``Ellipsis``
* add references to einops and opt_einsum
* Disable 32 bit PyPy CI testing on Windows.
* Security warning for issues template
* Fix "Feature request" spelling in issue templates
* Chaining exception in numpy\numpy\ma\mrecords.py
* Cleaner template for PRs
* fix exception chaining in format.py
* Warn on unsupported Python 3.10+
* Typed` to the PyPi classifier
* Fix the references for macros
* update NEP 42 with discussion of type hinting applications
* Remove CoC pages from Sphinx
* Chain exceptions in "_polybase.py"
* Bump hypothesis from 5.36.1 to 5.37.0
* add dtype option to numpy.lib.function_base.cov and corrcoef
* Fixes incorrect error message in numpy.ediff1d
* update code of conduct URL
* Add some entries for C types and macros
* Add annotations for bitwise operations
* add some missing scalar aliases
* Fix doctest for full_like
* remove os.fspath and os.PathLike backports
* Move the `np.core.numeric` annotations to their own stub...
* type np.unicode_ as np.str_
* Fix the entries for members of structures
* Fix the references for `random.*`
* circleCI- merge before build, add -n to sphinx
* Remove duplicate placeholder annotations
* Use consistent lowercase on docs landing page
* fix incompatible type comparison in numpy.lib.utils.info
* Fix failures in master related to userdtype registeration
* remove `sys` from the type stubs
* Fix empty 'C style guide' page
* Rename 'Quickstart tutorial'
* Added the Final feature for all constants
* Fewer blank lines in PR template
* Display real license on license page
* Add docstrings for some scalar types
* Update top links in landing page
* Make merge ref grabbing conditional on the PR being active
* Fix Bool types in C functions
* Fix some links and typos
* Cleanup compatibility code for pathlib
* Fix a typo
* add function to get broadcast shape from a given set of...
* Fixed crash on self-referential dtypes
* Bump hypothesis from 5.37.0 to 5.37.1
* Bump pydata-sphinx-theme from 0.4.0 to 0.4.1
* Bump mypy from 0.782 to 0.790
* Make `np.number` generic with respect to its precision
* fix conditional for PR merge command
* explicit disabling `CCompilerOpt` in F2PY
* Cygwin Workaround for 14787 on affected platforms
* Fix the entries of C functions
* Fix wrong blockquotes
* Add NEP 43 links to NEP 42
* Remove directives for some constants
* Update the annotations in `np.core.numeric`
* Add the entry for ``NPY_FEATURE_VERSION``
* Fix typos
* Add annotations for three new constants
* Fix Boolean array indexing typo
* Respect dtype of all-zero argument to poly1d
* include additional feedback
* Cleanup swig for Python 3.
* Move the `np.core.numerictypes` annotations to their own...
* Bump hypothesis from 5.37.1 to 5.37.3
* Add annotations for `np.core._type_aliases`
* Typo in lexsort docstring
* Coercion/cast of array to a subarray dtype will be fixed
* Clean up the errors of the typing tests
* Fixed file handle leak in array_tofile.
* Fix a broken `np.core.numeric` test
* Mark dead code as intentional for clang.
* removed old references to submodule licenses
* Fix typos (general documentation)
* Fully qualify license trove classifier
* mac dylib treated as part of extra objects by f2py
* Add annotations for 9 `ndarray`/`generic` magic methods
* Fix the document for arrays interface
* Conversion of some strings to f-strings
* Fix some references
* Valid docstring for config_py function show()
* Conversion of some strings to fstrings, part II
* Conversion of some strings to fstrings, part III
* Tidy up references to str_ / bytes_
* Conversion of some strings to fstrings, part iv
* Fix the references for ``__array_*__``
* Add entries for macros
* Add ``identity_value`` to ``PyUFuncObject``
* Replace ``PyCObject`` with ``PyCapsule``
* Don't use Python highlighting for non-python code
* Fix some references
* Bump hypothesis from 5.37.3 to 5.38.0
* update to OpenBLAS v0.3.12
* Fix reference to atleast_1d
* Add annotations for `np.core._ufunc_config`
* Add annotations for `np.core.shape_base`
* fix np.timedelta64('nat').__format__ throwing an exception
* f2py incorrectly translates dimension declarations.
* Fix installing Numpy on z/OS
* Ensure inner loop signature is complete everywhere
* simplify source path names in compilation test
* Add a doctest for ``getlincoef``
* Update master after 1.19.3 release.
* Make test suite work in FIPS (140-2) Mode
* Add a docstring for getarrlen
* Update README badge for travis-ci.com
* Refine a number of ``np.generic`` annotations
* Update release documentation and software
* Add sum intrinsics for float/double.
* (nditer_impl.h) Use ``intp`` instead of ``char *`` for offset...
* Fix small bug in ``make_lite.py``.
* Modify Templates
* Bump hypothesis from 5.38.0 to 5.41.0
* Bump pytz from 2020.1 to 2020.4
* use a more standard workflow for PyPy
* Update master after 1.19.4 release.
* Rename ``DtypeLike`` to ``DTypeLike``
* Fix small typos.
* Fixed an issue where ``.pyi`` files were ignored by numpy...
* Fix Doc Typos & Added Example
* Improve the einsum bench by adding new bench cases and variable...
* Revert gh-17654 - f2py incorrectly translates dimension...
* Add more files to ``.gitgnore``
* Do not import sliding_window_view to main namespace
* Do not override ``sliding_window_view`` module to ``numpy``
* Add NEP-35 instructions on reading like= downstream
* Use importlib to find numpy root directory in distutils
* Remove unused ``**options`` from MaskedArray ``__new__``...
* Remove Python 3.6 CI testing.
* move linux jobs to github actions
* Bump hypothesis from 5.41.0 to 5.41.2
* Fix cblas detection on windows
* add pypy3.7
* compare platform.architecture() correctly
* Add "performance" category to the release notes
* Fix segfault due to out of bound pointer in floatstatus...
* Fix buffer export dtype references
* Fix memory leaks found using valgrind
* Lazy load f2py test utilities
* use BUFFERSIZE=20 in OpenBLAS
* fix reuses the previous values during the fallback...
* update link to website in FUNDING.yml
* Add BLD and STY to labeler prefixes.
* Simplify Hypothesis configuration
* Make like= argument added in NEP-35 strict
* Fix up links, code blocks of release note fragments
* Minor touchups in npyio
* Update mailmap.
* Set the ufunc and ndarray ops return type to ``Any``
* Update linalg.py
* Fix empty_like docstring
* Add missing release fragments to ``upcoming_changes``.
* Fix incorrectly passed size in masked processing
* Bump hypothesis from 5.41.2 to 5.41.3
* Add back durations flag for DEBUG builds.
* Fix subarray dtype used with too large count in fromfile
* Fix pickling of scalars with NPY_LISTPICKLE
* Update the `numpy.typing` documentation
* Fixing boilerplate code example
* Add ``__all__`` to `numpy.typing`
* Add release note for gh-16161.
* Fix incorrect C function prototypes/declarations.
* Prepare for the NumPy 1.20.x branch.
* use python-version not PYTHON_VERSION
* Fix buffer readflag errors and small leaks
* Prepare for 1.20.0 release
* Remove remaining uses of Python 3.6.
* use latest pypy37 not pypy36
* clean up a spurious warning in numpy/typing/setup.py
* Speed up default ``where`` in the reduce-like method
* remove stray '+' from f-string upgrade
* add support for fujitsu compiler to numpy.
* 'bool' object has no attribute 'ndim'
* Update release notes to mention ``type(dtype) is not np.dtype``
* Replace f-string in setup.py
* Ignore fewer errors during array-coercion
* Fix a MacOS build failure
* Fix crosstalk issues with polynomial str tests.
* Ensure tests are not sensitive to execution order
* update to OpenBLAS 0.3.13
* Futurewarn on requiring __len__ on array-likes
* make a variable volatile to work around clang compiler bug
* add back sdist test run
* Fix concatenation when the output is "S" or "U"
* Fix detecting aarch64 on macOS
* Prepare for 1.20.0rc2 release.
* Generate the main dispatcher config header into the...
* Fix _simd module build for 64bit ARM/NEON clang
* Update 1.20.x after 1.19.5 release.
* Fix promotion of half and string
* improve avx512 mask logical operations
* Promotion between strings and objects was assymetric
* Use explicit reexports for numpy.typing objects
* Keep ignoring most errors during array-protocol lookup
* warn on unrecognized objects, fix empty...
* update OpenBLAS to af2b0d02
* Clarify the type alias deprecation message
* Ensure too many advanced indices raises an exception
* add an 'apt update'
* Prepare for the NumPy 1.20.0 release.
Now it should be more obvious when a package needs it as a dependency,
as it will fail loudly if it isn't declared as a tool.
While here, some duplicate dependencies on itstool were removed from the
MATE packages
This also requires gcc 4.8 at minimum, 4.9 for the full set of SIMD.
The configure script is patched to avoid the build adding -march=core-avx2,
which could conflict with user's CFLAGS.
This yields one common package to provide libfftw3 (double) and libfftw3f
(single) by default and optionally the Fortran bindings as well as
OpenMP and MPI variants, and those with long double or quad precision.
This changes all packages depending on fftwf in the same commit to minimize
the time of inconsistency. Soon, math/fftwf will disappear.
Upstream changes:
DBI 1.1.1 (2021-01-04)
Documentation
Expand "Get started" vignette to two tutorials, basic and advanced (#332, @jawond).
Bug fixes
dbAppendTable() now allows columns named sep (#336).
dbAppendTable() shows a better error message if the input has zero columns (#313).
sqlInterpolate() now correctly interprets consecutive comments (#329, @rnorberg).
dbQuoteLiteral() works for difftime objects (#325).
dbQuoteLiteral() quotes dates as YYYY-MM-DD without time zone (#331).
Internal
Switch to GitHub Actions (#326).
Update URL in DESCRIPTION.
to be built with c++11, though the library itself is c++03 clean.
necessary for GCC 10 hosts. also tested on GCC 7 / netbsd 9.x.
from Chavdar Ivanov on current-users.
most of these simply extend matching from "aarch64" to "aarch64eb"
in various forms of code. most remaining uses in pkgsrc of
"MACHINE_ARCH == aarch64" are because of missing aarch64eb support,
such as most of the binary-bootstrap requiring languages like rust,
go, and java.
no pkg-bump because this shouldn't change packages on systems that
could already build all of these.
Changes in 0.15.0.1
* Bug in generation of Int/Word in both uniform and uniformR is
fixed. (#75)
Changes in 0.15.0.0
* withSystemRandomST and createSystemSeed are added.
* withSystemRandom is deprecated.
* random>=1.2 is dependency of mwc-random.
* Instances for type classes StatefulGen & FrozenGen defined in
random-1.2 are added for Gen.
* Functions in System.Random.MWC.Distributions and
System.Random.MWC.CondensedTable now work with arbitrary StatefulGen
* System.Random.MWC.uniformVector now works with arbitrary StatefulGen
as well and uses in-place initialization instead of generateM. It
should be faster for anything but IO and ST (those shoud remain
same).
Changes in 0.3.4.2
* Fixed crash in invIncompleteBeta (#68) for some inputs initial
approximation was computed incorrectly.
Changes in 0.3.4.1
* Precision of incompleteGamma improved.
Changes in 0.3.4.0
* Dependency on vector-th-unbox is dropped. All instances are written
by hand now.
* The build-type has been changed from Custom to Simple. To achieve
this, the doctests test suite has been removed in favor of using
cabal-docspec to run the doctests.
* Explicitly mark modules as Safe.
5.5.10 [2021.01.21]
* Fix a bug in which deriveBifoldable could generate code that
triggers -Wunused-matches warnings.
5.5.9 [2020.12.30]
* Explicitly mark modules as Safe or Trustworthy.
5.5.8 [2020.10.01]
* Fix a bug in which deriveBifunctor would fail on sufficiently
complex uses of rank-n types in constructor fields.
* Fix a bug in which deriveBiunctor and related functions would
needlessly reject data types whose two last type parameters appear
as oversaturated arguments to a type family.
5.5.7 [2020.01.29]
* Add Data.Bifunctor.Biap.
5.0.8 [2020.12.30]
* Explicitly mark modules as Safe or Trustworthy.
* The build-type has been changed from Custom to Simple. To achieve
this, the doctests test suite has been removed in favor of using
cabal-docspec to run the doctests.
5.0.7 [2020.12.15]
* Move FunctorWithIndex (TracedT m w) instance from lens. This
instance depends on the indexed-traversable package. This can be
disabled using the flag of the same name.
0.6.2.1 [2020.12.30]
* The build-type has been changed from Custom to Simple. To achieve
this, the doctests test suite has been removed in favor of using
cabal-docspec to run the doctests.
0.6.2 [2020.04.10]
* Make the Distributive instance for Tagged poly-kinded.
version: 0.23
date: Sun 01 Nov 2020 02:41:20 PM CET
changes:
- minor improvements to coalescing
- use build compiler to build extract_interface
- add some convenience functions
- ignore parameters in isl_union_* hash tables
---
version: 0.22.1
date: Sun Jan 12 10:48:18 CET 2020
changes:
- fix error handling
---
version: 0.22
date: Fri Nov 1 18:39:30 CET 2019
changes:
- require C++11 to generate bindings
- improved bindings
- scheduler fix involving fixed dimensions
- accept ranges in tuples during parsing
- add some convenience functions
---
version: 0.21
date: Sat Mar 9 15:25:29 CET 2019
changes:
- preliminary C++ bindings
- use incremental scheduler by default
- introduce isl_size type
- rename isl_ast_op_type to isl_ast_expr_op_type
- fix coalescing bugs
- use isl_bool to return extra boolean argument
---
version: 0.20
date: Sat Jul 21 18:10:08 CEST 2018
changes:
- keep track of domain in 0D isl_multi_pw_aff and isl_multi_union_pw_aff
- add isl_aff_eval and isl_pw_aff_eval
- add fixed-size rectangular box hull
---
version: 0.19
date: Sat Mar 3 10:44:49 CET 2018
changes:
- minor improvements to coalescing
- minor improvement to parametric integer programming
- try harder to avoid large coefficients in scheduler
- support kill accesses in dependence analysis
- drop deprecated isl_int
- drop deprecated band forests
- drop deprecated functions
---
version: 0.18
date: Sun Dec 18 11:01:58 CET 2016
changes:
- improve elimination of redundant existentially quantified variables
- improve coalescing
- improve parametric integer programming
- preserve isolate option in isl_schedule_node_band_split
- print AST nodes in YAML format
- minor improvements to Python bindings
On NetBSD.
In PKGSRC_FORTRAM=gfortran case, libcblas has no RPATH=/usr/pkg/gccXX/lib
and libgfortran and libquadmath are not found.
In PKGSRC_FORTRAN=g95 case, libcblas has no
RPATH=/usr/pkg/lib/gcc-lib/x86_64--netbsd/4.1.2 and libf95 is not found.
Use Fortran compiler as linker instread of C compiler to fix link.
The patch to system_info.py got upstreamed in a modified form which is
now backported here. On updating to 1.21, it shall be dropped.
In the process of upstreaming the patch, I learned that numpy really
needs to use cblas for proper acceleration, so it does that now and
gets a PKGREVISION bump because of that.
Version 2.43
Installing the Python interface through PyPI is supported.
Version 2.42
For dual CD solvers (logistic/l2 losses but not l1 loss), if a maximal number of iterations is reached, LIBLINEAR directly switches to run a primal Newton solver.
KISS FFT - A mixed-radix Fast Fourier Transform
There are many great fft libraries already around. Kiss FFT is not trying
to be better than any of them. It only attempts to be a reasonably efficient,
moderately useful FFT that can use fixed or floating data types and can be
incorporated into someone's C program in a few minutes with trivial licensing.
This introduces a 'generic' variant for blas_opt_info() and
lapack_opt_info() that looks into BLAS_LIBS and LAPACK_LIBS. The
others stay alive, and you can choose via NPY_BLAS_ORDER and
NPY_LAPACK_ORDER.
Will post this upstream … hoping for the best.
Other projects seem just to abuse the [openblas] entry in
site.cfg, or whatever hacks to trick this into building with
a generic BLAS. One hurdle is that using openblas seems to
assume that CBLAS is present in there, which it is not in pkgsrc.
We could think about introducing some alternatives stuff that uses
stubs for all the related libs anyway, but that is not my application,
which builds things from source. For binary packages, it would be
interesting, though. See Debian and Genoot for prior art on that.
Many many changes including
Oneway ANOVA-type analysis
~~~~~~~~~~~~~~~~~~~~~~~~~~
Several statistical methods for ANOVA-type analysis of k independent samples
have been added in module :mod:`~statsmodels.stats.oneway`. This includes
standard Anova, Anova for unequal variances (Welch, Brown-Forsythe for mean),
Anova based on trimmed samples (Yuen anova) and equivalence testing using
the method of Wellek.
Anova for equality of variances or dispersion are available for several
transformations. This includes Levene test and Browne-Forsythe test for equal
variances as special cases. It uses the `anova_oneway` function, so unequal
variance and trimming options are also available for tests on variances.
Several functions for effect size measures have been added, that can be used
for reporting or for power and sample size computation.
Multivariate statistics
~~~~~~~~~~~~~~~~~~~~~~~
The new module :mod:`~statsmodels.stats.multivariate` includes one and
two sample tests for multivariate means, Hotelling's t-tests',
:func:`~statsmodels.stats.multivariate.test_mvmean`,
:func:`~statsmodels.stats.multivariate.test_mvmean_2indep` and confidence
intervals for one-sample multivariate mean
:func:`~statsmodels.stats.multivariate.confint_mvmean`
Additionally, hypothesis tests for covariance patterns, and for oneway equality
of covariances are now available in several ``test_cov`` functions.
New exponential smoothing model: ETS (Error, Trend, Seasonal)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Class implementing ETS models :class:`~statsmodels.tsa.exponential_smoothing.ets.ETSModel`.
- Includes linear and non-linear exponential smoothing models
- Supports parameter fitting, in-sample prediction and out-of-sample
forecasting, prediction intervals, simulation, and more.
- Based on the innovations state space approach.
Forecasting Methods
~~~~~~~~~~~~~~~~~~~
Two popular methods for forecasting time series, forecasting after
STL decomposition (:class:`~statsmodels.tsa.forecasting.stl.STLForecast`)
and the Theta model
(:class:`~statsmodels.tsa.forecasting.theta.ThetaModel`) have been added.
See 0.12.0-0.12.2 at https://www.statsmodels.org/stable/release/
for the full story, including deprecations.
2.7.3 (2021-02-25)
------------------
- Add pytest plugin options to skip and xfail individual tests
and xfail the unsupported ndarray-1.0.0 example.
- Fix bug resulting in invalid strides values for views over
FITS arrays.
2.7.2 (2021-01-15)
------------------
- Fix bug causing test collection failures in some environments.
- Fix bug when decompressing arrays with numpy 1.20
Highlights of this release
scipy.ndimage improvements: Fixes and ehancements to boundary extension
modes for interpolation functions. Support for complex-valued inputs in many
filtering and interpolation functions. New grid_mode option for
scipy.ndimage.zoom to enable results consistent with scikit-image's
rescale.
scipy.optimize.linprog has fast, new methods for large, sparse problems
from the HiGHS library.
scipy.stats improvements including new distributions, a new test, and
enhancements to existing distributions and tests
Deprecated features
scipy.spatial changes
Calling KDTree.query with k=None to find all neighbours is deprecated.
Use KDTree.query_ball_point instead.
distance.wminkowski was deprecated; use distance.minkowski and supply
weights with the w keyword instead.
Backwards incompatible changes
Using scipy.fft as a function aliasing numpy.fft.fft was removed after
being deprecated in SciPy 1.4.0. As a result, the scipy.fft submodule
must be explicitly imported now, in line with other SciPy subpackages.
scipy.signal changes
The output of decimate, lfilter_zi, lfiltic, sos2tf, and
sosfilt_zi have been changed to match numpy.result_type of their inputs.
The window function slepian was removed.
The frechet_l and frechet_r distributions were removed.
Packaging changes:
- Some patches got upstreamed
- Upstream now defaults to name=sc-im so it no longer needs to be set
Changes, (reformatted) from the official changelog:
New features:
- New motions in edit mode: df cf F dF cF d0 d$ c0 c$ t T dt dT ct cT ^
g_ d^ dg_ c^ cg_
- Simple mouse support. Can handle selection of single cells and scroll.
- Added markdown export.
- Add custom colors with RGB definitions.
- Add support for italic attribute to be appled to cells.
- Added digraphs.
- Added EXECUTE command.
- Added --export_csv --export_tab --export_txt parameters.
- New input_bar_bottom config variable.
- New underline_grid config variable.
- Added filename in status bar (filename_with_mode config variable).
- Added option to truncate cells.
- Added xlsx sheet parameter.
- New @fact function.
Other:
- modified config and history file locations
- renamed winch to sig_winch.
- current fg and bg colors are kept if they are not specified in
:cellcolor.
- OpenBSD support (mostly wordexp() workaround)
- Correct lua api function names in doc
- always generate backup file when opening file
- renamed scim to sc-im in Makefile
- Document trigger return value convention
Issues fixed:
- fix bug when deleting an ent that for instance has a @sum()... it
used to remove its vertex and THE ENTS LINKED to THEM!
- fix error messages when using "scim --version" and color definitions
are intented to be applied from .scimrc.
- fix in waiting for valid command to complete after pressing ESC key.
- fix in parse_str so a word with white space can be stored in
dictionary value
- fix when setting default_paste_from_clipboard_cmd
- Don't clobber startup message w/ err opening file
- Allow for lua scripts in local .sc directory #259
- Send informational messages to stderr rather than the output when
used in non-interactive mode #263
- fixed cell_negative color #271
- fixed locked cells when saving #261
- fixed DEL key in insert mode #272
- fix when resizing column #266
- "Autobackup - case insensitive QER options when backup exists"
- fixed segfault when fcopy'ing with no selection while on first column
- Call write triggers on value clear
- Use sc_info to report trigger exit code
- fixed#277
- Grow table up to MAXROWS exactly
- Remove redundant if clause (God only knows where that was).
- fix in getVertex that prevented rebuild_graph to work properly.
- fix annoying bug because of not resetting inputline_pos to 0 when
confirming a command in COMMAND_MODE
- fix in let and slet. existing vertexs should not be removed.
- added "eval_visited" in vertex struct for not to collide with
current "visited", since:
EvalAll uses EvalBottomUp
EvalBottomUp uses EvalJustOneVertex
EvalJustOneVertex uses eval
eval uses GraphAddEdge
GraphAddEdge uses GraphIsReachable
GraphIsReachable uses visited
and EvalBottomUp also uses uses visited!
- Also changed markAllVerticesNotVisited and
All_vertexs_of_edges_visited functions.
- Some other issues fixed: #228, #234, #239, #240, #244, #246, #260,
#295, #308
- .. and many other fixes and improvements!
Pending:
The most significative issue is regarding circular references.
This have to be deeply analyzed and with the collaboration of the
community
it would be hopefully fixed by v0.9.
The downstream configure code freaked out when info['define_macros'] was not set.
It is now defined and empty.
I hope it's fine to just push this without further notice.
Build was confirmed by oster on NetBSD-9.1/amd64 and tested by me
on Linux/amd64.
Fix openblas build issues, mainly by updating to 0.3.10.
This pulls in these commits from WIP (newest first):
commit 3c6284cba90280bc367cf4d1d8252ae4d6e92e76
Author: Jason Bacon <bacon@NetBSD.org>
Date: Thu Feb 25 11:56:13 2021 -0600
openblas: Update ONLY_FOR_PLATFORMS documentation
commit 8071bf28f3ffc95af046ff3eaaac6983f4f70035
Author: Jason Bacon <bacon@NetBSD.org>
Date: Thu Feb 25 11:51:32 2021 -0600
openblas*: Successful build on NetBSD
commit 056e3d5c972a4b286e8755dbee323a9951855165
Author: Dr. Thomas Orgis <thomas.orgis@uni-hamburg.de>
Date: Wed Feb 24 18:40:17 2021 +0100
openblas: flags from environment again to un-break PICy build
The bug that prompted us to force the compiler flags in the
make arguments is fixed. Now we got a different one: The logic
that decides to add -fPIC where needed is overridden when doing
this, resulting in relocation errors (strangely, not with every
toolchain).
So let's remove that again and take FFLAGS and friends from the
environment again.
commit 86af17db8526e629c2c02c6af1f1ce7db6f6ba6d
Author: Dr. Thomas Orgis <thomas.orgis@uni-hamburg.de>
Date: Thu Nov 12 12:44:39 2020 +0100
openblas: version 0.3.10
This updated fixes the build with gcc 10 (segfault in cblat1 test).
I did not go all the way to the current 0.3.12, as that would
need some hacking of chosen compiler flags. 0.3.13 should be
the next one.
This commit also fixes the ARCH → ARCH_ sed to change all
occurences on a line.
This fulfills pkg/55999 and was approved by wiz during freeze.
The previous state included our BLAS choice but the build
did not honour the selected libs. This patches the config
script to not search for LAPACK and BLAS, using our settings
instead. Hopefull we can get that option upstreamed.
Approved during freeze by wiz.
The previous state included our BLAS choice but the build
did not honour the selected libs. This patches the config
script to not search for LAPACK and BLAS, using our settings
instead. Hopefull we can get that option upstreamed.
Approved during freeze by wiz.
This is a bug fix release and contains the following two bug fixes:
* Fix indexing error for labelling in large (>2GB) arrays
* Only use retry_if_failed with recent pooch
2021-01-31: 1.0.7 release:
* ga.sor: new module Irish by László Németh
* lg.sor: new module Luganda by Phillip Samuel
* mr.sor: new module Marathi by Ankur Heramb Joshi
* mt.sor: new module Maltase by László Németh
* fi.sor: fix ordinal 0, bug report by Tuomas Hietala
* hu_Hung.sor:
- fix transliteration of Vörösmarty, bug report by Zoltán Óvári
- replace ü and ű by Viktor Kovács
- fix transliteration of dates with affixation
* th.sor: fix big (>999,999) numbers by Vladislav Kiper
* ua.sor: fix euro cent, bug report by Kty0mka
Benchmarking:
- Speed tests now call cpucycles() before setting resource limits. This
is important on platforms where cpucycles() needs to read files.
Verification:
- Support for SignExt and several more peephole optimizations, working
towards support for simpler symbolic-execution backend. Various
updates to work with angr8 and python3.
## 3.3.0
This is a production release that changes one behavior and fixes documentation
bugs.
The changed behavior is the treatment of `-e` and `-f` when given through
`BC_ENV_ARGS` or `DC_ENV_ARGS`. Now `bc` and `dc` do not exit when those options
(or their equivalents) are given through those environment variables. However,
`bc` and `dc` still exit when they or their equivalents are given on the
command-line.
Note that "DC_ENV_ARGS" will lead to dc exiting; this was new in 3.1.4
and I have reported that upstream.
Upstream changes, less bugfixes (and hence first/second do not make
sense; see the full NEWS.md in the sources if that upsets you):
## 3.2.5
This is a production release that fixes several bugs and adds a couple small
things.
The two most important bugs were bugs that causes `dc` to access memory
out-of-bounds (crash in debug builds). This was found by upgrading to `afl++`
from `afl`. Both were caused by a failure to distinguish between the same two
cases.
Fourth, the pseudo-random number now attempts to seed itself with `/dev/random`
if `/dev/urandom` fails.
## 3.2.0
This is a production release that has one bug fix and a major addition.
The major addition is a way to build a version of `bc`'s math code as a library.
This is done with the `-a` option to `configure.sh`. The API for the library can
be read in `./manuals/bcl.3.md` or `man bcl` once the library is installed with
`make install`.
This library was requested by developers before I even finished version 1.0, but
I could not figure out how to do it until now.
If the library has API breaking changes, the major version of `bc` will be
incremented.
## 3.1.4
This is a production release that fixes one bug, changes two behaviors, and
removes one environment variable.
The behavior that was changed is that `bc` now exits when given `-e`, `-f`,
`--expression` or `--file`. However, if the last one of those is `-f-` (using
`stdin` as the file), `bc` does not exit. If `-f-` exists and is not the last of
the `-e` and `-f` options (and equivalents), `bc` gives a fatal error and exits.
Next, I removed the `BC_EXPR_EXIT` and `DC_EXPR_EXIT` environment variables
since their use is not needed with the behavior change.
Finally, I made it so `bc` does not print the header, though the `-q` and
`--quiet` options were kept for compatibility with GNU `bc`.
from Yorick Hardy in pkgsrc/wip
The package patches a few commands of the LaTeX2e kernel and
the amsmath and mathtools packages to be more compatible with
the LuaTeX engine. It is only meaningful for LuaLaTeX documents
containing mathematical formulas, and does not exhibit any new
functionality. The fixes are mostly moved from the unicode-math
package to this package since they are not directly related to
Unicode mathematics typesetting.
Gnumeric 1.12.48
Andreas:
* Add axis title to chart in histogram tool. [#408]
* Fix line end marker roundtrip through strict ODF
* Improve export of line markers to ODF for interoperability
* Improve line marker handling on import
* Fix LaTeX export. [#489]
* When reading an ODF file make all sheets of equal size. [#505]
Jean:
* Fix xlsx object non-import crash.
* Fix in-place graph data problem. [#492]
* Port to Python3. [#419]
Morten:
* Fix performance issue with sample_datasource. [#491]
* Fix partial-line issue with sample_datasource.
* Fix load of in-place graph data with extra ()s. [#492]
* Fix Ctrl-; cursor position. [#494]
* Fix ssconvert --merge-to problem. [#496]
* Fix sheet size paste problem. [#497]
* Speed up really large auto-filters. [#465]
* Fix 2038 problem on quit.
* Improve tests.
* Improve dependency tracking for implicit intersection. [#501]
* Fix format dialog issue. [#503]
* Re-tune style quad tree. [#234]
* Re-tune dependency bucket system. [#502]
* Fix global name parsing problem with non-uniform sheet sizing.
* Avoid style dependency redraw during file load.
* Tend to dead kittens.
* Fix metadata dialog. [#510]
* Fix potential 64-bit problem with signals.
* Fix GnmRange introspection.
Changelog:
0.16.1
fixed a build issue on 32-bit linux platforms, caused by slicing
of integer string ID values.
worked around floating point rounding errors which prevented
two theoretically-equal numeric values from being evaluated as
equal in test code.
0.16.0
documentation
added quickstart sections for using model_context and
document classes.
added code example for cell_access class.
C++ API
added new function to allow printing of single formula
tokens.
added method for setting cached results on formula cells
in model_context.
changed the model_context design to ensure that all sheets
are of the same size.
added an accessor method to formula_model_access interface
(and implicitly in model_context) that directly returns a
string value from cell.
added cell_access class for querying of cell states without
knowing its type ahead of time.
added document class which provides a layer on top of
model_context, to abstract away the handling of formula
calculations.
deprecated model_context::erase_cell() in favor of
empty_cell().
formula parser / interpreter
added support for 3D references - references that contain
multiple sheets.
added support for the exponent (^) and concatenation (&)
operators.
fixed incorrect handling of range references containing
whole columns such as A:A.
added support for unordered range references - range
references whose start row or column is greater than their
end position counterparts, such as A3:A1.
fixed a bug that prevented nested formula functions from
working properly.
implemented Calc A1 style reference resolver.
misc
formula results now directly store the string values when
the results are of string type. They previously stored
string ID values after interning the original strings.
removed build-time dependency on spdlog.
pkgsrc changes: Remove non-installed examples with non-POSIX sh
constructs.
What would be in upstream NEWS:
Qhull 2020.2 enhances the C++ interface with QhullUser and support for Voronoi diagrams.
Qhull 2020.1 makes minor API changes
1.19.5:
BUG: Fix segfault due to out of bound pointer in floatstatus...
BUG: fix np.timedelta64('nat').__format__ throwing an exception
BUG: Fixed file handle leak in array_tofile.
BUG: Raise recursion error during dimension discovery
BUG: Fix subarray dtype used with too large count in fromfile
BUG: 'bool' object has no attribute 'ndim'
BUG: ensure _UFuncNoLoopError can be pickled
BLD: use BUFFERSIZE=20 in OpenBLAS
BLD: update to OpenBLAS 0.3.13
BUG: make a variable volatile to work around clang compiler bug
REL: Prepare for the NumPy 1.19.5 release.
FFTW 3.3.9:
* New API fftw_planner_nthreads() returns the number of threads
currently being used by the planner.
* Fix incorrect math in 128-bit generic SIMD
* Fix wisdom for avx512.
The avx512 alignment requirement was set to 64 bytes, but this is
wrong. Alignment requirements are a property of the platform (e.g.,
x86) and not of the instruction set (e.g., AVX). Among other
things, this broke wisdom with avx512.
Note that avx512 support is still experimental because the FFTW
authors have no avx512 hardware available for testing.
* fftw_threads_set_callback function to change the threading backend at runtime.
2020-08-18 Kurt Hornik <Kurt.Hornik@wu.ac.at>
* DESCRIPTION: New version is 2.3-56.
* R/zzz.R: Drop .onAttach().
* R/y2k.R:
* man/chron-internal.Rd:
Changed the default cutoff when expanding a 2-digit year to a
4-digit year from 30 to 69 (as for Date and POSIXct in base R.)
2020-02-02 Kurt Hornik <Kurt.Hornik@wu.ac.at>
* DESCRIPTION: New version is 2.3-55.
* R/zzz.R (.onAttach): Add.
2019-08-13 Kurt Hornik <Kurt.Hornik@wu.ac.at>
* DESCRIPTION: New version is 2.3-54.
* R/dates.R:
Add as.dates().
Suggestion by Gabor Grothendieck <ggrothendieck@gmail.com>.
2019-08-12 Kurt Hornik <Kurt.Hornik@wu.ac.at>
* NAMESPACE:
* R/times.R:
Add as.times().
Suggestion by Gabor Grothendieck <ggrothendieck@gmail.com>.
# backports 1.2.1
* Adapted `get0()` to work with R-devel / R-4.1.0 for first argument having length greater than 1.
# backports 1.2.0
* Switched to semantic versioning.
* Added backport for `asplit()` for R versions prior to 3.6.0 (#47).
* Added backport for `removeSource()` which also supports language objects for R versions prior to 3.6.0 (#50).
* Added backport for `isNamespaceLoaded` for R versions prior to 3.2.0 (#49).
# backports 1.1.10
* Added `suppressMessages()` and `suppressWarnings()` with support for argument `classes` for R versions prior to 4.0.0
# backports 1.1.9
* Added backports for `str2lang()` and `str2expression()` (#42)
Thanks to @dmurdoch.
* `import()` imported too many functions and has been fixed.
# backports 1.1.8
* Added backport for `tools::vignetteInfo()` for R versions prior to 3.6.0
* Fixed import of `list2DF()` and `deparse1()`
# backports 1.1.7
* Added backport for `deparse1()` for R versions prior to 4.0.0.
* Added backport for `list2DF()` for R versions prior to 4.0.0.
# backports 1.1.6
* Added backport for `R_user_dir()` for R versions prior to 4.0.0.
* Added `dQuote()` and `sQuote()` with support for argument `q` for R versions prior to 3.6.0.
# backports 1.1.5
* Changed license from GPL-2 to GPL-2 or GPL-3.
* Added backport for `isTRUE()` implementing the new behaviour introduced in R 3.5.0.
Version 3.99-0
* We can specify R functions and C routines for use as XPath
functions in calls to getNodeSet() and xpathApply().
* Implementations of XPath 2.0 functions matches(), lower-case(),
ends-with(), abs(), min(), max(), replace()
Version 3.98-2
* xmlSave() of a document to a file with encoding now honors indenting.
Uses xmlSaveFormatFileEnc(). Issue identified by Earl Brown.
Changes in version 2.7-1
o Updated Polish translation, thanks to Lukasz Daniel.
o Fixed mixed-up .mo files for Spanish and Brazilian-Portuguese
translations (problem reported by Jose Henrique Hildebrand Grisi
Filho).
o Small bug fixes to and improvements to repeated-measures dialogs.
Added math/py-asdf version 2.7.1
Added devel/py-extension-helpers version 0.1
Added math/py-astropy version 4.2
Added math/py-jplephem version 2.15
Added math/py-pyerfa version 1.7.1.1
Added math/py-pyvo version 1.1
Added math/py-astroquery version 0.3.9
Added math/py-astroML version 1.0
Added math/py-gwcs version 0.15.0
Added math/py-photutils version 1.0.1
Added math/py-astroplan version 0.7
Based on PR pkg/55873 by Daisuke Kinoshita:
GWCS is an Astropy affiliated Python module for managing WCS (World
Coordinate System) of astronomical data.