Skip to content

Commit dbe795d

Browse files
authored
Merge branch 'master' into sds/destructure_aliasing
2 parents 5bd1968 + 4cdcdb8 commit dbe795d

File tree

191 files changed

+3369
-6305
lines changed

Some content is hidden

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

191 files changed

+3369
-6305
lines changed

.buildkite/pipeline.yml

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
steps:
2+
- label: "analyzegc"
3+
commands:
4+
- echo "--- Install apt-get pre-reqs"
5+
- apt-get update
6+
- apt-get install -y build-essential libatomic1 python python3 gfortran perl wget m4 cmake pkg-config curl
7+
- echo "--- Install in-tree LLVM dependencies"
8+
- make -j 6 -C deps install-llvm install-clang install-llvm-tools install-libuv install-utf8proc install-unwind
9+
- echo "+++ run clangsa/analyzegc"
10+
- make -j 6 -C test/clangsa
11+
- make -j 6 -C src analyzegc
12+
agents:
13+
queue: "juliacpu" # this should be julia -- also in pipeline settings
14+
# os: linux # tag missing for juliacpu queue
15+
timeout_in_minutes: 60
16+
- label: "llvmpasses"
17+
commands:
18+
- echo "--- Install apt-get pre-reqs"
19+
- apt-get update
20+
- apt-get install -y build-essential libatomic1 python python3 gfortran perl wget m4 cmake pkg-config curl
21+
- echo "+++ run llvmpasses"
22+
- make -j 6 release
23+
- make -j 6 -C src install-analysis-deps
24+
- make -j 6 -C test/llvmpasses
25+
agents:
26+
queue: "juliacpu" # this should be julia -- also in pipeline settings
27+
# os: linux # tag missing for juliacpu queue
28+
timeout_in_minutes: 60

.github/CODEOWNERS

+3-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1-
/.github/workflows/ @JuliaLang/github-actions
1+
CODEOWNERS @JuliaLang/github-actions
2+
/.github/ @JuliaLang/github-actions
3+
/.buildkite/ @JuliaLang/github-actions

