Jan 28th, 2019
v1.1.0
-- Christoph Zurnieden contributed FIPS 186.4 compliant
prime-checking (PR #113), several other fixes and a load of documentation
-- Daniel Mendler provided two's-complement functions (PR #124)
and mp_{set,get}_double() (PR #123)
-- Francois Perrad took care of linting the sources, provided all fixes and
a astylerc to auto-format the sources.
-- A bunch of patches by Kevin B Kenny have been back-ported from TCL
-- Jan Nijtmans provided the patches to `const`ify all API
function arguments (also from TCL)
-- mp_rand() has now several native random provider implementations
and doesn't rely on `rand()` anymore
-- Karel Miko provided fixes when building for MS Windows
and re-worked the makefile generating process
-- The entire environment and build logic has been extended and improved
regarding auto-detection of platforms, libtool and a lot more
-- Prevent some potential BOF cases
-- Improved/fixed mp_lshd() and mp_invmod()
-- A load more bugs were fixed by various contributors
Changes:
4.65
----
- The following new API routines for LP/MIP preprocessing were
added:
glp_npp_alloc_wksp allocate the preprocessor workspace
glp_npp_load_prob load original problem instance
glp_npp_preprocess1 perform basic LP/MIP preprocessing
glp_npp_build_prob build resultant problem instance
glp_npp_postprocess postprocess solution to resultant problem
glp_npp_obtain_sol obtain solution to original problem
glp_npp_free_wksp free the preprocessor workspace
See doc/npp.txt for detailed description of these API routines.
- A new, more robust implementation of locally valid simple cover
cuts was included in the MIP solver.
- The API routine glp_init_iocp was changed to enable long-step
option of the dual simplex by default.
4.64
----
- The dual simplex solver routine was changed to perform more
aggressive perturbation to prevent dual degeneracy and avoid
stalling even if the current dual basic solution is strongly
feasible (mainly if the objective is zero). Thanks to David
Monniaux <David.Monniaux@univ-grenoble-alpes.fr> for bug report
and example model.
- The exact simplex solver routine was changed to perform
terminal output according to the verbosity level (specified by
the control parameter smcp.msg_lev). Thanks to Jeroen Demeyer
<jdemeyer@cage.ugent.be> for bug report.
- A minor bug (related to MS Windows version) was fixed. Thanks
to Heinrich Schuchardt <xypron.glpk@gmx.de> for bug report.
- An example model (Graceful Tree Labeling Problem) in MathProg
was added. Thanks to Mike Appleby <mike@app.leby.org> for
contribution.
- Three example models (Power plant LP scheduler, Neumann CA
grid emulator generator) in MathProg and one in Cplex LP format
were added. Thanks to Peter Naszvadi <vuk@cs.elte.hu> for
contribution.
Discussed with <adam>, thanks!
Version 0.44.1
This patch release addresses some regressions reported in the 0.44.0 release:
- Fix 4164 issue with NUMBAPRO_NVVM.
- Abandon branch pruning if an arg name is redefined.
- Fix 4156. Problem with defining in-loop variables.
##############################################
# 2015-09-05 galculator 2.1.4 released #
##############################################
2015-09-05 Simon Flöry <simon.floery@rechenraum.com>
* adding a fresh "tx pull" of translations (thanks to all translators!)
* adding an appdata file (thanks to Alexander)
2014-05-17 Simon Flöry <simon.floery@rechenraum.com>
* in ui.c::set_all_dispctrl_buttons_property check for table_children != NULL
(fixes sf.net bug #107, thanks to Chris LaFleur for reporting)
* *.c: all dynamic memory allocation and free'ing is done via glib now.
* Changed default background color for the display to white.
2014-05-07 Simon Flöry <simon.floery@rechenraum.com>
* In callbacks.c and general_functions.c, team up every
gtk_check_menu_item_set_active with a gtk_check_menu_item_toggled. See
also 2014-01-08 and sf.net bug #99.
(fixes sf.net bug #105, thanks to Don for reporting)
2014-03-20 Simon Flöry <simon.floery@rechenraum.com>
* translations are now served through transifex (thanks to the MATE project,
in particular to Stefano and Martin)
* adding a fresh "tx pull" of translations (thanks to all translators!)
2014-03-16 Simon Flöry <simon.floery@rechenraum.com>
* set_basic_object_data/set_scientific_object_data make structs static
(fixes sf.net bug #104, thanks to Campbell Barton for reporting)
scikit-image 0.15.0
We're happy to announce the release of scikit-image v0.15.0!
scikit-image is an image processing toolbox for SciPy that includes algorithms for segmentation, geometric transformations, color space manipulation, analysis, filtering, morphology, feature detection, and more.
0.15 is the first scikit-image release that is only compatible with Python 3.5 and above. Python 2.7 users should strongly consider upgrading to Python 3.5+, or use the 0.14 long term support releases.
New Features
N-dimensional flood fill, with tolerance
Attribute operators
Extension of register_translation to enable subpixel precision in 3D and optionally disable error calculation
unsharp mask filtering
New options connectivity, indices and allow_borders for skimage.morphology.local_maxima and local_minima.
Image translation registration for masked data (skimage.feature.masked_register_translation)
Frangi (vesselness), Meijering (neuriteness), and Sato (tubeness) filters
Allow float->float conversion of any range
Let lower precision float arrays pass through img_as_float
Lazy apply_parallel (allows optimization of dask array operations)
Add range option for histogram.
Add histogram matching
Improvements
Replace morphology.local_maxima with faster flood-fill based Cython version
skivi is now using qtpy for Qt4/Qt5/PySide/PySide2 compatibility (a new optional dependency).
Performance is now monitored by Airspeed Velocity. Benchmark results will appear at https://pandas.pydata.org/speed/
Speed up inner loop of GLCM
Allow tuple to define kernel in threshold_niblack and threshold_sauvola
Add support for anisotropic blob detection in blob_log and blob_dog
API Changes
skimage.transform.seam_carve has been removed because the algorithm is patented.
Parameter dynamic_range in skimage.measure.compare_psnr has been removed. Use parameter data_range instead.
imageio is now the preferred plugin for reading and writing images.
imageio is now a dependency of scikit-image.
regular_grid now returns a tuple instead of a list for compatibility with numpy 1.15
colorconv.separate_stains and colorconv.combine_stains now uses base10 instead of the natural logarithm as discussed in issue 2995.
Default value of clip_negative parameter in skimage.util.dtype_limits has been set to False.
Default value of circle parameter in skimage.transform.radon has been set to True.
Default value of circle parameter in skimage.transform.iradon has been set to True.
Default value of mode parameter in skimage.transform.swirl has been set to reflect.
Deprecated skimage.filters.threshold_adaptive has been removed. Use skimage.filters.threshold_local instead.
Default value of multichannel parameter in skimage.restoration.denoise_bilateral has been set to False.
Default value of multichannel parameter in skimage.restoration.denoise_nl_means has been set to False.
Default value of mode parameter in skimage.transform.resize and skimage.transform.rescale has been set to reflect.
Default value of anti_aliasing parameter in skimage.transform.resize and skimage.transform.rescale has been set to True.
Removed the skimage.test function. This functionality can be achieved by calling pytest directly.
morphology.local_maxima now returns a boolean array
Bugfixes
Correct bright ridge detection for Frangi filter
skimage.morphology.local_maxima and skimage.morphology.local_minima no longer raise an error if any dimension of the image is smaller 3 and the keyword allow_borders was false.
skimage.morphology.local_maxima and skimage.morphology.local_minima will return a boolean array instead of an array of 0s and 1s if the parameter indices was false.
When compare_ssim is used with gaussian_weights set to True, the boundary crop used when computing the mean structural similarity will now exactly match the width of the Gaussian used. The Gaussian filter window is also now truncated at 3.5 rather than 4.0 standard deviations to exactly match the original publication on the SSIM. These changes should produce only a very small change in the computed SSIM value. There is no change to the existing behavior when gaussian_weights is False.
erroneous use of cython wrap around
Speed up block reduce by providing the appropriate parameters to numpy
Add urllib.request again
Repeat pixels in reflect mode when image has dimension 1
Improve Li thresholding
Version 0.21.2
Changelog
sklearn.decomposition
Fix Fixed a bug in cross_decomposition.CCA improving numerical stability when Y is close to zero.
sklearn.metrics
Fix Fixed a bug in metrics.pairwise.euclidean_distances where a part of the distance matrix was left un-instanciated for suffiently large float32 datasets (regression introduced in 0.21).
sklearn.preprocessing
Fix Fixed a bug in preprocessing.OneHotEncoder where the new drop parameter was not reflected in get_feature_names.
sklearn.utils.sparsefuncs
Fix Fixed a bug where min_max_axis would fail on 32-bit systems for certain large inputs. This affects preprocessing.MaxAbsScaler, preprocessing.normalize and preprocessing.LabelBinarizer.
Version 0.21.1
This is a bug-fix release to primarily resolve some packaging issues in version 0.21.0. It also includes minor documentation improvements and some bug fixes.
Changelog
sklearn.metrics
Fix Fixed a bug in metrics.pairwise_distances where it would raise AttributeError for boolean metrics when X had a boolean dtype and Y == None.
Fix Fixed two bugs in metrics.pairwise_distances when n_jobs > 1. First it used to return a distance matrix with same dtype as input, even for integer dtype. Then the diagonal was not zeros for euclidean metric when Y is X.
sklearn.neighbors
Fix Fixed a bug in neighbors.KernelDensity which could not be restored from a pickle if sample_weight had been used.
Version 0.21.0
Changed models
The following estimators and functions, when fit with the same data and parameters, may produce different models from the previous version. This often occurs due to changes in the modelling logic (bug fixes or enhancements), or in random sampling procedures.
discriminant_analysis.LinearDiscriminantAnalysis for multiclass classification. Fix
discriminant_analysis.LinearDiscriminantAnalysis with ‘eigen’ solver. Fix
linear_model.BayesianRidge Fix
Decision trees and derived ensembles when both max_depth and max_leaf_nodes are set. Fix
linear_model.LogisticRegression and linear_model.LogisticRegressionCV with ‘saga’ solver. Fix
ensemble.GradientBoostingClassifier Fix
sklearn.feature_extraction.text.HashingVectorizer, sklearn.feature_extraction.text.TfidfVectorizer, and sklearn.feature_extraction.text.CountVectorizer Fix
neural_network.MLPClassifier Fix
svm.SVC.decision_function and multiclass.OneVsOneClassifier.decision_function. Fix
linear_model.SGDClassifier and any derived classifiers. Fix
Any model using the linear_model.sag.sag_solver function with a 0 seed, including linear_model.LogisticRegression, linear_model.LogisticRegressionCV, linear_model.Ridge, and linear_model.RidgeCV with ‘sag’ solver. Fix
linear_model.RidgeCV when using generalized cross-validation with sparse inputs
Announcement: NetworkX 2.3
==========================
We're happy to announce the release of NetworkX 2.3!
NetworkX is a Python package for the creation, manipulation, and study of the
structure, dynamics, and functions of complex networks.
For more information, please visit our website <http://networkx.github.io/>_
and our gallery of examples
<https://networkx.github.io/documentation/latest/auto_examples/index.html>_.
Please send comments and questions to the networkx-discuss mailing list
<http://groups.google.com/group/networkx-discuss>_.
Highlights
----------
This release is the result of 6 months of work with over 92 pull requests by
30 contributors. Highlights include:
- Dropped support for Python 2. We are no longer supporting Python 2.7 and we will
start changing code to take advantage of Python 3 features we couldn't before.
- Added some Moral Graph analysis functions.
- Enable matplotlib drawing using curved arrows via connectionstyle parameter.
- Remove ticks and axes labels from matplotlib plots.
- Two new generators of Harary Graphs.
- Added Dual Barabasi-Albert model
- Added VoteRank algorithm
- Added Equitable coloring algorithms
- Added planar layout algorithms
- Les Miserables network example
- Javascript example update
Improvements
------------
- Change default colors to be color-blind friendly
- Many bug fixes and documentation improvements
- Speed up of simple_cycles
- Improvements for reading various formats like GML, GEXF, Graphml
- Allow subclassing to access node_attr_dict_factory
API Changes
-----------
- The G.fresh_copy() mechanism for creating an empty_graph of the same
type (introduced in v2.0) does not playing nicely with pickle and others.
So, we have removed the code that caused a need for that. Instead you
should use the more natural G.__class__() syntax to get an empty_graph
of the same type as G.
Deprecations
------------
- The Graph.fresh_copy() method should now use Graph.__class__()
- ReverseView class removed in favor of reverse_view() function.
PyWavelets 1.0.3 is functionally equivalent to the 1.0.2 release. It was made
to add the add an archive of the JOSS paper to the 1.0.x branch and serve as a
reference corresponding to the version of the software reviewed that was peer
reviewed.
PyWavelets 1.0.2 is a bug-fix and maintenance release with no new features
compared to 1.0.1.
PyWavelets 1.0.1 is a bug-fix release with no new features compared to 1.0.0.
We are very pleased to announce the release of PyWavelets 1.0. We view this
version number as a milestone in the project's now more than a decade long
history. It reflects that PyWavelets has stabilized over the past few years,
and is now a mature package which a lot of other important packages depend on.
A listing of those package won't be complete, but some we are aware of are:
- scikit-image <https://scikit-image.org>_ - image processing in Python
- imagehash <https://github.com/JohannesBuchner/imagehash>_ - perceptual image hashing
- pyradiomics <https://github.com/Radiomics/pyradiomics>_ - extraction of Radiomics features from 2D and 3D images and binary masks
- tomopy <https://github.com/tomopy/tomopy>_ - Tomographic Reconstruction in Python
- SpikeSort <https://github.com/btel/SpikeSort>_ - Spike sorting library implemented in Python/NumPy/PyTables
- ODL <https://github.com/odlgroup/odl>_ - operator discretization library
This release requires Python 2.7 or >=3.5 and NumPy 1.9.1 or greater.
The 1.0 release will be the last release supporting Python 2.7. It will be a
Long Term Support (LTS) release, meaning that we will backport critical bug
fixes to 1.0.x for as long as Python itself does so (i.e. until 1 Jan 2020).
Implementation of POSIX bc with GNU extensions
This bc is optimized for use by programmers. It includes several
extensions beyond the GNU extensions for that purpose.
Prepared in pkgsrc-wip by Gavin Howard.
PyMC3 3.7 (May 29 2019)
New features
Add data container class (Data) that wraps the theano SharedVariable class and let the model be aware of its inputs and outputs.
Add function set_data to update variables defined as Data.
Mixture now supports mixtures of multidimensional probability distributions, not just lists of 1D distributions.
GLM.from_formula and LinearComponent.from_formula can extract variables from the calling scope. Customizable via the new eval_env argument.
Added the distributions.shape_utils module with functions used to help broadcast samples drawn from distributions using the size keyword argument.
Used numpy.vectorize in distributions.distribution._compile_theano_function. This enables sample_prior_predictive and sample_posterior_predictive to ask for tuples of samples instead of just integers.
Maintenance
All occurances of sd as a parameter name have been renamed to sigma. sd will continue to function for backwards compatibility.
HamiltonianMC was ignoring certain arguments like target_accept, and not using the custom step size jitter function with expectation 1.
Made BrokenPipeError for parallel sampling more verbose on Windows.
Added the broadcast_distribution_samples function that helps broadcasting arrays of drawn samples, taking into account the requested size and the inferred distribution shape. This sometimes is needed by distributions that call several rvs separately within their random method, such as the ZeroInflatedPoisson.
The Wald, Kumaraswamy, LogNormal, Pareto, Cauchy, HalfCauchy, Weibull and ExGaussian distributions random method used a hidden _random function that was written with scalars in mind. This could potentially lead to artificial correlations between random draws. Added shape guards and broadcasting of the distribution samples to prevent this.
Added a fix to allow the imputation of single missing values of observed data, which previously would fail.
The draw_values function was too permissive with what could be grabbed from inside point, which lead to an error when sampling posterior predictives of variables that depended on shared variables that had changed their shape after pm.sample() had been called.
draw_values now adds the theano graph descendants of TensorConstant or SharedVariables to the named relationship nodes stack, only if these descendants are ObservedRV or MultiObservedRV instances.
Fixed bug in broadcast_distrution_samples, which did not handle correctly cases in which some samples did not have the size tuple prepended.
Changed MvNormal.random's usage of tensordot for Cholesky encoded covariances. This lead to wrong axis broadcasting and seemed to be the cause for issue 3343.
Fixed defect in Mixture.random when multidimensional mixtures were involved. The mixture component was not preserved across all the elements of the dimensions of the mixture. This meant that the correlations across elements within a given draw of the mixture were partly broken.
Restructured Mixture.random to allow better use of vectorized calls to comp_dists.random.
Added tests for mixtures of multidimensional distributions to the test suite.
Fixed incorrect usage of broadcast_distribution_samples in DiscreteWeibull.
Mixture's default dtype is now determined by theano.config.floatX.
dist_math.random_choice now handles nd-arrays of category probabilities, and also handles sizes that are not None. Also removed unused k kwarg from dist_math.random_choice.
Changed Categorical.mode to preserve all the dimensions of p except the last one, which encodes each category's probability.
Changed initialization of Categorical.p. p is now normalized to sum to 1 inside logp and random, but not during initialization. This could hide negative values supplied to p as mentioned in 2082.
Categorical now accepts elements of p equal to 0. logp will return -inf if there are values that index to the zero probability categories.
Add sigma, tau, and sd to signature of NormalMixture.
Set default lower and upper values of -inf and inf for pm.distributions.continuous.TruncatedNormal. This avoids errors caused by their previous values of None.
Converted all calls to pm.distributions.bound._ContinuousBounded and pm.distributions.bound._DiscreteBounded to use only and all positional arguments.
Restructured distributions.distribution.generate_samples to use the shape_utils module. This solves issues 3421 and 3147 by using the size aware broadcating functions in shape_utils.
Fixed the Multinomial.random and Multinomial.random_ methods to make them compatible with the new generate_samples function. In the process, a bug of the Multinomial.random_ shape handling was discovered and fixed.
Fixed a defect found in Bound.random where the point dictionary was passed to generate_samples as an arg instead of in not_broadcast_kwargs.
Fixed a defect found in Bound.random_ where total_size could end up as a float64 instead of being an integer if given size=tuple().
Fixed an issue in model_graph that caused construction of the graph of the model for rendering to hang: replaced a search over the powerset of the nodes with a breadth-first search over the nodes.
Removed variable annotations from model_graph but left type hints. This means that we support python>=3.5.4.
Default target_acceptfor HamiltonianMC is now 0.65, as suggested in Beskos et. al. 2010 and Neal 2001.
Fixed bug in draw_values that lead to intermittent errors in python3.5. This happened with some deterministic nodes that were drawn but not added to givens.
Deprecations
nuts_kwargs and step_kwargs have been deprecated in favor of using the standard kwargs to pass optional step method arguments.
SGFS and CSG have been removed. They have been moved to pymc3-experimental.
References to live_plot and corresponding notebooks have been removed.
Function approx_hessian was removed, due to numdifftools becoming incompatible with current scipy. The function was already optional, only available to a user who installed numdifftools separately, and not hit on any common codepaths.
Deprecated vars parameter of sample_posterior_predictive in favor of varnames.
References to live_plot and corresponding notebooks have been removed.
Deprecated vars parameters of sample_posterior_predictive and sample_prior_predictive in favor of var_names. At least for the latter, this is more accurate, since the vars parameter actually took names.
Whats New in 0.24.2
Fixed Regressions
Bug Fixes
Whats New in 0.24.1
Changing the sort parameter for Index set operations
Fixed Regressions
Bug Fixes
What’s New in 0.24.0
This is a major release from 0.23.4 and includes a number of API changes, new features, enhancements, and performance improvements along with a large number of bug fixes.
Highlights include:
* Optional Integer NA Support
* New APIs for accessing the array backing a Series or Index
* A new top-level method for creating arrays
* Store Interval and Period data in a Series or DataFrame
* Support for joining on two MultiIndexes
Wrappers 1.1.0 | Solver 1.1.0
- prevent attempting a dual optimize on a dummy row
- add dump and dumps methods to inspect the internal state of the
solver
- test on Python 3.7
- improvemnts to setup.py and tests
Version 0.9.13 Release Notes
New features:
Clearer warning message in fit reports when uncertainties should but cannot be estimated, including guesses of which Parameters to examine
SplitLorenztianModel and split_lorentzian function
HTML representations for Parameter, MinimizerResult, and Model so that they can be printed better with Jupyter
support parallelization for differential evolution
Bug fixes:
delay import of matplotlib (and so, the selection of its backend) as late as possible
fix for saving, loading, and reloading ModelResults
fix to leastsq to report the best-fit values, not the values tried last
fix synchronization of all parameter values on Model.guess()
improve deprecation warnings for outdated nan_policy keywords
fix for edge case in gformat()
Project managements:
using pre-commit framework to improve and enforce coding style
added code coverage report to github main page
updated docs, github templates, added several tests.
dropped support and testing for Python 3.4.
uncertainties allows calculations such as (2 +/- 0.1)*2 = 4 +/- 0.2 to be
performed transparently. Much more complex mathematical expressions involving
numbers with uncertainties can also be evaluated directly.
The uncertainties package takes the pain and complexity out of uncertainty
calculations.
Changes from 3.5.1 to 3.5.2
- Fixed compatibility with python 3.8: Fixed `Dictonary keys changed during
iteration` RuntimeError while moving/renameing a node.
Thanks to Christoph Gohlke for reporting and Miro Hroncok for help with
building PyTables for python 3.8alpha (cython compatibility).
- Fixed a bug in offset calculations producing floats instead of ints
affecting python 3.
SciPy 1.3.0 Release Notes
SciPy 1.3.0 is the culmination of 5 months of hard work. It contains
many new features, numerous bug-fixes, improved test coverage and better
documentation. There have been some API changes
in this release, which are documented below. All users are encouraged to
upgrade to this release, as there are a large number of bug-fixes and
optimizations. Before upgrading, we recommend that users check that
their own code does not use deprecated SciPy functionality (to do so,
run your code with python -Wd and check for DeprecationWarning s).
Our development attention will now shift to bug-fix releases on the
1.3.x branch, and on adding new features on the master branch.
This release requires Python 3.5+ and NumPy 1.13.3 or greater.
For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required.
Highlights of this release
- Three new stats functions, a rewrite of pearsonr, and an exact
computation of the Kolmogorov-Smirnov two-sample test
- A new Cython API for bounded scalar-function root-finders in scipy.optimize
- Substantial CSR and CSC sparse matrix indexing performance
improvements
- Added support for interpolation of rotations with continuous angular
rate and acceleration in RotationSpline
SciPy 1.2.0 Release Notes
SciPy 1.2.0 is the culmination of 6 months of hard work. It contains
many new features, numerous bug-fixes, improved test coverage and better
documentation. There have been a number of deprecations and API changes
in this release, which are documented below. All users are encouraged to
upgrade to this release, as there are a large number of bug-fixes and
optimizations. Before upgrading, we recommend that users check that
their own code does not use deprecated SciPy functionality (to do so,
run your code with python -Wd and check for DeprecationWarning s).
Our development attention will now shift to bug-fix releases on the
1.2.x branch, and on adding new features on the master branch.
This release requires Python 2.7 or 3.4+ and NumPy 1.8.2 or greater.
This will be the last SciPy release to support Python 2.7.
Consequently, the 1.2.x series will be a long term support (LTS)
release; we will backport bug fixes until 1 Jan 2020.
For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required.
Highlights of this release
- 1-D root finding improvements with a new solver, toms748, and a new
unified interface, root_scalar
- New dual_annealing optimization method that combines stochastic and
local deterministic searching
- A new optimization algorithm, shgo (simplicial homology
global optimization) for derivative free optimization problems
- A new category of quaternion-based transformations are available in
scipy.spatial.transform
1.16.4:
BUG: Some PyPy versions lack PyStructSequence_InitType2.
MAINT, DEP: Fix deprecated ``assertEquals()``
BUG: Fix structured_to_unstructured on single-field types (backport)
BLD: Make CI pass again with pytest 4.5
TST: Register markers in conftest.py.
BUG: Removes ValueError for empty kwargs in arraymultiter_new
BUG: Add TypeError to accepted exceptions in crackfortran.
BUG: Handle subarrays in descr_to_dtype
BUG: Protect generators from log(0.0)
BUG: Always return views from structured_to_unstructured when...
BUG: Catch stderr when checking compiler version
BUG: longdouble(int) does not work
BUG: distutils/system_info.py fix missing subprocess import
BUG,DEP: Fix writeable flag setting for arrays without base
MAINT: Prepare for the 1.16.4 release.
BUG: special case object arrays when printing rel-, abs-error
The build on Ubuntu 14.04 and 18.04 failed on undefined references to
libxls functions caused by having the -l at the beginning of the
argument list, injected into LDFLAGS, rather than at the end, where
LDLIBS ends up.
Upstream changes:
CHANGES IN R 3.6.0:
SIGNIFICANT USER-VISIBLE CHANGES:
* Serialization format version 3 becomes the default for
serialization and saving of the workspace (save(), serialize(),
saveRDS(), compiler::cmpfile()). Serialized data in format 3
cannot be read by versions of R prior to version 3.5.0.
Serialization format version 2 is still supported and can be
selected by version = 2 in the save/serialization functions. The
default can be changed back for the whole R session by setting
environment variables R_DEFAULT_SAVE_VERSION and
R_DEFAULT_SERIALIZE_VERSION to 2. For maximal
back-compatibility, files vignette.rds and partial.rdb generated
by R CMD build are in serialization format version 2, and resave
by default produces files in serialization format version 2
(unless the original is already in format version 3).
* The default method for generating from a discrete uniform
distribution (used in sample(), for instance) has been changed.
This addresses the fact, pointed out by Ottoboni and Stark, that
the previous method made sample() noticeably non-uniform on large
populations. See PR#17494 for a discussion. The previous method
can be requested using RNGkind() or RNGversion() if necessary for
reproduction of old results. Thanks to Duncan Murdoch for
contributing the patch and Gabe Becker for further assistance.
The output of RNGkind() has been changed to also return the
'kind' used by sample().
NEW FEATURES:
* Sys.setFileTime() has been vectorized so arguments path and time
of length greater than one are now supported.
* axis() gets new option gap.axis = NA for specifying a
multiplication factor for the minimal "gap" (distance) between
axis labels drawn. Its default is 1 for labels _parallel_ to the
axis, and 0.25 for perpendicular ones.
Perpendicular labels no longer overlap, fixing bug PR#17384.
* The default method of plot() gains new arguments xgap.axis = NA
and ygap.axis = NA to be passed to the x- and y- axis(..,
gap.axis=*) calls.
* removeSource() now works not only for functions but also for some
language objects.
* as.call(), rep.int(), rep_len() and nchar() dispatch internally.
* is(object, class2) looks for class2 in the calling namespace
after looking in the namespace of class(object).
* extendrange(.., f) with a length-2 f now extends separately to
the left and the right.
* lengths() dispatches internally to S4 methods.
* download.file() on Windows now uses URLdecode() to determine the
file extension, and uses binary transfer (mode = "wb") also for
file extension .rds.
The help page for download.file() now contains the same
information on all platforms.
* Setting C locale for collation _via_ environment variables LC_ALL
and LC_COLLATE and _via_ a call to Sys.setlocale() now takes
precedence over environment variable R_ICU_LOCALE.
* There is a new function, nullfile(), to give the file name of the
null system device (e.g., /dev/null) on the current platform.
* There are two new options, keep.parse.data and
keep.parse.data.pkgs, which control whether parse data are
included into sources when keep.source or keep.source.pkgs is
TRUE. By default, keep.parse.data.pkgs is now FALSE, which
changes previous behavior and significantly reduces space and
time overhead when sources are kept when installing packages.
* In rapply(x, ..), x can also be "list-like" and of length >=
2^{31}.
* trimws() gets new optional whitespace argument, allowing more
extensive definitions of "space", such as including Unicode
spaces (as wished in PR#17431).
* weighted.mean() no longer coerces the weights to a double/numeric
vector, since sum() now handles integer overflow. This makes
weighted.mean() more polymorphic and endomorphic, but be aware
that the results are no longer guaranteed to be a vector of type
double.
* When loading namespaces, S3 method registrations which overwrite
previous registrations are now noted by default (using
packageStartupMessage()).
* compiler::cmpfile() gains a version argument, for use when the
output file should be saved in serialization format 2.
* The axis labeling in the default method of pairs() may now be
toggled by new options horOdd and verOdd.
* (Not Windows nor macOS.) Package tcltk now supports an
environment variable R_DONT_USE_TK which if set disables Tk
initialization. This is intended for use to circumvent errors in
loading the package, e.g. with recent Linux running under an
address sanitizer.
* The numeric method of all.equal() gets optional arguments countEQ
and formatFUN. If countEQ is true, the mean error is more
sensible when many entries are *eq*ual.
* outer(x,y, FUN = "*") is more efficient using tcrossprod(u,v)
instead of u %*% t(v).
* vcov(<mlm>) is more efficient via new optional arguments in
summary.mlm().
* The default method of summary() gets an option to choose the
_kind_ of quantile()s to use; wish of PR#17438.
* Fitting multiple linear models _via_ lm() does work with _matrix_
offsets, as suggested in PR#17407.
* The new functions mem.maxVSize() and mem.maxMSize() allow the
maximal size of the vector heap and the maximal number of nodes
allowed in the current R process to be queried and set.
* news() gains support for NEWS.md files.
* An effort has been started to have our reference manuals, i.e.,
all help pages. show platform-independent information (rather
than Windows or Unix-alike specifics visible only on that
platform). Consequently, the Windows version of X11() / x11()
got identical formal arguments to the Unix one.
* sessionInfo()$running has been factored out in a new variable
osVersion.
* slice.index() now also works for multi-dimensional margins.
* untar() used with an external tar command assumes this supports
decompression including xz and automagically detecting the
compression type. This has been true of all mainstream
implementations since 2009 (for GNU tar, since version 1.22):
older implementations are still supported _via_ the new argument
support_old_tars whose default is controlled by environment
variable R_SUPPORT_OLD_TARS. (It looks like NetBSD and OpenBSD
have 'older' tar commands for this purpose.)
* The new function asplit() allow splitting an array or matrix by
its margins.
* New functions errorCondition() and warningCondition() provide a
convenient way to create structured error and warning objects.
.Deprecated() now signals a warning of class "deprecatedWarning",
and .Defunct() now signals an error of class "defunctError".
* Many 'package not found' errors are now signaled as errors of
class "packageNotFoundError".
* As an experimental feature, when loadNamespace() fails because
the requested package is not available the error is initially
signaled with a retry_loadNamespace restart available. This
allows a calling handler to try to install the package and
continue.
* S3method() directives in NAMESPACE can now also be used to
perform _delayed_ S3 method registration.
* Experimentally, setting environment variable
_R_CHECK_LENGTH_1_LOGIC2_ will lead to warnings (or errors if the
variable is set to a 'true' value) when && or || encounter and
use arguments of length more than one.
* Added "lines" and "chars" coordinate systems to grconvertX() and
grconvertY().
* getOption() is more efficient notably for the rare case when
called with two arguments, from several contributors in PR#17394.
* In .col(dim) and .row(dim), dim now may also be an integer-valued
"double".
* sQuote() and dQuote() get an explicit q argument with obvious
default instead of using getOption("fancyQuotes") implicitly and
unconditionally.
* unzip() can list archives with comments and with spaces in file
names even using an external unzip command.
* Command line completion has a new setting rc.settings(dots =
FALSE) to remove ... from the list of possible function
arguments.
* library() no longer checks packages with compiled code match
R.version$platform. loadNamespace() never has, and increasingly
the 'canonical name' does not reflect the important
characteristics of compiled code.
* The primitive functions drop() and unclass() now avoid
duplicating their data for atomic vectors that are large enough,
by returning ALTREP wrapper objects with adjusted attributes.
R-level assignments to change attributes will also use wrapper
objects to avoid duplicating data for larger atomic vectors. R
functions like structure() and unname() will therefore not
duplicate data in these settings. Generic vectors as produced by
list() are not yet covered by this optimization but may be in due
course.
* In formals(), envir becomes an optional argument instead of being
hardwired.
* Instead of signalling an error for an invalid S4 object x, str(x)
now gives a warning and subsequently still shows most parts of x,
e.g., when slots are missing.
* gamma(x) and lgamma(x) no longer warn when correctly returning
Inf or underflowing to zero. This helps maximum likelihood and
similar computations.
* convertColor() is now vectorized, so a lot faster for converting
many colours at once. The new argument vectorized to
colorConverter() ensures that non-vectorized colour converters
still work. (Thanks to Brodie Gaslam.)
* download.file() and url() get new argument headers for custom
HTTP headers, e.g., allowing to perform basic http
authentication, thanks to a patch contributed by G'abor Cs'ardi.
* File-based connection functions file(), gzfile(), bzfile() and
xzfile() now signal an error when used on a directory.
* For approx(), splinefun() _etc_, a new setting ties =
c("ordered", <fun>) allows skipping the sorting and still treat
ties.
* format(x) gives a more user friendly error message in the case
where no method is defined. A minimal method is provided in
format.default(x) when isS4(x) is true.
* which(x) now also works when x is a long vector, thanks to
Suharto Anggono's PR#17201. *NB*: this may return a double
result, breaking the previous guarantee of an integer result.
* seq.default() is more careful to return an integer (as opposed to
double) result when its arguments are large and/or classed
objects; see comment #9 of Suharto Anggono's PR#17497.
* The plot() method for lm and glm fits, plot.lm(), gains a new
option iter.smooth with a default of 0 for binomial fits, no
longer down-weighting when smoothing the residuals.
* zip() passes its list of files _via_ standard input to the
external command when too long for the command line (on some
platforms).
* data() gains an overwrite argument.
* t.test() now also returns the standard error (in list component
stderr).
* model.matrix(*, contrasts.arg = CC) now warns about invalid
contrasts.args.
* Performance of substr() and substring() has been improved.
* stopifnot() has been simplified thanks to Suharto Anggono's
proposals to become considerably faster for cheap expressions.
* The default 'user agent' has been changed when accessing http://
and https:// sites using libcurl. (A site was found which caused
libcurl to infinite-loop with the previous default.)
* sessionInfo() now also contains RNGkind() and prints it when it
differs from the default; based on a proposal and patch by Gabe
Becker in PR#17535. Also, RNGversion(getRversion()) works
directly.
* library() and require() now allow more control over handling
search path conflicts when packages are attached. The policy is
controlled by the new conflicts.policy option.
* barplot() gets a formula method, thanks to a patch proposal by
Arni Magnusson in PR#17521.
* pmax() and pmin(x) now also work for long vectors, thanks to
Suharto Anggono's PR#17533.
* bxp() now warns when omitting duplicated arguments.
* New hcl.colors() function to provide wide range of HCL-based
colour palettes with much better perceptual properties than the
existing RGB/HSV-based palettes like rainbow().
Also a new hcl.pals() function to list available palette names
for hcl.colors().
Contributed by Achim Zeileis.
* The default colours for image() and filled.contour() are now
based on hcl.colors().
* The palette-generating functions rainbow(), gray.colors(), etc.
get a new rev argument to facilitate reversing the order of
colors.
* New str2lang() and str2expression() as streamlined versions of
parse(text=., keep.source=FALSE) allow to abstract typical call
constructions, e.g., in formula manipulations. (Somewhat
experimental)
* Add update_PACKAGES() for incrementally updating a package
repository index, instead of rebuilding the index from scratch.
Thanks to Gabe Becker in PR#17544 for the patch, based on part of
his switchr package.
INSTALLATION on a UNIX-ALIKE:
* The options selected for the C++ compiler default to the C++11
standard if supported, otherwise to the C++98 standard.
* Visibility macros such as C_VISIBILITY can now be user-set
(including to empty), e.g. in config.site.
* Macro FCLIBS, which has sometimes been needed on Solaris, has
been renamed to FCLIBS_XTRA.
* Macro F77 is always set to the value of FC, so the latter should
be set to user-select the Fortran compiler for both fixed-form
and free-form Fortran. In particular, gfortran is now the first
choice for F77, not f95.
Macros FFLAGS and FCFLAGS remain distinct to allow for a compiler
which needs a flag to select free- or fixed-form Fortran (most
use the source-file extension to choose: .f is fixed-form and
.f90 and .f95 are free-form).
If only one of them is set, its value is used for both.
* The special-casing of CFLAGS, CXXFLAGS and FFLAGS for Intel
compilers on Linux has been removed: we do not have recent
experience but the generic defaults now chosen are the same as
those previously special-cased for x86_64.
If necessary, override the defaults on the configure command line
or in file config.site.
* Long-untested configure support for HP-UX and very old versions
of Linux has been removed.
* configure --with-blas (without specifying a value) includes
OpenBLAS in its search (before ATLAS and a generic BLAS). This
follows recent versions of the ax_blas autoconf macro.
* The configure macro MAKEINFO has been updated to TEXI2ANY.
* Support for make install-strip has been enhanced.
PACKAGE INSTALLATION:
* Source package installation is by default 'staged': the package
is installed into a temporary location under the final library
directory and moved into place once the installation is complete.
The benefit is that partially-installed packages are hidden from
other R sessions.
The overall default is set by environment variable
R_INSTALL_STAGED. R CMD INSTALL has new options --staged-install
and --no-staged-install, and packages can use the StagedInstall
field in their DESCRIPTION file to opt out. (That opt-out is a
temporary measure which may be withdrawn in future.)
Staged installation requires either --pkglock or --lock, one of
which is used by default.
* The interpretation of source code with extension .f is changing.
Previously this denoted FORTRAN 77 code, but current compilers no
longer have a FORTRAN 77 mode and interpret it as 'fixed-form'
Fortran 90 (or later where supported) code. Extensions .f90 and
.f95 continue to indicate 'free-form' Fortran code.
Legal FORTRAN 77 code is also legal fixed-form Fortran 9x;
however this change legitimizes the use of later features, in
particular to replace features marked 'obsolescent' in Fortran 90
and 'deleted' in Fortran 2018 which gfortran 8.x and later warn
about.
* Packages containing files in the src directory with extensions
.f90 or .f95 are now linked using the C or C++ compiler rather
than the Fortran 9x compiler. This is consistent with fixed-form
Fortran code and allows mixing of C++ and free-form Fortran on
most platforms.
Consequentially, a package which includes free-form Fortran 9x
code which uses OpenMP should include SHLIB_OPENMP_CFLAGS (or the
CXXFLAGS version if they also include C++ code) in PKG_LIBS
rather than SHLIB_OPENMP_FCFLAGS - fortunately on almost all
current platforms they are the same flag.
* Macro PKG_FFLAGS will be used for the compilation of both
fixed-form and free-form Fortran code unless PKG_FCFLAGS is also
set (in src/Makevars or src/Makevars.win).
* The make macro F_VISIBILITY is now preferred for both fixed-form
and free-form Fortran, for use in src/Makevars and similar.
* R CMD INSTALL gains a new option --strip which (where supported)
strips installed shared object(s): this can also be achieved by
setting the environment variable _R_SHLIB_STRIP_ to a true value.
The new option --strip-lib attempts stripping of static and
shared libraries installed under lib.
These are most useful on platforms using GNU binutils (such as
Linux) and compiling with -g flags.
* There is more support for installing UTF-8-encoded packages in a
strict Latin-1 locale (and probably for other Latin locales):
non-ASCII comments in R code (and NAMESPACE files) are worked
around better.
UTILITIES:
* R CMD check now optionally checks makefiles for correct and
portable use of the SHLIB_OPENMP_*FLAGS macros.
* R CMD check now evaluates \Sexpr{} expressions (including those
in macros) before checking the contents of Rd files and so
detects issues both in evaluating the expressions and in the
expanded contents.
* R CMD check now lists missing packages separated by commas and
with regular quotes such as to be useful as argument in calling
install.packages(c(..)); from a suggestion by Marcel Ramos.
* tools::Rd2latex() now uses UTF-8 as its default output encoding.
* R CMD check now checks line endings of files with extension .hpp
and those under inst/include. The check now includes that a
non-empty file is terminated with a newline.
R CMD build will correct line endings in such files.
* R CMD check now tries re-building all vignettes rather than
stopping at the first error: whilst doing so it adds 'bookmarks'
to the log. By default (see the 'R Internals' manual) it
re-builds each vignette in a separate process.
It now checks for duplicated vignette titles (also known as
'index entries'): they are used as hyperlinks on CRAN package
pages and so do need to be unique.
* R CMD check has more comprehensive checks on the data directory
and the functioning of data() in a package.
* R CMD check now checks autoconf-generated configure files have
their corresponding source files, including optionally attempting
to regenerate them on platforms with autoreconf.
* R CMD build has a new option --compression to select the
compression used for the tarball.
* R CMD build now removes src/*.mod files on all platforms.
C-LEVEL FACILITIES:
* New pointer protection C functions R_PreserveInMSet and
R_ReleaseFromMSet have been introduced to replace UNPROTECT_PTR,
which is not safe to mix with UNPROTECT (and with
PROTECT_WITH_INDEX). Intended for use in parsers only.
* NAMEDMAX has been raised to 7 to allow further protection of
intermediate results from (usually ill-advised) assignments in
arguments to BUILTIN functions. Properly written package code
should not be affected.
* R_unif_index is now considered to be part of the C API.
* R_GetCurrentEnv() allows C code to retrieve the current
environment.
DEPRECATED AND DEFUNCT:
* Argument compressed of untar() is deprecated - it is only used
for external tar commands which increasingly for extraction
auto-detect compression and ignore their zjJ flags.
* var(f) and hence sd(f) now give an error for factor arguments;
they gave a deprecation warning since R 3.2.3, PR#16564.
* Package tools' vignetteDepends() has been deprecated (it called a
function deprecated since Feb 2016), being partly replaced by
newly exported vignetteInfo().
* The f77_f2c script has been removed: it no longer sufficed to
compile the .f files in R.
* The deprecated legacy support of make macros such as CXX1X has
been removed: use the CXX11 forms instead.
* Make macro F77_VISIBILITY is deprecated in favour of
F_VISIBILITY.
* Make macros F77, FCPIFCPLAGS and SHLIB_OPENMP_FCFLAGS are
deprecated in favour of FC, FPICFLAGS and SHLIB_OPENMP_FFLAGS
respectively.
* $.data.frame had become an expensive version of the default
method, so has been removed. (Thanks to Radford Neal for picking
this up and to Duncan Murdoch for providing a patch.)
BUG FIXES:
* replayPlot(r) now also works in the same R session when r has
been "reproduced" from serialization, typically after saving to
and reading from an RDS file.
* substr() and substring() now signal an error when the input is
invalid UTF-8.
* file.copy() now works also when its argument to is of length
greater than one.
* mantelhaen.test() no longer suffers from integer overflow in
largish cases, thanks to Ben Bolker's PR#17383.
* Calling setGeneric("foo") in a package no longer fails when the
enclosing environment of the implicit generic foo() is
.GlobalEnv.
* untar(file("<some>.tar.gz"), *) now gives a better error message,
suggesting to use gzfile() instead.
* Method dispatch uses more relevant environments when looking up
class definitions.
* The documentation for identify() incorrectly claimed that the
indices of identified points were returned in the order that the
points were selected. identify() now has a new argument order to
allow the return value to include the order in which points were
identified; the documentation has been updated. Reported by
Richard Rowe and Samuel Granjeaud.
* order(...., decreasing=c(TRUE, FALSE)) could fail in some cases.
Reported from StackOverflow via Karl Nordstr"om.
* User macros in Rd files now accept empty and multi-line
arguments.
* Changes in print.*(), thanks to Lionel Henry's patches in
PR#17398:
* Printing lists, pairlists or attributes containing calls with
S3 class no longer evaluate those.
* Printing S4 objects within lists and pairlists dispatches
with show() rather than print(), as with auto-printing.
* The indexing tags (names or [[<n>]]) of recursive data
structures are now printed correctly in complex cases.
* Arguments supplied to print() are now properly forwarded to
methods when printing lists, pairlists or attributes
containing S3 objects.
* The print parameters are now preserved when printing S3
objects or deparsing symbols and calls. Previously, printing
lists containing S3 objects or expressions would reset these
parameters.
* Printing lists, pairlists or attributes containing functions
now uses srcref attributes if present.
* Calling install.packages() with a length zero pkgs argument now
is a no-op (PR#17422).
* unlist(x) now returns a correct factor when x is a nested list
with factor leaves, fixing PR#12572 and PR#17419.
* The documentation help(family) gives more details about the aic
component, thanks to Ben Bolker's prompting.
* The documentation for attributes and `attributes<-` now gives x
as name of the first and main argument which the implementation
has been requiring, fixing PR#17434. For consistency, the first
argument name is also changed from obj to x for
`mostattributes<-`.
* strwidth() now uses par("font") as default font face (PR#17352).
* plot(<table>, log="x") no longer warns about log.
* The print() method for "htest" objects now formats the test
statistic and parameter directly and hence no longer rounds to
units _before_ the decimal point. Consequently, printing of
t.test() results with a small number of digits now shows
non-large df's to the full precision (PR#17444).
* kruskal.test() and fligner.test() no longer erroneously insist on
numeric g group arguments (PR#16719).
* Printing a news db via the browser now does a much better job
(PR#17433).
* print.aov() missed column names in the multivariate case due to
misspelling (reported by Chris Andrews).
* axis() now creates valid at locations also for small subnormal
number ranges in log scale plots.
* format.POSIXlt() now also recycles the zone and gmtoff list
components to full length when needed, and its internal C code
detects have_zone in more cases. In some cases, this changes its
output to become compatible with format.POSIXct().
* On Windows, detectCores() in package parallel now detects
processors in all processor groups, not just the group R is
running in (impacts particularly systems with more than 64
logical processors). Reported by Arunkumar Srinivasan.
* On Windows, socketSelect() would hang with more than 64 sockets,
and hence parallel::clusterApplyLB() would hang with more than 64
workers. Reported by Arunkumar Srinivasan.
* as(1L, "double") now does coerce (PR#17457).
* lm.influence(), influence.measures(), rstudent() etc now work
(more) correctly for multivariate models ("mlm"), thanks to
(anonymous) stackoverflow remarks.
* sample.int(2.9, *, replace=TRUE) again behaves as documented and
as in R < 3.0.0, namely identically to sample.int(2, ..).
* Fixes to convertColor() for chromatic adaptation; thanks to
Brodie Gaslam PR#17473.
* Using \Sexpr[stage=install]{..} to create an Rd section no longer
gives a warning in R CMD check; problem originally posted by
G'abor Cs'ardi, then reported as PR#17479 with a partial patch by
Duncan Murdoch.
* Parse data now include a special node for equal assignment.
* split.default() no longer relies on [[<-(), so it behaves as
expected when splitting an object by a factor with the empty
string as one of its levels. Thanks to Brad Friedman for the
report.
* Line numbers in messages about .Rd files are now more reliable,
thanks to a patch from Duncan Murdoch.
* In the numeric method for all.equal(), a numeric scale argument
is now checked to be positive and allowed to be of length > 1.
(The latter worked originally and with a warning in recent
years).
* Deferred string conversions now record the OutDec option setting
when not equal to the default. Reported by Michael Sannella.
* When y is numeric and f a factor, plot(y ~ f) nicely uses "y" and
"f" as y- and x-labels. The more direct boxplot(y ~ f) now does
too. The new argument ann = FALSE may be used to suppress these.
* Subassignment to no/empty rows of a data frame is more consistent
and typically a no-op in all cases instead of sometimes an error;
part of Emil Bode's PR#17483.
* Calls like formatC(*, zero.print = "< 0.001") no longer give an
error and are further improved via new optional argument
replace.zero. Reported by David Hugh-Jones.
* methods::formalArgs("<fn>") now finds the same function as
formals("<fn>"), fixing Emil Bode's PR#17499.
* The methods package better handles duplicated class names across
packages.
* The default method of seq() now avoids integer overflow, thanks
to the report and "cumsum" patch of Suharto Anggono's PR#17497.
* sub() no longer loses encodings for non-ASCII replacements
(PR#17509).
* Fix for rotated raster image on X11 device. (Partial fix for
PR#17148; thanks to Mikko Korpela).
* formula(model.frame(frml, ..)) now returns frml in all cases,
thanks to Bill Dunlap. The previous behavior is available as
DF2formula(<model.frame>).
* ar.ols() also returns scalar var.pred in univariate case
(PR#17517).
* normalizePath() now treats NA path as non-existent and normalizes
it to NA. file.access() treats NA file name as non-existent.
file.edit() and connection functions such as file() now treat NA
file names as errors.
* The internal regularize.values() auxiliary of approx(),
splinefun() etc now warns again when there are ties and the
caller did not specify ties. Further, it no longer duplicates x
and y unnecessarily when x is already sorted (PR#17515).
* strtoi("", base) now gives NA on all platforms, following its
documentation. Reported by Michael Chirico.
* In the definition of an S4 class, prototype elements are checked
against the slots of the class, with giving a prototype for an
undefined slot now being an error. (Reported by Bill Dunlap.)
* From setClassUnion(), if environment variable
_R_METHODS_SHOW_CHECKSUBCLASSES is set to true, the internal
.checkSubclasses() utility prints debugging info to see where it
is used.
* max.col(m) with an m of zero columns now returns integer NA
(instead of 1).
* axTicks() no longer returns small "almost zero" numbers (in
exponential format) instead of zero, fixing Ilario Gelmetti's
PR#17534.
* isSymmetric(matrix(0, dimnames=list("A","b"))) is FALSE again, as
always documented.
* The cairo_pdf graphics device (and other Cairo-based devices) now
clip correctly to the right and bottom border.
There was an off-by-one-pixel bug, reported by Lee Kelvin.
* as.roman(3) <= 2:4 and all other comparisons now work, as do
group "Summary" function calls such as max(as.roman(sample(20)))
and as.roman(NA). (Partly reported by Bill Dunlap in PR#17542.)
* reformulate("x", response = "sin(y)") no longer produces extra
back quotes, PR#17359, and gains new optional argument env.
* When reading console input from stdin with re-encoding (R
--encoding=enc < input) the code on a Unix-alike now ensures that
each converted input line is terminated with a newline even if
re-encoding fails.
* as.matrix.data.frame() now produces better strings from logicals,
thanks to PR#17548 from Gabe Becker.
* The S4 generic signature of rowSums(), rowMeans(), colSums() and
colMeans() is restricted to "x".
* match(x, tab) now works for long _character_ vectors x, thanks to
PR#17552 by Andreas Kersting.
* Class unions are unloaded when their namespace is unloaded
(PR#17531, adapted from a patch by Brodie Gaslam).
* selectMethod() is robust to ANY-truncation of method signatures
(thanks to Herve Pages for the report).
This package (double-conversion) provides binary-decimal and
decimal-binary routines for IEEE doubles.
The library consists of efficient conversion routines that have been
extracted from the V8 JavaScript engine. The code has been refactored
and improved so that it can be used more easily in other projects.
Version 0.44.0
IMPORTANT: In this release a few significant deprecations (and some less
significant ones) are being made, users are encouraged to read the related
documentation.
General enhancements in this release include:
- Numba is backed by LLVM 8 on all platforms apart from ppc64le, which, due to
bugs, remains on the LLVM 7.x series.
- Numba's dictionary support now includes type inference for keys and values.
- The .view() method now works for NumPy scalar types.
- Newly supported NumPy functions added: np.delete, np.nanquantile, np.quantile,
np.repeat, np.shape.
In addition considerable effort has been made to fix some long standing bugs and
a large number of other bugs, the "Fixes" section is very large this time!
Enhancements from user contributed PRs (with thanks!):
- Max Bolingbroke added support for the selective use of fastmath flags in
3847.
- Rob Ennis made min() and max() work on iterables in 3820 and added
np.quantile and np.nanquantile in 3899.
- Sergey Shalnov added numerous unicode string related features, zfill in 3978,
ljust in 4001, rjust and center in 4044 and strip, lstrip and rstrip in
4048.
- Guilherme Leobas added support for np.delete in 3890
- Christoph Deil exposed the Numba CLI via python -m numba in 4066 and made
numerous documentation fixes.
- Leo Schwarz wrote the bulk of the code for jitclass default constructor
arguments in 3852.
- Nick White enhanced the CUDA backend to use min/max PTX instructions where
possible in 4054.
- Lucio Fernandez-Arjona implemented the unicode string __mul__ function in
3952.
- Dimitri Vorona wrote the bulk of the code to implement getitem and setitem for
jitclass in 3861.
General Enhancements:
* Min max on iterables
* Unicode type iteration
* Allow fine-grained control of fastmath flags to partially address 2923
* Add support for np.delete
* Support for np.quantile and np.nanquantile
* Fix 3457 :: Implements np.repeat
* Add .view() method for NumPy scalars
* Update icc_rt clone recipe.
* __mul__ for strings, initial implementation and tests
* Type-inferred dictionary
* Create a view for string slicing to avoid extra allocations
* zfill operation implementation
* ljust operation implementation
* Support dict() and {}
* Support for llvm 8
* Make type.Optional str more representative
* Deprecation warnings
* rjust and center operations implementation
* strip, lstrip and rstrip operations implementation
* Expose numba CLI via python -m numba
* Impl np.shape and support function for asarray.
* Deprecate the use of iternext_impl without RefType
CUDA Enhancements/Fixes:
* Adds .nbytes property to CUDA device array objects.
* Add .inspect_ptx() to cuda device function
* CUDA: Use min/max PTX Instructions
* Update env-vars for CUDA libraries lookup
Documentation Updates:
* Code repository map
* adding Joris' Fosdem 2019 presentation
* order talks on applications of Numba by date
* fix two small typos in vectorize docs
* Fixup jitclass docs
* mention preprint repo in FAQ. Fixes 3981
* Correct runtests command in contributing.rst
* fix typo
* Ambiguous Documentation fix for guvectorize.
* Remove remaining mentions of autojit in docs
* Fix annotate example in docstring
* Add FAQ entry explaining Numba project name
* Add Documentation for atomicity of typed.Dict
* Remove info about CUDA ENVVAR potential replacement
Fixes:
* Resolves issue 3528. Adds support for slices when not using parallel=True.
* Remove dels for known dead vars.
* Fix mutable flag transmission in .astype
* Fix some minor issues in the C source.
* Correct boolean reinterpretation of data
* Comments out the appveyor badge
* fixes flake8 after merge
* Add assert to ir.py to help enforce correct structuring
* fix preparfor dtype transform for datetime64
* Prevent mutation of objmode fallback IR.
* Updates for llvmlite 0.29
* Use safe_load from pyyaml.
* Add tolerance to network errors by permitting conda to retry
* Fix casting in namedtuple ctor.
* Fix array inliner for multiple array definition.
* Cherrypick 3903 to main
* Raise better error if unsupported jump opcode found.
* Apply flake8 to the numpy related files
* Silence DeprecationWarning
* Better error message for unknown opcode
* Fix typing of ufuncs in parfor conversion
* Return variable renaming dict from inline_closurecall
* Fix bug in alignment computation of Record.make_c_struct
* Fix error with pickling unicode
* Unicode split algo versioning
* Add handler for unknown locale to numba -s
* Permit Optionals in ufunc machinery
* Remove assert in type inference causing poor error message.
* add is_ascii flag to UnicodeType
* Prevent zero division error in np.linalg.cond
* Resolves 4007.
* Add a more specific error message for invalid write to a global.
* Fix handling of titles in record dtype
* Do a check if a call is const before saying that an object is multiply defined.
* Fix issue 4020. Turn off no_cpython_wrapper flag when compiling for…
* [WIP] Fixing wrong dtype of array inside reflected list 4028
* Change IPython cache dir name to numba_cache
* Delete examples/notebooks/LinearRegr.py
* Catch writes to global typed.Dict and raise.
* Check tuple length
* Fix missing incref on optional return None
* Make the warnings fixer flush work for warning comparing on type.
* Fix function definition finding logic for commented def
* Fix alignment check on 32-bit.
* Use PEP 508 compliant env markers for install deps