Skip to content

Commit eb9c668

Browse files
authored
Merge branch 'master' into kc/warn_using
2 parents 5a497c8 + 641e3f8 commit eb9c668

File tree

150 files changed

+1708
-789
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

150 files changed

+1708
-789
lines changed

.git-blame-ignore-revs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,7 @@ e66bfa5dd32f93e76068c00ad882c1fc839c5af8
77
100a741e7ab38c91d48cc929bb001afc8e09261f
88
# whitespace: replace tabs => space
99
b03e8ab9c7bd3e001add519571858fa04d6a249b
10+
# whitespace: replace 2-space => 4-space for indentation
11+
f1b567507731129f90ca0dffc8fbc0ed98b6a15d
12+
# whitespace: replace multiple spaces after period with a single space
13+
f942c29bb0d02cc24f19712c642ac72ffc85a26b

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ To run doctests you need to run `make -C doc doctest=true` from the root directo
164164

165165
#### News-worthy changes
166166

167-
For new functionality and other substantial changes, add a brief summary to `NEWS.md`. The news item should cross reference the pull request (PR) parenthetically, in the form `([#pr])`. To add the PR reference number, first create the PR, then push an additional commit updating `NEWS.md` with the PR reference number. We periodically run `./julia doc/NEWS-update.jl` from the julia directory to update the cross-reference links, but this should not be done in a typical PR in order to avoid conflicting commits.
167+
For new functionality and other substantial changes, add a brief summary to `NEWS.md`. The news item should cross reference the pull request (PR) parenthetically, in the form `([#pr])`. To add the PR reference number, first create the PR, then push an additional commit updating `NEWS.md` with the PR reference number. We periodically run `./julia doc/NEWS-update.jl` from the julia directory to update the cross-reference links, but this should not be done in a typical PR in order to avoid conflicting commits.
168168

169169
#### Annotations for new features, deprecations and behavior changes
170170

