Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
629 commits
Select commit Hold shift + click to select a range
9108dd0
test: Compiler: relax flaky codegen test (#57432)
nsajko Jun 2, 2025
050284c
Fix `linearize` of global with complex type (#58611)
mlechu Jun 3, 2025
1ea959a
ci: Don't add status label to prs automatically (#58606)
LilithHafner Jun 3, 2025
6f1da03
🤖 [master] Bump the Pkg stdlib from 88629b552 to 5577f68d6 (#58619)
DilumAluthgeBot Jun 3, 2025
8d2708c
reland: hard heap limit flag (#58600)
d-netto Jun 3, 2025
921f17a
CI: PrAssignee.yml: Comment out some more label-related code (#58621)
DilumAluthge Jun 3, 2025
e9e7931
CI: `PrAssignee.yml`: don't skip PRs from triagers (#58612)
DilumAluthge Jun 3, 2025
b04b104
If the user explicitly asked for 1 thread don't add an interactive on…
gbaraldi Jun 4, 2025
602d6ee
InteractiveUtils: Fully support broadcasting expressions for code int…
serenity4 Jun 4, 2025
7498f34
CI: `PrAssignee.yml`: Add note about public membership in the bot com…
DilumAluthge Jun 4, 2025
edb2aa8
codegen: More robustness for invalid :invoke IR (#58631)
Keno Jun 4, 2025
fe7dc7d
docs: add commit message formatting guidelines to AGENTS.md (#58629)
Keno Jun 4, 2025
906d348
Make late gc lower handle insertelement of alloca use. (#58637)
gbaraldi Jun 4, 2025
7cb88d6
Detect Apple M4 and some related changes (#58301)
fingolfin Jun 5, 2025
4632cd2
deps: fix libunwind build with GCC < 11 (#58628)
Keno Jun 5, 2025
f5e983e
Update install link in warning (#58638)
IanButterworth Jun 5, 2025
a4ab110
test: replcompletions: Replace timedwait by proper condvar (#58643)
Keno Jun 5, 2025
7a86a28
Serialization doc updated (#58575)
arnavk23 Jun 5, 2025
2e158a4
ircode: handle content outside of a module (#58639)
vtjnash Jun 5, 2025
995ea2c
Fix whitespace in new libunwind patch (#58649)
Keno Jun 6, 2025
2a9f33c
add `print_signature_only` argument to `Base.show_method` (#58647)
aviatesk Jun 6, 2025
347fb7c
Use type wrapper directly rather than typename in `FieldError` (#58507)
MasonProtter Jun 6, 2025
d2cc061
module: Tweak backdate-warning-turned error (#58651)
Keno Jun 6, 2025
67b69dd
CI: `PrAssignee.yml`: Skip BumpStdlibs.jl PRs (PRs authored by `@Dilu…
DilumAluthge Jun 6, 2025
8a0a213
Bump julia-actions/setup-julia from 2.6.0 to 2.6.1 (#58656)
dependabot[bot] Jun 6, 2025
3682c06
Bump actions/checkout from 4.1.7 to 4.2.2 (#58657)
dependabot[bot] Jun 6, 2025
dece143
Create 'JL_GC_DECODE_NROOTS' macro to avoid writing explicit bitshift…
d-netto Jun 6, 2025
51214a7
Make pool allocator stats from gc_page_fragmentation_stats more visib…
d-netto Jun 7, 2025
dda37f9
Try workaround for https://github.com/JuliaLang/www.julialang.org/iss…
staticfloat Jun 8, 2025
5610e21
Fix and test stdlib JLL deps on Windows (#58560)
IanButterworth Jun 8, 2025
16197f8
Try workaround for macOS launcher issue (#58668)
staticfloat Jun 8, 2025
c759aa9
Adjust applescript workaround
staticfloat Jun 8, 2025
d6b3669
Adjust applescript workaround (#58673)
staticfloat Jun 9, 2025
1c26f43
better handling of missing backedges (#58636)
vtjnash Jun 9, 2025
1052201
improve inferred effects for `reshape` for `Array` (#58672)
nsajko Jun 9, 2025
d6294ba
Unicode: Force-inline isgraphemebreak! (#58674)
Keno Jun 10, 2025
3fa367b
`Random`: make `randperm!` and `randcycle!` accept `AbstractArray` (#…
nsajko Jun 10, 2025
66d3cf5
cfunction: store `fptr` / `world` contiguously (#58684)
topolarity Jun 10, 2025
abb4942
Specialize iterate for `IndexLinear` arrays (#58635)
jishnub Jun 10, 2025
cdb158b
restore fallback 3-arg `setprecision` method (#58586)
JeffBezanson Jun 10, 2025
da00451
Add 0 predecessor to entry basic block and handle it in inlining (#58…
gbaraldi Jun 10, 2025
8567a3a
Test: Fix failfast for for loops (#58695)
IanButterworth Jun 11, 2025
a970e16
`Integer` can be hashed rapidly as well (#58440)
adienes Jun 11, 2025
c0ecfe9
Follow-up to hashing BigInts; expand testing (#58714)
adienes Jun 11, 2025
b621328
[NFC] codegen: introduce `jl_abi_t` type for ABI adapter API (#58697)
topolarity Jun 12, 2025
66ec6ee
Add compat note for OncePer types (#58716)
jakobnissen Jun 12, 2025
6121477
add support for storing just the inferred inlining_cost in CodeInstan…
vtjnash Jun 12, 2025
468c057
GC Always Full Flag (#58713)
d-netto Jun 12, 2025
7e8e9bb
CI: `PrAssignee.yml`: Don't post a comment (#58721)
DilumAluthge Jun 12, 2025
9841ace
deps: PCRE2: Update to 10.45.0 (#58709)
eschnett Jun 13, 2025
866c890
UnicodeData: Update to version 16 (#58710)
eschnett Jun 13, 2025
8e88820
test/spawn: download busybox to a filename ending with .exe on Window…
KristofferC Jun 13, 2025
ab49eb1
[NFC] codegen: Move target ABI calculation into `jl_jit_abi_converter…
topolarity Jun 13, 2025
b636acb
curl: Update to 8.14.1 (#58708)
eschnett Jun 14, 2025
895a981
AGENTS.md: Add note about using failfast (#58696)
IanButterworth Jun 14, 2025
a23ce4b
Add tests for eltype(::Type{<:AbstractString}) (#58728)
nilesh646 Jun 14, 2025
24b3273
Define `in` for `CartesianIndex` ranges (#58616)
jishnub Jun 16, 2025
89dfb68
inference: improve `isdefined_tfunc` accuracy for `MustAlias` (#58743)
aviatesk Jun 17, 2025
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
26d6bce
Support moving
udesou Mar 27, 2025
286abe8
Minor fix for the macro
qinsoon Apr 3, 2025
83f87d0
jl_pinned_ref example in CPP
qinsoon Apr 3, 2025
c710e2b
Changing C macro; Making jl_bt_element_t safe by wrapping jl_value_t*…
udesou Apr 9, 2025
f6d7ac8
Wrapping types from jl_codectx_t with jl_pinned_ref
udesou Apr 14, 2025
4686b5e
Wrapping types from jl_native_code_desc_t with jl_pinned_ref
udesou Apr 14, 2025
b9e7c34
Wrapping types from jl_cgval_t with jl_pinned_ref
udesou Apr 14, 2025
2a90651
Wrapping types from InferKey with jl_pinned_ref
udesou Apr 14, 2025
289c500
Wrapping types from cfunc_decl_t with jl_pinned_ref
udesou Apr 14, 2025
e5b7830
Adding support for setting MMTK_MOVING_STRESS
udesou Apr 17, 2025
410caec
Adding more globally rooted functions and using less transitive pinni…
udesou Apr 17, 2025
4f4f4de
Adding more OBJHASH_PIN and PTRHASH_PIN and fix jl_pinned_ref_create
udesou Apr 17, 2025
4b89473
Pinning buffers; removing transitive pinning of global_roots_table; P…
Apr 30, 2025
bc9cbb4
Adding pin in jl_string_to_genericmemory
udesou May 1, 2025
1e0d91e
Transitively pinning objects from gc_preserve
udesou May 5, 2025
c3bf7b1
Export pool stats
qinsoon Mar 26, 2025
c987bdb
Invoke make for the binding everytime we make
qinsoon Feb 6, 2025
466d952
Use Immix as non moving space
qinsoon May 8, 2025
da46f46
Allocating weak references, genericmemory and buffers into a non-movi…
May 19, 2025
2011f2d
Print utilization stats for stock GC
May 19, 2025
70f37fc
Adding options to have every GC as defrag (MMTK_ALWAYS_MOVING) and co…
May 20, 2025
b07c800
Moving jl_genericmemory_t objects to the immix space
May 23, 2025
27eef9a
Add functions in the GC interface to get object hash
qinsoon May 27, 2025
a3d7619
Copying libmmtk_julia.so to the build dir
qinsoon May 28, 2025
f983b85
bits_hash uses the value of the pointers, not the pointers.
qinsoon May 29, 2025
3ba795c
Allow dump some heap stats for MMTk
qinsoon Jun 10, 2025
8bc95dd
Pass hard-heap-limit to MMTk
qinsoon Jun 12, 2025
e97dd33
pinning log
d-netto Jun 6, 2025
e0bd136
Don't pin objects permanently in engine.cpp
d-netto Jun 16, 2025
da8ddb8
suggestions from Yi' review
d-netto Jun 18, 2025
58fdf0f
optimize pinning in ast.c
d-netto Jun 19, 2025
ec80bf6
pass ast context to julia_to_scm
d-netto Jun 19, 2025
c7dd453
call pin function on AST ctx
d-netto Jun 19, 2025
6e3b4e1
push into pinned_objects
d-netto Jun 19, 2025
542a745
Trace pinned objects as roots (#91)
qinsoon Jun 27, 2025
9b89fd2
Fixing errors
udesou Jul 30, 2025
3d6452e
Fixed all compile errors
udesou Jul 31, 2025
f400863
Fixing whitespace; Adding missing global root
udesou Jul 31, 2025
ee3a422
Reapplying changes about jl_ast_context_t
d-netto Jun 19, 2025
b50cb4e
Trace pinned objects as roots (#91)
qinsoon Jun 27, 2025
7c2fa3f
Merge branch 'mmtk-support-moving-upstream' into fix/updating-moving-…
udesou Aug 4, 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
103 changes: 103 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
# 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 check-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.

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

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