Skip to content

v4.0.0

Compare
Choose a tag to compare
@github-actions github-actions released this 16 May 07:20
· 36 commits to master since this release
d91b01a

Compat v4.0.0

Diff since v3.43.0

Closed issues:

  • too many dependencies (#764)

Merged pull requests:

Instructions for supporting Compat 4.x

Change Compat = 3.x to Compat = 3.x, 4 in your Project.toml file, and see if everything
still works. In most cases, this is all that is needed. Please do not remove support for 3.x
unless you need a feature that is not present in 3.x, as it will make your package
incompatible with packages that do not support 4.x. Note that adding support for Compat 4.x
does not drop compatibility with Julia 1.0.

For a complete list of breaking changes in 4.0.0 and how to fix them, see below:

Removed aliases

Many deprecated aliases have been removed.

Replace Compat.x with Base.x for the following symbols:

invokelatest
MathConstants
Fix2
Sys
IteratorSize
IteratorEltype
notnothing
typename

Replace Compat.x with LinearAlgebra.x for the following symbols (you will also need to
add import LinearAlgebra if you don't already have it):

tr
opnorm
norm
dot
qr
rmul!

Other deprecated bindings that were removed include
Compat.(⋅) which should be replaced with LinearAlgebra.dot
Compat.AbstractDateTime which should be replaced with Dates.AbstractDateTime
Compat.isabstract which should be replaced with isabstracttype

Stdlibs

If you used Compat.Stdlib you should now import Stdlib and then use Stdlib.
This change is the primary reason for releasing 4.0.0, as it allows folks to depend on
Compat without bringing in every standard library.

Other functions

Compat.macros_have_sourceloc was previously defined as true
Compat.enable_debug(x::Bool) was previously defined as the identity function (with no side effects).
You should be able to safely remove all occurrences of either of these functions from your code.

Compat.parameter_upper_bound got removed in Compat v4.0. If you still need it, you can inline it as

Base.@pure function parameter_upper_bound(t::UnionAll, idx)
    return Base.rewrap_unionall((Base.unwrap_unionall(t)::DataType).parameters[idx], t)
end

or rewrite your code to use static parameters in dispatch.