Version 0.46.0
This release significantly reworked one of the main parts of Numba, the compiler
pipeline, to make it more extensible and easier to use. The purpose of this was
to continue enhancing Numba's ability for use as a compiler toolkit. In a
similar vein, Numba now has an extension registration mechanism to allow other
Numba-using projects to automatically have their Numba JIT compilable functions
discovered. There were also a number of other related compiler toolkit
enhancement added along with some more NumPy features and a lot of bug fixes.
This release has updated the CUDA Array Interface specification to version 2,
which clarifies the `strides` attribute for C-contiguous arrays and specifies
the treatment for zero-size arrays. The implementation in Numba has been
changed and may affect downstream packages relying on the old behavior
General Enhancements:
* Add rewrite for semantic constants.
* Add np.cross support
* Make IR comparable and legalize it.
* R&D inlining, jitted and overloaded.
* Automatic JIT of called functions
* Inspection tool to check what numba supports
* Implement np.count_nonzero
* Unicode array support
* Entrypoints for numba extensions
* Literal dispatch
* Allow dtype input argument in np.sum
* New compiler.
* add support for np.append
* Refactor NRT C-API
* 0.46 scheduled deprecations
* Add env var to disable performance warnings.
* add np.array_equal support
* Implement numba.cross2d
* Add triangular indices functions
* Enable support for count() method for unicode string
Fixes:
* Fix inplace operator error for arrays
* Detect and raise unsupported on generator expressions
* Don't allow the allocation of mutable objects written into a
container to be hoisted.
* Avoid deprecated use of inspect.getargspec
* Replace GC macro with function call
* Loosen up typed container casting checks
* Fix some coding lines at the top of some files (utf8 -> utf-8)
* Replace "import \*" with explicit imports in numba/types
* Fix incorrect alg in isupper for ascii strings.
* test using jitclass in typed-list
* Add allocation hoisting info to LICM section at diagnostic L4
* Offset search box to avoid wrapping on some pages with Safari.
* Replace all "except BaseException" with "except Exception".
* Restore the "free" conda channel for NumPy 1.10 support.
* Add lowering for constant bytes.
* Add exception chaining for better error context
* Name of type should not contain user facing description for debug.
* Limit the number of return types for recursive functions
* Fixed two module teardown races in py2.
* Fix and test numpy.random.random_sample(n) for np117
* NamedTuple - Raises an error on non-iterable elements
* Add a newline in patched errors
* Fix liveness for remove dead of parfors (and other IR extensions)
* Make List.__getitem__ accept unsigned parameters
* Raise specific error at typing time for iteration on >1D array.
* Fix static_getitem with Literal type as index
* Update to inliner cost model information.
* Use specific random number seed when generating arbitrary test data
* Adjust test timeouts
* Skip unicode array tests on ppc64le that trigger an LLVM bug
* Fix packaging issue due to missing numba/cext
* Fix issue 4520 due to storage model mismatch
* Updates for llvmlite 0.30.0
CUDA Enhancements/Fixes:
* cudasim mishandling recarray
* Replace use of `np.prod` with `functools.reduce` for computing size
from shape
* Prevent taking the GIL in ForAll
* Just pass NULL for b2d_func for constant dynamic
sharedmem
* Update CUDA Array Interface & Enforce Numba compliance
* Implement math.{degrees, radians} for the CUDA target.
* Bump cuda array interface to version 2
Documentation Updates:
* Add docs for ARMv8/AArch64
* Add supported platforms to the docs.
* Add docstrings to inspect methods
* Update Python 2.7 EOL statement
* Add note about np.sum
* Minor parallel performance tips edits
* Clarify docs for typed dict with regard to arrays
* Fix example in guvectorize docstring.
* fix two typos in architecture.rst
* Document numba.extending.intrinsic and inlining.
* Fix typo in jit-compilation docs
* add dependency list to docs
* Add documentation for implementing new compiler passes.
netCDF version 4 has many features not found in earlier versions of
the library, such as hierarchical groups, zlib compression, multiple
unlimited dimensions, and new data types. It is implemented on top of
HDF5. This module implements most of the new features, and can read
and write netCDF files compatible with older versions of the
library. The API is modelled after Scientific.IO.NetCDF, and should be
familiar to users of that module.
Packaged by Kamel Ibn Aziz Derouiche and updated by wiz@ and me.
xarray (formerly xray) is an open source project and Python package
that aims to bring the labeled data power of pandas to the physical
sciences, by providing N-dimensional variants of the core pandas data
structures.
Packaged by K.I.A.Derouiche for pkgsrc-wip, and updated by me.
Version 3.7.7.0:
Upgraded libastro to 3.7.7.
The internal star catalog now includes all 57 navigational stars.
The rise, culminate, and set returned by next_pass() are now consecutive values for a single pass. Pass singlepass=False to return the original next_rise, next_culminate, next_set even if next_set < next_rise (the satellite is already up).
ephem.delta_t('0') now returns the correct value, instead of misbehaving for that particular input.
Yices 2 is an SMT solver that decides the satisfiability of formulas
containing uninterpreted function symbols with equality, real and
integer arithmetic, bitvectors, scalar types, and tuples. Yices 2
supports both linear and nonlinear arithmetic.
Yices 2 can process input written in the SMT-LIB notation (both
versions 2.0 and 1.2 are supported). Alternatively, you can write
specifications using Yices 2's own specification language, which
includes tuples and scalar types. You can also use Yices 2 as a
library in your software.
Upstream changes:
CHANGES IN R 3.6.1:
INSTALLATION on a UNIX-ALIKE:
* The default detection of the shell variable libNN is overridden
for derivatives of Debian Linux, some of which have started to
have a /usr/lib64 directory. (E.g. Ubuntu 19.04.) As before, it
can be specified in config.site.
UTILITIES:
* R CMD config knows the values of AR and RANLIB, often set for LTO
builds.
DEPRECATED AND DEFUNCT:
* The use of a character vector with .Fortran() is formally
deprecated and gives a non-portability warning. (It has long
been strongly discouraged in 'Writing R Extensions'.)
BUG FIXES:
* On Windows, GUI package installation via menuInstallPkgs() works
again, thanks to Len Weil's and Duncan Murdoch's PR#17556.
* R CMD check on data() fixing PR#17558 thanks to Duncan Murdoch.
* quasi(*, variance = list(..)) now works more efficiently, and
should work in all cases fixing PR#17560. Further, quasi(var =
mu(1-mu)) and quasi(var = "mu ^ 3") now work, and quasi(variance
= "log(mu)") now gives a correct error message.
* Creation of lazy loading database during package installation is
again robust to Rprofile changing the current working directory
(PR#17559).
* boxplot(y ~ f, horizontal=TRUE) now produces correct x- and
y-labels.
* rbind.data.frame() allows to keep <NA> levels from factor columns
(PR#17562) via new option factor.exclude.
Additionally, it works in one more case with matrix-columns which
had been reported on 2017-01-16 by Krzysztof Banas.
* Correct messaging in C++ pragma checks in tools code for R CMD
check, fixing PR#17566 thanks to Xavier Robin.
* print()ing and auto-printing no longer differs for functions with
a user defined print.function, thanks to Bill Dunlap's report.
* On Windows, writeClipboard(.., format = <n>) now does correctly
pass format to the underlying C code, thanks to a bug report
(with patch) by Jenny Bryan.
* as.data.frame() treats 1D arrays the same as vectors, PR#17570.
* Improvements in smoothEnds(x, *) working with NAs (towards
runmed() working in that case, in the next version of R).
* vcov(glm(<quasi>), dispersion = *) works correctly again, fixing
PR#17571 thanks to Pavel Krivitsky.
* R CMD INSTALL of binary packages on Windows now works also with
per-directory locking.
* R CMD INSTALL and install.packages() on Windows are now more
robust against a locked file in an earlier installation of the
package to be installed. The default value of option
install.lock on Windows has been changed to TRUE.
* On Unix alikes (when readline is active), only expand tilde (~)
file names starting with a tilde, instead of almost all tildes.
* In R documentation (*.Rd) files, \item [..] is no longer treated
specially when rendered in LaTeX and hence pdf, but rather shows
the brackets in all cases.
An evolution of 'reshape2'. It's designed specifically for data
tidying (not general reshaping or aggregating) and works well with
'dplyr' data pipelines.
Provides functions for the consistent analysis of compositional data
(e.g. portions of substances) and positive numbers (e.g.
concentrations) in the way proposed by J. Aitchison and V.
Pawlowsky-Glahn.
"Essential" Robust Statistics. Tools allowing to analyze data with
robust methods. This includes regression methodology including model
selections and multivariate statistics where we strive to cover the
book "Robust Statistics, Theory and Methods" by 'Maronna, Martin and
Yohai'; Wiley 2006.
Provides convenience functions for advanced linear algebra with
tensors and computation with datasets of tensors on a higher level
abstraction. It includes Einstein and Riemann summing conventions,
dragging, co- and contravariate indices, parallel computations on
sequences of tensors.
Differential Evolution (DE) stochastic algorithms for global
optimization of problems with and without constraints. The aim is to
curate a collection of its state-of-the-art variants that (1) do not
sacrifice simplicity of design, (2) are essentially tuning-free, and
(3) can be efficiently implemented directly in the R language.
Currently, it only provides an implementation of the 'jDE' algorithm
by Brest et al. (2006) <doi:10.1109/TEVC.2006.872133>.
E-statistics (energy) tests and statistics for multivariate and
univariate inference, including distance correlation, one-sample,
two-sample, and multi-sample tests for comparing multivariate
distributions, are implemented. Measuring and testing multivariate
independence based on distance correlation, partial distance
correlation, multivariate goodness-of-fit tests, k-groups and
hierarchical clustering based on energy distance, testing for
multivariate normality, distance components (disco) for non-parametric
analysis of structured data, and other energy statistics/methods are
implemented.
The canonical form [1] of an R package Makefile includes the
following:
- The first stanza includes R_PKGNAME, R_PKGVER, PKGREVISION (as
needed), and CATEGORIES.
- HOMEPAGE is not present but defined in math/R/Makefile.extension to
refer to the CRAN web page describing the package. Other relevant
web pages are often linked from there via the URL field.
This updates all current R packages to this form, which will make
regular updates _much_ easier, especially using pkgtools/R2pkg.
[1] http://mail-index.netbsd.org/tech-pkg/2019/08/02/msg021711.html
The canonical form [1] of an R package Makefile includes the
following:
- The first stanza includes R_PKGNAME, R_PKGVER, PKGREVISION (as
needed), and CATEGORIES.
- HOMEPAGE is not present but defined in math/R/Makefile.extension to
refer to the CRAN web page describing the package. Other relevant
web pages are often linked from there via the URL field.
This updates all current R packages to this form, which will make
regular updates _much_ easier, especially using pkgtools/R2pkg.
[1] http://mail-index.netbsd.org/tech-pkg/2019/08/02/msg021711.html
The category 'R' is used to denote R packages, just as 'perl5' and 'python'
are used in other cases. To ensure consistency, add that to CATEGORIES in
Makefile.extension rather than in each individual R package. This was
discussed in http://mail-index.netbsd.org/tech-pkg/2019/08/02/msg021711.html.
Version 0.45.1
This patch release addresses some regressions reported in the 0.45.0 release and adds support for NumPy 1.17:
* accept scalar/0d-arrays
* Fix. Parfors reduction vars not deleted.
* Use process level locks for fork() only.
* Try to fix.
* Fix np1.17 isnan, isinf, isfinite ufuncs
* Fix np.interp for np1.17 nan handling
* Fix nump1.17 random function non-aliasing
Version 0.45.0
In this release, Numba gained an experimental numba.typed.List container as a future replacement of the reflected list. In addition, functions decorated with parallel=True can now be cached to reduce compilation overhead associated with the auto-parallelization.
Enhancements from user contributed PRs (with thanks!):
James Bourbeau added the Numba version to reportable error messages, added the signature parameter to inspect_types, improved the docstring of normalize_signatur, and fixed by adding reference counting to register_dispatcher
Guilherme Leobas implemented the dominator tree and dominance frontier algorithms
Nick White fixed the issue with round in the CUDA target.
Joshua Adelman added support for determining if a value is in a range (i.e. x in range(...)), and added windowing functions (np.bartlett, np.hamming, np.blackman, np.hanning, np.kaiser) from NumPy.
Lucio Fernandez-Arjona added support for np.select
Rob Ennis added support for np.flatnonzero
Keith Kraus extended the __cuda_array_interface__ with an optional mask attribute.
Gregory R. Lee replaced deprecated use of inspect.getargspec
Upstream changes:
This release is a production release.
The following bugs were fixed:
A dc bug that caused stack mishandling was fixed.
A warning on OpenBSD was fixed.
Bugs in ctrl+arrow operations in history were fixed.
The ability to paste multiple lines in history was added.
A bc bug, mishandling of array arguments to functions, was fixed.
A crash caused by freeing the wrong pointer was fixed.
A dc bug where strings, in a rare case, were mishandled in parsing was fixed.
In addition, the following changes were made:
Division was slightly optimized.
An option was added to the build to disable printing of prompts.
The special case of empty arguments is now handled. This is to
prevent errors in scripts that end up passing empty arguments.
A harmless bug was fixed. This bug was that, with the pop
instructions (mostly) removed (see below), bc would leave extra
values on its stack for void functions and in a few other
cases. These extra items would not affect anything put on the
stack and would not cause any sort of crash or even buggy
behavior, but they would cause bc to take more memory than it
needed.
On top of the above changes, the following optimizations were added:
The need for pop instructions in bc was removed.
Extra tests on every iteration of the interpreter loop were removed.
Updating function and code pointers on every iteration of the
interpreter loop was changed to only updating them when necessary.
Extra assignments to pointers were removed.
Altogether, these changes sped up the interpreter by around 2x.
NOTE: This is the last release with new features because this bc is
now considered complete. From now on, only bug fixes and new
translations will be added to this bc.