Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
9494125
set VERSION to 1.12.3 (#60346)
KristofferC Dec 11, 2025
966d0af
release-1.12: Revert "build: More msys2 fixes (#59028)" (#60374)
KristofferC Dec 15, 2025
120dad2
Correct version in which at-lock was exported (#60279)
giordano Nov 29, 2025
a020033
Fix buffer overflow in jloptions (#60299)
vchuravy Dec 2, 2025
986bb5e
build: include `SuiteSparse` in pkgimages to precompile (#60291)
topolarity Dec 2, 2025
e35b957
Logging: define isless between Integer and LogLevel (#60330)
EdsterG Dec 10, 2025
a16e9c9
🤖 [release-1.12] Bump LinearAlgebra stdlib 997c4b7 → dd3ea72 (#60395)
DilumAluthgeBot Dec 16, 2025
be84d00
bump Pkg to latest 1.12
KristofferC Dec 16, 2025
cb92daf
use a "locally frozen world age" to invoke `_artifact_str` in (#60383)
KristofferC Dec 17, 2025
496a23a
MozillaCACerts: Update to 2025-11-04 (#60041)
eschnett Nov 4, 2025
8086974
Fix `remove-argument-side-effects` with keyword call (#60195)
mlechu Nov 22, 2025
dda7788
Make stdlib precompile failures throw (#60308)
IanButterworth Dec 3, 2025
32ebc18
Fix world age docs link, point to correct manual version (manual back…
fingolfin Dec 18, 2025
4c54caf
compiler: Fix typo in `abstract_invoke` (#60414)
aviatesk Dec 19, 2025
d4a8d24
🤖 [release-1.12] Bump LinearAlgebra stdlib dd3ea72 → 7249e66
dkarrasch Dec 19, 2025
d4ce391
🤖 [release-1.12] Bump Pkg stdlib 1dad5c513 → b322a8ff7
IanButterworth Dec 20, 2025
70af005
Don't create a subprocess in the REPL precompile script (#60326)
xal-0 Dec 6, 2025
fa60880
[backports-release-1.12] Fix 7z rpath (#60419)
nhz2 Dec 22, 2025
3550e0b
Fix JET warning in `_spawn_primitive` (#60452)
fingolfin Dec 23, 2025
3d9bb7f
Fix JET warnings in `copy_chunks!`, `copy_chunks_rtol!`, `fill_chunks…
fingolfin Dec 23, 2025
5f7843a
🤖 [release-1.12] Bump SparseArrays stdlib 5d674dc → f81a30d
dkarrasch Dec 23, 2025
0077947
Fix JET warning in `TOML.parse_array` (#60465)
fingolfin Dec 24, 2025
5b6e9d0
Fix JET warning in Base.sendfile (#60466)
fingolfin Dec 24, 2025
8209198
Fix JET warning related to `_array_for` (#60461)
fingolfin Dec 27, 2025
5ff5246
set VERSION to 1.12.4 (#60539)
KristofferC Jan 6, 2026
888716d
RAI: Add 'RAI' as the build part of the semantic version
NHDaly Dec 5, 2025
9b13c88
Add GitHub template and workflows needed on the default branch (#135)
Drvi Mar 19, 2024
cba43ed
RAI: Track blocks and bytes allocated for GC pools
d-netto Jan 6, 2025
562b765
RAI: Change task ordering behavior to prioritize older tasks
kpamnany Aug 9, 2023
1132557
RAI: Disable huge pages for all mmap'ed memory
kpamnany Aug 21, 2023
68d5aa7
RAI: Never use MADV_FREE
kuszmaul Aug 22, 2023
15d8661
RAI: Prepend "thread (%d) " to output from `jl_print_task_backtraces()`
kpamnany Oct 9, 2023
c09c062
RAI: Add heartbeat capability
kpamnany Oct 7, 2023
51d1706
RAI: --safe-crash-log-file flag
d-netto Mar 22, 2024
ea6c4f1
RAI: Write heartbeat thread output to safe crash log
kpamnany May 27, 2024
23c7ff3
RAI: fix string interpolation on OPENBLAS_BUILD_OPTS
d-netto Jan 6, 2025
92c4149
RAI: Prepend signal number and thread ID on backtraces
kpamnany Aug 21, 2023
2573b35
RAI: do not prepend thread ID to backtraces from signal handler context
kpamnany Apr 18, 2024
be0c1bf
Add `Base.isprecompilable` (#58805)
kpamnany Jul 2, 2025
22ac37a
Fix GC corruption via two upstream PRs. (#272)
NHDaly Jan 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# See https://github.com/actions/labeler
port-to-master: '**'
port-to-v1.10: '**'
14 changes: 14 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<!---
PRs to RelationalAI/julia must be opened to the correct branch (see
https://github.com/RelationalAI/raicode/blob/master/nix/julia-version.json).
-->
## PR Description

_What does this PR do?_

## Checklist

Requirements for merging:
- [ ] I have opened an issue or PR upstream on JuliaLang/julia: <link to JuliaLang/julia>
- [ ] I have removed the `port-to-*` labels that don't apply.
- [ ] I have opened a PR on raicode to test these changes: <link to raicode>
17 changes: 17 additions & 0 deletions .github/workflows/labeler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# See https://github.com/actions/labeler
name: "Pull Request Labeler"
on:
pull_request_target:
types:
- opened

jobs:
triage:
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@v4
with:
dot: true
16 changes: 16 additions & 0 deletions .github/workflows/stale.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: "Close stale PRs"
on:
schedule:
- cron: "0 0 * * *" # every night at midnight

jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v8
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-pr-message: 'This PR is stale because it has been open 30 days with no activity. Comment or remove stale label, or this PR will be closed in 5 days.'
days-before-stale: 30
days-before-close: 5
stale-pr-label: 'stale'
28 changes: 28 additions & 0 deletions .github/workflows/update-upstream-branches.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: "Update upstream branches"
on:
schedule:
- cron: "0 0 * * *" # every night at midnight
workflow_dispatch:

jobs:
PullUpstream:
runs-on: ubuntu-latest
strategy:
fail-fast: false # run all jobs in the matrix even if one fails
matrix:
branch:
- "master"
- "backports-release-1.10"
steps:
- name: Checkout RAI/julia
uses: actions/checkout@v3
with:
ref: ${{ matrix.branch }}
- name: Update ${{ matrix.branch }}
run: |
git config --global user.email "julia-engineering@relational.ai"
git config --global user.name "RAI CI (GitHub Action Automation)"

git remote add upstream https://github.com/JuliaLang/julia
git pull upstream ${{ matrix.branch }}
git push origin ${{ matrix.branch }}
2 changes: 1 addition & 1 deletion Compiler/src/abstractinterpretation.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2247,7 +2247,7 @@ function abstract_invoke(interp::AbstractInterpreter, arginfo::ArgInfo, si::Stmt
return Future(CallMeta(Bottom, ErrorException, EFFECTS_THROWS, NoCallInfo()))
end
# TODO: When we add curing, we may want to assume this is nothrow
if (method_or_ci.owner === Nothing && method_ir_ci.def.def isa Method)
if (method_or_ci.owner === Nothing && method_or_ci.def.def isa Method)
exct = Union{exct, ErrorException}
end
update_valid_age!(sv, callee_valid_range)
Expand Down
2 changes: 1 addition & 1 deletion Make.inc
Original file line number Diff line number Diff line change
Expand Up @@ -381,7 +381,7 @@ $(foreach D,build_libdir build_private_libdir,$(eval $(call cache_rel_path,$(D),
# Save a special one: reverse_private_libdir_rel: usually just `../`, but good to be general:
reverse_private_libdir_rel_eval = $(call rel_path,$(private_libdir),$(libdir))
reverse_private_libdir_rel = $(call hit_cache,reverse_private_libdir_rel_eval)
reverse_private_libexecdir_rel_eval = $(call rel_path,$(private_libexecdir),$(libdir))
reverse_private_libexecdir_rel_eval = $(call rel_path,$(private_libexecdir),$(private_libdir))
reverse_private_libexecdir_rel = $(call hit_cache,reverse_private_libexecdir_rel_eval)
reverse_build_private_libexecdir_rel_eval = $(call rel_path,$(build_private_libexecdir),$(build_libdir))
reverse_build_private_libexecdir_rel = $(call hit_cache,reverse_build_private_libexecdir_rel_eval)
Expand Down
31 changes: 31 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -485,6 +485,37 @@ else ifeq ($(JULIA_BUILD_MODE),debug)
$(PATCHELF) $(PATCHELF_SET_RPATH_ARG) '$$ORIGIN:$$ORIGIN/$(reverse_private_libdir_rel)' $(DESTDIR)$(private_libdir)/libjulia-internal-debug.$(SHLIB_EXT)
$(PATCHELF) $(PATCHELF_SET_RPATH_ARG) '$$ORIGIN:$$ORIGIN/$(reverse_private_libdir_rel)' $(DESTDIR)$(private_libdir)/libjulia-codegen-debug.$(SHLIB_EXT)
endif
endif

ifeq ($(OS), Darwin)
ifneq ($(DARWIN_FRAMEWORK),1)
for j in $(JL_PRIVATE_TOOLS) ; do \
[ -L $(DESTDIR)$(private_libexecdir)/$$j ] && continue; \
install_name_tool -rpath @loader_path/$(build_libdir_rel) @executable_path/$(reverse_private_libexecdir_rel) $(DESTDIR)$(private_libexecdir)/$$j || exit 1; \
done
endif
else ifneq (,$(findstring $(OS),Linux FreeBSD))
for j in $(JL_PRIVATE_TOOLS) ; do \
[ -L $(DESTDIR)$(private_libexecdir)/$$j ] && continue; \
$(PATCHELF) $(PATCHELF_SET_RPATH_ARG) '$$ORIGIN/$(reverse_private_libexecdir_rel)' $(DESTDIR)$(private_libexecdir)/$$j || exit 1; \
done
endif

ifneq ($(reverse_private_libexecdir_rel),$(reverse_build_private_libexecdir_rel))
ifeq ($(OS), Darwin)
ifneq ($(DARWIN_FRAMEWORK),1)
for j in $(JL_PRIVATE_EXES) ; do \
[ $$j = 7z ] && continue; \
[ -L $(DESTDIR)$(private_libexecdir)/$$j ] && continue; \
install_name_tool -rpath @executable_path/$(reverse_build_private_libexecdir_rel) @executable_path/$(reverse_private_libexecdir_rel) $(DESTDIR)$(private_libexecdir)/$$j || exit 1; \
done
endif
else ifneq (,$(findstring $(OS),Linux FreeBSD))
for j in $(JL_PRIVATE_EXES) ; do \
[ -L $(DESTDIR)$(private_libexecdir)/$$j ] && continue; \
$(PATCHELF) $(PATCHELF_SET_RPATH_ARG) '$$ORIGIN/$(reverse_private_libexecdir_rel)' $(DESTDIR)$(private_libexecdir)/$$j || exit 1; \
done
endif
endif

# Fix rpaths for dependencies. This should be fixed in BinaryBuilder later.
Expand Down
2 changes: 1 addition & 1 deletion NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ New language features
entry points. Entry points can be marked using `Base.Experimental.entrypoint` ([#55047]). Not all
code is expected to work with this option, and since it is experimental you may encounter problems.
* Redefinition of constants is now well defined and follows world age semantics ([#57253]). Additional redefinitions
(e.g. of types) are now allowed. See [the new manual chapter on world age](https://docs.julialang.org/en/v1.13-dev/manual/worldage/).
(e.g. of types) are now allowed. See [the new manual chapter on world age](https://docs.julialang.org/en/v1/manual/worldage/).
* A new keyword argument `usings::Bool` has been added to `names`, returning all names visible
via `using` ([#54609]).
* The `@atomic` macro family now supports reference assignment syntax, e.g. `@atomic :monotonic v[3] += 4`,
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.12.2
1.12.4+RAI
14 changes: 7 additions & 7 deletions base/array.jl
Original file line number Diff line number Diff line change
Expand Up @@ -641,7 +641,7 @@ julia> collect(Float64, 1:2:5)
collect(::Type{T}, itr) where {T} = _collect(T, itr, IteratorSize(itr))

_collect(::Type{T}, itr, isz::Union{HasLength,HasShape}) where {T} =
copyto!(_array_for(T, isz, _similar_shape(itr, isz)), itr)
copyto!(_array_for_inner(T, isz, _similar_shape(itr, isz)), itr)
function _collect(::Type{T}, itr, isz::SizeUnknown) where T
a = Vector{T}()
for x in itr
Expand All @@ -665,12 +665,12 @@ _similar_for(c::AbstractArray, ::Type{T}, itr, ::HasShape, axs) where {T} =
similar(c, T, axs)

# make a collection appropriate for collecting `itr::Generator`
_array_for(::Type{T}, ::SizeUnknown, ::Nothing) where {T} = Vector{T}(undef, 0)
_array_for(::Type{T}, ::HasLength, len::Integer) where {T} = Vector{T}(undef, Int(len))
_array_for(::Type{T}, ::HasShape{N}, axs) where {T,N} = similar(Array{T,N}, axs)
_array_for_inner(::Type{T}, ::SizeUnknown, ::Nothing) where {T} = Vector{T}(undef, 0)
_array_for_inner(::Type{T}, ::HasLength, len::Integer) where {T} = Vector{T}(undef, Int(len))
_array_for_inner(::Type{T}, ::HasShape{N}, axs) where {T,N} = similar(Array{T,N}, axs)

# used by syntax lowering for simple typed comprehensions
_array_for(::Type{T}, itr, isz) where {T} = _array_for(T, isz, _similar_shape(itr, isz))
_array_for(::Type{T}, itr, isz) where {T} = _array_for_inner(T, isz, _similar_shape(itr, isz))


"""
Expand Down Expand Up @@ -789,10 +789,10 @@ function collect(itr::Generator)
shp = _similar_shape(itr, isz)
y = iterate(itr)
if y === nothing
return _array_for(et, isz, shp)
return _array_for_inner(et, isz, shp)
end
v1, st = y
dest = _array_for(typeof(v1), isz, shp)
dest = _array_for_inner(typeof(v1), isz, shp)
# The typeassert gives inference a helping hand on the element type and dimensionality
# (work-around for #28382)
et′ = et <: Type ? Type : et
Expand Down
31 changes: 13 additions & 18 deletions base/bitarray.jl
Original file line number Diff line number Diff line change
Expand Up @@ -151,16 +151,14 @@ function copy_chunks!(dest::Vector{UInt64}, pos_d::Int, src::Vector{UInt64}, pos
delta_ks = ks1 - ks0

u = _msk64
msk_d0 = ~(u << ld0)
msk_d1 = (u << (ld1+1))
if delta_kd == 0
msk_d0 = ~(u << ld0) | (u << (ld1+1))
else
msk_d0 = ~(u << ld0)
msk_d1 = (u << (ld1+1))
msk_d0 |= msk_d1
end
msk_s0 = (u << ls0)
if delta_ks == 0
msk_s0 = (u << ls0) & ~(u << (ls1+1))
else
msk_s0 = (u << ls0)
msk_s0 &= ~(u << (ls1+1))
end

chunk_s0 = glue_src_bitchunks(src, ks0, ks1, msk_s0, ls0)
Expand Down Expand Up @@ -211,16 +209,14 @@ function copy_chunks_rtol!(chunks::Vector{UInt64}, pos_d::Int, pos_s::Int, numbi
delta_kd = kd1 - kd0
delta_ks = ks1 - ks0

msk_d0 = ~(u << ld0)
msk_d1 = (u << (ld1+1))
if delta_kd == 0
msk_d0 = ~(u << ld0) | (u << (ld1+1))
else
msk_d0 = ~(u << ld0)
msk_d1 = (u << (ld1+1))
msk_d0 |= msk_d1
end
msk_s0 = (u << ls0)
if delta_ks == 0
msk_s0 = (u << ls0) & ~(u << (ls1+1))
else
msk_s0 = (u << ls0)
msk_s0 &= ~(u << (ls1+1))
end

chunk_s0 = glue_src_bitchunks(chunks, ks0, ks1, msk_s0, ls0) & ~(u << s)
Expand All @@ -246,11 +242,10 @@ function fill_chunks!(Bc::Array{UInt64}, x::Bool, pos::Int, numbits::Int)
k1, l1 = get_chunks_id(pos+numbits-1)

u = _msk64
msk0 = (u << l0)
msk1 = ~(u << (l1+1))
if k1 == k0
msk0 = (u << l0) & ~(u << (l1+1))
else
msk0 = (u << l0)
msk1 = ~(u << (l1+1))
msk0 &= msk1
end
@inbounds if x
Bc[k0] |= msk0
Expand Down
11 changes: 4 additions & 7 deletions base/file.jl
Original file line number Diff line number Diff line change
Expand Up @@ -1267,22 +1267,19 @@ function rename(oldpath::AbstractString, newpath::AbstractString)
end

function sendfile(src::AbstractString, dst::AbstractString)
src_open = false
dst_open = false
local src_file, dst_file
src_file = nothing
dst_file = nothing
try
src_file = open(src, JL_O_RDONLY)
src_open = true
dst_file = open(dst, JL_O_CREAT | JL_O_TRUNC | JL_O_WRONLY, filemode(src_file))
dst_open = true

bytes = filesize(stat(src_file))
sendfile(dst_file, src_file, Int64(0), Int(bytes))
finally
if src_open && isopen(src_file)
if src_file !== nothing && isopen(src_file)
close(src_file)
end
if dst_open && isopen(dst_file)
if dst_file !== nothing && isopen(dst_file)
close(dst_file)
end
end
Expand Down
14 changes: 14 additions & 0 deletions base/loading.jl
Original file line number Diff line number Diff line change
Expand Up @@ -4211,6 +4211,20 @@ function expand_compiler_path(tup)
end
compiler_chi(tup::Tuple) = CacheHeaderIncludes(expand_compiler_path(tup))

"""
isprecompilable(f, argtypes::Tuple{Vararg{Any}})

Check, as far as is possible without actually compiling, if the given
function `f` can be compiled for the argument tuple (of types) `argtypes`.
"""
function isprecompilable(@nospecialize(f), @nospecialize(argtypes::Tuple))
isprecompilable(Tuple{Core.Typeof(f), argtypes...})
end

function isprecompilable(@nospecialize(argt::Type))
ccall(:jl_is_compilable, Int32, (Any,), argt) != 0
end

"""
precompile(f, argtypes::Tuple{Vararg{Any}})

Expand Down
2 changes: 1 addition & 1 deletion base/lock.jl
Original file line number Diff line number Diff line change
Expand Up @@ -366,7 +366,7 @@ This is similar to using [`lock`](@ref) with a `do` block, but avoids creating a
and thus can improve the performance.
!!! compat
`@lock` was added in Julia 1.3, and exported in Julia 1.10.
`@lock` was added in Julia 1.3, and exported in Julia 1.7.
"""
macro lock(l, expr)
quote
Expand Down
2 changes: 2 additions & 0 deletions base/logging/logging.jl
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,8 @@ end
LogLevel(level::LogLevel) = level

isless(a::LogLevel, b::LogLevel) = isless(a.level, b.level)
isless(a::LogLevel, b::Integer) = isless(a.level, b)
isless(a::Integer, b::LogLevel) = isless(a, b.level)
+(level::LogLevel, inc::Integer) = LogLevel(level.level+inc)
-(level::LogLevel, inc::Integer) = LogLevel(level.level-inc)
convert(::Type{LogLevel}, level::Integer) = LogLevel(level)
Expand Down
1 change: 1 addition & 0 deletions base/options.jl
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ struct JLOptions
trim::Int8
task_metrics::Int8
timeout_for_safepoint_straggler_s::Int16
safe_crash_log_file::Ptr{UInt8}
end

# This runs early in the sysimage != is not defined yet
Expand Down
2 changes: 1 addition & 1 deletion base/partr.jl
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ function multiq_sift_down(heap::taskheap, idx::Int32)
child = Int(child)
child > length(heap.tasks) && break
if isassigned(heap.tasks, child) &&
heap.tasks[child].priority < heap.tasks[idx].priority
heap.tasks[child].priority <= heap.tasks[idx].priority
t = heap.tasks[idx]
heap.tasks[idx] = heap.tasks[child]
heap.tasks[child] = t
Expand Down
9 changes: 4 additions & 5 deletions base/process.jl
Original file line number Diff line number Diff line change
Expand Up @@ -131,15 +131,14 @@ end
if err == 0
pp = Process(cmd, handle, syncd)
associate_julia_struct(handle, pp)
iolock_end()
return pp
else
ccall(:jl_forceclose_uv, Cvoid, (Ptr{Cvoid},), handle) # will call free on handle eventually
iolock_end()
throw(_UVError("could not spawn " * repr(cmd), err))
end
iolock_end()
end
if err != 0
throw(_UVError("could not spawn " * repr(cmd), err))
end
return pp
end

_spawn(cmds::AbstractCmd) = _spawn(cmds, SpawnIOs())
Expand Down
4 changes: 2 additions & 2 deletions base/toml_parser.jl
Original file line number Diff line number Diff line change
Expand Up @@ -716,8 +716,8 @@ function parse_array(l::Parser{Dates})::Err{Vector} where Dates
copyto_typed!(new, array)
elseif T === Union{}
new = Any[]
elseif (T === TOMLDict) || (T == BigInt) || (T === UInt128) || (T === Int128) || (T <: Vector) ||
(T === Dates.Date) || (T === Dates.Time) || (T === Dates.DateTime)
elseif (T === TOMLDict) || (T === BigInt) || (T === UInt128) || (T === Int128) || (T <: Vector) ||
(Dates !== nothing && ((T === Dates.Date) || (T === Dates.Time) || (T === Dates.DateTime)))
# do nothing, leave as Vector{Any}
new = array
else @assert false end
Expand Down
4 changes: 2 additions & 2 deletions contrib/mac/app/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ dmg/$(APP_NAME): startup.applescript julia.icns
plutil -insert CFBundleVersion -string "$(JULIA_VERSION_OPT_COMMIT)" $@/Contents/Info.plist
plutil -insert NSHumanReadableCopyright -string "$(APP_COPYRIGHT)" $@/Contents/Info.plist
-mkdir -p $@/Contents/Resources/julia
$(MAKE) -C $(JULIAHOME) binary-dist
$(TAR) -xzf $(JULIAHOME)/$(JULIA_BINARYDIST_FILENAME).tar.gz -C $@/Contents/Resources/julia --strip-components 1
make -C $(JULIAHOME) binary-dist
tar zxf $(JULIAHOME)/$(JULIA_BINARYDIST_FILENAME).tar.gz -C $@/Contents/Resources/julia --strip-components 1
find $@/Contents/Resources/julia -type f -exec chmod -w {} \;
# Even though the tarball may already be signed, we re-sign here to make it easier to add
# unsigned executables (like the app launcher) and whatnot, without needing to maintain lists
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
c8fea09ab0a67dcd9bacc413a008056b
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
f44e5518d45d568a56116fcef058c006adefff6752b7bfecd29afffa7fc797739271bde2d3a6d0813d89973c862341d5ee47347a933146a43108ea716b133672

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
9fbd2f2f522bf0b5fd0d6b40f722db49
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
77e2f3729e58b74cfdd1fc2d991fc6552e7f7ceb7b9fdc837e5885932e2f15d6ab3c76b6ab90b1a6c66050dab7279abc0b976ee52b840b757dd13b1a955f5c5c

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
230a4d9544d2cec7c4adf9a50d228345
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
d66a3b6e032af45b78f71d8c5851c3e6fe1c5159f4c4428b64f1f6a52a111a488a9cec8f702a9e5de96593f5d4735f7490ae6c33eee7155b31f743b82aebd38b
1 change: 1 addition & 0 deletions deps/checksums/cacert-2025-11-04.pem/md5
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
4ca8e1c3e8fc44c3ecd7a1fb9d3a6d03
Loading
Loading