Skip to content

Commit

Permalink
Merge branch 'master' into check_channel
Browse files Browse the repository at this point in the history
  • Loading branch information
jakobnissen authored Jul 22, 2024
2 parents 93695c1 + e621c74 commit dbbd7a4
Show file tree
Hide file tree
Showing 419 changed files with 9,883 additions and 5,386 deletions.
4 changes: 4 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,7 @@ e66bfa5dd32f93e76068c00ad882c1fc839c5af8
100a741e7ab38c91d48cc929bb001afc8e09261f
# whitespace: replace tabs => space
b03e8ab9c7bd3e001add519571858fa04d6a249b
# whitespace: replace 2-space => 4-space for indentation
f1b567507731129f90ca0dffc8fbc0ed98b6a15d
# whitespace: replace multiple spaces after period with a single space
f942c29bb0d02cc24f19712c642ac72ffc85a26b
4 changes: 2 additions & 2 deletions .github/workflows/LabelCheck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ jobs:
with:
# REQUIRED_LABELS_ANY: "bug,enhancement,skip-changelog"
# REQUIRED_LABELS_ANY_DESCRIPTION: "Select at least one label ['bug','enhancement','skip-changelog']"
BANNED_LABELS: "needs docs,needs compat annotation,needs more info,needs nanosoldier run,needs news,needs pkgeval,needs tests,DO NOT MERGE"
BANNED_LABELS_DESCRIPTION: "A PR should not be merged with `needs *` or `DO NOT MERGE` labels"
BANNED_LABELS: "needs docs,needs compat annotation,needs more info,needs nanosoldier run,needs news,needs pkgeval,needs tests,needs decision,DO NOT MERGE,status:DO NOT MERGE"
BANNED_LABELS_DESCRIPTION: "A PR should not be merged with `needs *` or `status:DO NOT MERGE` labels"
19 changes: 16 additions & 3 deletions .mailmap
Original file line number Diff line number Diff line change
Expand Up @@ -284,9 +284,9 @@ Daniel Karrasch <Daniel.Karrasch@gmx.de> <daniel.karrasch@posteo.de>
Roger Luo <rogerluo.rl18@gmail.com> <rogerluo.rl18@gmail.com>
Roger Luo <rogerluo.rl18@gmail.com> <hiroger@qq.com>

Frames Catherine White <me@oxinabox.net> <oxinabox@ucc.asn.au>
Frames Catherine White <me@oxinabox.net> <lyndon.white@invenialabs.co.uk>
Frames Catherine White <me@oxinabox.net> <lyndon.white@research.uwa.edu.au>
Frames White <me@oxinabox.net> <oxinabox@ucc.asn.au>
Frames White <me@oxinabox.net> <lyndon.white@invenialabs.co.uk>
Frames White <me@oxinabox.net> <lyndon.white@research.uwa.edu.au>

Claire Foster <aka.c42f@gmail.com> <chris42f@gmail.com>

Expand All @@ -295,3 +295,16 @@ Jishnu Bhattacharya <jishnub.github@gmail.com> <jishnub@users.noreply.github.com

Shuhei Kadowaki <aviatesk@gmail.com> <aviatesk@gmail.com>
Shuhei Kadowaki <aviatesk@gmail.com> <40514306+aviatesk@users.noreply.github.com>

inky <git@wo-class.cn>
inky <git@wo-class.cn> <inkydragon@users.noreply.github.com>

Lilith Orion Hafner <lilithhafner@gmail.com> <Lilith.Hafner@gmail.com>
Lilith Orion Hafner <lilithhafner@gmail.com> <60898866+LilithHafner@users.noreply.github.com>

Timothy <git@tecosaur.net>

Bhuminjay Soni <soni5happy@gmail.com>
Bhuminjay Soni <soni5happy@gmail.com> <76656712+11happy@users.noreply.github.com>

Florian Atteneder <florian.atteneder@gmail.com>
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ To run doctests you need to run `make -C doc doctest=true` from the root directo

#### News-worthy changes

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.
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.

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

