Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: JuliaLang/julia
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master@{1day}
Choose a base ref
...
head repository: JuliaLang/julia
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
  • 12 commits
  • 17 files changed
  • 7 contributors

Commits on Jun 30, 2025

  1. Encode fully_covers=false edges using negative of method count

    This change allows edges that don't fully cover their method matches to
    be properly tracked through serialization. When fully_covers is false
    (indicating incomplete method coverage), we encode the method count as
    negative in the edges array to signal that compactly.
    vtjnash committed Jun 30, 2025
    Configuration menu
    Copy the full SHA
    46513e6 View commit details
    Browse the repository at this point in the history
  2. gf: Add METHOD_SIG_LATEST_HAS_NOTMORESPECIFIC dispatch status bit

    This commit introduces a new dispatch status bit to track when a method
    has other methods that are not more specific than it, enabling better
    optimization decisions during method dispatch.
    
    Key changes:
      1. Add METHOD_SIG_LATEST_HAS_NOTMORESPECIFIC bit to track methods with
         non-morespecific intersections
      2. Add corresponding METHOD_SIG_PRECOMPILE_HAS_NOTMORESPECIFIC bit for
         precompiled methods
      3. Refactor method insertion logic:
         - Remove morespec_unknown enum state, compute all morespec values upfront
         - Convert enum morespec_options to simple boolean logic (1/0)
         - Change 'only' from boolean to 'dispatch_bits' bitmask
         - Move dispatch status updates before early continues in the loop
    vtjnash committed Jun 30, 2025
    Configuration menu
    Copy the full SHA
    1230853 View commit details
    Browse the repository at this point in the history

Commits on Jul 1, 2025

  1. optimize verify_call again

    vtjnash committed Jul 1, 2025
    Configuration menu
    Copy the full SHA
    908ef72 View commit details
    Browse the repository at this point in the history

Commits on Jul 7, 2025

  1. Markdown: Make Table/LaTeX objects subtypes of MarkdownElement (#…

    …58916)
    
    These objects satisfy the requirements of the `MarkdownElement`
    interface (such as implementing `Markdown.plain`), so they should be
    subtypes of `MarkdownElement`. This is convenient when defining
    functions for `MarkdownElement` in other packages.
    aviatesk authored Jul 7, 2025
    Configuration menu
    Copy the full SHA
    958d758 View commit details
    Browse the repository at this point in the history
  2. Support "Functor-like" code_typed invocation (#57911)

    This lets you easily inspect IR associated with "Functor-like" methods:
    ```julia
    julia> (f::Foo)(offset::Float64) = f.x + f.y + offset
    julia> code_typed((Foo, Float64))
    1-element Vector{Any}:
     CodeInfo(
    1 ─ %1 = Base.getfield(f, :x)::Int64
    │   %2 = Base.getfield(f, :y)::Int64
    │   %3 = Base.add_int(%1, %2)::Int64
    │   %4 = Base.sitofp(Float64, %3)::Float64
    │   %5 = Base.add_float(%4, offset)::Float64
    └──      return %5
    ) => Float64
    ```
    
    This is just a small convenience over `code_typed_by_type`, but I'm in
    support of it (even though it technically changes the meaning of, e.g.,
    `code_typed((1, 2))` which without this PR inspects
    `(::Tuple{Int,Int})(::Vararg{Any})`
    
    We should probably update all of our reflection machinery (`code_llvm`,
    `code_lowered`, `methodinstance`, etc.) to support this "non-arg0" style
    as well, but I wanted to open this first to make sure folks like it.
    topolarity authored Jul 7, 2025
    Configuration menu
    Copy the full SHA
    04138bf View commit details
    Browse the repository at this point in the history
  3. IRShow: Print arg0 type when necessary to disambiguate invoke (#58893)

    When invoking any "functor-like", such as a closure:
    ```julia
    bar(x) = @noinline ((y)->x+y)(x)
    ```
    our IR printing was not showing the arg0 invoked, even when it is
    required to determine which MethodInstance this is invoking.
    
    Before:
    ```julia
    julia> @code_typed optimize=true bar(1)
    CodeInfo(
    1 ─ %1 = %new(var"#bar##2#bar##3"{Int64}, x)::var"#bar##2#bar##3"{Int64}
    │   %2 =    invoke %1(x::Int64)::Int64
    └──      return %2
    ) => Int64
    ```
    
    After:
    ```julia
    julia> @code_typed optimize=true bar(1)
    CodeInfo(
    1 ─ %1 = %new(var"#bar##2#bar##3"{Int64}, x)::var"#bar##2#bar##3"{Int64}
    │   %2 =    invoke (%1::var"#bar##2#bar##3"{Int64})(x::Int64)::Int64
    └──      return %2
    ) => Int64
    ```
    topolarity authored Jul 7, 2025
    Configuration menu
    Copy the full SHA
    144de95 View commit details
    Browse the repository at this point in the history
  4. Support "functors" for code reflection utilities (#58891)

    As a follow-up to #57911, this
    updates:
     - `Base.method_instance`
     - `Base.method_instances`
     - `Base.code_ircode`
     - `Base.code_lowered`
     - `InteractiveUtils.code_llvm`
     - `InteractiveUtils.code_native`
     - `InteractiveUtils.code_warntype`
     
     to support "functor" invocations.
     
    e.g. `code_llvm((Foo, Int, Int))` which corresponds to `(::Foo)(::Int,
    ::Int)`
    topolarity authored Jul 7, 2025
    Configuration menu
    Copy the full SHA
    9fc33b9 View commit details
    Browse the repository at this point in the history
  5. correctly encode and validate fully_covers as edges (#58861)

    This is a bugfix and code cleanup, since it wasn't properly encoding and
    checking for newly "missing"-type backedges `fully_covering` during
    verification.
    
    Co-authored-by: Claude <[email protected]>
    vtjnash and claude authored Jul 7, 2025
    Configuration menu
    Copy the full SHA
    6efd218 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    8602127 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    7a1590f View commit details
    Browse the repository at this point in the history

Commits on Jul 8, 2025

  1. Add the fact that functions ending with ! may allocate to the FAQ (#…

    …58904)
    
    I've run into this question several times, that might count as
    "frequently asked".
    LilithHafner authored Jul 8, 2025
    Configuration menu
    Copy the full SHA
    5741911 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c3282ce View commit details
    Browse the repository at this point in the history
Loading