Skip to content

Commit aa2a35a

Browse files
authored
Merge pull request #38778 from JuliaLang/jb/16news-2
NEWS edits and license headers for 1.6
2 parents b1c46b6 + b9c8139 commit aa2a35a

File tree

4 files changed

+79
-41
lines changed

4 files changed

+79
-41
lines changed

NEWS.md

Lines changed: 73 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ Language changes
4444
a function like other operators. The dotted version `.-->` is now parsed as well.
4545
For backwards compatibility, `-->` still parses using its own expression head
4646
instead of `:call`.
47-
* The `a[begin, k]` syntax now calls `firstindex(a, 1)` rather than `first(axes(a, 1))` ([#35779]), but the former now defaults to the latter for any `a` ([#38742]).
47+
* The `a[begin, k]` syntax now calls `firstindex(a, 1)` rather than `first(axes(a, 1))` ([#35779]),
48+
but the former now defaults to the latter for any `a` ([#38742]).
4849
* `` (U+233F) and `¦` (U+00A6) are now infix operators with times-like and plus-like precedence,
4950
respectively. Previously they were parsed as identifier characters ([#37973]).
5051

@@ -86,7 +87,8 @@ Build system changes
8687
New library functions
8788
---------------------
8889

89-
* New function `Base.kron!` and corresponding overloads for various matrix types for performing Kronecker product in-place ([#31069]).
90+
* New function `Base.kron!` and corresponding overloads for various matrix types for performing Kronecker
91+
product in-place ([#31069]).
9092
* New function `Base.readeach(io, T)` for iteratively performing `read(io, T)` ([#36150]).
9193
* `Iterators.map` is added. It provides another syntax `Iterators.map(f, iterators...)`
9294
for writing `(f(args...) for args in zip(iterators...))`, i.e. a lazy `map` ([#34352]).
@@ -101,9 +103,11 @@ New library functions
101103
New library features
102104
--------------------
103105

104-
* The `redirect_*` functions now accept `devnull` to discard all output redirected to it, and as an empty input. ([#36146]).
105-
* The `redirect_*` functions can now be called on `IOContext` objects. ([#36688]).
106-
* `findfirst`, `findnext`, `findlast`, and `findall` now support `AbstractVector{<:Union{Int8,UInt8}}` (pattern, array) arguments ([#37283]).
106+
* The `redirect_*` functions now accept `devnull` to discard all output redirected to it, and as an empty
107+
input ([#36146]).
108+
* The `redirect_*` functions can now be called on `IOContext` objects ([#36688]).
109+
* `findfirst`, `findnext`, `findlast`, and `findall` now support `AbstractVector{<:Union{Int8,UInt8}}`
110+
(pattern, array) arguments ([#37283]).
107111
* New constructor `NamedTuple(iterator)` that constructs a named tuple from a key-value pair iterator.
108112
* A new `reinterpret(reshape, T, a::AbstractArray{S})` reinterprets `a` to have eltype `T` while potentially
109113
inserting or consuming the first dimension depending on the ratio of `sizeof(T)` and `sizeof(S)`.
@@ -117,59 +121,68 @@ New library features
117121
`haystack` ([#38475]).
118122
* New methods `∉(collection)`, `∋(item)`, and `∌(item)` returning corresponding containment-testing
119123
functions ([#38475]).
120-
121-
Standard library changes
122-
------------------------
123-
124-
* It is no longer possible to create a `LinRange`, `StepRange`, or `StepRangeLen` with a `<: Integer` eltype but non-integer step ([#32439]).
125-
* `pkg> precompile` is now parallelized through depth-first precompilation of dependencies. Errors will only throw for
126-
direct dependencies listed in the `Project.toml`.
127-
* `pkg> precompile` is now automatically triggered whenever Pkg changes the active manifest. Auto-precompilation will
128-
remember if a package has errored within the given environment and will not retry until it changes.
129-
Auto-precompilation can be gracefully interrupted with a `ctrl-c` and disabled by setting the environment variable
130-
`JULIA_PKG_PRECOMPILE_AUTO=0`.
131124
* The `nextprod` function now accepts tuples and other array types for its first argument ([#35791]).
132125
* The `reverse(A; dims)` function for multidimensional `A` can now reverse multiple dimensions at once
133126
by passing a tuple for `dims`, and defaults to reversing all dimensions; there is also a multidimensional
134127
in-place `reverse!(A; dims)` ([#37367]).
135-
* The function `isapprox(x,y)` now accepts the `norm` keyword argument also for numeric (i.e., non-array) arguments `x` and `y` ([#35883]).
128+
* The function `isapprox(x,y)` now accepts the `norm` keyword argument also for numeric (i.e., non-array)
129+
arguments `x` and `y` ([#35883]).
136130
* `ispow2(x)` now supports non-`Integer` arguments `x` ([#37635]).
137131
* `view`, `@view`, and `@views` now work on `AbstractString`s, returning a `SubString` when appropriate ([#35879]).
138132
* All `AbstractUnitRange{<:Integer}`s now work with `SubString`, `view`, `@view` and `@views` on strings ([#35879]).
139133
* `sum`, `prod`, `maximum`, and `minimum` now support `init` keyword argument ([#36188], [#35839]).
140134
* `unique(f, itr; seen=Set{T}())` now allows you to declare the container type used for
141135
keeping track of values returned by `f` on elements of `itr` ([#36280]).
142-
* `Libdl` has been moved to `Base.Libc.Libdl`, however it is still accessible as an stdlib ([#35628]).
143136
* `first` and `last` functions now accept an integer as second argument to get that many
144137
leading or trailing elements of any iterable ([#34868]).
145-
* `intersect` on `CartesianIndices` now returns `CartesianIndices` instead of `Vector{<:CartesianIndex}` ([#36643]).
146138
* `CartesianIndices` now supports step different from `1`. It can also be constructed from three
147139
`CartesianIndex`es `I`, `S`, `J` using `I:S:J`. `step` for `CartesianIndices` now returns a
148140
`CartesianIndex` ([#37829]).
149-
* `push!(c::Channel, v)` now returns channel `c`. Previously, it returned the pushed value `v` ([#34202]).
150141
* `RegexMatch` objects can now be probed for whether a named capture group exists within it through `haskey()` ([#36717]).
151-
* For consistency `haskey(r::RegexMatch, i::Integer)` has also been added and returns if the capture group for `i` exists ([#37300]).
142+
* For consistency `haskey(r::RegexMatch, i::Integer)` has also been added and returns if the capture group
143+
for `i` exists ([#37300]).
144+
145+
Standard library changes
146+
------------------------
147+
152148
* A new standard library `TOML` has been added for parsing and printing [TOML files](https://toml.io) ([#37034]).
153-
* The composition operator `` now returns a `Base.ComposedFunction` instead of an anonymous function ([#37517]).
154-
* A new standard library `Downloads` has been added, which replaces the old `Base.download` function with `Downloads.download`, providing cross-platform, multi-protocol, in-process download functionality implemented with [libcurl](https://curl.haxx.se/libcurl/) ([#37340]).
155-
* The `Pkg.BinaryPlatforms` module has been moved into `Base` as `Base.BinaryPlatforms` and heavily reworked.
156-
Applications that want to be compatible with the old API should continue to import `Pkg.BinaryPlatforms`,
157-
however new users should use `Base.BinaryPlatforms` directly ([#37320]).
158-
* Logging (such as `@warn`) no longer catches exceptions in the logger itself ([#36600]).
159-
* The `Pkg.Artifacts` module has been imported as a separate standard library. It is still available as
160-
`Pkg.Artifacts`, however starting from Julia v1.6+, packages may import simply `Artifacts` without importing
161-
all of `Pkg` alongside ([#37320]).
149+
* A new standard library `Downloads` has been added, which replaces the old `Base.download` function with
150+
`Downloads.download`, providing cross-platform, multi-protocol, in-process download functionality implemented
151+
with [libcurl](https://curl.haxx.se/libcurl/) ([#37340]).
152+
* `Libdl` has been moved to `Base.Libc.Libdl`, however it is still accessible as an stdlib ([#35628]).
162153
* To download artifacts lazily, `LazyArtifacts` now must be explicitly listed as a dependency, to avoid needing the
163154
support machinery to be available when it is not commonly needed ([#37844]).
155+
* It is no longer possible to create a `LinRange`, `StepRange`, or `StepRangeLen` with a `<: Integer` eltype but
156+
non-integer step ([#32439]).
157+
* `intersect` on `CartesianIndices` now returns `CartesianIndices` instead of `Vector{<:CartesianIndex}` ([#36643]).
158+
* `push!(c::Channel, v)` now returns channel `c`. Previously, it returned the pushed value `v` ([#34202]).
159+
* The composition operator `` now returns a `Base.ComposedFunction` instead of an anonymous function ([#37517]).
160+
* Logging (such as `@warn`) no longer catches exceptions in the logger itself ([#36600]).
164161
* `@time` now reports if the time presented included any compilation time, which is shown as a percentage ([#37678]).
165162
* `@varinfo` can now report non-exported objects within modules, look recursively into submodules, and return a sorted
166163
results table ([#38042]).
167164
* `@testset` now supports the option `verbose` to show the test result summary
168165
of the children even if they all pass ([#33755]).
169166

167+
#### Package Manager
168+
169+
* `pkg> precompile` is now parallelized through depth-first precompilation of dependencies. Errors will only throw for
170+
direct dependencies listed in the `Project.toml`.
171+
* `pkg> precompile` is now automatically triggered whenever Pkg changes the active manifest. Auto-precompilation will
172+
remember if a package has errored within the given environment and will not retry until it changes.
173+
Auto-precompilation can be gracefully interrupted with a `ctrl-c` and disabled by setting the environment variable
174+
`JULIA_PKG_PRECOMPILE_AUTO=0`.
175+
* The `Pkg.BinaryPlatforms` module has been moved into `Base` as `Base.BinaryPlatforms` and heavily reworked.
176+
Applications that want to be compatible with the old API should continue to import `Pkg.BinaryPlatforms`,
177+
however new users should use `Base.BinaryPlatforms` directly ([#37320]).
178+
* The `Pkg.Artifacts` module has been imported as a separate standard library. It is still available as
179+
`Pkg.Artifacts`, however starting from Julia v1.6+, packages may import simply `Artifacts` without importing
180+
all of `Pkg` alongside ([#37320]).
181+
170182
#### LinearAlgebra
171183

172-
* New method `LinearAlgebra.issuccess(::CholeskyPivoted)` for checking whether pivoted Cholesky factorization was successful ([#36002]).
184+
* New method `LinearAlgebra.issuccess(::CholeskyPivoted)` for checking whether pivoted Cholesky factorization was
185+
successful ([#36002]).
173186
* `UniformScaling` can now be indexed into using ranges to return dense matrices and vectors ([#24359]).
174187
* New function `LinearAlgebra.BLAS.get_num_threads()` for getting the number of BLAS threads ([#36360]).
175188
* `(+)(::UniformScaling)` is now defined, making `+I` a valid unary operation ([#36784]).
@@ -182,12 +195,17 @@ Standard library changes
182195

183196
#### Markdown
184197

198+
185199
#### Printf
186200

187-
* Complete overhaul of internal code to use the ryu float printing algorithms (from Julia 1.4); leads to consistent 2-5x performance improvements.
188-
* New `Printf.tofloat` function allowing custom float types to more easily integrate with Printf formatting by converting their type to `Float16`, `Float32`, `Float64`, or `BigFloat`.
189-
* New `Printf.format"..."` and `Printf.Format(...)` functions that allow creating `Printf.Format` objects that can be passed to `Printf.format` for easier dynamic printf formatting.
190-
* `Printf.format(f::Printf.Format, args...)` as a non-macro function that applies a printf format `f` to provided `args`.
201+
* Complete overhaul of internal code to use the ryu float printing algorithms (from Julia 1.4); leads to
202+
consistent 2-5x performance improvements.
203+
* New `Printf.tofloat` function allowing custom float types to more easily integrate with Printf formatting
204+
by converting their type to `Float16`, `Float32`, `Float64`, or `BigFloat`.
205+
* New `Printf.format"..."` and `Printf.Format(...)` functions that allow creating `Printf.Format` objects
206+
that can be passed to `Printf.format` for easier dynamic printf formatting.
207+
* `Printf.format(f::Printf.Format, args...)` as a non-macro function that applies a printf format `f` to
208+
provided `args`.
191209

192210
#### Random
193211

@@ -214,10 +232,8 @@ Standard library changes
214232
+ `numoptions`, returning the number of items in the menu, has been added as an alternative to implementing `options`.
215233
+ `suppress_output` (primarily a testing option) has been added as a keyword argument to `request`,
216234
rather than a configuration option.
217-
218235
* Tab completion now supports runs of consecutive sub/superscript characters,
219236
e.g. `\^(3)` tab-completes to `⁽³⁾` ([#38649]).
220-
221237
* Windows REPL now supports 24-bit colors, by correctly interpreting virtual terminal escapes.
222238

223239
#### SparseArrays
@@ -242,9 +258,10 @@ Standard library changes
242258

243259
#### Distributed
244260

245-
* Now supports invoking Windows workers via ssh (via new keyword argument `shell=:wincmd` in `addprocs`) ([#30614])
246-
247-
* Other new keyword arguments in `addprocs`: `ssh` to specify the ssh client path, `env` to pass environment variables to workers, and `cmdline_cookie` to work around an ssh problem with Windows workers that run older (pre-ConPTY) versions of Windows, Julia or OpenSSH. ([#30614])
261+
* Now supports invoking Windows workers via ssh (via new keyword argument `shell=:wincmd` in `addprocs`) ([#30614]).
262+
* Other new keyword arguments in `addprocs`: `ssh` to specify the ssh client path, `env` to pass environment
263+
variables to workers, and `cmdline_cookie` to work around an ssh problem with Windows workers that run older
264+
(pre-ConPTY) versions of Windows, Julia or OpenSSH ([#30614]).
248265

249266
#### UUIDs
250267

@@ -259,7 +276,8 @@ Standard library changes
259276
Deprecated or removed
260277
---------------------
261278

262-
* The `Base.download` function has been deprecated (silently, by default) in favor of the new `Downloads.download` standard library function ([#37340]).
279+
* The `Base.download` function has been deprecated (silently, by default) in favor of the new `Downloads.download`
280+
standard library function ([#37340]).
263281
* The `Base.Grisu` code has been officially removed (float printing was switched to the ryu algorithm code in 1.4).
264282
The code is available from [JuliaAttic](https://github.com/JuliaAttic/Grisu.jl) if needed.
265283

@@ -275,14 +293,19 @@ Tooling Improvements
275293
[#1255]: https://github.com/JuliaLang/julia/issues/1255
276294
[#23546]: https://github.com/JuliaLang/julia/issues/23546
277295
[#24359]: https://github.com/JuliaLang/julia/issues/24359
296+
[#30614]: https://github.com/JuliaLang/julia/issues/30614
278297
[#31069]: https://github.com/JuliaLang/julia/issues/31069
298+
[#32439]: https://github.com/JuliaLang/julia/issues/32439
299+
[#33755]: https://github.com/JuliaLang/julia/issues/33755
300+
[#33821]: https://github.com/JuliaLang/julia/issues/33821
279301
[#34202]: https://github.com/JuliaLang/julia/issues/34202
280302
[#34352]: https://github.com/JuliaLang/julia/issues/34352
281303
[#34543]: https://github.com/JuliaLang/julia/issues/34543
282304
[#34868]: https://github.com/JuliaLang/julia/issues/34868
283305
[#35519]: https://github.com/JuliaLang/julia/issues/35519
284306
[#35627]: https://github.com/JuliaLang/julia/issues/35627
285307
[#35628]: https://github.com/JuliaLang/julia/issues/35628
308+
[#35779]: https://github.com/JuliaLang/julia/issues/35779
286309
[#35791]: https://github.com/JuliaLang/julia/issues/35791
287310
[#35816]: https://github.com/JuliaLang/julia/issues/35816
288311
[#35839]: https://github.com/JuliaLang/julia/issues/35839
@@ -291,6 +314,7 @@ Tooling Improvements
291314
[#35883]: https://github.com/JuliaLang/julia/issues/35883
292315
[#35976]: https://github.com/JuliaLang/julia/issues/35976
293316
[#36002]: https://github.com/JuliaLang/julia/issues/36002
317+
[#36146]: https://github.com/JuliaLang/julia/issues/36146
294318
[#36150]: https://github.com/JuliaLang/julia/issues/36150
295319
[#36188]: https://github.com/JuliaLang/julia/issues/36188
296320
[#36227]: https://github.com/JuliaLang/julia/issues/36227
@@ -302,6 +326,7 @@ Tooling Improvements
302326
[#36600]: https://github.com/JuliaLang/julia/issues/36600
303327
[#36643]: https://github.com/JuliaLang/julia/issues/36643
304328
[#36666]: https://github.com/JuliaLang/julia/issues/36666
329+
[#36688]: https://github.com/JuliaLang/julia/issues/36688
305330
[#36717]: https://github.com/JuliaLang/julia/issues/36717
306331
[#36784]: https://github.com/JuliaLang/julia/issues/36784
307332
[#37034]: https://github.com/JuliaLang/julia/issues/37034
@@ -327,6 +352,13 @@ Tooling Improvements
327352
[#37684]: https://github.com/JuliaLang/julia/issues/37684
328353
[#37753]: https://github.com/JuliaLang/julia/issues/37753
329354
[#37829]: https://github.com/JuliaLang/julia/issues/37829
355+
[#37844]: https://github.com/JuliaLang/julia/issues/37844
330356
[#37973]: https://github.com/JuliaLang/julia/issues/37973
331357
[#38042]: https://github.com/JuliaLang/julia/issues/38042
332358
[#38062]: https://github.com/JuliaLang/julia/issues/38062
359+
[#38168]: https://github.com/JuliaLang/julia/issues/38168
360+
[#38449]: https://github.com/JuliaLang/julia/issues/38449
361+
[#38475]: https://github.com/JuliaLang/julia/issues/38475
362+
[#38487]: https://github.com/JuliaLang/julia/issues/38487
363+
[#38649]: https://github.com/JuliaLang/julia/issues/38649
364+
[#38742]: https://github.com/JuliaLang/julia/issues/38742

contrib/print_sorted_stdlibs.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
#!/usr/bin/env julia
2+
# This file is a part of Julia. License is MIT: https://julialang.org/license
3+
24
using TOML
35

46
function check_flag(flag)

stdlib/Artifacts/test/refresh_artifacts.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# This file is a part of Julia. License is MIT: https://julialang.org/license
2+
13
using Artifacts: with_artifacts_directory
24
# using Pkg.Artifacts: ensure_all_artifacts_installed
35
using Pkg.Artifacts: load_artifacts_toml, ensure_artifact_installed

stdlib/LazyArtifacts/test/runtests.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# This file is a part of Julia. License is MIT: https://julialang.org/license
2+
13
using LazyArtifacts
24
using Test
35

0 commit comments

Comments
 (0)