CITATION.bib

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
% This article is the definitive citation for Julia.
2+
@article{Julia-2017,
3+
title={Julia: A fresh approach to numerical computing},
4+
author={Bezanson, Jeff and Edelman, Alan and Karpinski, Stefan and Shah, Viral B},
5+
journal={SIAM {R}eview},
6+
volume={59},
7+
number={1},
8+
pages={65--98},
9+
year={2017},
10+
publisher={SIAM},
11+
doi={10.1137/141000671},
12+
url={https://epubs.siam.org/doi/10.1137/141000671}
13+
}
14+
15+
% For more details on research related to Julia, see https://julialang.org/research

Make.inc

+5-5
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ USE_SYSTEM_BLAS:=0
4545
USE_SYSTEM_LAPACK:=0
4646
USE_SYSTEM_GMP:=0
4747
USE_SYSTEM_MPFR:=0
48-
USE_SYSTEM_SUITESPARSE:=0
48+
USE_SYSTEM_LIBSUITESPARSE:=0
4949
USE_SYSTEM_LIBUV:=0
5050
USE_SYSTEM_UTF8PROC:=0
5151
USE_SYSTEM_MBEDTLS:=0
@@ -1168,7 +1168,7 @@ BB_TRIPLET := $(subst $(SPACE),-,$(filter-out cxx%,$(filter-out libgfortran%,$(s
11681168
LIBGFORTRAN_VERSION := $(subst libgfortran,,$(filter libgfortran%,$(subst -,$(SPACE),$(BB_TRIPLET_LIBGFORTRAN))))
11691169

11701170
# This is the set of projects that BinaryBuilder dependencies are hooked up for.
1171-
BB_PROJECTS := BLASTRAMPOLINE OPENBLAS LLVM SUITESPARSE OPENLIBM GMP MBEDTLS LIBSSH2 NGHTTP2 MPFR CURL LIBGIT2 PCRE LIBUV LIBUNWIND DSFMT OBJCONV ZLIB P7ZIP CSL
1171+
BB_PROJECTS := BLASTRAMPOLINE OPENBLAS LLVM LIBSUITESPARSE OPENLIBM GMP MBEDTLS LIBSSH2 NGHTTP2 MPFR CURL LIBGIT2 PCRE LIBUV LIBUNWIND DSFMT OBJCONV ZLIB P7ZIP CSL
11721172
define SET_BB_DEFAULT
11731173
# First, check to see if BB is disabled on a global setting
11741174
ifeq ($$(USE_BINARYBUILDER),0)
@@ -1187,7 +1187,7 @@ $(foreach proj,$(BB_PROJECTS),$(eval $(call SET_BB_DEFAULT,$(proj))))
11871187

11881188
# Warn if the user tries to build something that requires `gfortran` but they don't have it installed.
11891189
ifeq ($(FC_VERSION),)
1190-
ifneq ($(USE_BINARYBUILDER_OPENBLAS)$(USE_BINARYBUILDER_SUITESPARSE),11)
1190+
ifneq ($(USE_BINARYBUILDER_OPENBLAS)$(USE_BINARYBUILDER_LIBSUITESPARSE),11)
11911191
$(error "Attempting to build OpenBLAS or SuiteSparse without a functioning fortran compiler!")
11921192
endif
11931193
endif
@@ -1374,8 +1374,8 @@ endif
13741374
ifeq ($(USE_SYSTEM_BLAS),1)
13751375
# Since the names don't line up (`BLAS` vs. `OPENBLAS`), manually gate:
13761376
USE_BINARYBUILDER_OPENBLAS := 0
1377-
# Disable BB SuiteSparse if we're using system BLAS
1378-
USE_BINARYBUILDER_SUITESPARSE := 0
1377+
# Disable BB LIBSUITESPARSE if we're using system BLAS
1378+
USE_BINARYBUILDER_LIBSUITESPARSE := 0
13791379
endif
13801380

13811381
ifeq ($(USE_SYSTEM_LIBM),1)

Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ JL_PRIVATE_LIBS-0 += libjulia-internal-debug
171171
endif
172172
ifeq ($(USE_GPL_LIBS), 1)
173173
JL_PRIVATE_LIBS-0 += libsuitesparse_wrapper
174-
JL_PRIVATE_LIBS-$(USE_SYSTEM_SUITESPARSE) += libamd libbtf libcamd libccolamd libcholmod libcolamd libklu libldl librbio libspqr libsuitesparseconfig libumfpack
174+
JL_PRIVATE_LIBS-$(USE_SYSTEM_LIBSUITESPARSE) += libamd libbtf libcamd libccolamd libcholmod libcolamd libklu libldl librbio libspqr libsuitesparseconfig libumfpack
175175
endif
176176
JL_PRIVATE_LIBS-$(USE_SYSTEM_PCRE) += libpcre2-8
177177
JL_PRIVATE_LIBS-$(USE_SYSTEM_DSFMT) += libdSFMT
@@ -189,7 +189,7 @@ else
189189
JL_PRIVATE_LIBS-$(USE_SYSTEM_ZLIB) += libz
190190
endif
191191
ifeq ($(USE_LLVM_SHLIB),1)
192-
JL_PRIVATE_LIBS-$(USE_SYSTEM_LLVM) += libLLVM libLLVM-11jl
192+
JL_PRIVATE_LIBS-$(USE_SYSTEM_LLVM) += libLLVM libLLVM-12jl
193193
endif
194194
JL_PRIVATE_LIBS-$(USE_SYSTEM_LIBUNWIND) += libunwind
195195

NEWS.md

+16-2
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,18 @@ New language features
1111
as `.&&` and `.||`. ([#39594])
1212
* `` (U+2AEA, `\Top`, `\downvDash`) and `` (U+2AEB, `\Bot`, `\upvDash`, `\indep`)
1313
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])
1419

1520
Language changes
1621
----------------
1722

1823
* `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]].
1924
* 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).
2026
* Destructuring will no longer mutate values on the left hand side while iterating through values on the right hand side. In the example
2127
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]`
2228
because `x[2]` was mutated during the iteration of `x`. ([#40737])
@@ -44,10 +50,13 @@ New library functions
4450

4551
* Two argument methods `findmax(f, domain)`, `argmax(f, domain)` and the corresponding `min` versions ([#27613]).
4652
* `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]).
4755
* New macro `Base.@invokelatest f(args...; kwargs...)` provides a convenient way to call `Base.invokelatest(f, args...; kwargs...)` ([#37971])
4856
* Two arguments method `lock(f, lck)` now accepts a `Channel` as the second argument. ([#39312])
4957
* New functor `Returns(value)`, which returns `value` for any arguments ([#39794])
5058
* 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])
5160

5261
New library features
5362
--------------------
@@ -58,9 +67,11 @@ New library features
5867
Standard library changes
5968
------------------------
6069

70+
* Long strings are now elided using the syntax `"head" ⋯ 12345 bytes ⋯ "tail"` when displayed in the REPL ([#40736]).
6171
* `count` and `findall` now accept an `AbstractChar` argument to search for a character in a string ([#38675]).
6272
* `range` now supports the `range(start, stop)` and `range(start, stop, length)` methods ([#39228]).
6373
* `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])
6475
* `islowercase` and `isuppercase` are now compliant with the Unicode lower/uppercase categories ([#38574]).
6576
* `iseven` and `isodd` functions now support non-`Integer` numeric types ([#38976]).
6677
* `escape_string` can now receive a collection of characters in the keyword
@@ -88,6 +99,8 @@ Standard library changes
8899
```
89100
([#39322])
90101
* `@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]).
91104

92105
#### Package Manager
93106

@@ -101,6 +114,7 @@ Standard library changes
101114
* The shape of an `UpperHessenberg` matrix is preserved under certain arithmetic operations, e.g. when multiplying or dividing by an `UpperTriangular` matrix. ([#40039])
102115
* `cis(A)` now supports matrix arguments ([#40194]).
103116
* `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]).
104118

105119
#### Markdown
106120

@@ -118,7 +132,7 @@ Standard library changes
118132

119133
* new `sizehint!(::SparseMatrixCSC, ::Integer)` method ([#30676]).
120134
* `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]).
122136

123137
#### Dates
124138

@@ -146,7 +160,7 @@ Standard library changes
146160

147161
Deprecated or removed
148162
---------------------
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**)
150164

151165

152166
External dependencies

README.md

+4-7
Original file line numberDiff line numberDiff line change
@@ -144,10 +144,7 @@ Support for editing Julia is available for many
144144
[Sublime Text](https://github.com/JuliaEditorSupport/Julia-sublime), and many
145145
others.
146146

147-
Supported IDEs include: [Juno](http://junolab.org/) (Atom plugin),
148-
[julia-vscode](https://github.com/JuliaEditorSupport/julia-vscode) (VS
149-
Code plugin), and
150-
[julia-intellij](https://github.com/JuliaEditorSupport/julia-intellij)
151-
(IntelliJ IDEA plugin). The popular [Jupyter](https://jupyter.org/)
152-
notebook interface is available through
153-
[IJulia](https://github.com/JuliaLang/IJulia.jl).
147+
Supported IDEs include: [julia-vscode](https://github.com/JuliaEditorSupport/julia-vscode) (VS
148+
Code plugin), [Juno](http://junolab.org/) (Atom plugin). [Jupyter](https://jupyter.org/)
149+
notebooks are available through the [IJulia](https://github.com/JuliaLang/IJulia.jl) package, and
150+
[Pluto](https://github.com/fonsp/Pluto.jl) notebooks through the Pluto.jl package.

base/Makefile

+8-8
Original file line numberDiff line numberDiff line change
@@ -218,14 +218,14 @@ $(eval $(call symlink_system_library,LIBSSH2,libssh2))
218218
$(eval $(call symlink_system_library,NGHTTP2,libnghttp2))
219219
$(eval $(call symlink_system_library,CURL,libcurl))
220220
$(eval $(call symlink_system_library,LIBGIT2,libgit2))
221-
$(eval $(call symlink_system_library,SUITESPARSE,libamd))
222-
$(eval $(call symlink_system_library,SUITESPARSE,libcamd))
223-
$(eval $(call symlink_system_library,SUITESPARSE,libccolamd))
224-
$(eval $(call symlink_system_library,SUITESPARSE,libcholmod))
225-
$(eval $(call symlink_system_library,SUITESPARSE,libcolamd))
226-
$(eval $(call symlink_system_library,SUITESPARSE,libumfpack))
227-
$(eval $(call symlink_system_library,SUITESPARSE,libspqr))
228-
$(eval $(call symlink_system_library,SUITESPARSE,libsuitesparseconfig))
221+
$(eval $(call symlink_system_library,LIBSUITESPARSE,libamd))
222+
$(eval $(call symlink_system_library,LIBSUITESPARSE,libcamd))
223+
$(eval $(call symlink_system_library,LIBSUITESPARSE,libccolamd))
224+
$(eval $(call symlink_system_library,LIBSUITESPARSE,libcholmod))
225+
$(eval $(call symlink_system_library,LIBSUITESPARSE,libcolamd))
226+
$(eval $(call symlink_system_library,LIBSUITESPARSE,libumfpack))
227+
$(eval $(call symlink_system_library,LIBSUITESPARSE,libspqr))
228+
$(eval $(call symlink_system_library,LIBSUITESPARSE,libsuitesparseconfig))
229229
# EXCLUDED LIBRARIES (installed/used, but not vendored for use with dlopen):
230230
# libunwind
231231
endif # WINNT

0 commit comments

Comments
 (0)