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...