Expand Down
61 changes: 31 additions & 30 deletions HISTORY.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ difference between defining a `main` function and executing the code directly at
* The `--compiled-modules` and `--pkgimages` flags can now be set to `existing`, which will
cause Julia to consider loading existing cache files, but not to create new ones ([#50586]
and [#52573]).
* 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])

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

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

The new API offers several enhancements:
Expand Down Expand Up @@ -1830,8 +1831,8 @@ New library functions
`Base.Experimental.show_error_hints` from their `showerror` method ([#35094]).
* 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]).
* New functions `mergewith` and `mergewith!` supersede `merge` and `merge!` with `combine`
argument. They don't have the restriction for `combine` to be a `Function` and also
provide one-argument method that returns a closure. The old methods of `merge` and
argument. They don't have the restriction for `combine` to be a `Function` and also
provide one-argument method that returns a closure. The old methods of `merge` and
`merge!` are still available for backward compatibility ([#34296]).
* The new `isdisjoint` function indicates whether two collections are disjoint ([#34427]).
* Add function `ismutable` and deprecate `isimmutable` to check whether something is mutable ([#34652]).
Expand Down Expand Up @@ -2711,7 +2712,7 @@ Standard Library Changes

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

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

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

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

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

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

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

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

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

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

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

* The variadic `size(A, dim1, dim2, dims...)` method to return a tuple of multiple
Expand Down Expand Up @@ -4530,8 +4531,8 @@ Language changes
Previously, this syntax parsed as an implicit multiplication ([#18690]).

* For every binary operator `⨳`, `a .⨳ b` is now automatically equivalent to
the `broadcast` call `(⨳).(a, b)`. Hence, one no longer defines methods
for `.*` etcetera. This also means that "dot operations" automatically
the `broadcast` call `(⨳).(a, b)`. Hence, one no longer defines methods
for `.*` etcetera. This also means that "dot operations" automatically
fuse into a single loop, along with other dot calls `f.(x)` ([#17623]).
Similarly for unary operators ([#20249]).

Expand Down Expand Up @@ -4584,11 +4585,11 @@ This section lists changes that do not have deprecation warnings.
or an array as a "scalar" ([#16986]).

* `broadcast` now produces a `BitArray` instead of `Array{Bool}` for
functions yielding a boolean result. If you want `Array{Bool}`, use
functions yielding a boolean result. If you want `Array{Bool}`, use
`broadcast!` or `.=` ([#17623]).

* Broadcast `A[I...] .= X` with entirely scalar indices `I` is deprecated as
its behavior will change in the future. Use `A[I...] = X` instead.
its behavior will change in the future. Use `A[I...] = X` instead.

* Operations like `.+` and `.*` on `Range` objects are now generic
`broadcast` calls (see [above](#language-changes)) and produce an `Array`.
Expand Down Expand Up @@ -4634,7 +4635,7 @@ This section lists changes that do not have deprecation warnings.
now tab-completes to U+03B5 (greek small letter epsilon) ([#19464]).

* `retry` now inputs the keyword arguments `delays` and `check` instead of
`n` and `max_delay`. The previous functionality can be achieved setting
`n` and `max_delay`. The previous functionality can be achieved setting
`delays` to `ExponentialBackOff` ([#19331]).

* `transpose(::AbstractVector)` now always returns a `RowVector` view of the input (which is a
Expand Down Expand Up @@ -4675,7 +4676,7 @@ This section lists changes that do not have deprecation warnings.
using the values and types of `a` and `step` as given, whereas
`range(a, step, len)` will attempt to match inputs `a::FloatNN`
and `step::FloatNN` to rationals and construct a `StepRangeLen`
that internally uses twice-precision arithmetic. These two
that internally uses twice-precision arithmetic. These two
outcomes exhibit differences in both precision and speed.

* `A=>B` expressions are now parsed as calls instead of using `=>` as the
Expand All @@ -4695,7 +4696,7 @@ This section lists changes that do not have deprecation warnings.
trigamma, and polygamma special functions have been moved from Base to
the
[SpecialFunctions.jl package](https://github.com/JuliaMath/SpecialFunctions.jl)
([#20427]). Note that `airy`, `airyx` and `airyprime` have been deprecated
([#20427]). Note that `airy`, `airyx` and `airyprime` have been deprecated
in favor of more specific functions (`airyai`, `airybi`, `airyaiprime`,
`airybiprimex`, `airyaix`, `airybix`, `airyaiprimex`, `airybiprimex`)
([#18050]).
Expand Down Expand Up @@ -4780,7 +4781,7 @@ Library improvements
for more information.

* The default color for info messages has been changed from blue to cyan
([#18442]), and for warning messages from red to yellow ([#18453]). This
([#18442]), and for warning messages from red to yellow ([#18453]). This
can be changed back to the original colors by setting the environment
variables `JULIA_INFO_COLOR` to `"blue"` and `JULIA_WARN_COLOR` to `"red"`.

Expand Down Expand Up @@ -5124,10 +5125,10 @@ New language features
* Function return type syntax `function f()::T` has been added ([#1090]). Values returned
from a function with such a declaration will be converted to the specified type `T`.

* Many more operators now support `.` prefixes (e.g. `.≤`) ([#17393]). However,
* Many more operators now support `.` prefixes (e.g. `.≤`) ([#17393]). However,
users are discouraged from overloading these, since they are mainly parsed
in order to implement backwards compatibility with planned automatic
broadcasting of dot operators in Julia 0.6 ([#16285]). Explicitly qualified
broadcasting of dot operators in Julia 0.6 ([#16285]). Explicitly qualified
operator names like `Base.≤` should now use `Base.:≤` (prefixed by `@compat`
if you need 0.4 compatibility via the `Compat` package).

Expand Down Expand Up @@ -5260,7 +5261,7 @@ Library improvements
* Strings ([#16107]):

* The `UTF8String` and `ASCIIString` types have been merged into a single
`String` type ([#16058]). Use `isascii(s)` to check whether
`String` type ([#16058]). Use `isascii(s)` to check whether
a string contains only ASCII characters. The `ascii(s)` function now
converts `s` to `String`, raising an `ArgumentError` exception if `s` is
not pure ASCII.
Expand Down Expand Up @@ -5582,7 +5583,7 @@ New language features

* Function call overloading: for arbitrary objects `x` (not of type
`Function`), `x(...)` is transformed into `call(x, ...)`, and `call`
can be overloaded as desired. Constructors are now a special case of
can be overloaded as desired. Constructors are now a special case of
this mechanism, which allows e.g. constructors for abstract types.
`T(...)` falls back to `convert(T, x)`, so all `convert` methods implicitly
define a constructor ([#8712], [#2403]).
Expand Down Expand Up @@ -5610,13 +5611,13 @@ New language features
`~/.julia/lib/v0.4` ([#8745]).

* See manual section on `Module initialization and precompilation` (under `Modules`) for
details and errata. In particular, to be safely precompilable a module may need an
details and errata. In particular, to be safely precompilable a module may need an
`__init__` function to separate code that must be executed at runtime rather than precompile
time. Modules that are *not* precompilable should call `__precompile__(false)`.
time. Modules that are *not* precompilable should call `__precompile__(false)`.

* The precompiled `.ji` file includes a list of dependencies (modules and files that
were imported/included at precompile-time), and the module is automatically recompiled
upon `import` when any of its dependencies have changed. Explicit dependencies
upon `import` when any of its dependencies have changed. Explicit dependencies
on other files can be declared with `include_dependency(path)` ([#12458]).

* New option `--output-incremental={yes|no}` added to invoke the equivalent of `Base.compilecache`
Expand Down Expand Up @@ -5820,7 +5821,7 @@ Library improvements
* New `vecdot` function, analogous to `vecnorm`, for Euclidean inner products over any iterable container ([#11067]).

* `p = plan_fft(x)` and similar functions now return a `Base.DFT.Plan` object, rather
than an anonymous function. Calling it via `p(x)` is deprecated in favor of
than an anonymous function. Calling it via `p(x)` is deprecated in favor of
`p * x` or `p \ x` (for the inverse), and it can also be used with `A_mul_B!`
to employ pre-allocated output arrays ([#12087]).

Expand Down Expand Up @@ -6310,7 +6311,7 @@ Library improvements
* New string type, `UTF16String` ([#4930]), constructed by
`utf16(s)` from another string, a `Uint16` array or pointer, or
a byte array (possibly prefixed by a byte-order marker to
indicate endian-ness). Its data is internally `NULL`-terminated
indicate endian-ness). Its data is internally `NULL`-terminated
for passing to C ([#7016]).

* `CharString` is renamed to `UTF32String` ([#4943]), and its data
Expand Down Expand Up @@ -6345,7 +6346,7 @@ Library improvements

* New `vecnorm(itr, p=2)` function that computes the norm of
any iterable collection of numbers as if it were a vector of
the same length. This generalizes and replaces `normfro` ([#6057]),
the same length. This generalizes and replaces `normfro` ([#6057]),
and `norm` is now type-stable ([#6056]).

* New `UniformScaling` matrix type and identity `I` constant ([#5810]).
Expand Down
14 changes: 12 additions & 2 deletions Make.inc
Original file line number Diff line number Diff line change
Expand Up @@ -550,7 +550,17 @@ export MACOSX_DEPLOYMENT_TARGET=$(MACOSX_VERSION_MIN)
endif
endif

JLDFLAGS :=
# Conditional setting of RELRO flag for enhanced security on Linux builds.
# RELRO (Read-Only Relocations) is a security feature that marks certain sections
# of the binary as read-only to prevent exploitation techniques like
# GOT (Global Offset Table) overwriting attacks.
ifeq ($(OS),Linux)
RELRO_FLAG := -Wl,-z,relro
else
RELRO_FLAG :=
endif

JLDFLAGS := $(RELRO_FLAG)

ifeq ($(USECCACHE), 1)
# Expand CC, CXX and FC here already because we want the original definition and not the ccache version.
Expand Down Expand Up @@ -1406,7 +1416,7 @@ ifeq ($(OS), WINNT)
HAVE_SSP := 1
OSLIBS += -Wl,--export-all-symbols -Wl,--version-script=$(BUILDROOT)/src/julia.expmap \
$(NO_WHOLE_ARCHIVE) -lpsapi -lkernel32 -lws2_32 -liphlpapi -lwinmm -ldbghelp -luserenv -lsecur32 -latomic -lole32
JLDFLAGS += -Wl,--stack,8388608
JLDFLAGS += -Wl,--stack,8388608 --disable-auto-import --disable-runtime-pseudo-reloc
ifeq ($(ARCH),i686)
JLDFLAGS += -Wl,--large-address-aware
endif
Expand Down
Loading

0 comments on commit dbbd7a4

Please sign in to comment.