HISTORY.md

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ difference between defining a `main` function and executing the code directly at
6868
* The `--compiled-modules` and `--pkgimages` flags can now be set to `existing`, which will
6969
cause Julia to consider loading existing cache files, but not to create new ones ([#50586]
7070
and [#52573]).
71+
* The `--project` argument now accepts `@script` to give a path to a directory with a Project.toml relative to the passed script file. `--project=@script/foo` for the `foo` subdirectory. If no path is given after (i.e. `--project=@script`) then (like `--project=@.`) the directory and its parents are searched for a Project.toml ([#50864] and [#53352])
7172

7273
Multi-threading changes
7374
-----------------------
@@ -1111,7 +1112,7 @@ Standard library changes
11111112
* `lpad/rpad` are now defined in terms of `textwidth` ([#39044]).
11121113
* `Test.@test` now accepts `broken` and `skip` boolean keyword arguments, which
11131114
mimic `Test.@test_broken` and `Test.@test_skip` behavior, but allows skipping
1114-
tests failing only under certain conditions. For example
1115+
tests failing only under certain conditions. For example
11151116
```julia
11161117
if T == Float64
11171118
@test_broken isequal(complex(one(T)) / complex(T(Inf), T(-Inf)), complex(zero(T), zero(T)))
@@ -1535,7 +1536,7 @@ Standard library changes
15351536
* The `Pkg.BinaryPlatforms` module has been moved into `Base` as `Base.BinaryPlatforms` and heavily reworked.
15361537
Applications that want to be compatible with the old API should continue to import `Pkg.BinaryPlatforms`,
15371538
however new users should use `Base.BinaryPlatforms` directly ([#37320]).
1538-
* The `Pkg.Artifacts` module has been imported as a separate standard library. It is still available as
1539+
* The `Pkg.Artifacts` module has been imported as a separate standard library. It is still available as
15391540
`Pkg.Artifacts`, however starting from Julia v1.6+, packages may import simply `Artifacts` without importing
15401541
all of `Pkg` alongside ([#37320]).
15411542

@@ -1575,7 +1576,7 @@ Standard library changes
15751576
* The `AbstractMenu` extension interface of `REPL.TerminalMenus` has been extensively
15761577
overhauled. The new interface does not rely on global configuration variables, is more
15771578
consistent in delegating printing of the navigation/selection markers, and provides
1578-
improved support for dynamic menus. These changes are compatible with the previous
1579+
improved support for dynamic menus. These changes are compatible with the previous
15791580
(deprecated) interface, so are non-breaking.
15801581

15811582
The new API offers several enhancements:
@@ -1830,8 +1831,8 @@ New library functions
18301831
`Base.Experimental.show_error_hints` from their `showerror` method ([#35094]).
18311832
* The `@ccall` macro has been added to Base. It is a near drop-in replacement for `ccall` with more Julia-like syntax. It also wraps the new `foreigncall` API for varargs of different types, though it lacks the capability to specify an LLVM calling convention ([#32748]).
18321833
* New functions `mergewith` and `mergewith!` supersede `merge` and `merge!` with `combine`
1833-
argument. They don't have the restriction for `combine` to be a `Function` and also
1834-
provide one-argument method that returns a closure. The old methods of `merge` and
1834+
argument. They don't have the restriction for `combine` to be a `Function` and also
1835+
provide one-argument method that returns a closure. The old methods of `merge` and
18351836
`merge!` are still available for backward compatibility ([#34296]).
18361837
* The new `isdisjoint` function indicates whether two collections are disjoint ([#34427]).
18371838
* Add function `ismutable` and deprecate `isimmutable` to check whether something is mutable ([#34652]).
@@ -2711,7 +2712,7 @@ Standard Library Changes
27112712

27122713
* The `Libdl` module's methods `dlopen()` and `dlsym()` have gained a
27132714
`throw_error` keyword argument, replacing the now-deprecated `dlopen_e()`
2714-
and `dlsym_e()` methods. When `throw_error` is `false`, failure to locate
2715+
and `dlsym_e()` methods. When `throw_error` is `false`, failure to locate
27152716
a shared library or symbol will return `nothing` rather than `C_NULL`.
27162717
([#28888])
27172718

@@ -2973,7 +2974,7 @@ This section lists changes that do not have deprecation warnings.
29732974
"Code Loading" and "Pkg" for documentation.
29742975

29752976
* `replace(s::AbstractString, pat=>repl)` for function `repl` arguments formerly
2976-
passed a substring to `repl` in all cases. It now passes substrings for
2977+
passed a substring to `repl` in all cases. It now passes substrings for
29772978
string patterns `pat`, but a `Char` for character patterns (when `pat` is a
29782979
`Char`, collection of `Char`, or a character predicate) ([#25815]).
29792980

@@ -3158,7 +3159,7 @@ This section lists changes that do not have deprecation warnings.
31583159

31593160
* The logging system has been redesigned - `info` and `warn` are deprecated
31603161
and replaced with the logging macros `@info`, `@warn`, `@debug` and
3161-
`@error`. The `logging` function is also deprecated and replaced with
3162+
`@error`. The `logging` function is also deprecated and replaced with
31623163
`AbstractLogger` and the functions from the new standard `Logging` library.
31633164
([#24490])
31643165

@@ -3314,7 +3315,7 @@ Library improvements
33143315
For example, `x^-1` is now essentially a synonym for `inv(x)`, and works
33153316
in a type-stable way even if `typeof(x) != typeof(inv(x))` ([#24240]).
33163317

3317-
* New `Iterators.reverse(itr)` for reverse-order iteration ([#24187]). Iterator
3318+
* New `Iterators.reverse(itr)` for reverse-order iteration ([#24187]). Iterator
33183319
types `T` can implement `start` etc. for `Iterators.Reverse{T}` to support this.
33193320

33203321
* The functions `nextind` and `prevind` now accept `nchar` argument that indicates
@@ -3453,7 +3454,7 @@ Library improvements
34533454
cartesian indices to linear indices using the normal indexing operation.
34543455
([#24715], [#26775]).
34553456

3456-
* `IdDict{K,V}` replaces `ObjectIdDict`. It has type parameters
3457+
* `IdDict{K,V}` replaces `ObjectIdDict`. It has type parameters
34573458
like other `AbstractDict` subtypes and its constructors mirror the
34583459
ones of `Dict`. ([#25210])
34593460

@@ -3664,8 +3665,8 @@ Deprecated or removed
36643665
should add offset axis support to the function `f` directly ([#26733]).
36653666

36663667
* The functions `ones` and `zeros` used to accept any objects as dimensional arguments,
3667-
implicitly converting them to `Int`s. This is now deprecated; only `Integer`s or
3668-
`AbstractUnitRange`s are accepted as arguments. Instead, convert the arguments before
3668+
implicitly converting them to `Int`s. This is now deprecated; only `Integer`s or
3669+
`AbstractUnitRange`s are accepted as arguments. Instead, convert the arguments before
36693670
calling `ones` or `zeros` ([#26733]).
36703671

36713672
* The variadic `size(A, dim1, dim2, dims...)` method to return a tuple of multiple
@@ -4530,8 +4531,8 @@ Language changes
45304531
Previously, this syntax parsed as an implicit multiplication ([#18690]).
45314532
45324533
* For every binary operator `⨳`, `a .⨳ b` is now automatically equivalent to
4533-
the `broadcast` call `(⨳).(a, b)`. Hence, one no longer defines methods
4534-
for `.*` etcetera. This also means that "dot operations" automatically
4534+
the `broadcast` call `(⨳).(a, b)`. Hence, one no longer defines methods
4535+
for `.*` etcetera. This also means that "dot operations" automatically
45354536
fuse into a single loop, along with other dot calls `f.(x)` ([#17623]).
45364537
Similarly for unary operators ([#20249]).
45374538
@@ -4584,11 +4585,11 @@ This section lists changes that do not have deprecation warnings.
45844585
or an array as a "scalar" ([#16986]).
45854586
45864587
* `broadcast` now produces a `BitArray` instead of `Array{Bool}` for
4587-
functions yielding a boolean result. If you want `Array{Bool}`, use
4588+
functions yielding a boolean result. If you want `Array{Bool}`, use
45884589
`broadcast!` or `.=` ([#17623]).
45894590
45904591
* Broadcast `A[I...] .= X` with entirely scalar indices `I` is deprecated as
4591-
its behavior will change in the future. Use `A[I...] = X` instead.
4592+
its behavior will change in the future. Use `A[I...] = X` instead.
45924593
45934594
* Operations like `.+` and `.*` on `Range` objects are now generic
45944595
`broadcast` calls (see [above](#language-changes)) and produce an `Array`.
@@ -4634,7 +4635,7 @@ This section lists changes that do not have deprecation warnings.
46344635
now tab-completes to U+03B5 (greek small letter epsilon) ([#19464]).
46354636
46364637
* `retry` now inputs the keyword arguments `delays` and `check` instead of
4637-
`n` and `max_delay`. The previous functionality can be achieved setting
4638+
`n` and `max_delay`. The previous functionality can be achieved setting
46384639
`delays` to `ExponentialBackOff` ([#19331]).
46394640
46404641
* `transpose(::AbstractVector)` now always returns a `RowVector` view of the input (which is a
@@ -4675,7 +4676,7 @@ This section lists changes that do not have deprecation warnings.
46754676
using the values and types of `a` and `step` as given, whereas
46764677
`range(a, step, len)` will attempt to match inputs `a::FloatNN`
46774678
and `step::FloatNN` to rationals and construct a `StepRangeLen`
4678-
that internally uses twice-precision arithmetic. These two
4679+
that internally uses twice-precision arithmetic. These two
46794680
outcomes exhibit differences in both precision and speed.
46804681
46814682
* `A=>B` expressions are now parsed as calls instead of using `=>` as the
@@ -4695,7 +4696,7 @@ This section lists changes that do not have deprecation warnings.
46954696
trigamma, and polygamma special functions have been moved from Base to
46964697
the
46974698
[SpecialFunctions.jl package](https://github.com/JuliaMath/SpecialFunctions.jl)
4698-
([#20427]). Note that `airy`, `airyx` and `airyprime` have been deprecated
4699+
([#20427]). Note that `airy`, `airyx` and `airyprime` have been deprecated
46994700
in favor of more specific functions (`airyai`, `airybi`, `airyaiprime`,
47004701
`airybiprimex`, `airyaix`, `airybix`, `airyaiprimex`, `airybiprimex`)
47014702
([#18050]).
@@ -4780,7 +4781,7 @@ Library improvements
47804781
for more information.
47814782
47824783
* The default color for info messages has been changed from blue to cyan
4783-
([#18442]), and for warning messages from red to yellow ([#18453]). This
4784+
([#18442]), and for warning messages from red to yellow ([#18453]). This
47844785
can be changed back to the original colors by setting the environment
47854786
variables `JULIA_INFO_COLOR` to `"blue"` and `JULIA_WARN_COLOR` to `"red"`.
47864787
@@ -5124,10 +5125,10 @@ New language features
51245125
* Function return type syntax `function f()::T` has been added ([#1090]). Values returned
51255126
from a function with such a declaration will be converted to the specified type `T`.
51265127
5127-
* Many more operators now support `.` prefixes (e.g. `.≤`) ([#17393]). However,
5128+
* Many more operators now support `.` prefixes (e.g. `.≤`) ([#17393]). However,
51285129
users are discouraged from overloading these, since they are mainly parsed
51295130
in order to implement backwards compatibility with planned automatic
5130-
broadcasting of dot operators in Julia 0.6 ([#16285]). Explicitly qualified
5131+
broadcasting of dot operators in Julia 0.6 ([#16285]). Explicitly qualified
51315132
operator names like `Base.≤` should now use `Base.:≤` (prefixed by `@compat`
51325133
if you need 0.4 compatibility via the `Compat` package).
51335134
@@ -5260,7 +5261,7 @@ Library improvements
52605261
* Strings ([#16107]):
52615262
52625263
* The `UTF8String` and `ASCIIString` types have been merged into a single
5263-
`String` type ([#16058]). Use `isascii(s)` to check whether
5264+
`String` type ([#16058]). Use `isascii(s)` to check whether
52645265
a string contains only ASCII characters. The `ascii(s)` function now
52655266
converts `s` to `String`, raising an `ArgumentError` exception if `s` is
52665267
not pure ASCII.
@@ -5582,7 +5583,7 @@ New language features
55825583
55835584
* Function call overloading: for arbitrary objects `x` (not of type
55845585
`Function`), `x(...)` is transformed into `call(x, ...)`, and `call`
5585-
can be overloaded as desired. Constructors are now a special case of
5586+
can be overloaded as desired. Constructors are now a special case of
55865587
this mechanism, which allows e.g. constructors for abstract types.
55875588
`T(...)` falls back to `convert(T, x)`, so all `convert` methods implicitly
55885589
define a constructor ([#8712], [#2403]).
@@ -5610,13 +5611,13 @@ New language features
56105611
`~/.julia/lib/v0.4` ([#8745]).
56115612
56125613
* See manual section on `Module initialization and precompilation` (under `Modules`) for
5613-
details and errata. In particular, to be safely precompilable a module may need an
5614+
details and errata. In particular, to be safely precompilable a module may need an
56145615
`__init__` function to separate code that must be executed at runtime rather than precompile
5615-
time. Modules that are *not* precompilable should call `__precompile__(false)`.
5616+
time. Modules that are *not* precompilable should call `__precompile__(false)`.
56165617
56175618
* The precompiled `.ji` file includes a list of dependencies (modules and files that
56185619
were imported/included at precompile-time), and the module is automatically recompiled
5619-
upon `import` when any of its dependencies have changed. Explicit dependencies
5620+
upon `import` when any of its dependencies have changed. Explicit dependencies
56205621
on other files can be declared with `include_dependency(path)` ([#12458]).
56215622
56225623
* New option `--output-incremental={yes|no}` added to invoke the equivalent of `Base.compilecache`
@@ -5820,7 +5821,7 @@ Library improvements
58205821
* New `vecdot` function, analogous to `vecnorm`, for Euclidean inner products over any iterable container ([#11067]).
58215822
58225823
* `p = plan_fft(x)` and similar functions now return a `Base.DFT.Plan` object, rather
5823-
than an anonymous function. Calling it via `p(x)` is deprecated in favor of
5824+
than an anonymous function. Calling it via `p(x)` is deprecated in favor of
58245825
`p * x` or `p \ x` (for the inverse), and it can also be used with `A_mul_B!`
58255826
to employ pre-allocated output arrays ([#12087]).
58265827
@@ -6310,7 +6311,7 @@ Library improvements
63106311
* New string type, `UTF16String` ([#4930]), constructed by
63116312
`utf16(s)` from another string, a `Uint16` array or pointer, or
63126313
a byte array (possibly prefixed by a byte-order marker to
6313-
indicate endian-ness). Its data is internally `NULL`-terminated
6314+
indicate endian-ness). Its data is internally `NULL`-terminated
63146315
for passing to C ([#7016]).
63156316
63166317
* `CharString` is renamed to `UTF32String` ([#4943]), and its data
@@ -6345,7 +6346,7 @@ Library improvements
63456346
63466347
* New `vecnorm(itr, p=2)` function that computes the norm of
63476348
any iterable collection of numbers as if it were a vector of
6348-
the same length. This generalizes and replaces `normfro` ([#6057]),
6349+
the same length. This generalizes and replaces `normfro` ([#6057]),
63496350
and `norm` is now type-stable ([#6056]).
63506351
63516352
* New `UniformScaling` matrix type and identity `I` constant ([#5810]).

Make.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1406,7 +1406,7 @@ ifeq ($(OS), WINNT)
14061406
HAVE_SSP := 1
14071407
OSLIBS += -Wl,--export-all-symbols -Wl,--version-script=$(BUILDROOT)/src/julia.expmap \
14081408
$(NO_WHOLE_ARCHIVE) -lpsapi -lkernel32 -lws2_32 -liphlpapi -lwinmm -ldbghelp -luserenv -lsecur32 -latomic -lole32
1409-
JLDFLAGS += -Wl,--stack,8388608
1409+
JLDFLAGS += -Wl,--stack,8388608 --disable-auto-import --disable-runtime-pseudo-reloc
14101410
ifeq ($(ARCH),i686)
14111411
JLDFLAGS += -Wl,--large-address-aware
14121412
endif

NEWS.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ Julia v1.12 Release Notes
44
New language features
55
---------------------
66

7+
- A new keyword argument `usings::Bool` has been added to `names`. By using this, we can now
8+
find all the names available in module `A` by `names(A; all=true, imported=true, usings=true)`. ([#54609])
9+
710
Language changes
811
----------------
912

@@ -17,7 +20,7 @@ Language changes
1720
may pave the way for inference to be able to intelligently re-use the old
1821
results, once the new method is deleted. ([#53415])
1922

20-
- Macro expansion will no longer eargerly recurse into into `Expr(:toplevel)`
23+
- Macro expansion will no longer eagerly recurse into into `Expr(:toplevel)`
2124
expressions returned from macros. Instead, macro expansion of `:toplevel`
2225
expressions will be delayed until evaluation time. This allows a later
2326
expression within a given `:toplevel` expression to make use of macros
@@ -36,6 +39,9 @@ Command-line option changes
3639

3740
* The `-m/--module` flag can be passed to run the `main` function inside a package with a set of arguments.
3841
This `main` function should be declared using `@main` to indicate that it is an entry point.
42+
* Enabling or disabling color text in Julia can now be controlled with the
43+
[`NO_COLOR`](https://no-color.org/) or [`FORCE_COLOR`](https://force-color.org/) environment
44+
variables. ([#53742]).
3945

4046
Multi-threading changes
4147
-----------------------
@@ -102,6 +108,9 @@ Standard library changes
102108

103109
#### REPL
104110

111+
- Using the new `usings=true` feature of the `names()` function, REPL completions can now
112+
complete names that have been explicitly `using`-ed. ([#54610])
113+
105114
#### SuiteSparse
106115

107116
#### SparseArrays

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@
3535
## The Julia Language
3636

3737
Julia is a high-level, high-performance dynamic language for technical
38-
computing. The main homepage for Julia can be found at
39-
[julialang.org](https://julialang.org/). This is the GitHub
38+
computing. The main homepage for Julia can be found at
39+
[julialang.org](https://julialang.org/). This is the GitHub
4040
repository of Julia source code, including instructions for compiling
4141
and installing Julia, below.
4242

@@ -74,7 +74,7 @@ for OS and platform combinations.
7474

7575
If everything works correctly, you will see a Julia banner and an
7676
interactive prompt into which you can enter expressions for
77-
evaluation. You can read about [getting
77+
evaluation. You can read about [getting
7878
started](https://docs.julialang.org/en/v1/manual/getting-started/) in the manual.
7979

8080
**Note**: Although some OS package managers provide Julia, such

base/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -249,12 +249,12 @@ endif
249249
ifneq (,$(LIBGFORTRAN_VERSION))
250250
$(eval $(call symlink_system_library,CSL,libgfortran,$(LIBGFORTRAN_VERSION)))
251251
endif
252-
$(eval $(call symlink_system_library,CSL,libquadmath,0))
253252
$(eval $(call symlink_system_library,CSL,libstdc++,6))
254-
# We allow libssp, libatomic and libgomp to fail as they are not available on all systems
253+
# We allow libssp, libatomic, libgomp and libquadmath to fail as they are not available on all systems
255254
$(eval $(call symlink_system_library,CSL,libssp,0,ALLOW_FAILURE))
256255
$(eval $(call symlink_system_library,CSL,libatomic,1,ALLOW_FAILURE))
257256
$(eval $(call symlink_system_library,CSL,libgomp,1,ALLOW_FAILURE))
257+
$(eval $(call symlink_system_library,CSL,libquadmath,0,ALLOW_FAILURE))
258258
$(eval $(call symlink_system_library,PCRE,libpcre2-8))
259259
$(eval $(call symlink_system_library,DSFMT,libdSFMT))
260260
$(eval $(call symlink_system_library,LIBBLASTRAMPOLINE,libblastrampoline))

0 commit comments

Comments
 (0)