Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update upstream 43bf2c8 #21

Merged
merged 320 commits into from
Sep 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
320 commits
Select commit Hold shift + click to select a range
4ef9fb1
When adopting a thread, spin until GC isn't running. (#49934)
maleadt May 26, 2023
666d325
Fix conversion of infinities to integers (#49624)
tjgrhm May 26, 2023
23e0b2d
Hide safepoint prologue and CFI instructions from reflection. (#49948)
maleadt May 26, 2023
ba1391a
some minor hygiene fixes (#49897)
vtjnash May 26, 2023
f8dd16e
Add Libc methods for memmove/memcpy/memset/memcmp (#49550)
Tokazama May 26, 2023
ba2aa30
Enum: fix stackoverflow in `hash` for custom enum subtypes introduced…
stev47 May 26, 2023
fb3df69
Improve error when indexing is interpreted as a typed comprehension (…
romaindegivry May 26, 2023
e727afb
Move reflection documentation from devdocs to base (#47800)
LilithHafner May 27, 2023
248ceda
Abbreviate varinfo signature and re-order for consistency (#48860)
LilithHafner May 27, 2023
0d5bd2f
Add missing code formatting (#49983)
navidcy May 29, 2023
1cc10a6
refactor `Base.StackTraces.show_spec_linfo` (#49951)
aviatesk May 29, 2023
957972e
Expose the Julia JIT with a C API (#49858)
gbaraldi May 29, 2023
18d02c2
Use `top_set_bit` to optimize `hash(Real)` (#49986)
LilithHafner May 29, 2023
ed5bd4c
Revert "Use `top_set_bit` to optimize `hash(Real)` (#49986)" (#49993)
aviatesk May 30, 2023
20752db
thread safety: lock around atexit_hooks global (#49868)
NHDaly May 30, 2023
f6f637a
cleanup: some fixes from effort to break up monolithic sysimg build (…
vtjnash May 30, 2023
bd5e6da
fix atomic intrinsics implementation issues (#49967)
vtjnash May 30, 2023
c63feee
show: fix printing of "function (x...) end" (#49874)
zickgraf May 30, 2023
318f0ea
docs: first describe simple `read` and `write` without streaming (#49…
fonsp May 30, 2023
d912d85
doc: simple docstring for `read(filename::AbstractString)` (#49836)
fonsp May 30, 2023
84bf67c
Support sorting iterators (#46104)
LilithHafner May 30, 2023
c3a08fe
Makefile: For gcanalyze, use Clang's CFLAGS not GCC's
topolarity May 30, 2023
7e25ebf
🤖 [master] Bump the Pkg stdlib from daf02a458 to 9c01707a2 (#50005)
DilumAluthgeBot May 31, 2023
ca3270b
lowering: apply let hygiene in let environment (#49999)
vtjnash May 31, 2023
da98f54
move `jl_timing_apply_env` to a later place where it uses initialized…
May 31, 2023
b050ca9
only add an entry for `METHOD_MATCH` if it does some work
May 31, 2023
faca5bd
disable `TYPE_CACHE_INSERT` profile zone by default
May 31, 2023
d5145de
fix and test sorting arrays with >1 dimension and custom `similar` (#…
LilithHafner May 31, 2023
d3d09c1
add a timing zone for `call_require` (#49723)
KristofferC May 31, 2023
9b27a8f
errorshow: simplify printing of keyword argument types using a new ma…
aviatesk May 31, 2023
dd44113
add `@inline` annotation to `Core.Compiler.specialize_method` (#50015)
aviatesk May 31, 2023
28630ee
Merge pull request #50002 from topolarity/clangsa-gcc-error
staticfloat May 31, 2023
e4cf096
Merge pull request #50010 from JuliaLang/kc/profiling_changes
KristofferC May 31, 2023
304e9a0
Add GC metric `last_full_sweep` (#50018)
kpamnany May 31, 2023
e0761b3
inlining: some refactoring on the inlining code (#50016)
aviatesk Jun 1, 2023
f61bbfb
Some mailmap updates (#49997)
StefanKarpinski Jun 1, 2023
cb0537f
timing: Allocate all timing events dynamically
topolarity May 19, 2023
5850227
Add timing event locks + de-duplicate ITTAPI events
topolarity May 25, 2023
3b90d5e
Use `jl_timing_set_enable` instead of `DISABLE_SUBSYSTEM`
topolarity May 26, 2023
3c915f3
Sort jl_timing counts events before printing
topolarity May 26, 2023
a35e53d
Merge pull request #49901 from topolarity/julia-side-timing
topolarity Jun 2, 2023
be2c35a
mention `Cmd(::Vector{String})` in `Cmd` docstring (#49684)
sjkelly Jun 2, 2023
0efb7c5
add docs for `Base.shred!` (#50032)
sjkelly Jun 2, 2023
f09e46d
add Compiler diagram (#49893)
sjkelly Jun 2, 2023
1961019
Optimize top_set_bit(::BigInt) and hash(::Real) (#49996)
LilithHafner Jun 2, 2023
f4a264a
Rename LLVM passes to be suffixed with Pass (#50043)
pchintalapudi Jun 2, 2023
c3d70e8
Update Printf.jl reference link (#50029)
cmcaine Jun 3, 2023
0c774c7
fix empty string error in Printf (#50011)
aplavin Jun 3, 2023
ff23b37
add docs on task migration (#50047)
IanButterworth Jun 4, 2023
f407a4c
inlining: allow callsite inlining with cached results (#50048)
aviatesk Jun 4, 2023
3c29942
Remove printlns from test/atexit.jl (#50066)
NHDaly Jun 5, 2023
270a1d8
Docs: simple docstring for `write(filename::AbstractString, x)` (#49835)
fonsp Jun 5, 2023
3051f47
Use xchg to swap boxed values (#45147)
tkf Jun 5, 2023
32e2986
Add LLVMExtra stubs for newpm (#50042)
pchintalapudi Jun 5, 2023
c16891d
Atomic pointer operations APIs (#49811)
Tokazama Jun 5, 2023
112554e
[test] Automatically install `llvm-tools` when runnning `llvmpasses` …
giordano Jun 6, 2023
1bb3d26
🤖 [master] Bump the Pkg stdlib from 9c01707a2 to 4de1826bc (#50078)
DilumAluthgeBot Jun 6, 2023
53bcb39
Fixup `hash(::Real)` broken by #49996 (#50067)
LilithHafner Jun 6, 2023
4d2f35e
Update URL for "lexical scoping" (#50085)
moble Jun 6, 2023
e1c0d83
Prevent registering static FASTTLS with multiple libjulias
topolarity Jun 2, 2023
c3ea5dc
fix `hash(::BigInt)` on 32 bit systems (#50076)
oscardssmith Jun 6, 2023
bbbe8c3
missing: improve effects for some missing operations (#50080)
aviatesk Jun 6, 2023
e111c01
add default order for atomics to docstring (#50086)
vchuravy Jun 6, 2023
0b47546
array: make `DimensionMismatch` lazy-string friendly (#50079)
aviatesk Jun 7, 2023
dbd82a4
Update newpm pass pipeline (#49747)
pchintalapudi Jun 7, 2023
36c5953
More `hash` optimization (#50041)
oscardssmith Jun 7, 2023
13e40af
Skip flakey tests in CI (#50071)
LilithHafner Jun 7, 2023
d7d7ffa
Invoke the passbuilder's extension point callbacks when possible (#50…
pchintalapudi Jun 7, 2023
1f174a6
Fix typo in CONTRIBUTING.md (#50104)
LilithHafner Jun 7, 2023
2e76fc4
Update return type in collect(::Dict) docs (#50056)
jishnub Jun 7, 2023
4200aa9
Unify and split the pass pipeline (#49798)
pchintalapudi Jun 7, 2023
2c80455
Revert "allow artifact string macro to take an explicit path to the a…
lgoettgens Jun 8, 2023
0a2d6fc
Don't use exchange in the hot path of the GC (#50021)
gbaraldi Jun 8, 2023
c4d162e
mkpidlock: clarify that stale_age is given in seconds (#50014)
fingolfin Jun 8, 2023
746a15b
Fail gracefully when attempting pair destructuring (#49368)
LilithHafner Jun 8, 2023
7ceea13
Update Unicode.jl (#50087)
eschnett Jun 9, 2023
d041162
Update mailmap (#50116)
ViralBShah Jun 9, 2023
43d7f88
effects: audit `EFFECTS_UNKNOWN` usages (#50106)
aviatesk Jun 9, 2023
2584b59
Fill zeros only if necessary in `Matrix(::Diagonal)` and friends (#50…
jishnub Jun 9, 2023
f8827f1
Structured display for adjoint/transpose (#49979)
jishnub Jun 9, 2023
feaea22
print the skipping bytes notification when skipping printing parts of…
KristofferC Jun 9, 2023
59bf9e8
use a fixed world for code loading (#49525)
KristofferC Jun 9, 2023
0919cba
Fix typo in calling-c-and-fortran-code.md (#50121)
Hodapp87 Jun 9, 2023
a31c8ef
inlining: fix the `joint_effects` calculation (#50117)
aviatesk Jun 10, 2023
c58e508
fix(docs): typo in code-loading (#50123)
kunzaatko Jun 10, 2023
a81398f
[CompilerSupportLibraries_jll] Upgrade to v1.0.5 (#50135)
giordano Jun 11, 2023
75bda64
speed up expansion and lowering of ccall macro (#50077)
JeffBezanson Jun 12, 2023
d69b1a2
Add check call to getrf! (#50134)
ChrisRackauckas Jun 12, 2023
bf9bbb2
Add doc string for reflectorApply! (#50081)
dlfivefifty Jun 12, 2023
970941c
effects: allow concrete-eval when `--check-bounds=no` if proven "safe…
aviatesk Jun 12, 2023
c3cd3eb
Fix refcount violation for pending_nodes
Keno Jun 13, 2023
0083a04
Fix refcount violations in new ifelse sroa lifting
Keno Jun 13, 2023
061401e
Merge pull request #50150 from JuliaLang/kf/refkillissues
staticfloat Jun 13, 2023
7cd7a1b
Enable JITLink in aarch64 linux. (#49745)
giordano Jun 13, 2023
f007c01
fix `array_builtin_common_nothrow` for `arrayref` (#50152)
aviatesk Jun 13, 2023
0d89d8b
Test: support multiple assignments for `@testset let` (#50151)
aviatesk Jun 13, 2023
97f445e
Update cli/loader_lib.c
topolarity Jun 13, 2023
320e00d
lowering: try to ignore special metadata nodes in tail position (#49963)
vtjnash Jun 13, 2023
9d839f9
Refactor irinterp refinement logic (#50155)
Keno Jun 13, 2023
84fc130
Merge pull request #50083 from topolarity/fasttls-semaphore
topolarity Jun 13, 2023
82c89c6
Lookup libraries in `libjulia-*` before `jl_exe_handle`
topolarity Jun 13, 2023
03c4bc1
Promote objects more eagerly (#49644)
d-netto Jun 14, 2023
8a1b642
Add method to rationalize `Rational` (#43427)
tantheta01 Jun 14, 2023
1af6648
Use `-shared-libasan` when linking w/ ASAN enabled.
topolarity Jun 14, 2023
df09f67
irverify: Enforce invariant that PhiNodes are at the beginning of a B…
Keno Jun 14, 2023
834aad4
Add (broken) tests for allocation in 5-arg mul!() (#49210)
amilsted Jun 14, 2023
0fb86dd
Fix `rationalize(::Complex)` test on 32 bit systems (#50163)
oscardssmith Jun 14, 2023
abbe045
FAQ: Clarify use of PROGRAM_FILE for importable scripts (#50139)
jakobnissen Jun 14, 2023
9e43494
Compile JITLink for every platform (#50099)
pchintalapudi Jun 14, 2023
a595274
Fixed small typo in `map`'s docstring (#50173)
jotas6 Jun 15, 2023
5db2c27
Add marker passes to various pipeline stages (#50111)
pchintalapudi Jun 15, 2023
0f26966
Make sure Core.Compiler can throw kwarg mismatch errors (#50174)
Keno Jun 15, 2023
62e57f7
Merge branch 'master' into master
oscardssmith Jun 15, 2023
0b87d95
Use in-place operations where appropriate (#50119)
sjkelly Jun 15, 2023
9d1ac97
Allow unquoted symbols for threadpool in `Threads.@spawn` (#50182)
IanButterworth Jun 15, 2023
0aa93e3
fix missing punctuation in docs (#50126)
sciprosk Jun 15, 2023
432f300
Remove xsaves from Zen cpuspec (#50186)
vchuravy Jun 15, 2023
71c5115
Export jl_method_set_source. (#49236)
maleadt Jun 16, 2023
631d187
codegen: pass the pgcstack as an argument to specsig calls (#50093)
gbaraldi Jun 16, 2023
c5b0a6c
pidlock cache file precompilation (#49052)
IanButterworth Jun 16, 2023
ba251e8
Fix sorting bugs (esp `MissingOptimization`) that come up when using …
LilithHafner Jun 16, 2023
1983b8d
Make `deps/llvm.mk` `USECCACHE`-friendly
giordano Jun 12, 2023
b1aad4d
Deal with `USECCACHE` in `CMAKE_COMMON`
giordano Jun 16, 2023
f0881ef
Pass through world age for kwargs MethodError
Keno Jun 16, 2023
18dd7a2
Don't color Any... red if the method actually matched
Keno Jun 16, 2023
fd1cec2
Improve effects for Base.fieldindex (#50199)
Keno Jun 17, 2023
b6902ae
Make incomplete_tag extensible
c42f May 24, 2023
9e7bb12
Add `Meta.ParseError` detail field
c42f May 24, 2023
1a6cd97
Only wrap Strings in Meta.ParseError
c42f May 24, 2023
8caba95
Show top level location for any `exc` in `eval(Expr(:error, exc))`
c42f May 26, 2023
964f0d6
Pass Int rather than UInt as lengths to core parser hook
c42f May 28, 2023
2d68286
Fix string escaping in REPL completion of paths
c42f May 27, 2023
60bf0b6
Enable JuliaSyntax.jl as the defult parser
c42f May 24, 2023
65523e4
Add some JIT docs (#50168)
pchintalapudi Jun 17, 2023
fde8692
Merge branch 'master' into cjf/juliasyntax-stdlib
oscardssmith Jun 17, 2023
9501540
Merge pull request #50201 from JuliaLang/kf/metherrworldage
Keno Jun 18, 2023
41e8d7f
[build] Allow automatically applying Julia's patches to LLVM source
giordano Jun 18, 2023
90521dd
Emphasize the default base of multiversioning in the documentation, a…
pchintalapudi Jun 19, 2023
f555b4b
Tweak cache pidlocking (#50214)
IanButterworth Jun 19, 2023
da9cc1a
Expose the newpm pipeline to a C api (#50210)
pchintalapudi Jun 19, 2023
690a5f6
Thread through lattice in a couple more places (#50216)
Keno Jun 19, 2023
d8a4810
Merge branch 'master' into cjf/juliasyntax-stdlib
oscardssmith Jun 19, 2023
82ab124
Merge pull request #46372 from JuliaLang/cjf/juliasyntax-stdlib
oscardssmith Jun 19, 2023
427b123
Merge pull request #46410 from dalum/master
oscardssmith Jun 19, 2023
0da46e2
Name LLVM variables from codegen (#50094)
pchintalapudi Jun 20, 2023
a74e9f9
Install `libclang_rt.asan-<arch>` properly
topolarity Jun 20, 2023
d48e17b
Don't reverse! load_path cache
Keno Jun 20, 2023
e2b0f66
Merge branch 'master' into dlfind-search-order
topolarity Jun 20, 2023
a8ef873
Merge pull request #50230 from JuliaLang/kf/dontreversecache
staticfloat Jun 20, 2023
9032926
Throw precompilation error if dependency load failure during incremen…
staticfloat Jun 20, 2023
4195a0e
Merge pull request #50232 from JuliaLang/sf/dont_precompile_multiple_…
staticfloat Jun 20, 2023
a40cb96
Merge pull request #50162 from topolarity/dlfind-search-order
vtjnash Jun 20, 2023
5098646
LICENSE.md: update copyright years
fingolfin Jun 20, 2023
71a6a32
Merge pull request #50240 from fingolfin/patch-1
staticfloat Jun 20, 2023
95749c3
Avoid creating invalid PhiNodes in IR passes (#50235)
Keno Jun 21, 2023
94dd5cf
compiler: add few more type annotations (#50242)
aviatesk Jun 21, 2023
4f0216a
Clear specsigflags correctly for copied code instance (#50238)
topolarity Jun 21, 2023
8d0d012
Merge pull request #50208 from giordano/mg/external-llvm-patches
staticfloat Jun 21, 2023
e7d00e1
[LibGit2] fix wrong definition of ConfigStruct (#50247)
vtjnash Jun 21, 2023
fbb8d6c
Bump JuliaSyntax to 0.4.5 (#50253)
c42f Jun 22, 2023
a34ff20
allow `Meta.parse` to take optional `filename` argument (#50224)
aviatesk Jun 22, 2023
de7670e
Correct the documentation for `pkgdir`. (#50255)
gafter Jun 22, 2023
ad120f4
Fix jl_gc_internal_obj_base_ptr segfault regression (#50231)
fingolfin Jun 22, 2023
49ac54a
Fix ITTAPI for offline build of LLVM
kpamnany Jun 21, 2023
8af82ea
Set `CMAKE_INSTALL_LIBDIR` for non-Windows platforms
kpamnany Jun 21, 2023
ef6d900
codegen: handle dead code with unsafe_store of FCA pointers (#50164)
vtjnash Jun 22, 2023
330c79d
Add note to `load_path` docstring stating that it is not safe to muta…
LilithHafner Jun 22, 2023
ec33194
Remove type_lift_pass!/OptimizerLattice (#50257)
Keno Jun 22, 2023
07f0525
Tweak cache pidlocking pt. 2 (#50254)
IanButterworth Jun 22, 2023
a8d76c6
typeintersect: fix `constraintkind` for non-covariant var (#50209)
N5N3 Jun 22, 2023
7785db7
Check that we don't name LLVM constants (#50263)
pchintalapudi Jun 22, 2023
d138701
Merge pull request #50264 from JuliaLang/kp/fix-full-build
vchuravy Jun 22, 2023
c0f623d
Small fix to running-external-programs.md (#50220)
cadojo Jun 22, 2023
85f19de
Document JULIA_CPU_TARGET in environment-variables.md (#50147)
mkitti Jun 23, 2023
7b565e3
Run llvmpasses tests with opaque pointers (#50266)
pchintalapudi Jun 23, 2023
c59468a
Limit memory use during 32bit build (#50272)
vchuravy Jun 24, 2023
f2c6580
`SuiteSparse_jll`: only`dlopen` the libraries if `Base.USE_GPL_LIBS` …
DilumAluthge Jun 24, 2023
fdc50d8
Update docstring for `StackFrame.linfo` (#49971)
Pangoraw Jun 24, 2023
406ba12
add handling of `sqrt()` function for empty matrices (#50270)
vmpyr Jun 24, 2023
5939e2d
Improve scalability of page allocator (#50137)
d-netto Jun 25, 2023
dd1f03d
Mild `AbstractQ` review and refactoring (#49714)
dkarrasch Jun 25, 2023
39a4013
Fix indexing error in TwoPhaseDefUseMap (#50280)
Keno Jun 25, 2023
879f6d4
SROA: re-compute the type for inserted phi nodes (#50287)
Keno Jun 25, 2023
ed338d0
lattice: Restore `tmerge_fast_path` for optimizer lattice (#50291)
Keno Jun 26, 2023
d01b8cd
Add type assertion to inner HermOrSym constructor (#50282)
dkarrasch Jun 26, 2023
aa9b9d0
compact: Propagate IR_FLAG_REFINED (#50286)
Keno Jun 26, 2023
0d52f8d
SROA (mutable): re-compute the type for inserted phi nodes (#50294)
aviatesk Jun 26, 2023
48c92c1
initialize prev_nold and nold in gc_reset_page (#50289)
d-netto Jun 26, 2023
8630576
Reduce memory usage during image build (#50237)
pchintalapudi Jun 26, 2023
269d350
Remove obsolete admonition from asyncmap docsttring (#50297)
fingolfin Jun 26, 2023
76c906e
Remove unnecessary methods for `CartesianIndices` (#50258)
jishnub Jun 27, 2023
fc8b700
Docs: Bang has other meaning for IO and RNG functions (#50138)
jakobnissen Jun 27, 2023
6f26e4f
Throw on non-promotion in fallback `UnitRange` constructor (#50292)
jishnub Jun 27, 2023
0e147eb
irinterp: Add handling for :throw_undef_if_not (#50303)
Keno Jun 27, 2023
3b854f4
Fix uniquerep predicate in codegen (#50295)
Keno Jun 27, 2023
290c619
AllocOpt: Handle objref with no preserve_end in a single block. (#50277)
Pangoraw Jun 27, 2023
ba0e484
Add section about multithreaded linear algebra to performance tips (#…
gdalle Jun 27, 2023
be1d11a
Fix memoryssa preservation bug
pchintalapudi Jun 27, 2023
5ea7f0b
Add some memoryssa preservation tests
pchintalapudi Jun 27, 2023
f5faa08
Fix small bug in memorydef for memset
pchintalapudi Jun 27, 2023
9dc2991
implement concurrent sweeping (#48969)
d-netto Jun 28, 2023
014f8de
Align meaning for effects and IR flags (#50313)
Keno Jun 28, 2023
5c070f4
Rework symmetric generalized `eigen`/`eigvals` (#49673)
aravindh-krishnamoorthy Jun 28, 2023
1177b54
Merge pull request #50315 from JuliaLang/pc/fix-mssa-preserve
vchuravy Jun 28, 2023
196956d
Replace `julia` with Julia in faq when referring to the language. (#5…
LilithHafner Jun 28, 2023
850dd87
Reword "how does Julia define its public API" [NFC] (#50324)
LilithHafner Jun 28, 2023
e6d67a7
Merge pull request #50146 from JuliaLang/mg/llvm-ccache
staticfloat Jun 28, 2023
00191c0
Revert "Add mutating `stat!` function for non-allocating filesystem `…
KristofferC Jun 28, 2023
d67b899
initialize jl_n_markthreads and jl_n_sweepthreads to be consistent wi…
d-netto Jun 28, 2023
4e0da0d
fix `compatible_vatuple` (#50331)
aviatesk Jun 28, 2023
663c58d
Change SIMD Loop from Fast to only reassoc/contract (#49405)
vchuravy Jun 28, 2023
cf34aa2
Round-trip reinterpret of all isbits types (#47116)
BioTurboNick Jun 29, 2023
cb6d0f2
invokelatest docs should say not exported before 1.9 (#50341)
stevengj Jun 29, 2023
7eb358e
doc fix for @invokelatest (#50342)
stevengj Jun 29, 2023
e4600c5
Relax constraints on the PHI block (#50308)
Keno Jun 29, 2023
6174056
macOS <=10.14: move build flags to OSLIBS (#50017)
benz0li Jun 29, 2023
6d400e4
Makefile: Add support for symbol versioning (ON by default) (#49012)
topolarity Jun 29, 2023
5db930e
optimize: Handle path-excluded `Core.ifelse` arguments (#50312)
topolarity Jun 29, 2023
f6f3553
add `Base.isprecompiled(pkg::PkgId)` (#50218)
IanButterworth Jun 29, 2023
3ddceee
Fall bad generated functions back to interpreter (#50348)
Keno Jun 29, 2023
3d7aa6e
Remove broken conversion of `@fastmath x[i] += 1` (#50347)
LilithHafner Jun 29, 2023
02f80c6
Add docs on task-specific buffering using multithreading (#48542)
IanButterworth Jun 30, 2023
0e8af1c
AbstractInterpreter: Refactor `abstract_call` to be more overload-fri…
aviatesk Jun 30, 2023
eeb0b69
Fix typos in 2x2 matmatmul (#50362)
dkarrasch Jun 30, 2023
b303d0e
Also set the nthreads for the threadpools during bootstrap (#50358)
gbaraldi Jun 30, 2023
734cafa
Remove `new BitCastInst` unless it's in a typed pointer context (#50338)
pchintalapudi Jun 30, 2023
934cab6
Add escape hatch to avoid demoting float16 operations for unknown arc…
pchintalapudi Jun 30, 2023
530113f
ensure objects beyond bump allocated region are inserted into the obj…
d-netto Jun 30, 2023
8fc641c
Fix typos in symmetric eigendecomposition code (#50366)
dkarrasch Jun 30, 2023
92437c2
Move ccall tests to node 1 (#50350)
gbaraldi Jun 30, 2023
196a5b4
use a single uv_cond_t to coordinate wakeup of GC threads (#50339)
d-netto Jun 30, 2023
a40dec1
sroa: Mark dead setfields as EFFECT_FREE (#50373)
Keno Jun 30, 2023
36a39b0
add note to CONTRIBUTING.md about making issues and PR names self exp…
IanButterworth Jul 1, 2023
27e21c8
`hvncat`: Added inbounds annotations that improve performance (#41200)
BioTurboNick Jul 1, 2023
36e188f
Parse pass options in opt/PassBuilder (#50383)
pchintalapudi Jul 1, 2023
6336f68
🤖 [master] Bump the Pkg stdlib from 4de1826bc to e8197dd0e (#50388)
DilumAluthgeBot Jul 2, 2023
ecca2c5
Expose PassBuilder callback registration via C api (#50390)
pchintalapudi Jul 2, 2023
43bf2c8
ensure GC_FINAL_STATS is consistent with new page metadata layout (#5…
d-netto Jul 2, 2023
d4c37cb
Merge remote-tracking branch 'upstream/master' into update-upstream-4…
qinsoon Jul 3, 2023
337c276
Merge branch 'master' into update-upstream-43bf2c8
qinsoon Jul 3, 2023
05c42dd
Notify GC when loading pkg image
qinsoon Jul 3, 2023
b472648
Merge branch 'master' into update-upstream-43bf2c8
qinsoon Aug 15, 2023
fdada6c
Fix some build issues
qinsoon Aug 21, 2023
27fc101
Apply lock before schedule finalizers
qinsoon Aug 22, 2023
e591ad8
Fixing issue when setting up the number of stock GC threads - it shou…
udesou Aug 22, 2023
00bab46
Fixing issue that prevented building Julia or running tests with Juli…
udesou Aug 9, 2023
8eab37d
Add write barrier for excstack update
qinsoon Aug 28, 2023
d0cbd13
Revert "Apply lock before schedule finalizers"
qinsoon Aug 29, 2023
8d0d8b5
Revert "Fixing issue when setting up the number of stock GC threads -…
qinsoon Aug 29, 2023
c8543de
Merge branch 'master' into update-upstream-43bf2c8
qinsoon Aug 31, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
/source-dist.tmp
/source-dist.tmp1

*.expmap
*.exe
*.dll
*.dwo
Expand Down
12 changes: 12 additions & 0 deletions .mailmap
Original file line number Diff line number Diff line change
Expand Up @@ -283,3 +283,15 @@ Daniel Karrasch <[email protected]> <[email protected]>

Roger Luo <[email protected]> <[email protected]>
Roger Luo <[email protected]> <[email protected]>

Frames Catherine White <[email protected]> <[email protected]>
Frames Catherine White <[email protected]> <[email protected]>
Frames Catherine White <[email protected]> <[email protected]>

Claire Foster <[email protected]> <[email protected]>

Jishnu Bhattacharya <[email protected]> <[email protected]>
Jishnu Bhattacharya <[email protected]> <[email protected]>

Shuhei Kadowaki <[email protected]> <[email protected]>
Shuhei Kadowaki <[email protected]> <[email protected]>
11 changes: 9 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,14 @@ At the moment, this should always be done with the following `compat` admonition

*By contributing code to Julia, you are agreeing to release it under the [MIT License](https://github.com/JuliaLang/julia/tree/master/LICENSE.md).*

The Julia community uses [GitHub issues](https://github.com/JuliaLang/julia/issues) to track and discuss problems, feature requests, and pull requests (PR). You can make pull requests for incomplete features to get code review. The convention is to prefix the pull request title with "WIP:" for Work In Progress, or "RFC:" for Request for Comments when work is completed and ready for merging. This will prevent accidental merging of work that is in progress.
The Julia community uses [GitHub issues](https://github.com/JuliaLang/julia/issues) to track and discuss problems, feature requests, and pull requests (PR).

Issues and pull requests should have self explanatory titles such that they can be understood from the list of PRs and Issues.
i.e. `Add {feature}` and `Fix {bug}` are good, `Fix #12345. Corrects the bug.` is bad.

You can make pull requests for incomplete features to get code review. The convention is to open these a draft PRs and prefix
the pull request title with "WIP:" for Work In Progress, or "RFC:" for Request for Comments when work is completed and ready
for merging. This will prevent accidental merging of work that is in progress.

Note: These instructions are for adding to or improving functionality in the base library. Before getting started, it can be helpful to discuss the proposed changes or additions on the [Julia Discourse forum](https://discourse.julialang.org) or in a GitHub issue---it's possible your proposed change belongs in a package rather than the core language. Also, keep in mind that changing stuff in the base can potentially break a lot of things. Finally, because of the time required to build Julia, note that it's usually faster to develop your code in stand-alone files, get it working, and then migrate it into the base libraries.

Expand Down Expand Up @@ -325,7 +332,7 @@ please remove the `backport-X.Y` tag from the originating pull request for the c
- use lower case with underscores for method names
- it is generally preferred to use ASCII operators and identifiers over
Unicode equivalents whenever possible
- in docstring refer to the language as "Julia" and the executable as "`julia`"
- in docstrings refer to the language as "Julia" and the executable as "`julia`"

#### General Formatting Guidelines For C code contributions

Expand Down
2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2009-2022: Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors: https://github.com/JuliaLang/julia/contributors
Copyright (c) 2009-2023: Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors: https://github.com/JuliaLang/julia/contributors

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
Expand Down
88 changes: 60 additions & 28 deletions Make.inc
Original file line number Diff line number Diff line change
Expand Up @@ -191,15 +191,17 @@ JULIA_MINOR_VERSION := $(shell echo $(JULIA_VERSION) | cut -d'-' -f 1 | cut -d'.
JULIA_PATCH_VERSION := $(shell echo $(JULIA_VERSION) | cut -d'-' -f 1 | cut -d'+' -f 1 | cut -d'.' -f 3)

# libjulia's SONAME will follow the format libjulia.so.$(SOMAJOR). Before v1.0.0,
# SOMAJOR will be a two-decimal value, e.g. libjulia.so.0.5, whereas at and beyond
# v1.0.0, SOMAJOR will be simply the major version number, e.g. libjulia.so.1
# somajor was a two-decimal value (e.g. libjulia.so.0.5). During v1.0.x - v1.9.x,
# somajor was simply the major version number (e.g. libjulia.so.1). Starting in
# v1.10.0, somajor is major.minor again (e.g. libjulia.so.1.10)
# The file itself will ultimately symlink to libjulia.so.$(SOMAJOR).$(SOMINOR)
ifeq ($(JULIA_MAJOR_VERSION),0)
SOMAJOR := $(JULIA_MAJOR_VERSION).$(JULIA_MINOR_VERSION)
SOMINOR := $(JULIA_PATCH_VERSION)
else
SOMAJOR := $(JULIA_MAJOR_VERSION)
SOMINOR := $(JULIA_MINOR_VERSION)

# This suffix affects libjulia's SONAME and the symbol version associated with
# all of its exported symbols.
ifdef SYMBOL_VERSION_SUFFIX
SOMAJOR := $(SOMAJOR)_$(SYMBOL_VERSION_SUFFIX)
endif

ifneq ($(NO_GIT), 1)
Expand Down Expand Up @@ -489,37 +491,61 @@ MACOSX_VERSION_MIN := 11.0
endif
endif

ifeq ($(USEGCC),1)
CC := $(CROSS_COMPILE)gcc
CXX := $(CROSS_COMPILE)g++
JCFLAGS := -std=gnu11 -pipe $(fPIC) -fno-strict-aliasing -D_FILE_OFFSET_BITS=64
JCFLAGS_COMMON := -std=gnu11 -pipe $(fPIC) -fno-strict-aliasing -D_FILE_OFFSET_BITS=64
JCFLAGS_CLANG := $(JCFLAGS_COMMON)
JCFLAGS_GCC := $(JCFLAGS_COMMON) -fno-gnu-unique

# AArch64 needs this flag to generate the .eh_frame used by libunwind
JCPPFLAGS := -fasynchronous-unwind-tables
JCXXFLAGS := -pipe $(fPIC) -fno-rtti -std=c++14
JCPPFLAGS_COMMON := -fasynchronous-unwind-tables
JCPPFLAGS_CLANG := $(JCPPFLAGS_COMMON)
JCPPFLAGS_GCC := $(JCPPFLAGS_COMMON)

JCXXFLAGS_COMMON := -pipe $(fPIC) -fno-rtti -std=c++14
JCXXFLAGS_CLANG := $(JCXXFLAGS_COMMON) -pedantic
JCXXFLAGS_GCC := $(JCXXFLAGS_COMMON) -fno-gnu-unique

DEBUGFLAGS_COMMON := -O0 -DJL_DEBUG_BUILD -fstack-protector
DEBUGFLAGS_CLANG := $(DEBUGFLAGS_COMMON) -g
DEBUGFLAGS_GCC := $(DEBUGFLAGS_COMMON) -ggdb2

SHIPFLAGS_COMMON := -O3
SHIPFLAGS_CLANG := $(SHIPFLAGS_COMMON) -g
SHIPFLAGS_GCC := $(SHIPFLAGS_COMMON) -ggdb2 -falign-functions

ifeq ($(OS), Darwin)
JCPPFLAGS_CLANG += -D_LARGEFILE_SOURCE -D_DARWIN_USE_64_BIT_INODE=1
endif

ifneq ($(OS), WINNT)
# Do not enable on windows to avoid warnings from libuv.
JCXXFLAGS += -pedantic
JCXXFLAGS_GCC += -pedantic
endif
DEBUGFLAGS := -O0 -ggdb2 -DJL_DEBUG_BUILD -fstack-protector
SHIPFLAGS := -O3 -ggdb2 -falign-functions

ifeq ($(USEGCC),1)
CC := $(CROSS_COMPILE)gcc
CXX := $(CROSS_COMPILE)g++
JCFLAGS := $(JCFLAGS_GCC)
JCPPFLAGS := $(JCPPFLAGS_GCC)
JCXXFLAGS := $(JCXXFLAGS_GCC)
DEBUGFLAGS := $(DEBUGFLAGS_GCC)
SHIPFLAGS := $(SHIPFLAGS_GCC)
endif

ifeq ($(USECLANG),1)
CC := $(CROSS_COMPILE)clang
CXX := $(CROSS_COMPILE)clang++
JCFLAGS := -std=gnu11 -pipe $(fPIC) -fno-strict-aliasing -D_FILE_OFFSET_BITS=64
# AArch64 needs this flag to generate the .eh_frame used by libunwind
JCPPFLAGS := -fasynchronous-unwind-tables
JCXXFLAGS := -pipe $(fPIC) -fno-rtti -pedantic -std=c++14
DEBUGFLAGS := -O0 -g -DJL_DEBUG_BUILD -fstack-protector
SHIPFLAGS := -O3 -g
CC := $(CROSS_COMPILE)clang
CXX := $(CROSS_COMPILE)clang++
JCFLAGS := $(JCFLAGS_CLANG)
JCPPFLAGS := $(JCPPFLAGS_CLANG)
JCXXFLAGS := $(JCXXFLAGS_CLANG)
DEBUGFLAGS := $(DEBUGFLAGS_CLANG)
SHIPFLAGS := $(SHIPFLAGS_CLANG)

ifeq ($(OS), Darwin)
CC += -mmacosx-version-min=$(MACOSX_VERSION_MIN)
CXX += -mmacosx-version-min=$(MACOSX_VERSION_MIN)
FC += -mmacosx-version-min=$(MACOSX_VERSION_MIN)
# export MACOSX_DEPLOYMENT_TARGET so that ld picks it up, especially for deps
export MACOSX_DEPLOYMENT_TARGET=$(MACOSX_VERSION_MIN)
JCPPFLAGS += -D_LARGEFILE_SOURCE -D_DARWIN_USE_64_BIT_INODE=1
endif
endif

Expand Down Expand Up @@ -702,7 +728,7 @@ endif # OS Linux or FreeBSD
endif # SANITIZE_MEMORY=1
ifeq ($(SANITIZE_ADDRESS),1)
SANITIZE_OPTS += -fsanitize=address
SANITIZE_LDFLAGS += -fsanitize=address
SANITIZE_LDFLAGS += -fsanitize=address -shared-libasan
endif
ifeq ($(SANITIZE_THREAD),1)
SANITIZE_OPTS += -fsanitize=thread
Expand Down Expand Up @@ -1334,7 +1360,7 @@ ifeq (supported, $(shell echo $(IFUNC_DETECT_SRC) | $(CC) -Werror -x c - -S -o /
JCPPFLAGS += -DJULIA_HAS_IFUNC_SUPPORT=1
endif
JLDFLAGS += -Wl,-Bdynamic
OSLIBS += -Wl,--version-script=$(JULIAHOME)/src/julia.expmap
OSLIBS += -Wl,--version-script=$(BUILDROOT)/src/julia.expmap
ifneq ($(SANITIZE),1)
JLDFLAGS += -Wl,-no-undefined
endif
Expand All @@ -1359,7 +1385,7 @@ OSLIBS += -lelf -lkvm -lrt -lpthread -latomic
# See #21788
OSLIBS += -lgcc_s

OSLIBS += -Wl,--export-dynamic -Wl,--version-script=$(JULIAHOME)/src/julia.expmap \
OSLIBS += -Wl,--export-dynamic -Wl,--version-script=$(BUILDROOT)/src/julia.expmap \
$(NO_WHOLE_ARCHIVE)
endif

Expand All @@ -1374,7 +1400,7 @@ endif

ifeq ($(OS), WINNT)
HAVE_SSP := 1
OSLIBS += -Wl,--export-all-symbols -Wl,--version-script=$(JULIAHOME)/src/julia.expmap \
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
JLDFLAGS += -Wl,--stack,8388608
ifeq ($(ARCH),i686)
Expand Down Expand Up @@ -1517,6 +1543,12 @@ endef
# Overridable in Make.user
WINE ?= wine

ifeq ($(BINARY),32)
HEAPLIM := --heap-size-hint=500M
else
HEAPLIM :=
endif

# many of the following targets must be = not := because the expansion of the makefile functions (and $1) shouldn't happen until later
ifeq ($(BUILD_OS), WINNT) # MSYS
spawn = $(1)
Expand Down
12 changes: 12 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,14 @@ JL_PRIVATE_LIBS-$(USE_SYSTEM_CSL) += libwinpthread
else
JL_PRIVATE_LIBS-$(USE_SYSTEM_CSL) += libpthread
endif
ifeq ($(SANITIZE),1)
ifeq ($(USECLANG),1)
JL_PRIVATE_LIBS-1 += libclang_rt.asan
else
JL_PRIVATE_LIBS-1 += libasan
endif
endif

ifeq ($(WITH_TRACY),1)
JL_PRIVATE_LIBS-0 += libTracyClient
endif
Expand Down Expand Up @@ -365,6 +373,10 @@ endif
# Remove various files which should not be installed
-rm -f $(DESTDIR)$(datarootdir)/julia/base/version_git.sh
-rm -f $(DESTDIR)$(datarootdir)/julia/test/Makefile
-rm -f $(DESTDIR)$(datarootdir)/julia/base/*/source-extracted
-rm -f $(DESTDIR)$(datarootdir)/julia/base/*/build-configured
-rm -f $(DESTDIR)$(datarootdir)/julia/base/*/build-compiled
-rm -f $(DESTDIR)$(datarootdir)/julia/base/*/build-checked
-rm -f $(DESTDIR)$(datarootdir)/julia/stdlib/$(VERSDIR)/*/source-extracted
-rm -f $(DESTDIR)$(datarootdir)/julia/stdlib/$(VERSDIR)/*/build-configured
-rm -f $(DESTDIR)$(datarootdir)/julia/stdlib/$(VERSDIR)/*/build-compiled
Expand Down
22 changes: 22 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ Julia v1.10 Release Notes
New language features
---------------------

* JuliaSyntax.jl is now used as the default parser, providing better diagnostics and faster
parsing. Set environment variable `JULIA_USE_NEW_PARSER` to `0` to switch back to the old
parser if necessary (and if you find this necessary, please file an issue) ([#46372]).
* `⥺` (U+297A, `\leftarrowsubset`) and `⥷` (U+2977, `\leftarrowless`)
may now be used as binary operators with arrow precedence. ([#45962])

Expand All @@ -18,12 +21,21 @@ Language changes
that significantly improves load and inference times for heavily overloaded methods that
dispatch on Types (such as traits and constructors).
* The "h bar" `ℏ` (`\hslash` U+210F) character is now treated as equivalent to `ħ` (`\hbar` U+0127).
* The `@simd` macro now has a more limited and clearer semantics, it only enables reordering and contraction
of floating-point operations, instead of turning on all "fastmath" optimizations.
If you observe performance regressions due to this change, you can recover previous behavior with `@fastmath @simd`,
if you are OK with all the optimizations enabled by the `@fastmath` macro. ([#49405])
* When a method with keyword arguments is displayed in the stack trace view, the textual
representation of the keyword arguments' types is simplified using the new
`@Kwargs{key1::Type1, ...}` macro syntax ([#49959]).

Compiler/Runtime improvements
-----------------------------

* The `@pure` macro is now deprecated. Use `Base.@assume_effects :foldable` instead ([#48682]).
* The mark phase of the Garbage Collector is now multi-threaded ([#48600]).
* [JITLink](https://llvm.org/docs/JITLink.html) is enabled by default on Linux aarch64 when Julia is linked to LLVM 15 or later versions ([#49745]).
This should resolve many segmentation faults previously observed on this platform.

Command-line option changes
---------------------------
Expand All @@ -44,6 +56,8 @@ New library functions
* `tanpi` is now defined. It computes tan(πx) more accurately than `tan(pi*x)` ([#48575]).
* `fourthroot(x)` is now defined in `Base.Math` and can be used to compute the fourth root of `x`.
It can also be accessed using the unicode character `∜`, which can be typed by `\fourthroot<tab>` ([#48899]).
* `Libc.memmove`, `Libc.memset`, and `Libc.memcpy` are now defined, whose functionality matches that of their respective C calls.
* `Base.isprecompiled(pkg::PkgId)` to identify whether a package has already been precompiled ([#50218]).

New library features
--------------------
Expand All @@ -52,6 +66,7 @@ New library features
* `binomial(x, k)` now supports non-integer `x` ([#48124]).
* A `CartesianIndex` is now treated as a "scalar" for broadcasting ([#47044]).
* `printstyled` now supports italic output ([#45164]).
* `parent` and `parentindices` support `SubString`s

Standard library changes
------------------------
Expand Down Expand Up @@ -82,6 +97,11 @@ Standard library changes
(real symmetric) part of a matrix ([#31836]).
* The `norm` of the adjoint or transpose of an `AbstractMatrix` now returns the norm of the
parent matrix by default, matching the current behaviour for `AbstractVector`s ([#49020]).
* `eigen(A, B)` and `eigvals(A, B)`, where one of `A` or `B` is symmetric or Hermitian,
are now fully supported ([#49533])
* `eigvals/eigen(A, cholesky(B))` now computes the generalized eigenvalues (`eigen`: and eigenvectors)
of `A` and `B` via Cholesky decomposition for positive definite `B`. Note: The second argument is
the output of `cholesky`.

#### Printf
* Format specifiers now support dynamic width and precision, e.g. `%*s` and `%*.*g` ([#40105]).
Expand All @@ -94,6 +114,8 @@ Standard library changes

#### REPL

* When stack traces are printed, the printed depth of types in function signatures will be limited
to avoid overly verbose output ([#49795]).

#### SuiteSparse

Expand Down
10 changes: 4 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
<a name="logo"/>
<div align="center">
<a href="https://julialang.org/" target="_blank">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="doc/src/assets/julialogoheaderimage_dark.svg">
<img alt="The Julia logo" src="doc/src/assets/julialogoheaderimage_light.svg">
</picture>
</a>
<a href="https://julialang.org/" target="_blank">
<img src="doc/src/assets/logo.svg" alt="Julia Logo" width="210" height="142"></img>
</a>
</div>

<table>
Expand Down
1 change: 1 addition & 0 deletions base/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@
/version_git.jl
/version_git.jl.phony
/userimg.jl
/JuliaSyntax
16 changes: 14 additions & 2 deletions base/Base.jl
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ using Core.Intrinsics, Core.IR

# to start, we're going to use a very simple definition of `include`
# that doesn't require any function (except what we can get from the `Core` top-module)
const _included_files = Array{Tuple{Module,String},1}()
const _included_files = Array{Tuple{Module,String},1}(Core.undef, 1)
function include(mod::Module, path::String)
ccall(:jl_array_grow_end, Cvoid, (Any, UInt), _included_files, UInt(1))
Core.arrayset(true, _included_files, (mod, ccall(:jl_prepend_cwd, Any, (Any,), path)), arraylen(_included_files))
Expand Down Expand Up @@ -163,6 +163,7 @@ include("int.jl")
include("operators.jl")
include("pointer.jl")
include("refvalue.jl")
include("cmem.jl")
include("refpointer.jl")

# now replace the Pair constructor (relevant for NamedTuples) with one that calls our Base.convert
Expand Down Expand Up @@ -316,7 +317,7 @@ include("version.jl")
# system & environment
include("sysinfo.jl")
include("libc.jl")
using .Libc: getpid, gethostname, time
using .Libc: getpid, gethostname, time, memcpy, memset, memmove, memcmp

# These used to be in build_h.jl and are retained for backwards compatibility.
# NOTE: keep in sync with `libblastrampoline_jll.libblastrampoline`.
Expand Down Expand Up @@ -488,6 +489,10 @@ a_method_to_overwrite_in_test() = inferencebarrier(1)
include(mod::Module, _path::AbstractString) = _include(identity, mod, _path)
include(mapexpr::Function, mod::Module, _path::AbstractString) = _include(mapexpr, mod, _path)

# External libraries vendored into Base
Core.println("JuliaSyntax/src/JuliaSyntax.jl")
include(@__MODULE__, "JuliaSyntax/src/JuliaSyntax.jl")

end_base_include = time_ns()

const _sysimage_modules = PkgId[]
Expand Down Expand Up @@ -596,8 +601,12 @@ function __init__()
ccall(:jl_set_peek_cond, Cvoid, (Ptr{Cvoid},), PROFILE_PRINT_COND[].handle)
errormonitor(Threads.@spawn(profile_printing_listener()))
end
_require_world_age[] = get_world_counter()
# Prevent spawned Julia process from getting stuck waiting on Tracy to connect.
delete!(ENV, "JULIA_WAIT_FOR_TRACY")
if get_bool_env("JULIA_USE_NEW_PARSER", true) === true
JuliaSyntax.enable_in_core!()
end
nothing
end

Expand All @@ -606,5 +615,8 @@ end

end

# Ensure this file is also tracked
@assert !isassigned(_included_files, 1)
_included_files[1] = (parentmodule(Base), abspath(@__FILE__))

end # baremodule Base
Loading