Skip to content

Updating moving branch #94

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

Merged
merged 687 commits into from
Aug 7, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
687 commits
Select commit Hold shift + click to select a range
36a4616
Increment state conditionally in `CartesianIndices` iteration (#58742)
jishnub Jun 17, 2025
45f5834
🤖 [master] Bump the Distributed stdlib from 51e5297 to 3679026 (#58748)
DilumAluthgeBot Jun 17, 2025
d88369d
devdocs: contributing: fix headings (#58749)
nsajko Jun 17, 2025
aa10603
Work around LLVM JITLink stack overflow issue. (#58579)
gbaraldi Jun 17, 2025
787e0d9
bump Compiler.jl version to 0.1.1 (#58744)
aviatesk Jun 17, 2025
76df602
REPL: fix typo and potential `UndefVarError` (#58761)
aviatesk Jun 18, 2025
2fbf5d8
fix fallback code path in `take!(::IOBuffer)` method (#58762)
aviatesk Jun 18, 2025
0a9051b
Fix multi-threading docs typo (#58770)
cgarling Jun 18, 2025
7865349
help bounds checking to be eliminated for `getindex(::Memory, ::Int)`…
nsajko Jun 18, 2025
a812f03
Define textwidth for overlong chars (#58602)
jakobnissen Jun 18, 2025
422d05d
Add MethodError hints for functions in other modules (#58715)
Keno Jun 19, 2025
3bb7518
Fix markdown bullet list in variables-and-scoping.md (#58771)
abhro Jun 19, 2025
4962d2d
CONTRIBUTING.md: Ask folks to disclose AI-written PRs (#58666)
DilumAluthge Jun 19, 2025
a60d238
Convert julia-repl blocks to jldoctest format (#58594)
Keno Jun 19, 2025
58e20a1
adds the `nth` function for iterables (#56580)
ghyatzo Jun 19, 2025
098a4f8
refine IR model queries (#58661)
vtjnash Jun 19, 2025
089810c
fix showing types after removing using Core (#58773)
vtjnash Jun 19, 2025
d47d4ec
inform compiler about local variable definedness (#58778)
aviatesk Jun 20, 2025
f855e4c
better effects for `iterate` for `Memory` and `Array` (#58755)
nsajko Jun 20, 2025
7b6065e
Test: Hide REPL internals in backtraces (#58732)
IanButterworth Jun 20, 2025
1d67722
Update docs for various type predicates (#58774)
xal-0 Jun 20, 2025
76d5b14
Test: show context when a let testset errors (#58727)
IanButterworth Jun 21, 2025
92bcc94
[libblastrampoline_jll] Upgrade to v5.13.1 (#58775)
amontoison Jun 21, 2025
d887bd2
🤖 [master] Bump the Pkg stdlib from 5577f68d6 to e3d456127 (#58781)
DilumAluthgeBot Jun 21, 2025
f61c640
prevent unnecessary repeated squaring calculation (#58720)
nsajko Jun 22, 2025
a595ea4
LibGit2: Update to 1.9.1 (#58731)
eschnett Jun 23, 2025
40c6d1b
Unify `_checkbounds_array` into `checkbounds` and use it in more plac…
giordano Jun 23, 2025
1998d5b
Chained hash pipelining in array hashing (#58252)
adienes Jun 24, 2025
a452acc
Require all tuples in eachindex to have the same length. (#48125)
navdeeprana Jun 25, 2025
a48dcad
trailing dimensions in eachslice (#58791)
adienes Jun 25, 2025
b06d260
Allow underscore (unused) args in presence of kwargs (#58803)
mlechu Jun 25, 2025
2ed8561
codegen: slightly optimize gc-frame allocation (#58794)
vtjnash Jun 25, 2025
c7a092a
codegen: ensure safepoint functions can read the pgcstack (#58804)
vtjnash Jun 25, 2025
3ae69f6
Revert code changes from "strengthen assume_effects doc" PR (#58289)
vtjnash Jun 25, 2025
9e69f44
build: Error when attempting to set USECLANG/USEGCC (#58795)
Keno Jun 26, 2025
b4a6288
build: Add --no-same-owner to TAR (#58796)
Keno Jun 26, 2025
3076a96
Add `cfunction` support for `--trim` (#58812)
topolarity Jun 26, 2025
5416edb
fix error message for `eachindex(::Vararg{Tuple})` (#58811)
nsajko Jun 26, 2025
4d40c64
use more canonical way to check binding existence (#58809)
aviatesk Jun 27, 2025
4ae3f5e
Add `trim_mode` parameter to JIT type-inference entrypoint (#58817)
topolarity Jun 27, 2025
309b1b1
codegen: gc wb for atomic FCA stores (#58792)
vtjnash Jun 27, 2025
d48a675
codegen: relaxed jl_tls_states_t.safepoint load (#58828)
xal-0 Jun 27, 2025
77b90b9
bpart: Properly track methods with invalidated source after require_w…
Keno Jun 28, 2025
c985dba
Limit --help and --help-hidden to 100 character line length (#58835)
gitboy16 Jun 29, 2025
8caacdb
libuv: Mark `(un)preserve_handle` as `@nospecialize` (#58844)
topolarity Jun 30, 2025
b459d88
add METHOD_SIG_LATEST_ONLY optimization to MethodInstance too (#58825)
vtjnash Jun 30, 2025
46513e6
Encode fully_covers=false edges using negative of method count
vtjnash Jun 30, 2025
d7c70bc
move trim patches to separate files, only load if trimming (#58826)
JeffBezanson Jun 30, 2025
1230853
gf: Add METHOD_SIG_LATEST_HAS_NOTMORESPECIFIC dispatch status bit
vtjnash Jun 30, 2025
908ef72
optimize verify_call again
vtjnash Jul 1, 2025
34bb3e7
juliac: Add rudimentary Windows support (#57481)
topolarity Jul 1, 2025
3ed13ea
fix null comparisons for non-standard address spaces (#58837)
simeonschaub Jul 1, 2025
0ea036b
debuginfo: Memoize object symbol lookup (#58851)
topolarity Jul 1, 2025
056e68b
bpart: Skip inserting image backedges while we're generating a pkgima…
Keno Jul 1, 2025
92aacab
Re-add old function name for backward compatibility in init (#58860)
gbaraldi Jul 1, 2025
9fd74b8
trimming: Add `_uv_hook_close` support (#58871)
topolarity Jul 2, 2025
e631972
Don't `@inbounds` AbstractArray's iterate method; optimize `checkboun…
mbauman Jul 2, 2025
2f57a31
aotcompile: Fix early-exit if CI not found for `cfunction` (#58722)
topolarity Jul 2, 2025
17312fe
zero-index get/setindex(::ReinterpretArray) require a length of 1 (#5…
adienes Jul 2, 2025
d49773c
Add `Base.isprecompilable` (#58805)
kpamnany Jul 2, 2025
8e524c7
Add a `similar` method for `Type{<:CodeUnits}` (#57826)
ararslan Jul 2, 2025
2aed648
🤖 [master] Bump the Pkg stdlib from e3d456127 to 109eaea66 (#58858)
DilumAluthgeBot Jul 2, 2025
811150c
fix a few tiny JET linter issues (#58869)
KristofferC Jul 2, 2025
9039555
Fix data race in jl_new_module__ (#58880)
xal-0 Jul 2, 2025
e853a4f
fix trailing indices stackoverflow in reinterpreted array (#58293)
adienes Jul 3, 2025
a4a1a7e
Add missing module qualifier (#58877)
serenity4 Jul 3, 2025
41570e9
OpenSSL: Update to 3.5.1 (#58876)
eschnett Jul 3, 2025
7a5c4b5
`setindex!(::ReinterpretArray, v)` needs to convert before reinterpre…
mbauman Jul 3, 2025
32211a6
Support `debuginfo` context option in IRShow for `IRCode`/`Incrementa…
serenity4 Jul 3, 2025
ed1fd39
Add offset in `hvncat` dimension calculation to fix issue with 0-leng…
BioTurboNick Jul 3, 2025
7c80405
fix `setindex(::ReinterpretArray,...)` for zero-d arrays (#58868)
mbauman Jul 3, 2025
b6123e8
add back `to_power_type` to `deprecated.jl` since some packages call …
KristofferC Jul 4, 2025
c0cc1e1
Pkg: Allow configuring can_fancyprint(io::IO) using IOContext (#58887)
fonsp Jul 4, 2025
bac6d9a
Make `Base.donotdelete` public (#55774)
LilithHafner Jul 4, 2025
4846c3d
Add link to video in profiling manual (#58896)
jishnub Jul 4, 2025
69a2a57
Stop documenting that `permute!` is "in-place"; it isn't and never ha…
LilithHafner Jul 5, 2025
d82ccc1
faster iteration over a `Flatten` of heterogenous iterators (#58522)
adienes Jul 6, 2025
3e2f90f
Make `hypot` docs example more type stable (#58918)
MasonProtter Jul 7, 2025
958d758
Markdown: Make `Table`/`LaTeX` objects subtypes of `MarkdownElement` …
aviatesk Jul 7, 2025
04138bf
Support "Functor-like" `code_typed` invocation (#57911)
topolarity Jul 7, 2025
144de95
IRShow: Print arg0 type when necessary to disambiguate `invoke` (#58893)
topolarity Jul 7, 2025
9fc33b9
Support "functors" for code reflection utilities (#58891)
topolarity Jul 7, 2025
6efd218
correctly encode and validate fully_covers as edges (#58861)
vtjnash Jul 7, 2025
8602127
Prevent data races in invalidate_code_for_globalref!
xal-0 Jul 7, 2025
7a1590f
Fix type instability in invalidate_code_for_globalref!
xal-0 Jul 7, 2025
5741911
Add the fact that functions ending with `!` may allocate to the FAQ (…
LilithHafner Jul 8, 2025
c3282ce
Binding invalidation data race fixes (#58924)
KristofferC Jul 8, 2025
5c31ec0
Economy mode REPL: run the event loop with jl_uv_flush (#58926)
xal-0 Jul 8, 2025
67634fe
Fix grammar, typos, and formatting issues in docstrings (#58944)
KristofferC Jul 9, 2025
2349f43
Fix nthreadpools size in JLOptions (#58937)
IanButterworth Jul 9, 2025
a60815f
NFC: Remove duplicate `julia-src-%` dependency in makefile (#58947)
IanButterworth Jul 9, 2025
41613c2
Improve error message for missing dependencies in packages (#58878)
eschnett Jul 9, 2025
72e2c45
Make current_terminfo a OncePerProcess (#58854)
Keno Jul 10, 2025
34f9032
chore: remove redundant words in comment (#58955)
jingchanglu Jul 10, 2025
f65fe61
add a precompile workload to TOML (#58949)
KristofferC Jul 10, 2025
7634fdf
🤖 [master] Bump the NetworkOptions stdlib from c090626 to 532992f (#5…
DilumAluthgeBot Jul 10, 2025
d493a97
remove excessive code from trim script (#58853)
vtjnash Jul 10, 2025
6a9da96
Add juliac Artifacts.toml in Makefile (#58936)
visr Jul 10, 2025
3705629
staticdata: Don't discard inlineable code that inference may need (#5…
Keno Jul 10, 2025
a58dc52
clear up `isdone` docstring (#58958)
adienes Jul 10, 2025
45e0925
shield `_artifact_str` function behind a world age barrier (#58957)
KristofferC Jul 10, 2025
f837bf0
doc: Fix grammar, typos, and formatting issues across documentation (…
KristofferC Jul 11, 2025
3847ff1
Replace Base.Workqueues with a OncePerThread (#58941)
xal-0 Jul 11, 2025
ff33305
Fix `hygienic-scope`s in inner macro expansions (#58965)
mlechu Jul 11, 2025
d7bdd21
remove comment from julia-syntax that is no longer true (#58964)
JeffBezanson Jul 11, 2025
49b08a3
expand memoryrefnew capabilities (#58768)
oscardssmith Jul 11, 2025
6d16351
Add news entry and update docstring for #58727 (#58973)
christiangnrd Jul 12, 2025
338f494
Fix alignment of failed precompile jobs on CI (#58971)
IanButterworth Jul 12, 2025
fb59b6d
bpart: Tweak `isdefinedglobal` on backdated constant (#58976)
Keno Jul 12, 2025
107e1ac
Fix precompilepkgs warn loaded setting (#58978)
IanButterworth Jul 12, 2025
3f9ba7f
specify that `Iterators.rest` must be given a valid `state` (#58962)
adienes Jul 12, 2025
01b1348
stdlib/Dates: Fix doctest regex to handle DateTime with 0 microsecond…
Keno Jul 12, 2025
6ddb3d6
Fix unique for range wrappers with zero step (#51004)
jishnub Jul 12, 2025
1367b3d
Docs: add GC user docs (#58733)
IanButterworth Jul 14, 2025
a355630
🤖 [master] Bump the Pkg stdlib from 109eaea66 to b85e29428 (#58991)
DilumAluthgeBot Jul 14, 2025
8596dbe
Add one-argument `argtypes` methods to source reflection functions (#…
serenity4 Jul 14, 2025
cdca668
Test: Add compiler hint for `ts` variable definedness in `@testset fo…
aviatesk Jul 14, 2025
95c4870
trimming: explictly add Libdl dep for test/trimming/basic_jll.jl (#58…
aviatesk Jul 14, 2025
cecaf52
win/msys2: Automatically switch msys2 symlinks mode for LLVM (#58988)
Keno Jul 14, 2025
7a8d0e4
Fix order of MSYS rules (#58999)
Keno Jul 14, 2025
f2a8e18
msys2: Recommend correct cmake package (#59001)
Keno Jul 15, 2025
11eeed3
feat(REPL): Added `active_module` context to numbered REPL (#59000)
kunzaatko Jul 15, 2025
9d6344a
optimize `length(::OrdinalRange)` for large bit-ints (#58864)
mbauman Jul 16, 2025
00351da
Fix LLVM TaskDispatcher implementation issues (#58950)
vtjnash Jul 16, 2025
720e23d
Improve --trace-dispatch coverage: emit in "full-cache" fast path as …
NHDaly Jul 16, 2025
be59b3b
MozillaCACerts: Update to 2025-07-15 (#59010)
eschnett Jul 17, 2025
b45b429
Fix use-after-free in FileWatching (#59017)
Keno Jul 17, 2025
d150fdf
Roll up msys2/clang/windows build fixes (#59003)
Keno Jul 17, 2025
e4755de
Fix tar command (#59026)
Zentrik Jul 17, 2025
3b29187
Add 'sysimage' keyword for `JULIA_CPU_TARGET` to match (or extend) th…
IanButterworth Jul 18, 2025
bea90a2
add `@__FUNCTION__` and `Expr(:thisfunction)` as generic function sel…
MilesCranmer Jul 18, 2025
c30199f
Bugfix: Use Base.aligned_sizeof instead of sizeof in Mmap.mmap (#58998)
JonasIsensee Jul 18, 2025
5ebc5b4
Fix PR reference in NEWS (#59046)
MilesCranmer Jul 19, 2025
8172db3
🤖 [master] Bump the LibCURL stdlib from a65b64f to 038790a (#59038)
DilumAluthgeBot Jul 20, 2025
412ea7b
🤖 [master] Bump the DelimitedFiles stdlib from db79c84 to a982d5c (#5…
DilumAluthgeBot Jul 20, 2025
c1c091e
🤖 [master] Bump the SHA stdlib from 4451e13 to 169a336 (#59041)
DilumAluthgeBot Jul 20, 2025
912c579
🤖 [master] Bump the Pkg stdlib from b85e29428 to 38d2b366a (#59040)
DilumAluthgeBot Jul 20, 2025
33e4e46
🤖 [master] Bump the Statistics stdlib from 77bd570 to 22dee82 (#59043)
DilumAluthgeBot Jul 20, 2025
f70c380
Expand JULIA_CPU_TARGET docs (#58968)
IanButterworth Jul 20, 2025
4d5122a
🤖 [master] Bump the LinearAlgebra stdlib from 3e4d569 to 2c3fe9b (#59…
DilumAluthgeBot Jul 20, 2025
0e1aa6c
🤖 [master] Bump the SparseArrays stdlib from 6d072a8 to 30201ab (#59042)
DilumAluthgeBot Jul 21, 2025
fae0d0a
🤖 [master] Bump the JuliaSyntaxHighlighting stdlib from f803fb0 to b6…
DilumAluthgeBot Jul 22, 2025
59a7bb3
stored method interference graph (#58948)
vtjnash Jul 22, 2025
5f0f2eb
build/llvm: Remove bash-specific curly expansion (#59058)
Keno Jul 23, 2025
9578e4b
build: More msys2 fixes (#59028)
Keno Jul 23, 2025
4718f43
remove a testset from MMAP that might cause CI to now fail on Windows…
KristofferC Jul 23, 2025
96b5b2c
Use a dedicated parameter attribute to identify the gstack arg. (#59059)
maleadt Jul 23, 2025
9aa2e68
skip unnecessary alias-check in `collect(::AbstractArray)` from `copy…
thchr Jul 23, 2025
c746048
Fix and update Revise manifest (#59077)
IanButterworth Jul 24, 2025
a39797a
🤖 [master] Bump the Pkg stdlib from 38d2b366a to 542ca0caf (#59083)
DilumAluthgeBot Jul 24, 2025
cc81a0b
Do not needlessly disable CPU features. (#59080)
maleadt Jul 24, 2025
095e753
build: Also pass -fno-strict-aliasing for C++ (#59066)
Keno Jul 24, 2025
18976d8
Fix typo in `include`'s docstring (#59055)
MagicMuscleMan Jul 24, 2025
8b86693
results.json: Fix repo paths so links to github work (#59090)
IanButterworth Jul 24, 2025
1cab9a7
Update RISC-V building docs. (#59088)
maleadt Jul 24, 2025
99eb121
Test: improve type stabilities (#59082)
aviatesk Jul 25, 2025
16a2bf0
LibCURL_jll: New version 8.15.0 (#59057)
eschnett Jul 25, 2025
0d9e0ef
Switch RISC-V to large model on LLVM 20 (#57865)
Zentrik Jul 25, 2025
f82635a
Support complex numbers in eps (#21858)
ChrisRackauckas Jul 26, 2025
44dd95a
🤖 [master] Bump the Pkg stdlib from 542ca0caf to d94f8a1d9 (#59093)
DilumAluthgeBot Jul 26, 2025
c5ba4e2
add array element mutex offset in print and gc (#58997)
vtjnash Jul 26, 2025
d5fdf04
Fix typo in tests introduced by #21858 (#59102)
LilithHafner Jul 26, 2025
2afae11
Fix msys symlink override rule (#59101)
Keno Jul 26, 2025
2b71259
inference: Make test indepdent of the `Complex` method table (#59105)
Keno Jul 27, 2025
a2457e6
Add uptime to CI test info (#59107)
IanButterworth Jul 27, 2025
55e2bd7
Fix rounding when converting Rational to BigFloat (#59063)
OlivierHnt Jul 27, 2025
cf9b7a8
make ReinterpretArray more Offset-safe (#58898)
adienes Jul 27, 2025
55b1f3c
remove extraneous function included in #21858 (#59109)
stevengj Jul 27, 2025
853aba5
[REPL] Handle empty completion, keywords better (#59045)
xal-0 Jul 28, 2025
57def4d
Add builtin function name to add methods error (#59112)
IanButterworth Jul 28, 2025
f356a40
better error in juliac for defining main inside a new module (#59106)
JeffBezanson Jul 28, 2025
f2c2837
Don't call `sort!` and `partialsort!` "in-place" (#58901)
LilithHafner Jul 29, 2025
50c8956
[REPL] Fix keyword arguments completions with do block (#59123)
xal-0 Jul 29, 2025
fde79f5
Fix memory order typo in "src/julia_atomics.h" (#59120)
omus Jul 29, 2025
90e3c1a
Update list of COMPILER_SRCS in sysimage.mk (#59125)
Keno Jul 29, 2025
ce600a0
Enforce ExceptionStack stack type (#59133)
Keno Jul 29, 2025
9f69961
fix serializer compat with CodeInfos from v1.11 (#58650)
JeffBezanson Jul 29, 2025
1d42e05
REPL: improve type inference for `maybe_spawn_cache_PATH` (#59144)
aviatesk Jul 30, 2025
c230f9f
iterator: improve type inference for `Filter` (#59142)
aviatesk Jul 30, 2025
21d15ed
Refactor stacktrace processing and display pipeline for more clarity …
BioTurboNick Jul 30, 2025
ebf55c0
Use ios to support ridiculous DL_LOAD_PATH length (#59150)
xal-0 Jul 30, 2025
0d4cdfc
build: add --fix option for check-whitespace (#59118)
vtjnash Jul 30, 2025
884c5e3
bump slop for twiceprecision division (#59140)
oscardssmith Jul 30, 2025
9373bd1
[test] precompile tests run on master 1, so may need explicit startup…
vtjnash Jul 30, 2025
c9ef3a1
Add stack trace cycle display revamp to NEWS.md (#59156)
BioTurboNick Jul 30, 2025
577b8c5
build: instruct AGENTS to run static analysis checks (#59137)
vtjnash Jul 31, 2025
5ddd721
build: Fix libssh2 source build (#59164)
Keno Jul 31, 2025
f5c55e8
misc: Don't get confused by GC running during compilation (#59163)
Keno Jul 31, 2025
9a16119
replcompletions: Try to make the test more robust (#59166)
Keno Jul 31, 2025
1f6eff1
Clarify and enhance confusing precompile test (#59170)
IanButterworth Jul 31, 2025
3de5b9a
Fix desugaring of `const x::T = y` for complex `y` (#59155)
mlechu Aug 1, 2025
6175761
Remove unnecessary `@inbounds` in `fill!` (#59174)
LilithHafner Aug 1, 2025
8ba3b11
Try to remove `readavailable` sections from REPL precompile (#59179)
Keno Aug 1, 2025
f5b97a8
Add ThreadSanitzer hooks for jl_mutex_t (#59034)
xal-0 Aug 1, 2025
2eb2bf9
convert Tarjan algorithms to iterative structure (#59143)
vtjnash Aug 1, 2025
38aff47
Require `n::Integer` for `sizehint!(a, n)` (#59168)
timholy Aug 1, 2025
7cbea5f
Use relaxed atomics to load/update jl_lineno and jl_filename (#58939)
xal-0 Aug 1, 2025
9473ef7
inference: avoid `LimitedAccuracy` within slot wrappers (#59182)
aviatesk Aug 1, 2025
f9b7d27
rename `GlobalMethods` to `methodtable` :bike: :house: (#59158)
JeffBezanson Aug 1, 2025
f5668d6
more accurate `rad2deg` and `deg2rad` for `Float16` and `Float32` (#5…
nsajko Aug 1, 2025
ca4981c
Update lock hierarchy devdocs (#58884)
xal-0 Aug 1, 2025
698ae27
Add CROSS_BOOTSTRAP_JULIA option for building the sysimg with another…
xal-0 Aug 1, 2025
81352c1
Test: remove unnecessary allocation (#59186)
aviatesk Aug 1, 2025
d00f9d0
Test: `@test_throws` add 3-arg form for testing exception type and me…
IanButterworth Aug 2, 2025
a60814f
Add PNG versions of decdocs diagrams to fix PDF build (#59189)
xal-0 Aug 2, 2025
9808816
Precompile out of env deps in serial within precompilepkgs (#59122)
IanButterworth Aug 2, 2025
94cc996
inference: propagate more `LimitedAccuracy` information (#59187)
aviatesk Aug 2, 2025
13f6b3b
Export jl_declare_constant_val (#59192)
Taaitaaiger Aug 2, 2025
905a847
Align build flags between source builds and jlls (#59195)
Keno Aug 4, 2025
1a1270d
Add missing exec paths to new Zstd_jll stdlib (#59198)
IanButterworth Aug 4, 2025
b58fd8b
allow passing `--project` to `juliac.jl` (#59160)
mbauman Aug 4, 2025
b35c4f4
model ccall binding access in inference (#58872)
JeffBezanson Aug 4, 2025
db587b4
Support moving
udesou Mar 27, 2025
d1fabab
Minor fix for the macro
qinsoon Apr 3, 2025
983d2c4
jl_pinned_ref example in CPP
qinsoon Apr 3, 2025
5c5b378
Changing C macro; Making jl_bt_element_t safe by wrapping jl_value_t*…
udesou Apr 9, 2025
dd609cd
Wrapping types from jl_codectx_t with jl_pinned_ref
udesou Apr 14, 2025
d302280
Wrapping types from jl_native_code_desc_t with jl_pinned_ref
udesou Apr 14, 2025
f6ea9db
Wrapping types from jl_cgval_t with jl_pinned_ref
udesou Apr 14, 2025
2070bb4
Wrapping types from InferKey with jl_pinned_ref
udesou Apr 14, 2025
9e5b643
Wrapping types from cfunc_decl_t with jl_pinned_ref
udesou Apr 14, 2025
43b983e
Adding support for setting MMTK_MOVING_STRESS
udesou Apr 17, 2025
8199d5d
Adding more globally rooted functions and using less transitive pinni…
udesou Apr 17, 2025
8fbc0a6
Adding more OBJHASH_PIN and PTRHASH_PIN and fix jl_pinned_ref_create
udesou Apr 17, 2025
aded1c8
Pinning buffers; removing transitive pinning of global_roots_table; P…
Apr 30, 2025
7fa9163
Adding pin in jl_string_to_genericmemory
udesou May 1, 2025
3a41465
Transitively pinning objects from gc_preserve
udesou May 5, 2025
a6d1c26
Export pool stats
qinsoon Mar 26, 2025
534c6a1
Invoke make for the binding everytime we make
qinsoon Feb 6, 2025
b51e8f2
Use Immix as non moving space
qinsoon May 8, 2025
9d8c245
Allocating weak references, genericmemory and buffers into a non-movi…
May 19, 2025
7dff6ad
Print utilization stats for stock GC
May 19, 2025
7904cc5
Adding options to have every GC as defrag (MMTK_ALWAYS_MOVING) and co…
May 20, 2025
7b9b123
Moving jl_genericmemory_t objects to the immix space
May 23, 2025
2e8682d
Add functions in the GC interface to get object hash
qinsoon May 27, 2025
1e548d4
Copying libmmtk_julia.so to the build dir
qinsoon May 28, 2025
dd99627
bits_hash uses the value of the pointers, not the pointers.
qinsoon May 29, 2025
7f02556
Allow dump some heap stats for MMTk
qinsoon Jun 10, 2025
1cee40f
Pass hard-heap-limit to MMTk
qinsoon Jun 12, 2025
fa73fa5
pinning log
d-netto Jun 6, 2025
d10de94
Don't pin objects permanently in engine.cpp
d-netto Jun 16, 2025
4a22f2c
suggestions from Yi' review
d-netto Jun 18, 2025
9499a8a
optimize pinning in ast.c
d-netto Jun 19, 2025
b8e2c60
pass ast context to julia_to_scm
d-netto Jun 19, 2025
c75596a
call pin function on AST ctx
d-netto Jun 19, 2025
b378651
push into pinned_objects
d-netto Jun 19, 2025
bf55259
Trace pinned objects as roots (#91)
qinsoon Jun 27, 2025
22661cd
Fixing errors after updating
udesou Aug 5, 2025
0c6d0d4
Record hidden ptr in layout (#92)
qinsoon Aug 5, 2025
0601d20
Merge branch 'mmtk-support-moving-upstream' into updating-mmtk-moving
udesou Aug 6, 2025
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
  •  
  •  
  •  
8 changes: 8 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,11 @@ CODEOWNERS @JuliaLang/github-actions

/.github/workflows/rerun_failed.yml @DilumAluthge
/.github/workflows/statuses.yml @DilumAluthge
/.github/workflows/PrAssignee.yml @LilithHafner @DilumAluthge
/base/special/ @oscardssmith
/base/sort.jl @LilithHafner
/test/sorting.jl @LilithHafner
/stdlib/*_jll @giordano
/base/binaryplatforms.jl @giordano
/src/julia_gcext.h @fingolfin
/test/gcext/gcext.c @fingolfin
210 changes: 210 additions & 0 deletions .github/workflows/PrAssignee.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,210 @@
name: PR Assignee
on:
# Important security note: Do NOT use `actions/checkout`
# or any other method for checking out the pull request's source code.
# This is because the pull request's source code is untrusted, but the
# GITHUB_TOKEN has write permissions (because of the `on: pull_request_target` event).
#
# Quoting from the GitHub Docs:
# > For workflows that are triggered by the pull_request_target event, the GITHUB_TOKEN is granted
# > read/write repository permission unless the permissions key is specified and the workflow can access secrets,
# > even when it is triggered from a fork.
# >
# > Although the workflow runs in the context of the base of the pull request,
# > you should make sure that you do not check out, build, or run untrusted code from the pull request with this event.
#
# Source: https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#pull_request_target
#
# See also: https://securitylab.github.com/resources/github-actions-preventing-pwn-requests/
pull_request_target:
types: [opened, reopened, ready_for_review]

# Permissions for the `GITHUB_TOKEN`:
permissions:
pull-requests: write # Needed in order to assign a user as the PR assignee

jobs:
pr-assignee:
runs-on: ubuntu-latest
if: ${{ github.event.pull_request.draft != true }}
steps:
# Important security note: As discussed above, do NOT use `actions/checkout`
# or any other method for checking out the pull request's source code.
# This is because the pull request's source code is untrusted, but the
# GITHUB_TOKEN has write permissions (because of the `on: pull_request_target` event).
- name: Add Assignee
# We pin all third-party actions to a full length commit SHA
# https://docs.github.com/en/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions#using-third-party-actions
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
retries: 5 # retry GitHub API requests up to 5 times, with exponential backoff
retry-exempt-status-codes: 404
# Don't retry 404 because we will hit a 404 when the PR author is a committer.
# This 404 is normal and expected.
# Do retry 400 and other 4xx errors because github sometimes (erroneously)
# returns a 4xx error code due to server errors.
script: |
const oldPrAssignees = context.payload.pull_request.assignees
.map(obj => obj.login)
console.log('oldPrAssignees: ', oldPrAssignees);
const prAuthor = context.payload.pull_request.user.login;

// Check if the PR is opened by a collaborator on the repo, aka someone with write (commit) permissions or higher.
const relevantPerms = [
// 'triage', // Uncomment this line if you don't want PRs from triagers to get auto-assignees.
'push',
'maintain',
'admin',
]
const allCollaboratorsNestedPromises = relevantPerms.map(
(perm) => github.paginate(
// We use the `/repos/{owner}/{repo}/collaborators` endpoint to avoid needing org scope permissions:
'/repos/{owner}/{repo}/collaborators',
{
owner: context.repo.owner,
repo: context.repo.repo,
per_page: 100,
permission: perm,
},
(response) => response.data.map((collaboratorInfo) => collaboratorInfo.login),
)
)
const allCollaboratorsNested = await Promise.all(allCollaboratorsNestedPromises);
const allCollaboratorsFlattened = allCollaboratorsNested.flat();

// Skip BumpStdlibs.jl PRs
allCollaboratorsFlattened.push('DilumAluthgeBot');
// Skip Dependabot PRs
allCollaboratorsFlattened.push('dependabot');

const isCollaborator = allCollaboratorsFlattened.includes(prAuthor);

console.log('prAuthor: ', prAuthor);
console.log('isCollaborator: ', isCollaborator);

// Load the list of assignable reviewers from the JuliaLang/pr-assignment repo at:
// https://github.com/JuliaLang/pr-assignment/blob/main/users.txt
//
// NOTE to JuliaLang committers: If you want to be assigned to new PRs, please add your
// GitHub username to that file.

// Load file contents
const { data: fileContentsObj } = await github.rest.repos.getContent({
owner: 'JuliaLang',
repo: 'pr-assignment',
path: 'users.txt',
ref: 'main',
});

const fileContentsBufferObj = Buffer.from(fileContentsObj.content, "base64");
const fileContentsText = fileContentsBufferObj.toString("utf8");

// Find lines that match the following regex, and extract the usernames:
const regex = /^@([a-zA-Z0-9\-]+)(\s*?)?(#[\S]*?)?$/;
const assigneeCandidates = fileContentsText
.split('\n')
.map(line => line.trim())
.map(line => line.match(regex))
.filter(match => match !== null)
.map(match => match[1]);

console.log('assigneeCandidates: ', assigneeCandidates);
if (assigneeCandidates.length < 1) {
const msg = 'ERROR: Could not find any assigneeCandidates';
console.error(msg);
throw new Error(msg);
}

if (oldPrAssignees.length >= 1) {
console.log('Skipping this PR, because it already has at least one assignee');
return;
}


const RUNNER_DEBUG_original = process.env.RUNNER_DEBUG;
console.log('RUNNER_DEBUG_original: ', RUNNER_DEBUG_original);
if (RUNNER_DEBUG_original === undefined) {
var thisIsActionsRunnerDebugMode = false;
} else {
const RUNNER_DEBUG_trimmed = RUNNER_DEBUG_original.trim().toLowerCase()
if (RUNNER_DEBUG_trimmed.length < 1) {
var thisIsActionsRunnerDebugMode = false;
} else {
var thisIsActionsRunnerDebugMode = (RUNNER_DEBUG_trimmed == 'true') || (RUNNER_DEBUG_trimmed == '1');
}
}
console.log('thisIsActionsRunnerDebugMode: ', thisIsActionsRunnerDebugMode);

if (isCollaborator == true) {

if (thisIsActionsRunnerDebugMode) {
// The PR author is a committer
// But thisIsActionsRunnerDebugMode is true, so we proceed to still run the rest of the script
console.log('PR is authored by JuliaLang committer, but thisIsActionsRunnerDebugMode is true, so we will still run the rest of the script: ', prAuthor);
} else {
// The PR author is a committer, so we skip assigning them
console.log('Skipping PR authored by JuliaLang committer: ', prAuthor);
console.log('Note: If you want to run the full script (even though the PR author is a committer), simply re-run this job with Actions debug logging enabled');
return;
}
}

var weDidEncounterError = false;

// Assign random committer
const selectedAssignee = assigneeCandidates[Math.floor(Math.random()*assigneeCandidates.length)]
console.log('selectedAssignee: ', selectedAssignee);
console.log(`Attempting to assign @${selectedAssignee} to this PR...`);
await github.rest.issues.addAssignees({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
assignees: selectedAssignee,
});

// The following is commented out because the label only makes sense in the presence of a larger state machine
// // Add the "pr review" label
// const prReviewLabel = 'status: waiting for PR reviewer';
// console.log('Attempting to add prReviewLabel to this PR...');
// await github.rest.issues.addLabels({
// owner: context.repo.owner,
// repo: context.repo.repo,
// issue_number: context.payload.pull_request.number,
// labels: [prReviewLabel],
// });

// Now get the updated PR info, and see if we were successful:
const updatedPrData = await github.rest.pulls.get({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.payload.pull_request.number,
});
const newPrAssignees = updatedPrData
.data
.assignees
.map(element => element.login)
console.log('newPrAssignees: ', newPrAssignees);
if (newPrAssignees.includes(selectedAssignee)) {
console.log(`Successfully assigned @${selectedAssignee}`);
} else {
weDidEncounterError = true;
console.log(`ERROR: Failed to assign @${selectedAssignee}`);
}
// const newPrLabels = updatedPrData
// .data
// .labels
// .map(element => element.name)
// console.log('newPrLabels: ', newPrLabels);
// if (newPrLabels.includes(prReviewLabel)) {
// console.log('Successfully added prReviewLabel');
// } else {
// weDidEncounterError = true;
// console.log('ERROR: Failed to add add prReviewLabel');
// }

// Exit with error if any problems were encountered earlier
if (weDidEncounterError) {
const msg = 'ERROR: Encountered at least one problem while running the script';
console.error(msg);
throw new Error(msg);
}
2 changes: 1 addition & 1 deletion .github/workflows/Typos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
timeout-minutes: 5
steps:
- name: Checkout the JuliaLang/julia repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- name: Check spelling with typos
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/Whitespace.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ jobs:
timeout-minutes: 2
steps:
- name: Checkout the JuliaLang/julia repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- uses: julia-actions/setup-julia@9b79636afcfb07ab02c256cede01fe2db6ba808c # v2.6.0
- uses: julia-actions/setup-julia@5c9647d97b78a5debe5164e9eec09d653d29bd71 # v2.6.1
with:
version: '1'
- name: Check whitespace
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/cffconvert.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out a copy of the repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false

Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,12 @@
/usr-staging
/Make.user
/julia-*
/deps/jlutilities/depot
/source-dist.tmp
/source-dist.tmp1
/test/results_*.json
/test/results_*.dat
/test/deps

*.expmap
*.exe
Expand Down
115 changes: 115 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# Information for AI agents

## Module Organization
- `base/` - Core standard library (loaded at startup)
- `stdlib/` - Standard library packages (can be loaded independently)
- `Compiler/` - Julia compiler as a separate module (can be swapped)
- `src/` - C/C++ runtime and LLVM codegen
- `cli/` - Command-line interface and loader
- `doc/` - Documentation and User Manual

## Running Julia

You should have a recent binary copy of julia in your `$HOME/.juliaup/bin` directory.
You may use this julia executable for validation.
If a built version of Julia exists in the current source tree (at `usr/bin/julia`),
prefer that version.
Note that any changes you make to the source code after the binary is built
will not be reflected, unless you use `Revise`.

## For all changes

1. Run `make fix-whitespace` before creating the PR to make sure you're not committing any whitespace errors.

## Building Julia

If you made changes to the runtime (any files in `src/`), you will need to rebuild
julia. Run `make -j` to rebuild julia. This process may take up to 10 minutes
depending on your changes.

After `make` run these static analysis checks:
- `make -C src clang-sa-<filename>` (replace `<filename>` with the basename of the file you modified)
- `make -C src clang-sagc-<filename>` which may require adding JL_GC_PUSH arguments, or JL_GC_PROMISE_ROOTED statements., or require fixing locks. Remember arguments are assumed rooted, so check the callers to make sure that is handled. If the value is being temporarily moved around in a struct or arraylist, `JL_GC_PROMISE_ROOTED(struct->field)` may be needed as a statement (it return void) immediately after reloading the struct before any use of struct. Put the promise as early in the code as is legal.
- `make -C src clang-tidy-<filename>`

## Using Revise

If you have made changes to files included in the system image (base/ or stdlib/),
and need to run code with these changes included, you can use `Revise`.
To do so, run `using Revise; Revise.track(Base)` (or Revise.track with the stdlib you modified).
The test system supports doing this automatically (see below).

## Specific instructions for particular changes

### Doctests

#### Writing doctests

If you are asked to write new doctests, first review `doc/src/devdocs/contributing/jldoctests.md`
for best practices.

#### Verifying doctests
If you have changed any `jldoctest` code blocks you should take
the following steps to verify your work:
- Review `doc/src/devdocs/contributing/jldoctests.md`. In particular, determine
if any of the changed doctests require filters, labels or setup code.
- Run the doctests to verify that your change works:
- To run doctest with the pre-built juliaup: `make -C doc doctest=true revise=true JULIA_EXECUTABLE=$HOME/.juliaup/bin/julia`
- To run doctest with in-trr julia (preferred): `make -C doc doctest=true revise=true`. Do not pass any other options.
- IMPORTANT: The doctests may take up to 15 minutes. Do NOT terminate the doctests before completion. Do NOT use a timeout for doctests.
- If you are ChatGPT, you may have to increase yield_timeout_ms.

Follow these steps for EVERY change you make in a doctest.

### Test changes

If you have changed a test (e.g. `foo`), you should run `make test-revise-foo` for the
corresponding test to ensure that the test is still passing with your changes.
- If you are adding a new test, add it to an existing test file. Do not create a new test file unless explicitly instructed.
- Write one comment at the top of the test to explain what is being tested.
Otherwise keep comments minimal.
- Use the environment variable `JULIA_TEST_FAILFAST=1` to make tests fail fast.

### External dependencies

When modifying external dependencies (patches in `deps/patches/` or version updates in `deps/`):

1. Always test builds with `USE_BINARYBUILDER=0` to ensure source builds work correctly
2. For patches to external libraries:
- Verify the patch applies cleanly by running the extraction and patch steps
- Test the full build of the dependency: `make -C deps USE_BINARYBUILDER=0 compile-<depname>`
- Prefer using the full upstream commit in `git am` format (e.g., `git format-patch`) which includes proper commit metadata
3. When updating dependency versions, ensure all associated patches still apply

### External JLLs

To update a JLL to the latest version:
- Update the version number in the appropriate jll folder
- If the dependencies in the upstream jll changed, update the Project.toml
- Run `make -f contrib/refresh_checksums.mk <jll>` to update the checksums. This may take a few minutes.

### Writing code
After writing code, look up the docstring for each function you used. If there
are recommendations or additional considerations that apply to these functions,
make sure to take them into account.

#### Specific instructions
- Do not `ccall` runtime C functions directly if there are existing wrappers for the function.
- Do not explicitly add a module prefix if the code you're adding is in the same module. E.g. do not use `Base.` for code in Base unless required.

## Commit message formatting

When writing commit messages, follow the format "component: Brief summary" for
the title. In the body of the commit message, provide a brief prose summary
of the purpose of the changes made. Do not specifically mention added tests, comments,
documentation, etc., unless this is the main purpose of the change. Do not mention
the test plan, unless it differs from what you were instructed to do in AGENTS.md.
If your change fixes one or more issues, use the syntax "Fixes #" at the end of the commit message, but do not include it in the title.

When referencing external GitHub PRs or issues, use proper GitHub interlinking format (e.g., `owner/repo#123` for PRs/issues).
When fixing CI failures, include the link to the specific CI failure in the commit message.

When creating pull requests, if the pull request consists of one commit only,
use the body of the commit for the body of the pull request. If there are multiple
commits in the pull request, follow the same guidelines for the pull request
as for the commit body.
1 change: 1 addition & 0 deletions CLAUDE.md
Loading