Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backports for Julia 1.9.0-beta4 #48311

Merged
merged 46 commits into from
Feb 7, 2023
Merged

Commits on Jan 17, 2023

  1. Fix mistake in docstring of keys(::RegexMatch) (#48252)

    This method was added in 1.7.0 and is not available in any 1.6 release
    
    (cherry picked from commit 12c3b1c)
    simsurace authored and KristofferC committed Jan 17, 2023
    Configuration menu
    Copy the full SHA
    d9040a5 View commit details
    Browse the repository at this point in the history
  2. Avoid dtrace regenerating the header (#48278)

    (cherry picked from commit a9ce60a)
    vchuravy authored and KristofferC committed Jan 17, 2023
    Configuration menu
    Copy the full SHA
    4dc9a10 View commit details
    Browse the repository at this point in the history
  3. Profile: print profile peek to stderr (#48291)

    (cherry picked from commit 36007b7)
    IanButterworth authored and KristofferC committed Jan 17, 2023
    Configuration menu
    Copy the full SHA
    e640e7b View commit details
    Browse the repository at this point in the history

Commits on Jan 18, 2023

  1. NFC followups for #48246 (#48264)

    aviatesk committed Jan 18, 2023
    Configuration menu
    Copy the full SHA
    5da6d97 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9c99454 View commit details
    Browse the repository at this point in the history

Commits on Jan 19, 2023

  1. Configuration menu
    Copy the full SHA
    914ec69 View commit details
    Browse the repository at this point in the history

Commits on Jan 23, 2023

  1. run doc/NEWS-update.jl

    IanButterworth committed Jan 23, 2023
    Configuration menu
    Copy the full SHA
    986dc40 View commit details
    Browse the repository at this point in the history
  2. deps: fix broken p7zip url (#48176)

    (cherry picked from commit f6b5157)
    t-bltg authored and KristofferC committed Jan 23, 2023
    Configuration menu
    Copy the full SHA
    f8b78eb View commit details
    Browse the repository at this point in the history
  3. improve docs for IPython mode (#48314)

    (cherry picked from commit a6694d4)
    KristofferC authored and KristofferC committed Jan 23, 2023
    Configuration menu
    Copy the full SHA
    957c93f View commit details
    Browse the repository at this point in the history
  4. fix an erronous type assert (#48327)

    (cherry picked from commit c4cf1e6)
    KristofferC authored and KristofferC committed Jan 23, 2023
    Configuration menu
    Copy the full SHA
    dbe520d View commit details
    Browse the repository at this point in the history
  5. add a type assert to read on a Cmd (#48334)

    (cherry picked from commit 1bff32b)
    KristofferC authored and KristofferC committed Jan 23, 2023
    Configuration menu
    Copy the full SHA
    7114a8e View commit details
    Browse the repository at this point in the history
  6. allow extensions to be loaded from non top level env (#48352)

    (cherry picked from commit 4cab76c)
    KristofferC authored and KristofferC committed Jan 23, 2023
    Configuration menu
    Copy the full SHA
    60dfe2c View commit details
    Browse the repository at this point in the history
  7. make dlopening libssp non fatal (#48333)

    (cherry picked from commit 2949879)
    t-bltg authored and KristofferC committed Jan 23, 2023
    Configuration menu
    Copy the full SHA
    d3fbdf1 View commit details
    Browse the repository at this point in the history
  8. set max_methods = 1 for REPL methods (#48330)

    * set max_methods = 1 for REPL methods
    
    (cherry picked from commit f8493c7)
    KristofferC authored and KristofferC committed Jan 23, 2023
    Configuration menu
    Copy the full SHA
    9a67956 View commit details
    Browse the repository at this point in the history

Commits on Jan 30, 2023

  1. inlining: make union splitting account for uncovered call (#48455)

    #44421 changed the union-splitting to skip generating
    unnecessary fallback dynamic dispatch call when there is any fully
    covered call.
    But it turned out that this is only valid when there is any fully
    covered call in matches for all signatures that inference split, and it
    is invalid if there is any union split signature against which any
    uncovered call is found.
    
    Consider the following example:
    
        # case 1
            # def
            nosplit(::Any) = [...]
            nosplit(::Int) = [...]
            # call
            nosplit(a::Any)
                split1: a::Any ┬ nosplit(a::Int)
                               └ nosplit(a::Any) # fully covers split1
    
        # case 2
            # def
            convert(::Type{T}, ::T) = T
            # call
            convert(::Type{Union{Bool,Tuple{Int,String}}}, a::Union{Bool,Tuple{Int,Any}})
                split1: a::Bool           ─ convert(::Type{Bool}, ::Bool)                           # fully covers split1
                split2: a::Tuple{Int,Any} ─ convert(::Type{Tuple{Int,String}}, ::Tuple{Int,String}) # NOT fully covers split2
    
    #44421 allows us to optimize the the first case, but
    handles the second case wrongly. This commit fixes it up while still
    optimizing the first case.
    
    fix #48397.
    aviatesk committed Jan 30, 2023
    Configuration menu
    Copy the full SHA
    86fc8b6 View commit details
    Browse the repository at this point in the history

Commits on Feb 1, 2023

  1. add docs for getglobal and setglobal! (#48409)

    closes #45480
    
    Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com>
    (cherry picked from commit 0231c22)
    simeonschaub authored and KristofferC committed Feb 1, 2023
    Configuration menu
    Copy the full SHA
    9a8599a View commit details
    Browse the repository at this point in the history
  2. add docs for try-catch-else (#48414)

    ref #46928
    
    Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com>
    (cherry picked from commit d775750)
    simeonschaub authored and KristofferC committed Feb 1, 2023
    Configuration menu
    Copy the full SHA
    0a1da69 View commit details
    Browse the repository at this point in the history
  3. Store the frontend task object in the REPL struct. (#48400)

    (cherry picked from commit 87f8958)
    maleadt authored and KristofferC committed Feb 1, 2023
    Configuration menu
    Copy the full SHA
    90c9839 View commit details
    Browse the repository at this point in the history
  4. avoid hang when only threads are starting IO (#48433)

    When not in threaded region, only thread 0 will manage IO events, but it
    may have gone to sleep if there were no IO objects active for it to
    watch earlier.
    
    Fix #48430
    
    (cherry picked from commit 45b7e7a)
    vtjnash authored and KristofferC committed Feb 1, 2023
    Configuration menu
    Copy the full SHA
    186f5a5 View commit details
    Browse the repository at this point in the history
  5. Sorting documentation fixups for 1.9 (#48440)

    - Fix typos
    - Clarify that ! means mutation, not "in-place-ness". This should be backported because sort! is even less in place in 1.9 than it already was in 1.8.
    - Rewrite the section on default policy to reflect the new default policy
    - Move examples and extended description of previously default sorting algorithms out of sort.md and into their respective docstrings (still rendered in sort.md)
    
    Co-authored-by: Jeremie Knuesel <knuesel@gmail.com>
    (cherry picked from commit a1c4d85)
    LilithHafner authored and KristofferC committed Feb 1, 2023
    Configuration menu
    Copy the full SHA
    775c97f View commit details
    Browse the repository at this point in the history
  6. prevent heap snapshot test to write to julia dir (#48458)

    Co-authored-by: Ian <i.r.butterworth@gmail.com>
    (cherry picked from commit 94c4fb5)
    KristofferC committed Feb 1, 2023
    Configuration menu
    Copy the full SHA
    de89a2c View commit details
    Browse the repository at this point in the history
  7. Merge pull request #47676 from gbaraldi/gmp-libblas-version

    Use versioned libblastrampoline and GMP
    
    (cherry picked from commit 335cd5e)
    staticfloat authored and KristofferC committed Feb 1, 2023
    Configuration menu
    Copy the full SHA
    fcd3ca8 View commit details
    Browse the repository at this point in the history
  8. Fix apply_type_tfunc for Union{T::TypeVar}

    The type parameters to `Union` may be `Type`s or `TypeVar`s, but
    `apply_type_tfunc` failed to recognize the latter as valid in the
    single-argument case.
    
    (cherry picked from commit fd79b58)
    martinholters authored and KristofferC committed Feb 1, 2023
    Configuration menu
    Copy the full SHA
    017365c View commit details
    Browse the repository at this point in the history
  9. Move libstdc++ path into LOADER_*_DEP_LIBS

    After adding `libstdc++` probing into the Julia loader [0], we
    originally made the assumption that the `libstdc++` that is shipped with
    `julia` would always be co-located with `libjulia.so` [1].  This is not
    the case when building with `USE_SYSTEM_CSL=1`, however, where we
    sequester system libraries in `usr/lib/julia`, even at build-time.
    
    The path to `libstdc++.so` has already been getting altered when moving
    from build-time to install time via `stringreplace` [2], but after
    further thought, I decided that it would be better to just use the
    pre-existing `LOADER_*_DEP_LIBS` mechanism to communicate to the loader
    what the correct relative path to `libstdc++.so` is.  This also allows
    the single `stringreplace` to update all of our "special" library paths.
    
    [0] #46976
    [1] https://github.com/JuliaLang/julia/pull/46976/files#diff-8c5c98f26f3f7aac8905a1074c5bec11a57e9b9c7c556791deac5a3b27cc096fR379
    [2] https://github.com/JuliaLang/julia/blob/master/Makefile#L430
    
    (cherry picked from commit fb97c82)
    staticfloat authored and KristofferC committed Feb 1, 2023
    Configuration menu
    Copy the full SHA
    085d4a4 View commit details
    Browse the repository at this point in the history
  10. Load special libraries in-order

    The `DEPS_LIBS` RPATH-substitute mechanism contains a list of paths to
    load, and some of these paths are "special", in that they require more
    involved loading than simply `load_library()`.  These libraries are
    thereby denoted by a `@` prefixing them.
    
    Previously, we made note of these libraries, then loaded them at the end
    of the loading loop, but with the addition of `libstdc++` it is now
    important to have the order of the libraries (including special
    libraries) to be obeyed by the loading loop, so I have inlined special
    library handling into the loading loop.  In the future, we may wish to
    denote special libraries more explicitly than simply relying on there
    being exactly three libraries, with the ordering being mapped to
    `libstdc++`, `libjulia-internal`, and `libjulia-codegen`.
    
    (cherry picked from commit 4e99860)
    staticfloat authored and KristofferC committed Feb 1, 2023
    Configuration menu
    Copy the full SHA
    e80db09 View commit details
    Browse the repository at this point in the history
  11. bump Pkg to latest v1.9

    KristofferC committed Feb 1, 2023
    Configuration menu
    Copy the full SHA
    f5a6860 View commit details
    Browse the repository at this point in the history
  12. Add !noalias and !alias.scope metadata

    The main idea here is that the TBAA domain is ill-equipped for
    reasoning about regions (and, in particular, suffers total
    precision less when merging disparate types in a `memcpy`).
    Instead, `!noalias` should be used for region-based memory
    information and `!tbaa` should be used exclusively for layout.
    
    We use (5) regions corresponding to the top level of the TBAA tree:
      - gcframe
      - stack
      - data
      - constant
      - type_metadata
    
    For now, this leaves the TBAA hierarchy in tact and only adds
    additional `!noalias` metadata. `!tbaa` annotations should be
    the same as before.
    topolarity committed Feb 1, 2023
    Configuration menu
    Copy the full SHA
    0f0d425 View commit details
    Browse the repository at this point in the history
  13. Derive !noalias from !tbaa for most loads/stores

    This is an interim solution that derives the correct `!noalias`
    region from the existing TBAA information.
    
    Later we will want to:
        - Revise the TBAA hierarchy to remove region information
        - Delete `jl_aliasinfo_t::fromTBAA()`
        - Update `jl_cgval_t` to store a `jl_aliasinfo_t`
    topolarity committed Feb 1, 2023
    Configuration menu
    Copy the full SHA
    d04d36f View commit details
    Browse the repository at this point in the history

Commits on Feb 2, 2023

  1. Merge pull request #48485 from topolarity/noalias

    Backport: Add `!noalias` and `!alias.scope` metadata
    KristofferC authored Feb 2, 2023
    Configuration menu
    Copy the full SHA
    2440091 View commit details
    Browse the repository at this point in the history

Commits on Feb 5, 2023

  1. bump Pkg to latest v1.9

    KristofferC committed Feb 5, 2023
    Configuration menu
    Copy the full SHA
    08aa3f0 View commit details
    Browse the repository at this point in the history
  2. Avoid unnecessary Docs.META initializations (#48469)

    If the target module does not have a Docs.META dict (e.g. if
    `--strip-metadata` is used), `Docs.meta()` has the side effect of
    creating a new IdDict and initializing the Docs.META field of the target
    module.
    
    We need to avoid eval'ing into modules after they've been closed, so for
    methods that do not mutate the new IdDict we should avoid the init.
    
    Resolves #48390.
    
    Co-authored-by: Steve Kelly <kd2cca@gmail.com>
    (cherry picked from commit 798b589)
    topolarity authored and KristofferC committed Feb 5, 2023
    Configuration menu
    Copy the full SHA
    68cd01c View commit details
    Browse the repository at this point in the history
  3. Fix Base.libblas_name/Base.liblapack_name

    On Windows they need to include the major soversion of libblastrampoline.
    
    (cherry picked from commit d5911c0)
    giordano authored and KristofferC committed Feb 5, 2023
    Configuration menu
    Copy the full SHA
    30dcbba View commit details
    Browse the repository at this point in the history
  4. Move libblas_name/liblapack_name to after Sys module

    (cherry picked from commit f2d7055)
    giordano authored and KristofferC committed Feb 5, 2023
    Configuration menu
    Copy the full SHA
    b9c655c View commit details
    Browse the repository at this point in the history
  5. Add test for use of Base.libblas_name

    (cherry picked from commit a93ac54)
    giordano authored and KristofferC committed Feb 5, 2023
    Configuration menu
    Copy the full SHA
    8b00ed3 View commit details
    Browse the repository at this point in the history
  6. [LinearAlgebra] Fix libblas_name test

    Use `Int` as type for integer arguments, instead of `Cint`.
    
    (cherry picked from commit cdc6eaf)
    giordano authored and KristofferC committed Feb 5, 2023
    Configuration menu
    Copy the full SHA
    a7f04b8 View commit details
    Browse the repository at this point in the history

Commits on Feb 6, 2023

  1. remove precompile mutation step from staticdata (#48309)

    Make sure things are properly ordered here, so that when serializing,
    nothing is mutating the system at the same time.
    
    Fix #48047
    
    (cherry picked from commit 87b8896)
    vtjnash committed Feb 6, 2023
    Configuration menu
    Copy the full SHA
    26b6e81 View commit details
    Browse the repository at this point in the history
  2. avoid generating native code if only output ji file (#48431)

    (cherry picked from commit 2eeefbe)
    vtjnash committed Feb 6, 2023
    Configuration menu
    Copy the full SHA
    62b70e3 View commit details
    Browse the repository at this point in the history
  3. convert algorithms to SCC (#47866)

    These places in the code can either be more efficient O(1) or more
    correct using something more similar to the published SCC algorithm by
    Tarjan for strongly connected components.
    
    (cherry picked from commit b03439c)
    vtjnash committed Feb 6, 2023
    Configuration menu
    Copy the full SHA
    d1b9ff9 View commit details
    Browse the repository at this point in the history
  4. precompile: do not reanimate zombie external methods (#48475)

    Backedges are only applicable to cache objects with max_world==Inf
    
    Fix #48391
    
    (cherry picked from commit b9398a3)
    vtjnash committed Feb 6, 2023
    Configuration menu
    Copy the full SHA
    a83399c View commit details
    Browse the repository at this point in the history

Commits on Feb 7, 2023

  1. Merge pull request #48513 from JuliaLang/jn/extend-once

    ensure extension triggers are only run by the package that satified them
    KristofferC committed Feb 7, 2023
    Configuration menu
    Copy the full SHA
    d4e0f36 View commit details
    Browse the repository at this point in the history
  2. Protect cmd_gen against invalidation (#48557)

    This gets used by `Base.require`, arguably the most painful of
    all invalidations. CSV is one package that invalidates it.
    
    (cherry picked from commit 5721ae7)
    timholy authored and KristofferC committed Feb 7, 2023
    Configuration menu
    Copy the full SHA
    27c6d97 View commit details
    Browse the repository at this point in the history
  3. Change uses of int to size_t in MurmurHash (#48562)

    * Change uses of int to size_t in MurmurHash
    
    (cherry picked from commit 3fe69f4)
    gbaraldi authored and KristofferC committed Feb 7, 2023
    Configuration menu
    Copy the full SHA
    1ef6c96 View commit details
    Browse the repository at this point in the history
  4. [compiler] Fix effects of supertype abstract interpretation (#48566)

    This `abstract_call_known` recursion inserted `EFFECTS_TOTAL` which is
    incorrect because `<:` and `>:` can throw if the arguments are not
    types.
    
    (cherry picked from commit 0ab6e2f)
    staticfloat authored and KristofferC committed Feb 7, 2023
    Configuration menu
    Copy the full SHA
    997ba79 View commit details
    Browse the repository at this point in the history
  5. add CTRL_R to repl precompile (#48539)

    Co-authored-by: robsmith11 <robsmith11@github.com>
    (cherry picked from commit 7827b08)
    robsmith11 authored and KristofferC committed Feb 7, 2023
    Configuration menu
    Copy the full SHA
    a3b4c3b View commit details
    Browse the repository at this point in the history
  6. Add path tracking options from #44359 to docs (#48527)

    (cherry picked from commit 4d9eb89)
    philbit authored and KristofferC committed Feb 7, 2023
    Configuration menu
    Copy the full SHA
    c15f520 View commit details
    Browse the repository at this point in the history
  7. give a hint towards Base.retry_load_extensions when an extension fa…

    …ils to load (#48571)
    
    (cherry picked from commit e32e20c)
    KristofferC committed Feb 7, 2023
    Configuration menu
    Copy the full SHA
    d4a4629 View commit details
    Browse the repository at this point in the history