@@ -396,17 +396,22 @@ Library improvements
396396 `map(uppercase ∘ hex, 250:255)` is now equivalent to
397397 `map(x -> uppercase(hex(x)), 250:255)` ([#17155]).
398398
399+ * `enumerate` now supports the two-argument form `enumerate(::IndexStyle, iterable)`.
400+ This form allows specification of the returned indices' style. For example,
401+ `enumerate(IndexLinear, iterable)` yields linear indices and
402+ `enumerate(IndexCartesian, iterable)` yields cartesian indices ([#16378]).
403+
399404Compiler/Runtime improvements
400405-----------------------------
401406
402407 * `ccall` is now implemented as a macro,
403- removing the need for special code-generator support for Intrinsics.
408+ removing the need for special code-generator support for ` Intrinsics` ([#18754]) .
404409
405410 * `ccall` gained limited support for a `llvmcall` calling-convention.
406- This can replace many uses of `llvmcall` with a simpler, shorter declaration.
411+ This can replace many uses of `llvmcall` with a simpler, shorter declaration ([#18754]) .
407412
408- * All Intrinsics are now Builtin functions instead and have proper error checking
409- and fall-back static compilation support.
413+ * All ` Intrinsics` are now ` Builtin` functions instead and have proper error checking
414+ and fall-back static compilation support ([#18754]) .
410415
411416Deprecated or removed
412417---------------------
@@ -436,7 +441,7 @@ Deprecated or removed
436441 for example `(+)(J::UniformScaling, x::Number)`, have been deprecated in favor of
437442 unambiguous, explicit equivalents, for example `J.λ + x` ([#17607]).
438443
439- * `num` and `den` have been deprecated in favor of `numerator` and `denominator` respectively ([#19233]).
444+ * `num` and `den` have been deprecated in favor of `numerator` and `denominator` respectively ([#19233],[#19246] ).
440445
441446 * `delete!(ENV::EnvHash, k::AbstractString, def)` has been deprecated in favor of
442447 `pop!(ENV, k, def)`. Be aware that `pop!` returns `k` or `def`, whereas `delete!`
@@ -457,12 +462,12 @@ Deprecated or removed
457462 including step specification, for example `Dates.Hour(1):Dates.Hour(1):Dates.Hour(2)`
458463 ([#19920]).
459464
460- * `cummin` and `cummax` have been deprecated in favor of `accumulate`.
465+ * `cummin` and `cummax` have been deprecated in favor of `accumulate` ([#18931]) .
461466
462467 * The `Array` constructor syntax `Array(T, dims...)` has been deprecated
463468 in favor of the forms `Array{T,N}(dims...)` (where `N` is known, or
464469 particularly `Vector{T}(dims...)` for `N = 1` and `Matrix{T}(dims...)` for `N = 2`),
465- and `Array{T}(dims...)` (where `N` is not known) ([#19989]).
470+ and `Array{T}(dims...)` (where `N` is not known). Likewise for `SharedArray`s ([#19989]).
466471
467472 * `sumabs` and `sumabs2` have been deprecated in favor of `sum(abs, x)` and `sum(abs2, x)`, respectively.
468473 `maxabs` and `minabs` have similarly been deprecated in favor of `maximum(abs, x)` and `minimum(abs, x)`.
@@ -493,21 +498,37 @@ Deprecated or removed
493498 For example, `isnumber("123")` should now be expressed `all(isnumber, "123")`
494499 ([#20342]).
495500
501+ * A few names related to indexing traits have been changed: `LinearIndexing` and
502+ `linearindexing` have been deprecated in favor of `IndexStyle`. `LinearFast` has
503+ been deprecated in favor of `IndexLinear`, and `LinearSlow` has been deprecated in
504+ favor of `IndexCartesian` ([#16378]).
505+
496506 * The two-argument forms of `map` (`map!(f, A)`) and `asyncmap!` (`asyncmap!(f, A)`)
497507 have been deprecated in anticipation of future semantic changes ([#19721]).
498508
509+ * `unsafe_wrap(String, ...)` has been deprecated in favor of `unsafe_string` ([#19449]).
510+
499511 * `zeros` and `ones` methods accepting an element type as the first argument and an
500512 array as the second argument, for example `zeros(Float64, [1, 2, 3])`, have been
501513 deprecated in favor of equivalent methods with the second argument instead the
502514 size of the array, for example `zeros(Float64, size([1, 2, 3]))` ([#21183]).
503515
516+ * `Base.promote_eltype_op` has been deprecated ([#19669], [#19814], [#19937]).
517+
504518 * `isimag` has been deprecated ([#19949]).
505519
506520 * The tuple-of-types form of `invoke`, `invoke(f, (types...), ...)`, has been deprecated
507521 in favor of the tuple-type form `invoke(f, Tuple{types...}, ...)` ([#18444]).
508522
523+ * `Base._promote_array_type` has been deprecated ([#19766]).
524+
509525 * `broadcast_zpreserving` has been deprecated ([#19533], [#19720]).
510526
527+ * Methods allowing indexing of tuples by `AbstractArray`s with more than one dimension
528+ have been deprecated. (Indexing a tuple by such a higher-dimensional `AbstractArray`
529+ should yield a tuple with more than one dimension, but tuples are one-dimensional.)
530+ ([#19737]).
531+
511532 * `@test_approx_eq a b` has been deprecated in favor of `@test a ≈ b` (or,
512533 equivalently, `@test ≈(a, b)` or `@test isapprox(a, b)`).
513534 `@test_approx_eq_eps` has been deprecated in favor of new `@test` syntax:
@@ -516,19 +537,40 @@ Deprecated or removed
516537 `@test a ≈ b atol=c` in place of `@test ≈(a, b, atol=c)` (and hence
517538 `@test_approx_eq_eps a b c`) ([#19901]).
518539
540+ * `takebuf_array` has been deprecated in favor of `take!`, and `takebuf_string(x)`
541+ has been deprecated in favor of `String(take!(x))` ([#19088]).
542+
519543 * `convert` methods from `Diagonal` and `Bidiagonal` to subtypes of
520544 `AbstractTriangular` have been deprecated ([#17723]).
521545
546+ * `Base.LinAlg.arithtype` has been deprecated. If you were using `arithtype` within a
547+ `promote_op` call, instead use `promote_op(Base.LinAlg.matprod, Ts...)`. Otherwise,
548+ consider defining equivalent functionality locally ([#18218]).
549+
522550 * Special characters (`#{}()[]<>|&*?~;`) should now be quoted in commands. For example,
523551 ``` `export FOO=1\;` ``` should replace ``` `export FOO=1;` ``` and
524552 ``` `cd $dir '&&' $thingie` ``` should replace ``` `cd $dir && $thingie` ``` ([#19786]).
525553
554+ * Zero-argument `Channel` constructors (`Channel()`, `Channel{T}()`) have been deprecated
555+ in favor of equivalents accepting an explicit `Channel` size
556+ (`Channel(2)`, `Channel{T}(2)`) ([#18832]).
557+
526558 * The zero-argument constructor `MersenneTwister()` has been
527559 deprecated in favor of the explicit `MersenneTwister(0)` ([#16984]).
528560
561+ * `Base.promote_type(op::Type, Ts::Type...)` has been removed as part of an overhaul
562+ of `broadcast`'s promotion mechanism. If you need the functionality of that
563+ `Base.promote_type` method, consider defining it locally via
564+ `Core.Inference.return_type(op, Tuple{Ts...})` ([#18642]).
565+
529566 * `bitbroadcast` has been deprecated in favor of `broadcast`, which now produces a
530567 `BitArray` instead of `Array{Bool}` for functions yielding a boolean result ([#19771]).
531568
569+ * To complete the deprecation of histogram-related functions, `midpoints` has been
570+ deprecated. Instead use the
571+ [StatsBase.jl package](https://github.com/JuliaStats/StatsBase.jl)'s
572+ `midpoints` function ([#20058]).
573+
532574Command-line option changes
533575---------------------------
534576
@@ -550,6 +592,7 @@ Command-line option changes
550592[#12563]: https://github.com/JuliaLang/julia/issues/12563
551593[#15850]: https://github.com/JuliaLang/julia/issues/15850
552594[#16213]: https://github.com/JuliaLang/julia/issues/16213
595+ [#16378]: https://github.com/JuliaLang/julia/issues/16378
553596[#16961]: https://github.com/JuliaLang/julia/issues/16961
554597[#16984]: https://github.com/JuliaLang/julia/issues/16984
555598[#16986]: https://github.com/JuliaLang/julia/issues/16986
@@ -568,6 +611,7 @@ Command-line option changes
568611[#18012]: https://github.com/JuliaLang/julia/issues/18012
569612[#18050]: https://github.com/JuliaLang/julia/issues/18050
570613[#18159]: https://github.com/JuliaLang/julia/issues/18159
614+ [#18218]: https://github.com/JuliaLang/julia/issues/18218
571615[#18251]: https://github.com/JuliaLang/julia/issues/18251
572616[#18330]: https://github.com/JuliaLang/julia/issues/18330
573617[#18339]: https://github.com/JuliaLang/julia/issues/18339
@@ -581,19 +625,24 @@ Command-line option changes
581625[#18473]: https://github.com/JuliaLang/julia/issues/18473
582626[#18558]: https://github.com/JuliaLang/julia/issues/18558
583627[#18628]: https://github.com/JuliaLang/julia/issues/18628
628+ [#18642]: https://github.com/JuliaLang/julia/issues/18642
584629[#18644]: https://github.com/JuliaLang/julia/issues/18644
585630[#18660]: https://github.com/JuliaLang/julia/issues/18660
586631[#18690]: https://github.com/JuliaLang/julia/issues/18690
632+ [#18754]: https://github.com/JuliaLang/julia/issues/18754
587633[#18777]: https://github.com/JuliaLang/julia/issues/18777
634+ [#18832]: https://github.com/JuliaLang/julia/issues/18832
588635[#18839]: https://github.com/JuliaLang/julia/issues/18839
589636[#18891]: https://github.com/JuliaLang/julia/issues/18891
590637[#18931]: https://github.com/JuliaLang/julia/issues/18931
591638[#18965]: https://github.com/JuliaLang/julia/issues/18965
592639[#18977]: https://github.com/JuliaLang/julia/issues/18977
593640[#19018]: https://github.com/JuliaLang/julia/issues/19018
641+ [#19088]: https://github.com/JuliaLang/julia/issues/19088
594642[#19157]: https://github.com/JuliaLang/julia/issues/19157
595643[#19233]: https://github.com/JuliaLang/julia/issues/19233
596644[#19239]: https://github.com/JuliaLang/julia/issues/19239
645+ [#19246]: https://github.com/JuliaLang/julia/issues/19246
597646[#19259]: https://github.com/JuliaLang/julia/issues/19259
598647[#19288]: https://github.com/JuliaLang/julia/issues/19288
599648[#19305]: https://github.com/JuliaLang/julia/issues/19305
@@ -610,6 +659,7 @@ Command-line option changes
610659[#19598]: https://github.com/JuliaLang/julia/issues/19598
611660[#19635]: https://github.com/JuliaLang/julia/issues/19635
612661[#19636]: https://github.com/JuliaLang/julia/issues/19636
662+ [#19669]: https://github.com/JuliaLang/julia/issues/19669
613663[#19670]: https://github.com/JuliaLang/julia/issues/19670
614664[#19677]: https://github.com/JuliaLang/julia/issues/19677
615665[#19680]: https://github.com/JuliaLang/julia/issues/19680
@@ -621,7 +671,9 @@ Command-line option changes
621671[#19721]: https://github.com/JuliaLang/julia/issues/19721
622672[#19722]: https://github.com/JuliaLang/julia/issues/19722
623673[#19724]: https://github.com/JuliaLang/julia/issues/19724
674+ [#19737]: https://github.com/JuliaLang/julia/issues/19737
624675[#19741]: https://github.com/JuliaLang/julia/issues/19741
676+ [#19766]: https://github.com/JuliaLang/julia/issues/19766
625677[#19771]: https://github.com/JuliaLang/julia/issues/19771
626678[#19779]: https://github.com/JuliaLang/julia/issues/19779
627679[#19784]: https://github.com/JuliaLang/julia/issues/19784
@@ -631,6 +683,7 @@ Command-line option changes
631683[#19800]: https://github.com/JuliaLang/julia/issues/19800
632684[#19802]: https://github.com/JuliaLang/julia/issues/19802
633685[#19811]: https://github.com/JuliaLang/julia/issues/19811
686+ [#19814]: https://github.com/JuliaLang/julia/issues/19814
634687[#19841]: https://github.com/JuliaLang/julia/issues/19841
635688[#19900]: https://github.com/JuliaLang/julia/issues/19900
636689[#19901]: https://github.com/JuliaLang/julia/issues/19901
@@ -641,12 +694,14 @@ Command-line option changes
641694[#19926]: https://github.com/JuliaLang/julia/issues/19926
642695[#19931]: https://github.com/JuliaLang/julia/issues/19931
643696[#19934]: https://github.com/JuliaLang/julia/issues/19934
697+ [#19937]: https://github.com/JuliaLang/julia/issues/19937
644698[#19944]: https://github.com/JuliaLang/julia/issues/19944
645699[#19949]: https://github.com/JuliaLang/julia/issues/19949
646700[#19950]: https://github.com/JuliaLang/julia/issues/19950
647701[#19989]: https://github.com/JuliaLang/julia/issues/19989
648702[#20009]: https://github.com/JuliaLang/julia/issues/20009
649703[#20047]: https://github.com/JuliaLang/julia/issues/20047
704+ [#20058]: https://github.com/JuliaLang/julia/issues/20058
650705[#20079]: https://github.com/JuliaLang/julia/issues/20079
651706[#20164]: https://github.com/JuliaLang/julia/issues/20164
652707[#20213]: https://github.com/JuliaLang/julia/issues/20213
0 commit comments