swh:1:snp:a72e953ecd624a7df6e6196bbdd05851996c5e40

sort by:
Revision Author Date Message Commit Date
0eaf35a scheduler: improve libuv wakeup event ordering Ensures better that we support nesting of threaded regions and access to this variable from any thread. Previously, it appears that we might toggle this variable on another thread (via thread migration), but would then not successfully wake up the thread 0 and cause it to resume sleeping on the event loop. 26 January 2022, 18:01:51 UTC
6df6105 scheduler: use explicit memory fences These were previously implied (on TSO platforms, such as x86) by the atomic_store to sleeping and the sleep_locks acquire before the wake_check loop, but this makes it more explicit. We might want to consider in the future if it would be better (faster) to acquire each possible lock on the sleeping path instead, so that we do each operation with seq_cst, instead of using a fence to only order the operations we care about directly. 26 January 2022, 18:01:51 UTC
9c7cfa9 handle exit signal failure 26 January 2022, 18:01:14 UTC
7b636ff svec: optimize allocations in debug The svec set method needs to do a little bit more work (for asserts and write barriers), which is not necessary if we know it was just allocated. 26 January 2022, 18:01:14 UTC
2010d95 docs: add FAQ on soft-scope (#43681) Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com> 26 January 2022, 17:41:17 UTC
bc8e1f2 In `Base.runtests`, after tests fail, load `InteractiveUtils` from `@stdlib` (#43804) In `Base.runtests`, if the tests fail, before loading `InteractiveUtils`, set the `LOAD_PATH` to only include `@stdlib`. In theory, it's possible that someone has a setup where their load path has a package named `InteractiveUtils`. So, to increase the probability that we are actually loading the correct `InteractiveUtils` stdlib, let's set `Base.LOAD_PATH` to only include `@stdlib`. After we load `InteractiveUtils`, we restore the original contents of `Base.LOAD_PATH`. 26 January 2022, 17:40:26 UTC
8bdb045 Merge pull request #43865 from JuliaLang/jn/replcompletemethods [REPLCompletions] improved handling of completions 26 January 2022, 17:37:55 UTC
051ab3b Manually split `string(a::Union{Char, String, SubString{String}, Symbol}...)` (#43939) * Manually split `string(a::Union{Char, String, SubString{String}, Symbol}...)` 4 is one too many for automatic Union-splitting. Poor inference in this method accounts for more than 1000 invalidations. 26 January 2022, 14:48:12 UTC
f1e7f52 Add `rdiv!` for `Bidiagonal` + small improvements (#43779) Co-authored-by: Steven G. Johnson <stevenj@alum.mit.edu> 26 January 2022, 08:43:08 UTC
3f0ae6e Fix fpsort! for non Int indices (#43934) * Extend allowsmissing and ismissing to Integer * Test #43925 26 January 2022, 04:21:44 UTC
15df9c0 fix deadlock between `require_lock` and package callbacks (#43936) 26 January 2022, 04:21:20 UTC
6c1eb93 pow: Make n == 0 special case obvious to constprop (#43920) Should have been part of #43907, but I forgot. 26 January 2022, 03:58:53 UTC
b34cb17 adce_pass: Drop phinode edges that can be proved unused (#43922) * optimizer: lift more comparisons This commit implements more comparison liftings. Especially, this change enables the compiler to lift `isa`/`isdefined` checks (i.e. replace a comparison call with ϕ-node by CFG union-splitting). For example, the code snippet below will run 500x faster: ```julia function compute(n) s = 0 itr = 1:n st = iterate(itr) while isdefined(st, 2) # mimic our iteration protocol with `isdefined` v, st = st s += v st = iterate(itr, st) end s end ``` Although it seems like the codegen for `isa` is fairly optimized already and so I could not find any performance benefit for `isa`-lifting (`code_llvm` emits mostly equivalent code), but I hope it's more ideal if we can do the equivalent optimization on Julia level so that we can just consult to `code_typed` for performance optimization. * adce_pass: Drop phinode uses that can be proved unused Union splitting introduces patterns like: Consider a case like: ``` f(x::Float64) = println(x) f(x::SomeBigStruct) = nothing ``` ``` goto 2 if not ... 1: a = ::Float64 goto 3 2: b = new(SomeBigStruct, ...)::SomeBigStruct 3: c = phi(a, b) if !isa(c, Float64) goto 5 4: d = PiNode(c, Float64) println(d) goto 6 5: nothing 6: return nothing ``` Now, #43227 will turn this into: ``` goto 2 if not ... 1: a = ::Float64 goto 3 2: b = new(SomeBigStruct, ...)::SomeBigStruct 3: c = phi(a, b) cond = phi(true, false) if !cond goto 5 4: d = PiNode(c, Float64) println(d) goto 6 5: nothing 6: return nothing ``` But even though dynamically `b` is never used, it doesn't get deleted, because there's still a use in the PhiNode `c`. This PR teaches adce to recognize this situation and, for PhiNodes that are only ever used by PiNodes, drop any edges that are known to be unused. E.g. in the above case, the adce improvements would turn it into: ``` goto 2 if not ... 1: a = ::Float64 goto 3 2: b = new(SomeBigStruct, ...)::SomeBigStruct 3: c = phi(a) cond = phi(true, false) if !cond goto 5 4: d = PiNode(c, Float64) println(d) goto 6 5: nothing 6: return nothing ``` Which in turn would let regular DCE drop the allocation: ``` goto 2 if not ... 1: a = ::Float64 goto 3 2: nothing 3: c = phi(a) cond = phi(true, false) if !cond goto 5 4: d = PiNode(c, Float64) println(d) goto 6 5: nothing 6: return nothing ``` Co-authored-by: Shuhei Kadowaki <aviatesk@gmail.com> Co-authored-by: Ian Atol <ian.atol@juliacomputing.com> 26 January 2022, 03:57:28 UTC
40bceb2 Show modules with invalid name using var"" (#43932) 26 January 2022, 03:51:36 UTC
de21be7 Fix obsolete builtins list in devdocs/function (#35271) Generates the list programmatically now, since we will never remember to update it (though it is perhaps a bit odd that we include this list in the first place, when it is just generated by reflection). 25 January 2022, 18:18:45 UTC
177baf8 fix show(::LinRange) (#35448) Fixes #35437 This could be refined further (see comments in the PR), but it fixes the issue. 25 January 2022, 18:10:52 UTC
a400a24 Revert "IO: tie lifetime of handle field to container (#43218)" (#43924) This reverts commit 5cd31b581e2935aebc21217c1dc87ec4bde8f877. 25 January 2022, 08:53:24 UTC
cdd2f62 optimizer: lift more comparisons (#43227) This commit implements more comparison liftings. Especially, this change enables the compiler to lift `isa`/`isdefined` checks (i.e. replace a comparison call with ϕ-node by CFG union-splitting). For example, the code snippet below will run 500x faster: ```julia function compute(n) s = 0 itr = 1:n st = iterate(itr) while isdefined(st, 2) # mimic our iteration protocol with `isdefined` v, st = st s += v st = iterate(itr, st) end s end ``` Although it seems like the codegen for `isa` is fairly optimized already and so I could not find any performance benefit for `isa`-lifting (`code_llvm` emits mostly equivalent code), but I hope it's more ideal if we can do the equivalent optimization on Julia level so that we can just consult to `code_typed` for performance optimization. 25 January 2022, 08:47:12 UTC
2682819 Fix searchsorted in Core.Compiler (#43918) 25 January 2022, 01:30:52 UTC
d7e3d99 [REPLCompletions] improve implementation of completions - Restrict method completion to ignore strictly less specific ones - Fix various lookup bugs - Improve slurping of final expression Inspired by https://github.com/JuliaLang/julia/pull/43572 Co-authored-by: Lionel Zoubritzky <lionel.zoubritzky@gmail.com> 24 January 2022, 23:50:20 UTC
4ab81fc gf: make Builtins more like regular functions Now we can fully handle all type signatures in ml_matches and give back the complete list (though potentially slowly). 24 January 2022, 23:50:20 UTC
295cee5 [REPLCompletions] fix missing bounds handling Caused `foo).<tab>` to crash, for example. 24 January 2022, 23:50:19 UTC
d900ab1 [REPLCompletions] handle #=comments=# in find_start_brace 24 January 2022, 23:50:19 UTC
4063761 [REPLCompletions] handle possibility of syntax errors 24 January 2022, 23:50:19 UTC
5cd31b5 IO: tie lifetime of handle field to container (#43218) Rather than freeing this memory as soon as possible, ensure that the lifetime of the handle is always >= the container object. This lets us examine some (limited) aspects of the handle without holding a lock. And we also examine and fix numerous other thread-safety and synchronization bugs too. 24 January 2022, 23:17:23 UTC
6be85dc Merge pull request #43095 from JuliaLang/jn/tevents enhance Threads.Events with ordering and (auto)reset 24 January 2022, 23:03:06 UTC
c3b29a3 switch staticdata to a pre-order worklist instead of recursion (#43879) Avoids stack-overflow when the graph has long linked lists. 24 January 2022, 22:24:24 UTC
06ad3f4 Make various core math functions easier for the compiler to reason about (#43907) * ldexp: Break inference loop We have an inference loop fma_emulated -> ldexp -> ^(::Float64, ::Int) -> fma -> fma_emulated. The arguments to `^` are constant, so constprop will figure it out, but it does require a bunch of extra processing. There is a simpler way to write this using elementary bit operations. Since resolving the inference loop requires constprop, this was breaking #43852. That is fixable, but I think we should also make this change to avoid having an unnecessary inference loop in our basic math functions, which will make future analyses easier. * Make fma_emulated easier for the compiler to reason about The fact that the `exponent` call in `fma_emulated` requires reasoning about the ranges of the floating point values in question, which the compiler is not capable of doing (and is unlikely to ever do automatically). Thus, in order for the compiler to know that `fma_emulated` (and by extension `fma`) is :nothrow in a post-#43852 world, create a separate version of the `exponent` function that assumes its precondition. We could use `@assume_effects` instead, but this version is currently slightly easier on the compiler. * pow: Make integer vs float branch obvious to constprop The integer branch is nothrow, so if the caller does something like `^(x::Float64, 2.0)`, we'd like to discover that. 24 January 2022, 21:07:41 UTC
9769024 [deps] Update PCRE2 URL (#43884) 24 January 2022, 19:46:44 UTC
4bfc788 improve VersionNumber docs (#43893) * improve VersionNumber docs * numeric constructor example * more links * tweak 24 January 2022, 18:03:57 UTC
99f0284 remove duplicate definition of `indent_width` (#43908) 24 January 2022, 15:05:04 UTC
580f51d add docstring for new kwargs in code_typed (#40719) 23 January 2022, 07:47:15 UTC
2865d97 Fix sparse checksums (#43898) * Fix sparse checksums * Update URLs for SuiteSparse.jl and SparseArrays.jl (#43894) They are now in the JuliaSparse org. (cherry picked from commit 3d2ed5ad4c9f6465a4c42408247338cae12483cd) * Bump SuiteSparse.jl and SparseArrays.jl Update their checksums 23 January 2022, 07:43:24 UTC
f4ee0d2 Revert "Update URLs for SuiteSparse.jl and SparseArrays.jl (#43894)" (#43897) This reverts commit 3d2ed5ad4c9f6465a4c42408247338cae12483cd. 23 January 2022, 01:02:20 UTC
3d2ed5a Update URLs for SuiteSparse.jl and SparseArrays.jl (#43894) They are now in the JuliaSparse org. 22 January 2022, 20:14:18 UTC
1db8b8f [buildkite] Lock to sandbox v1.2 (#43890) 22 January 2022, 04:38:39 UTC
816c6a2 support line number offset in parsing (#43876) This adds an extra keyword argument `lineno` to `Meta.parseatom` and `Meta.parseall`, which causes the emitted `LineNumberNode`s to start at the given line number instead. 21 January 2022, 20:05:48 UTC
a327428 Fix asan for jl_precompile_toplevel_module (#43885) PR #43793 passed the buildkite test but the logs for #43881 show an address sanitzer failure. Removing jl_precompile_toplevel_module from jl_exported_data.inc fixes the error. For good measure, set it to NULL at the point of definition, even though it gets nulled during initialization. 21 January 2022, 18:11:32 UTC
5f79cb3 [LinearAlgebra] Bump libblastrampoline to v4.0.0 (#43877) This version allows loading of dual-interface libraries, such as MKL v2022+. It enables both providing a suffix hint when loading a library (to force detection of ILP64 or LP64 symbols) as well as being able to load the same library for multiple interfaces. 21 January 2022, 12:01:49 UTC
4e83cce Track method roots by precompile module (#43793) For roots of a method added during incremental compilation, track the toplevel module build_id. This will ultimately allow such roots to be "relocatable" in compressed IR, pending future changes in compression. 21 January 2022, 09:24:19 UTC
416d60d 🤖 Bump the Pkg stdlib from c3139663 to 66482586 (#43871) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 21 January 2022, 01:59:35 UTC
f290339 Add lazy string type (#33711) 20 January 2022, 22:35:32 UTC
cc96240 Remove sqrt from the volatile list (#43786) The LLVM IR spec now explicitly says that this intrinsic is required to be rounded correctly. That means that without fasthmath flag (which we do not set here), this intrinsic must have the bitwise correctly rounded answer and should thus not differ between compile and runtime. If there is still a case where it does differ, that is likely some other underlying bug that we should fix instead. Before: ``` julia> f() = sqrt(2) f (generic function with 1 method) julia> @code_typed f() CodeInfo( 1 ─ %1 = Base.Math.sqrt_llvm(2.0)::Float64 └── return %1 ) => Float64 ``` After: ``` julia> @code_typed f() CodeInfo( 1 ─ return 1.4142135623730951 ) => Float64 ``` 20 January 2022, 22:34:57 UTC
23b4743 Revert "add generic fallback for haskey (#42679)" (#43880) This reverts commit ecc0398361495fb08368bf5a38ea3d740e067f52. 20 January 2022, 21:45:59 UTC
867c98f alloc profiler: fix analyzegc error (#43875) 20 January 2022, 18:20:53 UTC
2e854a4 Merge pull request #43685 from JuliaLang/vc/llvm_asan Pickup TSAN/ASAN and LLVM assertion build fixes from #43418 20 January 2022, 17:47:06 UTC
f67371d Switch `getindex(::IRCode, ::Int)` to return Instruction (#43829) This function is a helper to abstract over both the inserted and the pending instruction streams. However, it predates the `Instruction` abstraction and currently returns the stmt directly. The original design was to have separate view types to access every field, but since we have the `Instruction` abstraction now, we should just use it, enabling things like: ``` ir[SSAValue(idx)][:flags] |= IR_FLAG_EFFECT_FREE ``` I want to do more with flags in the future, so this is a prepratory refactor in that direction. 20 January 2022, 14:06:30 UTC
a6624d9 Merge pull request #43870 from JuliaLang/kf/openlibmbump Bump openlibm to 0.8.1 20 January 2022, 14:05:56 UTC
88b1f92 [LateLowerGC] Change undef FCA into zeroinit (#43867) 20 January 2022, 11:54:46 UTC
f6ea7cc Elaborate `code_native` funciton and macro docstring (#43860) 20 January 2022, 11:29:17 UTC
05d3e84 Document use of `/` in LinearAlgebra (#43632) Co-authored-by: Viral B. Shah <ViralBShah@users.noreply.github.com> Co-authored-by: Simon Byrne <simonbyrne@gmail.com> 20 January 2022, 05:22:10 UTC
cc73f50 Add test for sqrt rounding 20 January 2022, 01:19:47 UTC
a55aa57 Bump OpenLibm to 0.8.1 20 January 2022, 01:19:47 UTC
487f0b4 Merge pull request #43664 from dnadlinger/aarch64-darwin Switch aarch64-darwin codegen to JITLink (ObjectLinkingLayer) and small code model 19 January 2022, 23:48:42 UTC
ef23d6d Allocation profiler (#42768) ## Overview Record the type and stack of every allocation (or only at a given sample interval), and return as Julia objects. Alternate approach to existing alloc profiler PR: https://github.com/JuliaLang/julia/pull/33467 Complementary to garbage profiler PR: https://github.com/JuliaLang/julia/pull/42658 (maybe there's some nice way to meld them) This may be reinventing the wheel from #33467, but I'm not sure why that one needs stuff like LLVM passes. I mimicked some stuff from it, but this was my attempt to get something up and running. Could easily be missing stuff. ## Usage: ```julia using Profile.Allocs res = Allocs.@profile sample_rate=0.001 my_func() prof = Allocs.fetch() # do something with `prof` ``` See also: https://github.com/JuliaPerf/PProf.jl/pull/46 for support for visualizing these. Co-authored-by: Nathan Daly <nhdaly@gmail.com> 19 January 2022, 20:51:00 UTC
5864e43 Fix `tmerge` for (partially) const types with undef fields (#43812) When `tmerge` is applied to `Const`/`PartialStruct` and a field is `Const` in one of the types and `Union{}` (i.e. undef) in the other, the resulting field type must not be `Const` (as the resursively called `tmerge` produces). Fixes #43784. 19 January 2022, 06:23:10 UTC
8ec5580 Remove have_fma from the public API exports. (#43854) 19 January 2022, 02:34:38 UTC
aa1bd28 Fix `extrema(x; dims)` for inputs with `NaN/missing` (#43604) * Define `extrema` using `mapreduce`; support `init` * Fix tests for SparseArrays * API clean and export `extrema!` * Re-implement `reducedim_init` for extrema * Merge `master` to pull in https://github.com/JuliaLang/SparseArrays.jl/pull/63 * Mark `BigInt` tests as broken Co-authored-by: Milan Bouchet-Valat <nalimilan@club.fr> Co-authored-by: Simeon Schaub <simeondavidschaub99@gmail.com> Co-authored-by: Takafumi Arakaki <aka.tkf@gmail.com> Co-authored-by: Tim Holy <tim.holy@gmail.com> 18 January 2022, 22:43:43 UTC
1f266b8 Move typeassert effect-free modeling to the proper place (#43830) This was open-coded inside inlining, but the effect-free modeling code should be with the other builtins (in preparation of calling it from more places). 18 January 2022, 19:22:19 UTC
51ded1c Simplify loading code from stdin during precompilation. (#43853) 18 January 2022, 19:13:16 UTC
eb724e0 Add defalg methods to resolve potential dispatch ambiguities (#43426) We could also consider adding `defalg(v::AbstractArray{<:Number}) = DEFAULT_UNSTABLE`, but it is unlikely that someone will want to do `Union` of `<:Number` and something other than `Missing` that still would support comparison. Relevant for https://github.com/JuliaStrings/InlineStrings.jl/issues/21 (and other custom types that will want to add `defalg` support allowing for `Union` with `Missing`). 18 January 2022, 18:33:12 UTC
c5158f4 Fix typos in runtime_intrinsics.c (#43850) 18 January 2022, 04:41:11 UTC
45acb76 🤖 Bump the SparseArrays stdlib from 205b770 to 16dd9bd (#43848) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 17 January 2022, 18:56:28 UTC
d6cd37a InteractiveUtils: add const annotations (#43846) 17 January 2022, 17:31:46 UTC
4b036f0 Update Documenter to latest version. (#43843) 17 January 2022, 16:43:12 UTC
591f066 Move sparse matrix tests to the new SparseArrays.jl repo (#43832) * Move sparse matrix tests to the new SparseArrays.jl repo 17 January 2022, 13:15:05 UTC
f03e839 Fix splatnew test (#43835) The function being tested currently throws: ``` julia> _construct_structwithsplatnew() ERROR: TypeError: in new, expected Int64, got a value of type String Stacktrace: [1] StructWithSplatNew @ ./REPL[15]:3 [inlined] [2] _construct_structwithsplatnew() @ Main ./REPL[16]:1 [3] top-level scope @ REPL[18]:1 ``` As a result, compiler precision improvements can cause the test to fail, which is not intended. Fix the fieldtype of the struct to make sure it doesn't throw. 17 January 2022, 08:23:18 UTC
8667272 Small test cleanup (#43831) Deconflict some identifiers, make test run properly in Main module. 17 January 2022, 07:28:15 UTC
dd0c14b Fix getindex and setindex! on 0-dimensional reinterpretarray (#43819) 17 January 2022, 02:11:59 UTC
75a1d0f [LLVM] Add support for building experimental targets (#43822) 16 January 2022, 23:05:41 UTC
8536522 Use `GlobalRef` of `Core.CodeInfo` in `@generated` (#43823) Co-authored-by: Simeon Schaub <schaub@mit.edu> 16 January 2022, 23:05:17 UTC
b65c19a [LLVM] Remove LLVM 11 patches from source-tree (#43824) 16 January 2022, 23:01:19 UTC
3522661 Add specialization of foreach for tuples (#31901) 16 January 2022, 06:03:21 UTC
a32a066 [REPL] More accurate `ends_with_semicolon` (#43374) * More accurate `ends_with_semicolon` Co-authored-by: Steven G. Johnson <stevenj@mit.edu> 15 January 2022, 22:22:19 UTC
39c7355 Clean up more uses of jl_LLVMContext (#43791) 15 January 2022, 17:57:20 UTC
49c667d Try to fix `fma` on windows (#43530) * enable fma on Windows 15 January 2022, 15:33:40 UTC
bff3eb6 Revert "Profile: Faster data dict lookup (#43805)" (#43814) 15 January 2022, 15:01:59 UTC
7ab26e0 Merge pull request #43797 from ianatol/ia/condfolding Allow branch folding to look at type information, fix Conditional bug 15 January 2022, 02:11:07 UTC
7b1cc4b Allow reinterpreting singleton types (#43500) 14 January 2022, 21:53:34 UTC
14154fc Profile: Faster data dict lookup (#43805) 14 January 2022, 19:21:40 UTC
de85dea Optimize `permutedims` on *diagonals (#43792) Co-authored-by: Michael Abbott <32575566+mcabbott@users.noreply.github.com> 14 January 2022, 18:34:31 UTC
f15b4c3 Cleanup `copy_oftype`-like functions in factorizations (#43700) Co-authored-by: Daan Huybrechs <daan.huybrechs@kuleuven.be> 14 January 2022, 18:14:13 UTC
35a5172 Fix bug where Conditional wasn't being marked as ConstAPI 14 January 2022, 17:16:52 UTC
a9edea1 Allow branch folding to look at type information Folds things like: ``` %a = complicated()::Const(true) goto if not %a ``` 14 January 2022, 17:16:04 UTC
b57d2e1 move SparseArrays to the external repo https://github.com/JuliaLang/SparseArrays.jl (#43813) 14 January 2022, 15:38:39 UTC
5064528 Show only the "Test Passed" message when a test passes (#43795) This restores the behavior of how `at-test` shows a test pass in Julia v1.0 - v1.6, reverting the display changes introduced when storing more info in the `Pass` type in #36879, closes #43794. 14 January 2022, 13:30:26 UTC
f70a86a Add description of local kw in global scope (#42794) 14 January 2022, 08:43:14 UTC
5289a5e `InteractiveUtils.versioninfo(; verbose = true)`: remove unnecessary blank line before "Memory" (#43810) 14 January 2022, 07:09:58 UTC
294b0df Fix nothrow modeling of have_fma (#43785) Allows functions that make use of fma to be considered ConstAPI (so long has both have_fma branches return the same constant). 14 January 2022, 01:14:08 UTC
5847647 Track memops more accurately (#43778) 14 January 2022, 00:58:32 UTC
49f4f78 Add trailing nl for `display(::TextDisplay, ...)` (#43787) Fixes #43766. 13 January 2022, 21:31:30 UTC
89f2332 Fix #43004 by commenting out broken throw tests (#43739) 13 January 2022, 19:48:27 UTC
9da2dad Define show for CartesianIndices (#43780) 13 January 2022, 18:27:31 UTC
1b33119 Merge pull request #43701 from JuliaLang/jn/43578 workaround a dyld/libunwind deadlock issue, since macOS 12.1 13 January 2022, 17:13:44 UTC
b351286 fix ranges PR conflict (#43790) We cannot safely use reverse, so we do not anymore. That is now causing conflict between #43059 and #29842. And this is likely clearer anyways. Closes #43788 13 January 2022, 17:11:57 UTC
99d4e65 Handle freeze instruction in FindBaseValue (#43728) 13 January 2022, 14:49:03 UTC
a401aac Remove global basic pointer types (#43754) Co-authored-by: Prem Chintalapudi <premc@csail.mit.edu> 13 January 2022, 14:25:40 UTC
8997a90 Remove global thunk attribute (#43782) 12 January 2022, 21:32:21 UTC
32abe71 fix typo in doc string for `display` (#43781) 12 January 2022, 20:55:22 UTC
267b124 macOS: extend the workaround to cover the dyld/exc_server deadlock issue, since 12.1 Later, we should probably switch to using mach_exc_server generated from `mig mach_exc.defs`. 12 January 2022, 19:57:52 UTC
back to top