-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
release-1.9: Backports for julia 1.9.0-alpha2 / 1.9.0-beta1 #47602
Conversation
* Limit initial OpenBLAS thread count We set OpenBLAS's initial thread count to `1` to prevent runaway allocation within OpenBLAS's initial thread startup. LinearAlgebra will later call `BLAS.set_num_threads()` to the actual value we require. * Support older names (cherry picked from commit 58b559f)
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
(cherry picked from commit bba41d4)
* Update doc/src/base/sort.md * Update docs: The default sorting alg. is stable * Compat 1.9 for QuickSort to be stable * Specify the default algorithm * Use example from InlineStrings.jl * Change example to jldoctest * Remove "*appear* to be stable." as slightly misleading. Co-authored-by: Lilith Orion Hafner <lilithhafner@gmail.com> (cherry picked from commit c5fe17b)
(cherry picked from commit 4fa07cd)
Fixes `make -C deps getall` (cherry picked from commit 3200219)
* Remove typeinfer lock altogether * Don't remove the typeinf lock functions * Track reentrancy in current task state * Fix up some git status * Initialize task variables * Promise that jl_typeinf_func is rooted somewhere (cherry picked from commit 113efb6)
(cherry picked from commit 726bbd7)
The command-line program `rm` has no problem deleting an empty directory that we do not have listing permissions on, so we should follow suit. Example: ``` mktempdir() do dir mkpath("$(dir)/foo") chmod("$(dir)/foo", 0o200) rm(dir; recursive=true) end ``` (cherry picked from commit d0a211a)
* Add test/gcext to out-of-tree * Disable gcext test that uses jl_gc_internal_obj_base_ptr (cherry picked from commit 5495b8d)
(cherry picked from commit 7514bcf)
I don't understand why #46976 is in the list of PRs, eb708d6 is already in v1.9.0-alpha1 |
* Add support for "glue packages" to code loading This allows packages to define "glue packages" which are modules that are automatically loaded when a set of other packages are loaded into the Julia session. (cherry picked from commit 495a004)
Co-authored-by: Dilum Aluthge <dilum@aluthge.com> (cherry picked from commit db00cc1)
* Fix and simplify inference timing logic * Reduce task struct size (cherry picked from commit 88a0627)
This code was introduced by me back in #31025 to speed up evaluation of generated functions that didn't make use of all of their arguments to make generation decisions. However, it neglected to take into account the possibility that the generator could be varargs. As a result, an unfortunate coincidence of an unused slot in the correct position could have allowed expansion of generators that were not supposed to be expandable. This can cause incorrect inference with all the usual consequences. However, fortunately this coincidence appears to be pretty rare. Fixes JuliaDebug/CassetteOverlay.jl#12 (cherry picked from commit 328dd57)
Adapts to the final version of the constrained/available memory APIs. (cherry picked from commit 41b73e2)
Based on https://github.com/google/benchmark/blob/main/src/cycleclock.h (cherry picked from commit 060a492)
(cherry picked from commit e84634e)
When doing intersection, we might end up with a value in `env` (as the only possible *value* for that parameter) without properly considering that the parameter might be a TypeVar. (cherry picked from commit 26a7dbb)
(cherry picked from commit 427432e)
This reverts commit 1a7a131.
51f1df2
to
5a684f0
Compare
(cherry picked from commit 9be3c85)
We cache only those external CodeInstances that link back to the package being precompiled. Formerly we required a backedge; this PRs adds any whose `specTypes` could only link back to the package. This scoops up a few runtime-dispatched CodeInstances and their callees. (cherry picked from commit 1f0700a)
Co-authored-by: Simon Byrne <simonbyrne@gmail.com> (cherry picked from commit d7363d8)
@nanosoldier |
Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. |
@nanosoldier |
Some observations:
|
Note that BaseBenchmarks measures |
Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. |
@nanosoldier |
Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. |
(cherry picked from commit 09a6ff8)
This implements caching native code in "package images" (pkgimages). We now write two serialization files, one ending in `*.ji` and the other with the platform dynamic library extension (e.g., `*.so`). The `*.ji` contains "extended" header information (include the source-code dump for Revise), whereas the dynamic library includes the Julia objects, including LLVM-generated native code. Native code is compiled once during precompilation and then a second time to build a "clean" module. When we find an edge to an external function (already cached in anloaded pkgimage), we emit a global variable which we will patch during loading with the address of the function to call. This allows us to leverage the standard multiversioning capabilities. Co-authored-by: Tim Holy <tim.holy@gmail.com> Co-authored-by: Kristoffer Carlsson <kristoffer.carlsson@chalmers.se> Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com> Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com> Co-authored-by: Max Horn <max@quendi.de> Co-authored-by: Michael Schlottke-Lakemper <michael@sloede.com> Co-authored-by: Alex Ames <alexander.m.ames@gmail.com> (cherry picked from commit a2db90f)
Let's do a beta now after CI goes through. |
We probably should backport #47184 first. |
It's backported already. (I mean, I wouldn't suggest a beta just after that got merged without it being backported heh). |
Backported PRs:
precompile()
for abstract but compileable signatures #47259elseif
and short-circuit op #47499sortperm(x; dims)
#47657make full-source-dist USE_BINARYBUILDER=0
#47589rm(; recursive=true)
should ignoreUV_EACCES
#47668mul!
for vectors of vectors #47665global
expressions #47719OPENBLAS_NUM_THREADS=1
on local Distributed workers #47803runbenchmarks("sort")
) #47822Slot objects should not occur in an AST
in Ipython mode #47878Slices
indexing #47622Non-merged PRs with backport label: