You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: NEWS.md
+16-2
Original file line number
Diff line number
Diff line change
@@ -11,12 +11,18 @@ New language features
11
11
as `.&&` and `.||`. ([#39594])
12
12
*`⫪` (U+2AEA, `\Top`, `\downvDash`) and `⫫` (U+2AEB, `\Bot`, `\upvDash`, `\indep`)
13
13
may now be used as binary operators with comparison precedence. ([#39403])
14
+
* Repeated semicolons may now be used inside array literals to separate dimensions of an array,
15
+
with the number of semicolons specifying the particular dimension. Just as the single semicolon
16
+
in `[A; B]` has always described concatenating along the first dimension (vertically), now two
17
+
semicolons `[A;; B]` do so in the second dimension (horizontally), three semicolons `;;;` in the
18
+
third, and so on. ([#33697])
14
19
15
20
Language changes
16
21
----------------
17
22
18
23
*`macroexpand`, `@macroexpand`, and `@macroexpand1` no longer wrap errors in a `LoadError`. To reduce breakage, `@test_throws` has been modified so that many affected tests will still pass ([#38379]].
19
24
* The middle dot `·` (`\cdotp` U+00b7) and the Greek interpunct `·` (U+0387) are now treated as equivalent to the dot operator `⋅` (`\cdot` U+22c5) (#25157).
25
+
* The minus sign `−` (`\minus` U+2212) is now treated as equivalent to the hyphen-minus sign `-` (U+002d).
20
26
* Destructuring will no longer mutate values on the left hand side while iterating through values on the right hand side. In the example
21
27
of an array `x`, `x[2], x[1] = x` will now swap the first and second entry of `x`, whereas it used to fill both entries with `x[1]`
22
28
because `x[2]` was mutated during the iteration of `x`. ([#40737])
@@ -44,10 +50,13 @@ New library functions
44
50
45
51
* Two argument methods `findmax(f, domain)`, `argmax(f, domain)` and the corresponding `min` versions ([#27613]).
46
52
*`isunordered(x)` returns true if `x` is value that is normally unordered, such as `NaN` or `missing`.
53
+
* New `keepat!(vector, inds)` function which is the inplace equivalent of `vector[inds]`
54
+
for a list `inds` of integers ([#36229]).
47
55
* New macro `Base.@invokelatest f(args...; kwargs...)` provides a convenient way to call `Base.invokelatest(f, args...; kwargs...)` ([#37971])
48
56
* Two arguments method `lock(f, lck)` now accepts a `Channel` as the second argument. ([#39312])
49
57
* New functor `Returns(value)`, which returns `value` for any arguments ([#39794])
50
58
* New macro `Base.@invoke f(arg1::T1, arg2::T2; kwargs...)` provides an easier syntax to call `invoke(f, Tuple{T1,T2}, arg1, arg2; kwargs...)` ([#38438])
59
+
* New macros `@something` and `@coalesce` which are short-circuiting versions of `something` and `coalesce`, respectively ([#40729])
51
60
52
61
New library features
53
62
--------------------
@@ -58,9 +67,11 @@ New library features
58
67
Standard library changes
59
68
------------------------
60
69
70
+
* Long strings are now elided using the syntax `"head" ⋯ 12345 bytes ⋯ "tail"` when displayed in the REPL ([#40736]).
61
71
*`count` and `findall` now accept an `AbstractChar` argument to search for a character in a string ([#38675]).
62
72
*`range` now supports the `range(start, stop)` and `range(start, stop, length)` methods ([#39228]).
63
73
*`range` now supports `start` as an optional keyword argument ([#38041]).
74
+
* Some operations on ranges will return a `StepRangeLen` instead of a `StepRange`, to allow the resulting step to be zero. Previously, `λ .* (1:9)` gave an error when `λ = 0`. ([#40320])
64
75
*`islowercase` and `isuppercase` are now compliant with the Unicode lower/uppercase categories ([#38574]).
65
76
*`iseven` and `isodd` functions now support non-`Integer` numeric types ([#38976]).
66
77
*`escape_string` can now receive a collection of characters in the keyword
@@ -88,6 +99,8 @@ Standard library changes
88
99
```
89
100
([#39322])
90
101
*`@lock` is now exported from Base ([#39588]).
102
+
* The experimental function `Base.catch_stack()` has been renamed to `current_exceptions()`, exported from Base and given a more specific return type ([#29901])
103
+
* Some degree trigonometric functions, `sind`, `cosd`, `tand`, `asind`, `acosd`, `asecd`, `acscd`, `acotd`, `atand` now accept an square matrix ([#39758]).
91
104
92
105
#### Package Manager
93
106
@@ -101,6 +114,7 @@ Standard library changes
101
114
* The shape of an `UpperHessenberg` matrix is preserved under certain arithmetic operations, e.g. when multiplying or dividing by an `UpperTriangular` matrix. ([#40039])
102
115
*`cis(A)` now supports matrix arguments ([#40194]).
103
116
*`dot` now supports `UniformScaling` with `AbstractMatrix` ([#40250]).
117
+
*`det(M::AbstractMatrix{BigInt})` now calls `det_bareiss(M)`, which uses the [Bareiss](https://en.wikipedia.org/wiki/Bareiss_algorithm) algorithm to calculate precise values.([#40868]).
104
118
105
119
#### Markdown
106
120
@@ -118,7 +132,7 @@ Standard library changes
118
132
119
133
* new `sizehint!(::SparseMatrixCSC, ::Integer)` method ([#30676]).
120
134
*`cholesky()` now fully preserves the user-specified permutation. ([#40560])
121
-
135
+
*`issparse` now applies consistently to all wrapper arrays, including nested, by checking `issparse` on the wrapped parent array ([#37644]).
122
136
123
137
#### Dates
124
138
@@ -146,7 +160,7 @@ Standard library changes
146
160
147
161
Deprecated or removed
148
162
---------------------
149
-
- Multiple successive semicolons in an array expresion were previously ignored (e.g. `[1 ;; 2] == [1 ; 2]`). Multiple semicolons are being reserved for future syntax and may have different behavior in a future release.
163
+
- Multiple successive semicolons in an array expresion were previously ignored (e.g.,`[1 ;; 2] == [1 ; 2]`). This is now being used to separate dimensions for array literals. (see **New language features**)
0 commit comments