diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 121ceae..06af5c7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,32 +26,26 @@ jobs: matrix: version: - '1.10' - - '1.11' - - '1.12' + - '1' - 'nightly' os: - ubuntu-latest - windows-latest - - macos-15-intel # Intel - macos-latest # Apple Silicon julia-wordsize: # The value here only affects the version of Julia binary that we download. # It does not affect the architecture of the GitHub Runner (virtual machine) that # we run on. - - '32' # 32-bit Julia. Only available on x86_64. Not available on aarch64. - '64' # 64-bit Julia. exclude: # Killing workers doesn't work on Windows in Julia 1.10: # (It does work on 1.11+) - os: windows-latest version: '1.10' - # We don't have 32-bit builds of Julia for Intel macOS: - - os: macos-15-intel # Intel - julia-wordsize: '32' - # - # We don't have 32-bit builds of Julia for Apple Silicon macOS: - - os: macos-latest # Apple Silicon + include: + - os: ubuntu-latest julia-wordsize: '32' + version: '1' steps: - uses: actions/checkout@v6 diff --git a/src/precompile.jl b/src/precompile.jl index 6026c6a..e3d592b 100644 --- a/src/precompile.jl +++ b/src/precompile.jl @@ -3,6 +3,13 @@ precompile(Tuple{typeof(DistributedNext.procs)}) precompile(Tuple{typeof(DistributedNext.finalize_ref), DistributedNext.Future}) precompile(Tuple{typeof(DistributedNext.setup_launched_worker), DistributedNext.LocalManager, DistributedNext.WorkerConfig, Vector{Int}}) precompile(Tuple{typeof(DistributedNext.process_tcp_streams), Sockets.TCPSocket, Sockets.TCPSocket, Bool}) +precompile(Tuple{typeof(Serialization.serialize), DistributedNext.ClusterSerializer{Sockets.TCPSocket}, Array{Any, 1}}) +precompile(Tuple{typeof(DistributedNext.parse_connection_info), String}) +precompile(Tuple{typeof(DistributedNext._run_callbacks_concurrently), String, Base.Dict{Any, Union{Function, Type}}, Int64, Array{Tuple{DistributedNext.LocalManager, Base.Dict{Symbol, Any}}, 1}}) +precompile(Tuple{typeof(DistributedNext._run_callbacks_concurrently), String, Base.Dict{Any, Union{Function, Type}}, Int64, Array{Int64, 1}}) +precompile(Tuple{typeof(DistributedNext.read_worker_host_port), Base.PipeEndpoint}) +precompile(Tuple{typeof(Base.put!), Base.Channel{Any}, Int64}) +precompile(Tuple{typeof(Base.put!), Base.Channel{Any}, WeakRef}) precompile(Tuple{typeof(DistributedNext.handle_msg), DistributedNext.IdentifySocketMsg, DistributedNext.MsgHeader, Sockets.TCPSocket, Sockets.TCPSocket, VersionNumber}) precompile(Tuple{typeof(DistributedNext.handle_msg), DistributedNext.CallWaitMsg, DistributedNext.MsgHeader, Sockets.TCPSocket, Sockets.TCPSocket, VersionNumber}) @@ -14,6 +21,12 @@ precompile(Tuple{typeof(DistributedNext.handle_msg), DistributedNext.RemoteDoMsg precompile(Tuple{typeof(DistributedNext.handle_msg), DistributedNext.JoinPGRPMsg, DistributedNext.MsgHeader, Sockets.TCPSocket, Sockets.TCPSocket, VersionNumber}) precompile(Tuple{typeof(DistributedNext.handle_msg), DistributedNext.JoinCompleteMsg, DistributedNext.MsgHeader, Sockets.TCPSocket, Sockets.TCPSocket, VersionNumber}) +# These lines were obtained from `addprocs(1; exeflags=`--trace-compile=compilation.txt --trace-compile-timing`)` +precompile(Tuple{typeof(DistributedNext.start_worker)}) +precompile(Tuple{typeof(DistributedNext.start_worker), Base.PipeEndpoint, String}) +precompile(Tuple{typeof(DistributedNext.set_valid_processes), Array{Int64, 1}}) +precompile(Tuple{typeof(DistributedNext.terminate_all_workers)}) + # This is disabled because it doesn't give much benefit # and the code in Distributed is poorly typed causing many invalidations # TODO: Maybe reenable now that Distributed is not in sysimage.