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

Updating dev to 2590e675 #77

Merged
merged 865 commits into from
Dec 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
865 commits
Select commit Hold shift + click to select a range
0b9fcb5
Implement faster `issubset` for `CartesianIndices{N}` (#56282)
xili-h Oct 23, 2024
6c70bf7
Improve doc example: Extracting the type parameter from a super-type …
ArnoStrouwen Oct 23, 2024
005608a
llvmpasses: force vector width for compatibility with non-x86 hosts. …
maleadt Oct 23, 2024
b9b4dfa
Reduce generic matrix*vector latency (#56289)
jishnub Oct 23, 2024
28b0abd
Type `Base.is_interactive` as `Bool` (#56303)
LilithHafner Oct 23, 2024
4236a33
REPL: don't complete str and cmd macros when the input matches the in…
IanButterworth Oct 23, 2024
0a6277d
fix REPL test if a "juliadev" directory exists in home (#56218)
nhz2 Oct 23, 2024
894296b
Fix trampoline warning on x86 as well (#56280)
gbaraldi Oct 23, 2024
53ffe56
typeintersect: more fastpath to skip intersect under circular env (#5…
N5N3 Oct 23, 2024
2a06376
Preserve type in `first` for `OneTo` (#56263)
jishnub Oct 24, 2024
bf6da77
Matmul: dispatch on specific blas paths using an enum (#55002)
jishnub Oct 24, 2024
c188e0c
Scaling `mul!` for generic `AbstractArray`s (#56313)
jishnub Oct 24, 2024
20f933a
InteractiveUtils.jl: fixes issue where subtypes resolves bindings and…
dgleich Oct 24, 2024
f285de5
[CRC32c] Support AbstractVector{UInt8} as input (#56164)
nhz2 Oct 24, 2024
5cdf378
Put `jl_gc_new_weakref` in a header file again (#56319)
lgoettgens Oct 24, 2024
bc66047
use textwidth for string display truncation (#55442)
stevengj Oct 24, 2024
dc60727
Use `pwd()` as the default directory to walk in `walkdir` (#55550)
fredrikekre Oct 24, 2024
beda632
Reset mtime of BOLTed files to prevent make rebuilding targets (#55587)
Zentrik Oct 24, 2024
c94102b
add docstring note about `displaysize` and `IOContext` with `context`…
IanButterworth Oct 25, 2024
ac5bb66
LinearAlgebra: replace some hardcoded loop ranges with axes (#56243)
jishnub Oct 25, 2024
29b509d
inference: fix `[modifyfield!|replacefield!]_tfunc`s (#56310)
aviatesk Oct 25, 2024
e8aacbf
inference: don't allow `SSAValue`s in assignment lhs (#56314)
aviatesk Oct 25, 2024
ec2e121
Fix `unsafe_read` for `IOBuffer` with non dense data (#55776)
nhz2 Oct 25, 2024
b38fde1
support `isless` for zero-dimensional `AbstractArray`s (#55772)
nsajko Oct 25, 2024
bf8f814
inference: don't add backdge when `applicable` inferred to return `Bo…
aviatesk Oct 25, 2024
b81e33f
Mark `require_one_based_indexing` and `has_offset_axes` as public (#5…
adrhill Oct 25, 2024
fb297af
Avoid some allocations in various `println` methods (#56308)
PallHaraldsson Oct 25, 2024
49e3b87
Add a developer documentation section to the `LinearAlgebra` docs (#5…
jishnub Oct 25, 2024
db3d816
drop require lock when not needed during loading to allow parallel pr…
vtjnash Oct 25, 2024
2b3a0f0
Make `String(::Memory)` copy (#54457)
nhz2 Oct 25, 2024
f1a90e0
🤖 [master] Bump the Pkg stdlib from 799dc2d54 to 116ba910c (#56336)
DilumAluthgeBot Oct 25, 2024
f6a38e0
Wall-time/all tasks profiler (#55889)
d-netto Oct 25, 2024
ee09ae7
recommend explicit `using Foo: Foo, ...` in package code (was: "using…
KristofferC Oct 26, 2024
446d20f
Change some hardcoded loop ranges to axes in dense linalg functions (…
jishnub Oct 27, 2024
fcf7ec0
Make `LinearAlgebra.haszero` public (#56223)
jishnub Oct 27, 2024
87ecf8f
remove spurious parens in profiler docs (#56357)
d-netto Oct 27, 2024
2cdfe06
Fix `log_quasitriu` for internal scaling `s=0` (#56311)
aravindh-krishnamoorthy Oct 28, 2024
9dbdeb4
loading: clean up more concurrency issues (#56329)
vtjnash Oct 28, 2024
e802eff
make `_unsetindex` fast for isbits eltype (#56364)
oscardssmith Oct 28, 2024
4c076c8
improved `eltype` for `flatten` with tuple argument (#55946)
matthias314 Oct 28, 2024
710e1f9
Reland "Reroute (Upper/Lower)Triangular * Diagonal through __muldiag …
jishnub Oct 29, 2024
cb757c4
Add one-arg `norm` method (#56330)
jishnub Oct 29, 2024
07530bc
fix a forgotten rename `readuntil` -> `copyuntil` (#56380)
KristofferC Oct 29, 2024
e3d5aa3
remove unnecessary operations from `typejoin_union_tuple` (#56379)
aviatesk Oct 29, 2024
e4dc9d3
precompile: fix performance issues with IO (#56370)
vtjnash Oct 29, 2024
9850a38
cache the `find_all_in_cache_path` call during parallel precompilatio…
KristofferC Oct 29, 2024
a9342d6
[docs] Fix note admonition in llvm-passes.md (#56392)
giordano Oct 30, 2024
2fe6562
structure-preserving broadcast for `SymTridiagonal` (#56001)
jishnub Oct 30, 2024
599b7ec
🤖 [master] Bump the Pkg stdlib from 116ba910c to 9f8e11a4c (#56386)
DilumAluthgeBot Oct 30, 2024
717bf54
load extensions with fewer triggers earlier (#49891)
KristofferC Oct 30, 2024
c0ce290
Dispatch in generic_matmatmul (#56384)
jishnub Oct 30, 2024
db6e95e
Add `atol` to addmul tests (#56210)
jishnub Oct 30, 2024
c6e7f83
Export jl_gc_new_weakref again via julia.h (#56373)
fingolfin Oct 31, 2024
2a24b8f
InteractiveUtils: define `InteractiveUtils.@code_ircode` (#56390)
aviatesk Oct 31, 2024
f8c6d1c
Fix some missing write barriers and add some helpful comments (#56396)
Keno Oct 31, 2024
da74ef1
compiler: fix specialization mistake introduced by #40985 (#56404)
vtjnash Oct 31, 2024
7715cf2
Avoid racy double-load of binding restriction in `import_module` (#56…
Keno Oct 31, 2024
040174c
define `InteractiveUtils.@infer_[return|exception]_type` (#56398)
aviatesk Nov 1, 2024
671e1d8
irinterp: set `IR_FLAG_REFINED` for narrowed `PhiNode`s (#56391)
aviatesk Nov 1, 2024
dc57caf
document isopen(::Channel) (#56376)
mrufsvold Nov 1, 2024
706a4f6
Make build system respect `FORCE_COLOR` and `NO_COLOR` settings (#56346)
giordano Nov 1, 2024
7635190
Add `edges` vector to CodeInstance/CodeInfo to keep backedges as edge…
vtjnash Nov 1, 2024
85dc2c7
docs: remove `dirname.c` from THIRDPARTY file (#56413)
Nov 1, 2024
7d81897
Allow ext → ext dependency if triggers are a strict superset (#56368)…
topolarity Nov 1, 2024
3de1b1d
[docs] Fix rendering of warning admonition in llvm passes page (#56412)
giordano Nov 1, 2024
4393f8c
Fix dispatch for `rdiv!` with `LU` (#55764)
dkarrasch Nov 1, 2024
770b144
Remove overwritten method of OffsetArray (#56414)
JamesWrigley Nov 1, 2024
c3c3cd1
Add a missing GC root in constant declaration (#56408)
Keno Nov 2, 2024
10a1d6f
Teach compiler about partitioned bindings (#56299)
Keno Nov 2, 2024
9d1cedb
Restore JL_NOTSAFEPOINT in jl_stderr_obj (#56407)
Keno Nov 2, 2024
715eb1d
reland "Inlining: Remove outdated code path for GlobalRef movement (#…
aviatesk Nov 2, 2024
671fc42
copy effects key to `Base.infer_effects` (#56363)
MasonProtter Nov 2, 2024
fe67097
Fix `make install` for asan build (#56347)
Zentrik Nov 2, 2024
9a77240
Add dims check to triangular mul (#56393)
jishnub Nov 3, 2024
0249feb
clarify short-circuit && and || docs (#56420)
stevengj Nov 3, 2024
74640a1
docs: replace 'leaf types' with 'concrete types' (#56418)
fatteneder Nov 4, 2024
50713ee
Remove aggressive constprop annotation on generic_matmatmul_wrapper! …
jishnub Nov 4, 2024
349f142
Clarify the FieldError docstring (#55222)
LilithHafner Nov 4, 2024
66c50ac
Allow `Time`s to be rounded to `Period`s (#52629)
TheLostLambda Nov 4, 2024
36f06b8
Replace unconditional store with cmpswap to avoid deadlocking in jl_f…
gbaraldi Nov 4, 2024
589203e
Correct nothrow modeling of `get_binding_type` (#56430)
Keno Nov 5, 2024
8e0a171
add tip for module docstrings before load (#56445)
IanButterworth Nov 5, 2024
567a7ca
compiler: Strengthen some assertions and fix a couple small bugs (#56…
Keno Nov 5, 2024
11cd809
inference: minor follow-ups to JuliaLang/julia#56299 (#56450)
aviatesk Nov 5, 2024
50ad4d9
Ensure that String(::Memory) returns only a String, not any owner (#5…
vtjnash Nov 5, 2024
9e99ed5
Take safepoint lock before going to sleep in the scheduler. (#56443)
gbaraldi Nov 5, 2024
9af0dea
Profile: mention `kill -s SIGUSR1 julia_pid` for Linux (#56441)
Moelf Nov 5, 2024
cbcad6f
Fix and test an overflow issue in `searchsorted` (#56464)
LilithHafner Nov 5, 2024
d3130ae
Update docs of calling convention arg in `:foreigncall` AST node (#56…
fatteneder Nov 6, 2024
80a2791
`step(::AbstractUnitRange{Bool})` should return `Bool` (#56405)
putianyi889 Nov 6, 2024
d63dd4b
fixup! JuliaLang/julia#56028, fix up the type-level escapability check
aviatesk Nov 5, 2024
f49f292
add `show(::IO, ::ArgEscapeInfo)`
aviatesk Nov 6, 2024
1782c6b
EA: disable finalizer inlining for allocations that are edges of `Phi…
aviatesk Nov 6, 2024
df4db53
fixup! JuliaLang/julia#56028, fix up the type-level escapability chec…
aviatesk Nov 6, 2024
e3d26c2
make `verify_ir` error messages more informative (#56452)
aviatesk Nov 6, 2024
ded3e3d
[GHA] Explicitly install Julia for whitespace workflow (#56468)
giordano Nov 6, 2024
bce3d4d
Allow taking Matrix slices without an extra allocation (#56236)
vtjnash Nov 6, 2024
efc43cb
[late-gc-lowering] null-out GC frame slots for dead objects (#52935)
d-netto Nov 6, 2024
d90c2e2
Added test for resolving array references in exprresolve (#56471)
Priynsh Nov 6, 2024
37f0220
Fix and test searchsorted for arrays whose first index is `typemin(In…
LilithHafner Nov 6, 2024
dbf2c4b
Move Core.Compiler into Base
Keno Oct 12, 2024
22c5bdc
Delete buggy `stat(::Integer)` method (#54855)
LilithHafner Nov 7, 2024
671cd5e
missing gc-root store in subtype (#56472)
vtjnash Nov 7, 2024
4278ded
further defer jl_insert_backedges after loading (#56447)
vtjnash Nov 7, 2024
9e14bf8
count bytes allocated through malloc more precisely (#55223)
d-netto Nov 7, 2024
5848445
Fix external IO loop thead interaction and add function to Base.Exper…
gbaraldi Nov 7, 2024
910bf7e
[REPL] raise default implicit `show` limit to 1MiB (#56297)
ericphanson Nov 7, 2024
6644796
Add a docstring for `Base.divgcd` (#53769)
putianyi889 Nov 7, 2024
8593792
Fix compilation warning on aarch64-linux (#56480)
giordano Nov 7, 2024
cd7250d
Make Compiler an independent package
Keno Oct 31, 2024
f336314
Make heap size hint available as an env variable (#55631)
MilesCranmer Nov 7, 2024
683da41
Make Compiler an independent package (that lives in the julia repo) (…
Keno Nov 8, 2024
0e811e4
Allow indexing `UniformScaling` with `CartesianIndex{2}` (#56461)
jishnub Nov 8, 2024
a005c07
Simplify first index in `FastContiguousSubArray` definition (#56491)
jishnub Nov 8, 2024
6541d1b
Make `popat!` support `@inbounds` (#56323)
putianyi889 Nov 8, 2024
bb234e2
NEWS.md: clarify `--trim` (#56460)
lassepe Nov 8, 2024
2f58a4b
Remove aggressive constprop annotation from 2x2 and 3x3 matmul (#56453)
jishnub Nov 8, 2024
bfcd3e9
`sincos` for non-float symmetric matrices (#56484)
jishnub Nov 8, 2024
9c4541b
Specialize 2-arg `show` for `LinearIndices` (#56482)
jishnub Nov 8, 2024
d0af9c5
Avoid constprop in `syevd!` and `syev!` (#56442)
jishnub Nov 8, 2024
62f8cff
make: define `basecompiler.ji` target (#56498)
aviatesk Nov 8, 2024
ca2d6aa
speed up bootstrapping by compiling few optimizer subroutines earlier…
aviatesk Nov 8, 2024
4cbeea5
remove top-level branches checking for Base (#56507)
JeffBezanson Nov 9, 2024
435516d
Undo the decision to publish incomplete types to the binding table (#…
Keno Nov 9, 2024
fb5e96a
Merge identical methods for Symmetric/Hermitian and SymTridiagonal (#…
jishnub Nov 9, 2024
473d0db
Specialize findlast for integer AbstractUnitRanges and StepRanges (#5…
jishnub Nov 9, 2024
024d42a
Loop over `Iterators.rest` in `_foldl_impl` (#56492)
jishnub Nov 9, 2024
ecfd1a0
better error message for rpad/lpad with zero-width padding (#56488)
stevengj Nov 9, 2024
803316a
Safer indexing in dense linalg methods (#56451)
jishnub Nov 9, 2024
cd748a5
The `info` in LAPACK calls should be a Ref instead of a Ptr (#56511)
ViralBShah Nov 9, 2024
0cc5518
Scaling loop instead of broadcasting in strided matrix exp (#56463)
jishnub Nov 10, 2024
4feca1f
codegen: Respect binding partition (#56494)
Keno Nov 10, 2024
88201cf
Profile: fix Compiler short path (#56515)
IanButterworth Nov 10, 2024
b6a2cc1
Check `isdiag` in dense trig functions (#56483)
jishnub Nov 10, 2024
afdba95
Profile: add helper method for printing profile report to file (#56505)
IanButterworth Nov 10, 2024
3318941
Change in-place exp to out-of-place in matrix trig functions (#56242)
jishnub Nov 11, 2024
14df038
Test: Don't change scope kind in `test_{warn,nowarn}` (#56524)
Keno Nov 11, 2024
97e41d7
For loop instead of while in generic `copyto!` (#56517)
jishnub Nov 11, 2024
38e3d14
Add `diagview` to obtain a view along a diagonal (#56175)
jishnub Nov 11, 2024
f93138e
Specialize `isbanded` for `StridedMatrix` (#56487)
jishnub Nov 11, 2024
ad24368
Tighten typechecking in `repeat` to match what's documented (#55444)
mcabbott Nov 11, 2024
1e0cee5
Replace `MulAddMul` by `alpha,beta` in `__muldiag` (#56360)
jishnub Nov 11, 2024
c4802e1
🤖 [master] Bump the SparseArrays stdlib from 0dd8d45 to 14333ea (#56531)
DilumAluthgeBot Nov 12, 2024
366a38e
simplifies the definitions of `@test_[no]warn` (#56525)
aviatesk Nov 12, 2024
001c666
infer_compilation_signatures for more cases (#56495)
vtjnash Nov 12, 2024
45c5c9b
Move `compiler` tests to `Compiler` package (#56522)
Keno Nov 12, 2024
505907b
Add lowering and interpreter support for `:latestworld` (#56523)
Keno Nov 12, 2024
fa9f0de
do union split and concrete compilation search
vtjnash Nov 7, 2024
8f24144
aotcompile: add missing codegen support for OC
vtjnash Nov 12, 2024
882f940
aotcompile: reimplement canPartition correctly
vtjnash Nov 12, 2024
1edc6f1
Merge Compiler.isready and Base.isready (#56536)
Keno Nov 13, 2024
c5ee5db
Update Documenter 1.4.0 => 1.8.0 (#56538)
mortenpi Nov 13, 2024
16ece81
[libblastrampoline_jll] Upgrade to v5.11.2 (#56534)
amontoison Nov 13, 2024
5cc5878
Improve docstrings for `filesize` and `stat` (#56244)
KronosTheLate Nov 13, 2024
a23e313
Fix and test special loading support for Compiler (#56535)
Keno Nov 13, 2024
9945df9
Some misc compiler-related code cleanup (#56540)
Keno Nov 13, 2024
48e7854
fix `IRShow.show` of the standard library `Compiler` (#56542)
aviatesk Nov 13, 2024
072d9d1
remove type piracy from `==` defined in `Compiler` (#56541)
aviatesk Nov 13, 2024
aa05c98
precompile: do better union split and concrete compilation search (#5…
vtjnash Nov 13, 2024
286ece2
inference: infer_compilation_signatures for even more cases (#56552)
vtjnash Nov 14, 2024
1e063d8
allow the Compiler.jl stdlib to be installed on older version of Juli…
aviatesk Nov 14, 2024
a32dba5
compiler: fix several more specialization mistake introduced by #4098…
vtjnash Nov 14, 2024
cf36497
inference: complete the inference even for recursive cycles (#56551)
vtjnash Nov 14, 2024
2e7e3ed
add LICENSE.md and `[compat]` entry for the Compiler.jl stdlib (#56559)
aviatesk Nov 14, 2024
d99d569
inference: Don't try to infer optimized opaque_closure (#56557)
Keno Nov 14, 2024
100e305
prevent deadlock when releasing the jl_unique_gcsafe_lock causes gc (…
vtjnash Nov 14, 2024
2d9a2ee
optimize `abstract_invoke` (#56560)
aviatesk Nov 15, 2024
e5f3010
Sockets: fix `getipaddr()` (#56528)
barucden Nov 15, 2024
55bdb54
Delete unnecessary methods in OffsetArrays.jl (#56564)
JamesWrigley Nov 15, 2024
5ec3215
OpenBLAS: Source build fixes for RISC-V (#56556)
maleadt Nov 15, 2024
caa2f7d
infer more completely everything that the optimizer/codegen requires …
vtjnash Nov 15, 2024
7fa26f0
Move Compiler <-> OpaqueClosure interface code to Compiler (#56576)
Keno Nov 16, 2024
e1cfa73
Fix debug build against non-debug LLVM (#56590)
Keno Nov 18, 2024
3770051
EA: remove `_TOP_MOD` and just use `Base` (#56581)
aviatesk Nov 18, 2024
0990665
Buildkite Test Engine: fix JSON comma separate bug (#56588)
pda Nov 18, 2024
83ef112
staticdata edges: fix missing visiting clearing during cycle handling…
vtjnash Nov 18, 2024
38908e9
[GCChecker] add a few more know functions to lock list (#56573)
vtjnash Nov 18, 2024
fa880a7
threading deadlock: change jl_fptr_wait_for_compiled to actually comp…
vtjnash Nov 18, 2024
b6eeef2
fix precompile(::MethodInstance) ccall signature (#56595)
vtjnash Nov 18, 2024
0de9164
Don't throw an error in raw! if the stream is closed (#56589)
Keno Nov 18, 2024
aff6512
codegen: Restore `ct->scope` in `jl_eh_restore_state` (#55907)
topolarity Nov 18, 2024
deac82a
lowering: don't reverse handler order in `(pop-handler-list ...)` (#5…
topolarity Nov 18, 2024
c5899c2
cli: Add required `--experimental` flag for experimental features (e.…
topolarity Nov 18, 2024
af9e6e3
optimize `abstract_call_gf_by_type` (#56572)
aviatesk Nov 18, 2024
0bd8292
Add missing `convert` methods for `Cholesky` (#56562)
timholy Nov 19, 2024
83ef55d
codegen: manually restore `ct->scope` when no exception handler is em…
topolarity Nov 19, 2024
b660649
🤖 [master] Bump the SparseArrays stdlib from 14333ea to 1b4933c (#56614)
DilumAluthgeBot Nov 20, 2024
4ed8814
gracefully fall back to non pid locked precompilation if FileWatching…
KristofferC Nov 20, 2024
bdd4e05
make `choosetests` find the test files for devved stdlibs (#56558)
KristofferC Nov 20, 2024
0592b54
use the correct path to include Compiler.jl in release builds (#56601)
KristofferC Nov 20, 2024
d9d1fc5
fix some new-edges issues (#56598)
vtjnash Nov 20, 2024
6c5f221
Prevent extensions from blocking parallel pre-compilation (#55910)
topolarity Nov 21, 2024
034e609
Make world-age increments explicit (#56509)
Keno Nov 21, 2024
4709b6c
`copytrito!` for triangular matrices (#56620)
jishnub Nov 21, 2024
33e69e5
use `Base.@show` for the Compiler.jl standard library (#56616)
aviatesk Nov 21, 2024
0ded536
🤖 [master] Bump the Pkg stdlib from 9f8e11a4c to 7b759d7f0 (#56631)
DilumAluthgeBot Nov 21, 2024
859c25a
inference: refine `setglobal!` rt for invalid assignments (#56622)
aviatesk Nov 21, 2024
c31710a
Make Expr(:invoke) target be a CodeInstance, not MethodInstance (#54899)
vtjnash Nov 21, 2024
873a1e4
inference: add missing modeling for `swapglobal!` (#56623)
aviatesk Nov 21, 2024
1fb8df6
Fix `unsafe_trunc` test for `NaN16` (#56630)
giordano Nov 21, 2024
712b2e5
precompilepkgs: fix is_direct_dep -> is_project_dep (#56643)
IanButterworth Nov 21, 2024
78fd186
Make Compiler tests runnable as package (#56632)
Keno Nov 21, 2024
858cb62
Profile: Fix short names (#56627)
IanButterworth Nov 22, 2024
e624440
inference: add missing tfuncs to the `xxxglobal` builtins (#56641)
aviatesk Nov 22, 2024
1bf2ef9
allow `apply_type_tfunc` to handle argtypes with `Union` (#56617)
aviatesk Nov 22, 2024
215189e
complete the tests for Compiler.jl as the stdlib. (#56648)
aviatesk Nov 22, 2024
522f496
only import REPL in runtests if we are actually going to use it (#56635)
KristofferC Nov 22, 2024
bdf78c9
fix jl_mutex_lock deadlock under rr (#56644)
vtjnash Nov 22, 2024
2a02fc3
More testsets, fix commented out test, add Array{UInt8} conversion te…
kshyatt Nov 22, 2024
e29d211
Test lastindex for LazyString (#56585)
kshyatt Nov 22, 2024
5fab51a
Tests for substrings of annotated strings (#56584)
kshyatt Nov 22, 2024
7354be3
codegen: make more judicious use of global rooting (#56625)
vtjnash Nov 22, 2024
0bedaae
precompilepkgs: make the circular dep warning clearer and more inform…
IanButterworth Nov 22, 2024
a1dbfd0
Test extensions of "parent" dependencies
topolarity Nov 24, 2024
06f8519
Prevent pre-compilation target package from triggering extensions
topolarity Nov 24, 2024
fa18951
make EAUtils.jl loadable even if `Main.EscapeAnalysis` isn't defined …
aviatesk Nov 24, 2024
377643f
Highlight circular references (#56663)
jakobjpeters Nov 24, 2024
f892a9e
Fix typo in nextfloat and prevfloat docs (#56670)
LilithHafner Nov 24, 2024
e5e7be2
move out LinearAlgebra into its own repository (#56637)
KristofferC Nov 24, 2024
94f542d
Prevent pre-compilation package from triggering its own extensions (#…
topolarity Nov 24, 2024
81568a6
Bump LLVMLibUnwind to v19.1.4 (#56674)
Zentrik Nov 25, 2024
7df1dfa
subtype: fast path for Type == TypeVar (#56640)
N5N3 Nov 26, 2024
ea82538
attach binomial(n::Integer, k::Integer) method to docstring (#56679)
stevengj Nov 26, 2024
a17db2b
Make DefaultStable and DefaultUnstable dispatchable and display witho…
LilithHafner Nov 26, 2024
f6ebc4b
optimizer: handle `EnterNode` with `catch_dest == 0` (#56686)
aviatesk Nov 27, 2024
4280731
Pass `JULIA_NUM_THREADS=1` to the sysimage builder (#56695)
gbaraldi Nov 27, 2024
68fa4a9
deps/cacert: Update to 2024-11-26 (#56697)
eschnett Nov 28, 2024
e50f1ce
Make Threads.Condition public (#56503)
jakobnissen Nov 28, 2024
79d8d3f
support passing a specific Method to invoke (#56692)
vtjnash Nov 28, 2024
7e2e0ae
Add mechanism to disable creating new worlds (#56639)
vtjnash Nov 28, 2024
680803c
get trimming test working again (#56689)
JeffBezanson Nov 28, 2024
60f0057
doc: fix docstring for `Dates.format` (#56682)
Nov 28, 2024
f5dc26b
Make a failed extension load throw an error during pre-compilation (#…
topolarity Nov 28, 2024
9162b14
Remove arraylist_t from external native code APIs. (#56693)
maleadt Nov 28, 2024
447dc2d
fix world_age_at_entry in codegen (#56700)
vtjnash Nov 28, 2024
1ed2b98
Fix typo in `@cmd` docstring (#56664)
LilithHafner Nov 28, 2024
5053a17
deps/pcre: Update to version 10.44 (#56704)
eschnett Nov 28, 2024
c1f806d
compile: make more efficient by discarding internal names (#56702)
vtjnash Nov 29, 2024
d32843b
Automatically enable JITPROFILING with ITTAPI (#55598)
vchuravy Nov 30, 2024
ef32806
Fix string handling in jlchecksum (#56720)
Zentrik Dec 1, 2024
ea42112
Clarifying ispunct behavior difference between Julia and C in documen…
Priynsh Dec 1, 2024
8ce7d0f
[NEWS.md] Add PR numbers and remove some 1.11 changes that accidental…
christiangnrd Dec 2, 2024
f1b0b01
Fix scope of hoisted signature-local variables (#56712)
Keno Dec 2, 2024
efa917e
Extend `invoke` to accept CodeInstance (#56660)
Keno Dec 3, 2024
ba8290e
Update references to LTS from v1.6 to v1.10 (#56729)
PallHaraldsson Dec 3, 2024
2c87290
lowering: Canonicalize to builtins for global assignment (#56713)
Keno Dec 3, 2024
9acf112
Actually show glyphs for latex or emoji shortcodes being suggested in…
jkrumbiegel Dec 3, 2024
2590e67
Update annotated.jl docstrings according to #55741 (#56736)
danielwe Dec 3, 2024
4df5661
Merge branch 'origin-master' into dev
udesou Dec 4, 2024
a9d0fe3
Merge branch 'dev' into updating-dev-2590e675
udesou Dec 6, 2024
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
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .github/workflows/Whitespace.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ jobs:
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
persist-credentials: false
- uses: julia-actions/setup-julia@9b79636afcfb07ab02c256cede01fe2db6ba808c # v2.6.0
with:
version: '1'
- name: Check whitespace
run: |
contrib/check-whitespace.jl
8 changes: 4 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -278,8 +278,8 @@ Be sure to change the UUID value back before making the pull request.

The process of [creating a patch release](https://docs.julialang.org/en/v1/devdocs/build/distributing/#Point-releasing-101) is roughly as follows:

1. Create a new branch (e.g. `backports-release-1.6`) against the relevant minor release
branch (e.g. `release-1.6`). Usually a corresponding pull request is created as well.
1. Create a new branch (e.g. `backports-release-1.10`) against the relevant minor release
branch (e.g. `release-1.10`). Usually a corresponding pull request is created as well.

2. Add commits, nominally from `master` (hence "backports"), to that branch.
See below for more information on this process.
Expand All @@ -291,8 +291,8 @@ The process of [creating a patch release](https://docs.julialang.org/en/v1/devdo
the pull request associated with the backports branch. Fix any issues.

4. Once all test and benchmark reports look good, merge the backports branch into
the corresponding release branch (e.g. merge `backports-release-1.6` into
`release-1.6`).
the corresponding release branch (e.g. merge `backports-release-1.10` into
`release-1.10`).

5. Open a pull request that bumps the version of the relevant minor release to the
next patch version, e.g. as in [this pull request](https://github.com/JuliaLang/julia/pull/37718).
Expand Down
26 changes: 26 additions & 0 deletions Compiler/LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
MIT License

Copyright (c) 2009-2024: 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
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

end of terms and conditions

Please see [THIRDPARTY.md](../THIRDPARTY.md) for license information for other software used in this project.
15 changes: 15 additions & 0 deletions Compiler/Project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name = "Compiler"
uuid = "807dbc54-b67e-4c79-8afb-eafe4df6f2e1"
version = "0.0.2"

[compat]
julia = "1.10"

[extras]
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
Libdl = "8f399da3-3557-5675-b5ff-fb832c97cbdb"

[targets]
test = ["Test", "InteractiveUtils", "Random", "Libdl"]
15 changes: 15 additions & 0 deletions Compiler/extras/CompilerDevTools/Manifest.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# This file is machine-generated - editing it directly is not advised

julia_version = "1.12.0-DEV"
manifest_format = "2.0"
project_hash = "84f495a1bf065c95f732a48af36dd0cd2cefb9d5"

[[deps.Compiler]]
path = "../.."
uuid = "807dbc54-b67e-4c79-8afb-eafe4df6f2e1"
version = "0.0.2"

[[deps.CompilerDevTools]]
path = "."
uuid = "92b2d91f-d2bd-4c05-9214-4609ac33433f"
version = "0.0.0"
5 changes: 5 additions & 0 deletions Compiler/extras/CompilerDevTools/Project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
name = "CompilerDevTools"
uuid = "92b2d91f-d2bd-4c05-9214-4609ac33433f"

[deps]
Compiler = "807dbc54-b67e-4c79-8afb-eafe4df6f2e1"
56 changes: 56 additions & 0 deletions Compiler/extras/CompilerDevTools/src/CompilerDevTools.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
module CompilerDevTools

using Compiler
using Core.IR

struct SplitCacheOwner; end
struct SplitCacheInterp <: Compiler.AbstractInterpreter
world::UInt
inf_params::Compiler.InferenceParams
opt_params::Compiler.OptimizationParams
inf_cache::Vector{Compiler.InferenceResult}
function SplitCacheInterp(;
world::UInt = Base.get_world_counter(),
inf_params::Compiler.InferenceParams = Compiler.InferenceParams(),
opt_params::Compiler.OptimizationParams = Compiler.OptimizationParams(),
inf_cache::Vector{Compiler.InferenceResult} = Compiler.InferenceResult[])
new(world, inf_params, opt_params, inf_cache)
end
end

Compiler.InferenceParams(interp::SplitCacheInterp) = interp.inf_params
Compiler.OptimizationParams(interp::SplitCacheInterp) = interp.opt_params
Compiler.get_inference_world(interp::SplitCacheInterp) = interp.world
Compiler.get_inference_cache(interp::SplitCacheInterp) = interp.inf_cache
Compiler.cache_owner(::SplitCacheInterp) = SplitCacheOwner()

import Core.OptimizedGenerics.CompilerPlugins: typeinf, typeinf_edge
@eval @noinline typeinf(::SplitCacheOwner, mi::MethodInstance, source_mode::UInt8) =
Base.invoke_in_world(which(typeinf, Tuple{SplitCacheOwner, MethodInstance, UInt8}).primary_world, Compiler.typeinf_ext, SplitCacheInterp(; world=Base.tls_world_age()), mi, source_mode)

@eval @noinline function typeinf_edge(::SplitCacheOwner, mi::MethodInstance, parent_frame::Compiler.InferenceState, world::UInt, source_mode::UInt8)
# TODO: This isn't quite right, we're just sketching things for now
interp = SplitCacheInterp(; world)
Compiler.typeinf_edge(interp, mi.def, mi.specTypes, Core.svec(), parent_frame, false, false)
end

# TODO: This needs special compiler support to properly case split for multiple
# method matches, etc.
@noinline function mi_for_tt(tt, world=Base.tls_world_age())
interp = SplitCacheInterp(; world)
match, _ = Compiler.findsup(tt, Compiler.method_table(interp))
Base.specialize_method(match)
end

function with_new_compiler(f, args...)
tt = Base.signature_type(f, typeof(args))
world = Base.tls_world_age()
new_compiler_ci = Core.OptimizedGenerics.CompilerPlugins.typeinf(
SplitCacheOwner(), mi_for_tt(tt), Compiler.SOURCE_MODE_ABI
)
invoke(f, new_compiler_ci, args...)
end

export with_new_compiler

end
194 changes: 194 additions & 0 deletions Compiler/src/Compiler.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
# This file is a part of Julia. License is MIT: https://julialang.org/license

if isdefined(Base, :end_base_include) && !isdefined(Base, :Compiler)

# Define a dummy `Compiler` module to make it installable even on Julia versions where
# Compiler.jl is not available as a standard library.
@eval module Compiler
function __init__()
println("""
The `Compiler` standard library is not available for this version of Julia.
Use Julia version `v"1.12.0-DEV.1581"` or later.
""")
end
end

# When generating an incremental precompile file, we first check whether we
# already have a copy of this *exact* code in the system image. If so, we
# simply generates a pkgimage that has the dependency edges we recorded in
# the system image and simply returns that copy of the compiler. If not,
# we proceed to load/precompile this as an ordinary package.
elseif (isdefined(Base, :generating_output) && Base.generating_output(true) &&
Base.samefile(joinpath(Sys.BINDIR, Base.DATAROOTDIR, Base._compiler_require_dependencies[1][2]), @eval @__FILE__) &&
!Base.any_includes_stale(
map(Base.compiler_chi, Base._compiler_require_dependencies),
"sysimg", nothing))

Base.prepare_compiler_stub_image!()
append!(Base._require_dependencies, map(Base.expand_compiler_path, Base._compiler_require_dependencies))
# There isn't much point in precompiling native code - downstream users will
# specialize their own versions of the compiler code and we don't activate
# the compiler by default anyway, so let's save ourselves some disk space.
ccall(:jl_suppress_precompile, Cvoid, (Cint,), 1)

else

@eval baremodule Compiler

# Needs to match UUID defined in Project.toml
ccall(:jl_set_module_uuid, Cvoid, (Any, NTuple{2, UInt64}), Compiler,
(0x807dbc54_b67e_4c79, 0x8afb_eafe4df6f2e1))

using Core.Intrinsics, Core.IR

import Core: print, println, show, write, unsafe_write,
_apply_iterate, svec, apply_type, Builtin, IntrinsicFunction,
MethodInstance, CodeInstance, MethodTable, MethodMatch, PartialOpaque,
TypeofVararg, Core, SimpleVector, donotdelete, compilerbarrier,
memoryref_isassigned, memoryrefnew, memoryrefoffset, memoryrefget,
memoryrefset!, typename

using Base
using Base: Ordering, vect, EffectsOverride, BitVector, @_gc_preserve_begin, @_gc_preserve_end, RefValue,
@nospecializeinfer, @_foldable_meta, fieldindex, is_function_def, indexed_iterate, isexpr, methods,
get_world_counter, JLOptions, _methods_by_ftype, unwrap_unionall, cconvert, unsafe_convert,
issingletontype, isType, rewrap_unionall, has_free_typevars, isvarargtype, hasgenerator,
IteratorSize, SizeUnknown, _array_for, Bottom, generating_output, diff_names,
ismutationfree, NUM_EFFECTS_OVERRIDES, _NAMEDTUPLE_NAME, datatype_fieldtypes,
argument_datatype, isfieldatomic, unwrapva, iskindtype, _bits_findnext, copy_exprargs,
Generator, Filter, ismutabletypename, isvatuple, datatype_fieldcount,
isconcretedispatch, isdispatchelem, datatype_layoutsize,
datatype_arrayelem, unionlen, isidentityfree, _uniontypes, uniontypes, OneTo, Callable,
DataTypeFieldDesc, datatype_nfields, datatype_pointerfree, midpoint, is_valid_intrinsic_elptr,
allocatedinline, isbitsunion, widen_diagonal, unconstrain_vararg_length,
rename_unionall, may_invoke_generator, is_meta_expr_head, is_meta_expr, quoted,
specialize_method, hasintersect, is_nospecializeinfer, is_nospecialized,
get_nospecializeinfer_sig, tls_world_age, uniontype_layout, kwerr,
moduleroot, is_file_tracked, decode_effects_override, lookup_binding_partition,
is_some_imported, binding_kind, is_some_guard, is_some_const_binding, partition_restriction,
BINDING_KIND_GLOBAL, structdiff
using Base.Order
import Base: getindex, setindex!, length, iterate, push!, isempty, first, convert, ==,
copy, popfirst!, in, haskey, resize!, copy!, append!, last, get!, size,
get, iterate, findall, min_world, max_world, _topmod, isready

const getproperty = Core.getfield
const setproperty! = Core.setfield!
const swapproperty! = Core.swapfield!
const modifyproperty! = Core.modifyfield!
const replaceproperty! = Core.replacefield!
const _DOCS_ALIASING_WARNING = ""

ccall(:jl_set_istopmod, Cvoid, (Any, Bool), Compiler, false)

eval(x) = Core.eval(Compiler, x)
eval(m, x) = Core.eval(m, x)

function include(x::String)
if !isdefined(Base, :end_base_include)
# During bootstrap, all includes are relative to `base/`
x = Base.strcat(Base.strcat(Base.DATAROOT, "julia/Compiler/src/"), x)
end
Base.include(Compiler, x)
end

function include(mod::Module, x::String)
if !isdefined(Base, :end_base_include)
x = Base.strcat(Base.strcat(Base.DATAROOT, "julia/Compiler/src/"), x)
end
Base.include(mod, x)
end

macro _boundscheck() Expr(:boundscheck) end

function return_type end
function is_return_type(Core.@nospecialize(f))
f === return_type && return true
if isdefined(Base, :Compiler) && Compiler !== Base.Compiler
# Also model the return_type function of the builtin Compiler the same.
# This isn't completely sound. We don't actually have any idea what the
# base compiler will do at runtime. In the fullness of time, we should
# re-work the semantics to make the cache primary and thus avoid having
# to reason about what the compiler may do at runtime, but we're not
# fully there yet.
return f === Base.Compiler.return_type
end
return false
end

include("sort.jl")

# We don't include some.jl, but this definition is still useful.
something(x::Nothing, y...) = something(y...)
something(x::Any, y...) = x

############
# compiler #
############

baremodule BuildSettings
using Core: ARGS, include
using ..Compiler: >, getindex, length

global MAX_METHODS::Int = 3

if length(ARGS) > 2 && ARGS[2] === "--buildsettings"
include(BuildSettings, ARGS[3])
end
end

if !isdefined(Base, :end_base_include)
macro show(ex...)
blk = Expr(:block)
for s in ex
push!(blk.args, :(println(stdout, $(QuoteNode(s)), " = ",
begin local value = $(esc(s)) end)))
end
isempty(ex) || push!(blk.args, :value)
blk
end
else
using Base: @show
end

include("cicache.jl")
include("methodtable.jl")
include("effects.jl")
include("types.jl")
include("utilities.jl")
include("validation.jl")

include("ssair/basicblock.jl")
include("ssair/domtree.jl")
include("ssair/ir.jl")
include("ssair/tarjan.jl")

include("abstractlattice.jl")
include("stmtinfo.jl")
include("inferenceresult.jl")
include("inferencestate.jl")

include("typeutils.jl")
include("typelimits.jl")
include("typelattice.jl")
include("tfuncs.jl")

include("abstractinterpretation.jl")
include("typeinfer.jl")
include("optimize.jl")

include("bootstrap.jl")
include("reflection_interface.jl")
include("opaque_closure.jl")

module IRShow end
if !isdefined(Base, :end_base_include)
# During bootstrap, skip including this file and defer it to base/show.jl to include later
else
# When this module is loaded as the standard library, include this file as usual
include(IRShow, "ssair/show.jl")
end

end # baremodule Compiler

end # if isdefined(Base, :generating_output) && ...
Loading
Loading