https://github.com/JuliaLang/julia

sort by:
Revision Author Date Message Commit Date
3bf9d17 release-1.7: set VERSION to 1.7.0 (#43243) 30 November 2021, 12:12:53 UTC
213bf5f Merge pull request #43084 from JuliaLang/backports-release-1.7 release-1.7: Backports for 1.7.0/1.7.0-rc4 27 November 2021, 07:40:22 UTC
7f29663 Backport: Fix stack pointer retrieval in jl_backtrace_from_here (#42585) (#43241) * Fix stack pointer retrieval in jl_backtrace_from_here (#42585) Co-authored-by: Jameson Nash <vtjnash@gmail.com> (cherry picked from commit 455236eb7f95901f1c68d3c1cd17928e6c7f6fce) * Avoid using call-site `@noinline` 26 November 2021, 21:29:54 UTC
fe216ae Better handling for Union-type fields, particularly of singletons (#43163) fix #43123 (cherry picked from commit d44a53425ba9cb320408e71206d600513dd2ac9e) 26 November 2021, 20:22:14 UTC
6b1637b Fix inference with const opaque closure (#42725) 26 November 2021, 20:22:14 UTC
0848394 Make argument mismatch in opaque closure a MethodError (#41206) This at least shows the argument types. In the future we may want to add some logic to the errorshow code to improve this even further, but good enough for now. 26 November 2021, 20:22:14 UTC
9bee745 IRShow: use `IOContext` for `PhiNodes`/`:invoke` printing (#43226) In order to allow `Argument`s to be printed nicely. > before ```julia julia> code_typed((Float64,)) do x sin(x) end 1-element Vector{Any}: CodeInfo( 1 ─ %1 = invoke Main.sin(_2::Float64)::Float64 └── return %1 ) => Float64 julia> code_typed((Bool,Any,Any)) do c, x, y z = c ? x : y z end 1-element Vector{Any}: CodeInfo( 1 ─ goto #3 if not c 2 ─ goto #4 3 ─ nothing::Nothing 4 ┄ %4 = φ (#2 => _3, #3 => _4)::Any └── return %4 ) => Any ``` > after ```julia julia> code_typed((Float64,)) do x sin(x) end 1-element Vector{Any}: CodeInfo( 1 ─ %1 = invoke Main.sin(x::Float64)::Float64 └── return %1 ) => Float64 julia> code_typed((Bool,Any,Any)) do c, x, y z = c ? x : y z end 1-element Vector{Any}: CodeInfo( 1 ─ goto #3 if not c 2 ─ goto #4 3 ─ nothing::Nothing 4 ┄ %4 = φ (#2 => x, #3 => y)::Any └── return %4 ) => Any ``` 26 November 2021, 20:22:14 UTC
bf8d60b `@testset`: with Xoshiro, restore Random.GLOBAL_SEED (#43188) A `@testset` is supposed to restore the "global RNG state" as it was before execution (so that they can be re-ordered easily, etc.) Also, before a testset starts, the default RNG is re-seeded with the "global seed" (to help reproduce test failures). Before `Xoshiro` as the default RNG, the "global seed" was stored within a `MersenneTwister` object. It was enough for a testset to copy the default RNG at the start, and copy it back at the end. But now the global seed is stored outside of the RNG, so it should also be restored separately. (cherry picked from commit 08ea2d8f27c312fd9ce15cd2d7639bdde51a233c) 26 November 2021, 20:22:14 UTC
72d6569 Fix links to external stdlib repos in docs, fixes #43199. (#43225) (cherry picked from commit 3103102d227e6b5c48eef40710ef1cc891ed0a78) 26 November 2021, 20:22:14 UTC
06516f6 `Base.GIT_VERSION_INFO`: record the Buildkite commit that was used to build Julia (#43073) (cherry picked from commit a21cc80abb67cb2111ef586aceba47e49dfd4203) 26 November 2021, 20:22:14 UTC
348a6fb `Base.runtests`: rename the `--force-net` option to `--ci` (#43168) Co-authored-by: Rafael Fourquet <fourquet.rafael@gmail.com> Co-authored-by: Rafael Fourquet <fourquet.rafael@gmail.com> (cherry picked from commit e9430c93962ef9756fe1d3ffc4d979d16682df84) 26 November 2021, 20:22:14 UTC
bbb2233 Make stale_cachefile compatible with Nix mtime (#43090) The added condition improves compatiblity with Nix mtime. (cherry picked from commit f5e0f9d00e4fad38407a3cddac83e83175b5b908) 26 November 2021, 20:22:14 UTC
3f81baa libuv: bump version Includes several fixes: https://github.com/JuliaLang/libuv/compare/c6869fba163a1e04af64ede438a8fd0191e75e9e...3a63bf71de62c64097989254e4f03212e3bf5fc8 (cherry picked from commit 04d486b79ca645bf6a0dfbd8170242c4c6669929) 26 November 2021, 20:22:14 UTC
501c9ac bump to latest Pkg release-1.7 26 November 2021, 20:22:14 UTC
08002ba Updated checksums for LBT (#42334) (cherry picked from commit f60736fc5ce65147bad9d0a6f3664f908543a763) 26 November 2021, 20:22:14 UTC
14132d7 Fix regression in `map` and `collect` (#43120) `promote_typejoin_tuple` returned a type which was more precise than the one which `map` and `collect` actually use via `promote_type`, triggering an assertion error in corner cases. (cherry picked from commit edea1de3d5174f7ca317e88230cbccfcc01def4d) 26 November 2021, 20:22:14 UTC
73cfbdf Document that cfunctions should not throw errors (#43100) * Document that cfunctions should not throw errors This was not documented, see https://discourse.julialang.org/t/what-happens-when-you-throw-an-error-from-a-cfunction/71510?u=simonbyrne * Update doc/src/manual/calling-c-and-fortran-code.md Co-authored-by: Jameson Nash <vtjnash@gmail.com> Co-authored-by: Jameson Nash <vtjnash@gmail.com> (cherry picked from commit 0722f3c5c39fb7f213196807c9659d5c819dee32) 26 November 2021, 12:48:17 UTC
ca091f4 Fix world age issue with custom streams for Distributed workers (#42481) If connect(::CustomClusterManager, ...) returns a custom transport stream, use of that stream by the task in start_gc_msgs_task() may fail due to the task executing in an old world age. Add an invokelatest() to prevent this problem. (cherry picked from commit a05bcb2436b1600b89f267683c7c7a840e906e14) 26 November 2021, 12:48:17 UTC
eae365c Unbreak source distribution tarball construction. (#43096) Co-authored-by: Jameson Nash <vtjnash@gmail.com> (cherry picked from commit d958c8c23af18c7cbafc08f655cc7244ec14f6d6) 26 November 2021, 12:48:17 UTC
fa51d23 fix atomic fences (#43093) Previously, we were disallowing the opposite of the orders that we intended to disallow. (cherry picked from commit 28c49cea5b5898aa5713776a1d68e1e29fc38f14) 26 November 2021, 12:48:07 UTC
5dba096 backport fix float16(::Union{Float64,BigFloat}) (#43092) 16 November 2021, 11:15:15 UTC
ee261dc Make profiling more robust with many tasks (#42978) This patch includes two sets of changes. (1) `jl_thread_suspend_and_get_state` uses `pthread_cond_timedwait` to recover from the case where the request is not received by the signal handler. This is required because `usr2_handler` contains some paths for the case where it is not possible to obtain `ptls`. (2) `ctx_switch` now makes sure to null out `ptls` of the last task (`lastt->ptls = NULL`) after changing the current task by updating pgcstack (`jl_set_pgcstack(&t->gcstack)`). This closes the gap in which `usr2_handler` can observe the null `ptls`. Co-authored-by: Jameson Nash <vtjnash@gmail.com> (cherry picked from commit 81315807a5bb0c581d85d4fbaa4f09cf5dccfca4) 15 November 2021, 09:50:55 UTC
07d6734 Stop stripping git, github, and CI config files from source distributions. (cherry picked from commit 780ebea4ea21932509f824650a79e63c398d2614) 15 November 2021, 09:50:54 UTC
ae4035a Symlink 7z when USE_SYSTEM_P7ZIP (#43005) * Symlink 7z * Simplify Co-authored-by: Elliot Saba <staticfloat@gmail.com> Co-authored-by: Elliot Saba <staticfloat@gmail.com> (cherry picked from commit 5e2894ba97d69a08f15365d4e38f2d3cdacc0c2c) 15 November 2021, 09:50:53 UTC
976a79e codegen: add missing initialization for PhiC nodes (#43029) Our Phi handling assumes that it can references undefined memory, and get back legal results, but our PhiC nodes were not initialized, so the Phi node might see uninitialized results, and then cause the GC to crash. This was observed in PkgEval on the PoreMatMod.jl package to occur in recent Julia versions and master. (cherry picked from commit ec3ec0206d9d2bdf87b6427e70a968e63b8bef2c) 15 November 2021, 09:50:53 UTC
5adcb4b ranges: fix empty length for smallints (#43042) Fixes #29801 (cherry picked from commit b71330de9847e46ea7033a8267c5a56025ffefdb) 15 November 2021, 09:50:52 UTC
3348de4 release-1.7: set VERSION to 1.7-rc3 (#43070) 15 November 2021, 08:22:49 UTC
dc2f781 Merge pull request #42765 from JuliaLang/backports-release-1.7 release-1.7: Backports for 1.7.0/1.7.0-rc3 13 November 2021, 17:37:34 UTC
5da2e44 Print symbols in `Tuple{:sym}` type with colons (#42999) Use `show` instead of `print` or `join`. (cherry picked from commit 6fbfc4f1b7e0b6b215a26907304a89d83d23a746) 13 November 2021, 13:00:42 UTC
9132a40 disallow unbalanced bidirectional formatting in strings and comments (#42918) (cherry picked from commit 2cfebad7a9e6cf48d036c7a4893c845431707834) 13 November 2021, 13:00:29 UTC
8597a4b Allow system versions of libwhich and libblastrampoline (#43000) (cherry picked from commit ee4bcab59290daf7d3e93db75af19625feffbdc2) 10 November 2021, 10:26:47 UTC
9e11179 CI (Buildkite): use a `TMPDIR` that is backed by real storage (#42995) (cherry picked from commit f317d576bf186e58abf69033a0d7f092179b879d) 10 November 2021, 10:21:58 UTC
40dca0f `file` tests: in the `"tempname with parent"` test, temporarily unset the `TMPDIR` environment variable while running the test (#43012) (cherry picked from commit ac2ee4dca3b528895f041c30b809026c904ba5f2) 10 November 2021, 10:21:57 UTC
7617229 Add missing type parameter to TakeWhile (#42958) Without this `TakeWhile` has `eltype` of `Any` (cherry picked from commit ab0c6dd56752c1860fa8d97471f0eafaac671a85) 10 November 2021, 10:21:57 UTC
82af540 Add missing USE_SYSTEM_LIBWHICH initialization (#43014) (cherry picked from commit f458b07613357fbdf7b8deae79b78924659fe830) 10 November 2021, 10:21:56 UTC
4c2229a Timer: handle timeout correctly (#42854) I am not sure why we ever used round+1 instead of ceil+1, as this is simply strictly more correct. (cherry picked from commit d6f59fa1826eb2db1ac1980af71cb6fcc4c7a978) 10 November 2021, 10:21:56 UTC
118344d Fix segfault while profiling task switching (#42973) (cherry picked from commit 12b9bec0399215e64074dbb7670d519fefa9023a) 10 November 2021, 10:21:55 UTC
52f36b8 CI (Buildkite): increase the timeout of the code coverage job (#42994) (cherry picked from commit d39b2c0d147d4fdf09b66f63c23027ed9f10a7d1) 10 November 2021, 10:21:54 UTC
15e822c bump to latest Pkg release-1.7 10 November 2021, 09:54:16 UTC
1dca956 choosetests: move testnames array at top-level (#40182) This allows scripts loading this file to know the list of tests. (cherry picked from commit 82784feebe0c0332281d653c9e0e56e9c8701dd0) 09 November 2021, 09:30:23 UTC
41f4756 choosetests: return a namedtuple (instead of a tuple) (#42723) to make it easier to add more information in the future (cherry picked from commit 9e3cfc06edde6b99d7716063139db7e810e5277c) 09 November 2021, 08:44:57 UTC
3479d89 Running `make testall` should run all of the tests (#42904) (cherry picked from commit 36304bacc739bae2aa6c8cba915edd3b3c4b2b4f) 09 November 2021, 08:44:29 UTC
1679ea1 `choosetests`: add the `--force-net` option, which will throw an error if networking is unavailable (#42889) (cherry picked from commit 31b9fd2d5960d1e24348235bb2a8d36e6d194612) 09 November 2021, 08:44:29 UTC
87000f3 tests: add help and reflection abilities to choosetests option parser (#42462) (cherry picked from commit 091594ea8ed0fb4ace31dc1b54ada9e912faa149) 09 November 2021, 08:44:29 UTC
e8caa27 inference: relax type_more_complex for Type If the object is not a potential Type{...}, we can allow greater flexibility in recursion. (cherry picked from commit 1daaf473d1c268ce8b54f47bd7b30c2f74d66b99) 08 November 2021, 09:17:51 UTC
643fef7 inference: eliminate more potential `widenconst(::TypeofVararg)` cases (#42971) Follows #42583. The missing case within `const_prop_function_heuristic` was originally reported from RerationalAI's test suite. I added the other two cases by some code review. (cherry picked from commit 71d57d9696502693c733dabd26d464391e9cfbff) 08 November 2021, 09:16:43 UTC
2a4d14f eliminate unbound `TypeVar`s on `argtypes` construction This commit eliminates unbound `TypeVar`s from `argtypes` in order to make the analysis much easier down the road. At runtime, only `Type{...}::DataType` can contain invalid type parameters, but we may have arbitrary malformed user-constructed type arguments given at inference entries. So we will replace only the malformed `Type{...}::DataType` with `Type` and simply replace other possibilities with `Any`. The replacement might not be that accurate, but an unbound `TypeVar` is really invalid in anyway. Like the change added on `arrayref_tfunc`, now we may be able to remove some `isa(x, TypeVar)`/`has_free_typevars` predicates used in various places, but it is left as an exercise for the reader. (cherry picked from commit 36cc1c197b0194c69b79bec4b3146ccb368dbd41) 08 November 2021, 09:15:10 UTC
bbe91db inference: improve `TypeVar`/`Vararg` handling During working on the incoming lattice overhaul, I found it's quite confusing that `TypeVar` and `Vararg` can appear in the same context as valid `Type` objects as well as extended lattice elements. Since it usually needs special cases to operate on `TypeVar` and `Vararg` (e.g. they can not be used in subtyping as an obvious example), I believe it would be great avoid bugs and catch logic errors in the future development if we separate contexts where they can appear from ones where `Type` objects and extended lattice elements are expected. So this commit: - tries to separate their context, e.g. now `TypeVar` and `Vararg` should not be used in `_limit_type_size`, which is supposed to return `Type`, but they should be handled its helper function `__limit_type_size` - makes sure `tfunc`s don't return `TypeVar`s and `TypeVar` never spills into the abstract state - makes sure `widenconst` are not called on `TypeVar` and `Vararg`, and now `widenconst` is ensured to return `Type` always - and does other general refactors (cherry picked from commit d60f92cd3a92cd12cae55893e55e6d9e14b0052e) 08 November 2021, 09:15:05 UTC
9723f82 Keep expected crash in misc test from producing a core dump (#42990) Currently the test in `test/misc.jl` that tests that a particular kind of read fault crashes has two issues: 1. It works for the wrong reason. It's testing for `!success` when evaluating code interpolated directly into the `Cmd`, but it isn't quoting the code, so the subprocess fails with a syntax error instead of the type of crash the test is expecting. 2. On some platforms (such as our good ol' pal FreeBSD), this kind of read fault produces a core dump. This a bit annoying because it means that the repo state becomes dirty after running the tests and it may overwrite an existing core dump that was left behind by an earlier issue we'd like to diagnose. To fix these, we can wrap the code passed to the subprocess in single quotes and on Unix-like systems wrap the subprocess in `ulimit -c 0` to avoid producing a core dump. (cherry picked from commit fa6dcb0e61166e6af2dcf4b78ef922d3f191c2fb) 08 November 2021, 08:45:20 UTC
ee25032 Fix libunwind segfaults from JIT frames on FreeBSD (#42970) This adds libunwind PR 308 as a patch and updates LibUnwind_jll to use a version with that patch included. (cherry picked from commit 96a99c268a96ee61f6ff8fe4c2d53208f0cb042a) 07 November 2021, 19:27:02 UTC
d74571f Remove some other uses of the unauthenticated `git://` protocol in Git URLs (#42907) (cherry picked from commit e03ead07e9ce8fdae09dbbc45e891aa93ab03ee5) 07 November 2021, 19:14:33 UTC
f5954c1 External stdlibs: Move `*_URL` stdlib definitions into `.version` files Co-authored-by: Elliot Saba <staticfloat@gmail.com> (cherry picked from commit dfcd63f14be030fca7a5fe071cb97bdd8bb91cd0) 07 November 2021, 19:09:50 UTC
bf1f998 Partially revert #42919 (#42969) * Partially revert #42919 The change to RPATH setting for macOS seems to have improved the situation for users on Monterey, but the other changes in #42919 that affect other platforms seem to have caused regressions on musl Linux (#42940) and FreeBSD (#42944). The easiest thing to do here is to keep the changes from #42919 as they apply to macOS but revert the others. * Un-revert the `RPATH_LIB` definition (cherry picked from commit 653cad3a276ec699ea8cac36fd84717d2a61826b) 07 November 2021, 19:00:44 UTC
f8ae06f Cleanup `RPATH` settings (#42919) Previously, we needed to provide both `usr/lib` and `usr/lib/julia` as elements on the `RPATH`, because `libjulia` lived in `usr/lib`, and needed to be able to find dependent libraries both within a build tree (when most libraries live in `usr/lib`) and within an install tree (when most libraries live in `usr/lib/julia`). Nowadays, everything is either in `usr/lib` or in `usr/lib/julia` with the exception of `libjulia`, but since it's really `libjulia-internal` that does all the `dlopen()`'ing, we can simply use `$$ORIGIN` (or the equivalent `@loader_path/` on macOS) and completely ignore the rest of the RPATH shenanigans we do. (cherry picked from commit 236523ffc2b0493e8e519a721ec030b7c3a64f83) 07 November 2021, 19:00:31 UTC
242d851 CI (Buildkite): fix another bug in the once-daily scheduled Buildkite job (#42983) (cherry picked from commit 4304c51f961c39bb95b388fe3e6acd22917d5661) 07 November 2021, 18:44:17 UTC
2716958 CI (GHA, Buildbot): Update the list of commit statuses created by the "Create Buildbot Statuses" workflow (#42985) (cherry picked from commit 9bb8a6fa9c1bb583c081ee655a7fc1c99eebb3e4) 07 November 2021, 18:44:16 UTC
6da57c2 CI (Buildkite): increase the timeouts for the Buildkite jobs that run under `rr` (#42979) (cherry picked from commit f7280386af52cb708bccb8c6876a1df747af3651) 07 November 2021, 18:44:16 UTC
b7f4af8 CI (Buildkite): Fix the Buildkite once-daily scheduled job (#42976) (cherry picked from commit f3d505d957f22a03b973b9f3a49890c00765b2d7) 07 November 2021, 18:44:15 UTC
1fee4a5 CI (Buildkite): increase the default timeouts (#42953) (cherry picked from commit 7d41d1eb610cad490cbaece8887f9bbd2a775021) 07 November 2021, 18:44:14 UTC
6b08828 CI (GHA, Buildbot): temporarily, don't create the `linuxaarch64` Buildbot status (#42954) (cherry picked from commit b777d0216093a79ebb4a321cb0334332b95c9072) 07 November 2021, 18:44:14 UTC
6cc14ad Distributed test suite: mark another test as thread-unsafe (#42941) (cherry picked from commit 7c9d1262e8dcf45e65fad9f741f355dd5b847df9) 07 November 2021, 18:44:13 UTC
eb951d3 Eliminate `@loader_path/julia` element of `DL_LOAD_PATH` (#42930) Analogous to https://github.com/JuliaLang/julia/commit/236523ffc2b0493e8e519a721ec030b7c3a64f83, we don't need to search in `@loader_path/julia` anymore, as `libjulia-internal` is now consistently within the same directory as our other dependencies. (cherry picked from commit 486c8de4a97f64b3a7947bbd4f1c73c3bedee5fe) 07 November 2021, 18:44:13 UTC
4871167 CI (Buildkite): add Pkg, Artifacts, and LazyArtifacts to the list of "network-related stdlibs" that we test in a separate Buildkite job (#42885) (cherry picked from commit 8e87263129f4edbcda169c30afe1f528c11d0ca5) 07 November 2021, 18:44:12 UTC
bc1e4ea `choosetests`: `Pkg/pkg` is no longer relevant (#42890) (cherry picked from commit 12b2ec731b1e53c750cd2003af0c37af853e65ee) 07 November 2021, 18:44:10 UTC
bdcc62b Update patchelf.mk to always use bzp2 (#42881) (cherry picked from commit 3863631b80a6e9d57759f177585b9ace70eb6015) 07 November 2021, 18:44:09 UTC
5830b81 Update BinaryBuilder libuv to 2.0.1+4 (#41900) The FreeBSD binaries for this build are built with FreeBSD 12 rather than FreeBSD 11, which will work around issue #34627. (cherry picked from commit 5e1670e7865b5ea73aa3a9c3dd42c8596c04aea1) 07 November 2021, 18:44:04 UTC
4b8fba2 MINSIGSTKSZ is no longer constant in glibc (#41860) MINSIGSTKSZ is redefined to sysconf(_SC_MINSIGSTKSZ) starting from glibc 2.34 Co-authored-by: t-bltg <t-bltg@users.noreply.github.com> (cherry picked from commit f19b9a20dde2688c642b7dd709b5d9446e4df2f6) 07 November 2021, 18:44:03 UTC
75961b2 handle some cases of null Task in segv handling (#42836) Also ensure we do not use round-robin sampling when printing a critical error, only for profiling. (cherry picked from commit ad607a225b0691f17bbac406fc59d426dabaabe0) 02 November 2021, 16:16:14 UTC
b825b2d use the httable key instead of the binding name in jl_module_names (#42532) (cherry picked from commit 8d82176739f9d8ce5846b22efa2768b4f42d3255) 02 November 2021, 11:43:11 UTC
b6f1cbc `choosetests`: preparations for setting up a separate Buildkite job that runs the `Pkg` test suite (#42859) (cherry picked from commit b55fb5f2a8e4633e7cde4cd79fcc67e04747d54b) 02 November 2021, 11:42:14 UTC
0c92bf2 Test suite: improve the warning that we print when we skip the `Profile` tests on ARM (#42862) (cherry picked from commit 9ac5582580cbfafe61b6568efe6e6a9bf5ac3c4c) 02 November 2021, 11:42:08 UTC
57f6f27 Merge pull request #42788 from JuliaLang/vc/freebsd_fix Fix RPATH of libLLVM.so on FreeBSD and Linux 31 October 2021, 21:51:15 UTC
9aa1dc3 Fix RPATH of libLLVM.so on FreeBSD and Linux 31 October 2021, 20:19:29 UTC
13310eb no longer explicitly print some things in white (#42864) (cherry picked from commit 6f55bf9155d0b4adb011a9c1738d138014aa24da) 31 October 2021, 19:06:46 UTC
1ef8f95 Optimize show(io::IO, m::Module) implementation. (#42773) show(io::IO, m::Module) allocates. This commit provides an implementation that does not allocate, improving perf. (cherry picked from commit ca6b3ba08e5a2108133e88e54f07d5a962b8ac39) 31 October 2021, 18:04:39 UTC
3f030a7 CI (Buildkite): add a separate Buildkite job that runs the tests of the network-related stdlibs (e.g. Downloads.jl), and automatically retries that job up to a maximum number of tries (#42861) (cherry picked from commit 30037425ac76344d6a81efd02cce1bfce8dfff71) 31 October 2021, 17:32:56 UTC
c76de1e Update Patchelf to 0.13 Co-authored-by: Jameson Nash <vtjnash@gmail.com> (cherry picked from commit a985c8ace4428264c6fac42f8ce497f28c2e8313) 31 October 2021, 17:32:56 UTC
3404ae5 CI (Buildkite): Update all rootfs images to the latest versions (#42802) * CI (Buildkite): Update all rootfs images to the latest versions * Re-sign all of the signed pipelines (cherry picked from commit 9f52ec0aabe0dec83423acea3dca911328119b10) 31 October 2021, 17:32:52 UTC
17e60a2 CI: add TSAN to the sanitizers pipelines (#42444) (cherry picked from commit f985b47df75dbe4522b7befe172dd8c251ffa4a9) 31 October 2021, 17:32:51 UTC
d7ccfd2 Backport PR #42152 to 1.7 (#42828) Co-authored-by: Jameson Nash <vtjnash@gmail.com> 31 October 2021, 17:30:02 UTC
382129f optimizer: fix #42840, the performance regression introduced by #42766 (#42841) 30 October 2021, 05:45:55 UTC
901a3a5 Revert "fix #41546, make `using` thread-safe (#41602)" This reverts commit e3255ef4affb2c017dc6704811243649c6a3989e. 29 October 2021, 15:54:18 UTC
21a2784 🤖 Bump the Statistics stdlib from 74897fe to 5256d57 (#42826) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> (cherry picked from commit 404e584165fdd83df977688f288ca4d35e0c85d1) 28 October 2021, 16:05:41 UTC
84b7ded reset `RandomDevice` file from `__init__` (#42537) This prevents us from seeing an invalid `IOStream` object from a saved system image, and also ensures the files are opened once for all threads. (cherry picked from commit c74814e0ca7fd06ddbbbb828e43c6ccbcde909b2) 28 October 2021, 16:01:21 UTC
8869704 CI (Buildkite): make sure to hit ignore any unencrypted repo keys, regardless of where they are located in the repository (#42803) (cherry picked from commit 6a386de4b401968382ad0b480c52e6c6a46903b2) 28 October 2021, 16:01:21 UTC
e3255ef fix #41546, make `using` thread-safe (#41602) use more precision when handling loading lock, merge with TOML lock (since we typically are needing both, sometimes in unpredictable orders), and unlock before call most user code Co-authored-by: Jameson Nash <vtjnash@gmail.com> (cherry picked from commit 3d4b213a6d751e07fd9becbc17221868af638117) 28 October 2021, 16:01:21 UTC
532b3f8 Distributed test suite: if `Threads.nthreads() > 1`, skip certain tests (#42764) (cherry picked from commit 0682132e3e6668eace10cf984eaf0168fd413988) 28 October 2021, 16:01:21 UTC
4bf1a0c [release-1.7] Bump the Downloads stdlib from 5d00bdd (v1.5.1) to 26d79af (v1.5.2) (#42816) 28 October 2021, 15:53:17 UTC
f662b0a Merge pull request #42805 from JuliaLang/avi/backport-42766 backport #42766 into `backports-release-1.7` 27 October 2021, 04:38:06 UTC
c22889e manually-cherry-picked: inference: `prioritize force_constant_prop` over `const_prop_entry_heuristic` (#41882) Currently our constant-prop' heuristics work in the following way: 1. `const_prop_entry_heuristic` 2. `const_prop_argument_heuristic` & `const_prop_rettype_heuristic` 3. `force_const_prop` custom heuristic & `!const_prop_function_heuristic` 4. `MethodInstance` specialization and `const_prop_methodinstance_heuristic` This PR changes it so that the step 1. now works like: 1. `force_const_prop` custom heuristic & `const_prop_entry_heuristic` and the steps 2., 3. and 4. don't change This change particularly allows us to more forcibly constant-propagate for `getproperty` and `setproperty!`, and inline them more, e.g.: ```julia mutable struct Foo val _::Int end function setter(xs) for x in xs x.val = nothing # `setproperty!` can be inlined with this PR end end ``` It might be useful because now we can intervene into the constant-prop' heuristic in a more reliable way with the `aggressive_constprop` interface. I did the simple benchmark below, and it looks like this change doesn't cause the latency problem for this particular example: ```zsh ~/julia master aviatesk@amdci2 6s ❯ ./usr/bin/julia -e '@time using Plots; @time plot(rand(10,3))' 3.708500 seconds (7.28 M allocations: 506.128 MiB, 3.45% gc time, 1.13% compilation time) 2.817794 seconds (3.45 M allocations: 195.127 MiB, 7.84% gc time, 53.76% compilation time) ~/julia avi/forceconstantprop aviatesk@amdci2 6s ❯ ./usr/bin/julia -e '@time using Plots; @time plot(rand(10,3))' 3.622109 seconds (7.02 M allocations: 481.710 MiB, 4.19% gc time, 1.17% compilation time) 2.863419 seconds (3.44 M allocations: 194.210 MiB, 8.02% gc time, 53.53% compilation time) ``` 26 October 2021, 14:45:33 UTC
da71d29 manually-cherry-picked: optimizer: fix #42754, inline union-split const-prop'ed sources This commit complements #39754 and #39305: implements a logic to use constant-prop'ed results for inlining at union-split callsite. Currently it works only for cases when constant-prop' succeeded for all (union-split) signatures. > example ```julia julia> mutable struct X # NOTE in order to confuse `fieldtype_tfunc`, we need to have at least two fields with different types a::Union{Nothing, Int} b::Symbol end; julia> code_typed((X, Union{Nothing,Int})) do x, a # this `setproperty` call would be union-split and constant-prop will happen for # each signature: inlining would fail if we don't use constant-prop'ed source # since the approximated inlining cost of `convert(fieldtype(X, sym), a)` would # end up very high if we don't propagate `sym::Const(:a)` x.a = a x end |> only |> first ``` > before this commit ```julia CodeInfo( 1 ─ %1 = Base.setproperty!::typeof(setproperty!) │ %2 = (isa)(a, Nothing)::Bool └── goto #3 if not %2 2 ─ %4 = π (a, Nothing) │ invoke %1(_2::X, :a::Symbol, %4::Nothing)::Any └── goto #6 3 ─ %7 = (isa)(a, Int64)::Bool └── goto #5 if not %7 4 ─ %9 = π (a, Int64) │ invoke %1(_2::X, :a::Symbol, %9::Int64)::Any └── goto #6 5 ─ Core.throw(ErrorException("fatal error in type inference (type bound)"))::Union{} └── unreachable 6 ┄ return x ) ``` > after this commit ```julia CodeInfo( 1 ─ %1 = (isa)(a, Nothing)::Bool └── goto #3 if not %1 2 ─ Base.setfield!(x, :a, nothing)::Nothing └── goto #6 3 ─ %5 = (isa)(a, Int64)::Bool └── goto #5 if not %5 4 ─ %7 = π (a, Int64) │ Base.setfield!(x, :a, %7)::Int64 └── goto #6 5 ─ Core.throw(ErrorException("fatal error in type inference (type bound)"))::Union{} └── unreachable 6 ┄ return x ) ``` 26 October 2021, 14:45:22 UTC
e0f980e manually-cherry-picked: optimizer: eliminate excessive specialization in inlining code This commit includes several code quality improvements in inlining code: - eliminate excessive specializations around: * `item::Pair{Any, Any}` constructions * iterations on `Vector{Pair{Any, Any}}` - replace `Pair{Any, Any}` with new, more explicit data type `InliningCase` - remove dead code 26 October 2021, 14:10:17 UTC
069861a Disable `DL_LOAD_PATH` prepending for `@`-paths on Darwin (#42721) * Disable `DL_LOAD_PATH` prepending for `@`-paths on Darwin Many thanks to Randy Rucker from Apple for pointing out that we were technically relying on undefined behavior in `dyld` for loading things via `jl_dlopen("@loader_path/@rpath/libfoo.dylib")`, due to the composition of `dlopen("@rpath/libfoo.dylib")` in our Julia code, and the `DL_LOAD_PATH` prepending we do in `jl_load_dynamic_library()`. This PR uses a slightly modified version of a patch emailed to me by Randy, and should solve https://github.com/JuliaLang/Downloads.jl/issues/149 on macOS Monterey where the undefined behavior in `dyld` has changed. * Apply suggestions from code review Co-authored-by: Jameson Nash <vtjnash@gmail.com> * Use `[]` instead of `*` Co-authored-by: Jameson Nash <vtjnash@gmail.com> (cherry picked from commit 76c243141a611da572bda3332f836b898998225f) 22 October 2021, 18:46:56 UTC
448072f fix overflow and undeflow for @fastmath exp (#42747) Co-authored-by: oscarddssmith <oscar.smith@juliacomputing.com> (cherry picked from commit 609a4a0a1ecffb60bbab1412556615829fea9f28) 22 October 2021, 18:41:48 UTC
f4df914 Distributed test suite: increase the timeout in the `poll_while` function from 60 seconds to 120 seconds (#42753) (cherry picked from commit 991d6e6cb868a9dd4d54df4a2349dd9977b49883) 22 October 2021, 18:41:48 UTC
4cbdf42 task: schedule sticky tasks correctly with _wait2 (#42750) The `_wait2` function is similar to calling `schedule + wait` from another `@async` task, but optimized, so we want to observe the same side-effects of making the task sticky to the correct thread (and not accidentally making it sticky to the later task that handles the event). Refs #41334 (75858d73322) Co-authored-by: Takafumi Arakaki <aka.tkf@gmail.com> (cherry picked from commit 6420885bce8839f8b3a15991d41c74181ebbf468) 22 October 2021, 18:41:48 UTC
e86ee1f fix unique over a dimension to use `isequal` over `==` (#42737) (cherry picked from commit 011fda9c7892e1bf34f22f0974aaa74fb6bcbc2a) 22 October 2021, 18:41:48 UTC
982d585 CI (Buildkite): fix the timeout for the `tester_linux` job that runs under `rr` (#42724) (cherry picked from commit 1838881489bc4e2481516571479a9e3393bcf98c) 22 October 2021, 18:41:48 UTC
976e63c release-1.7: set VERSION to 1.7-rc2 (#42716) 22 October 2021, 18:41:48 UTC
f23fc0d release-1.7: set VERSION to 1.7-rc2 (#42716) 20 October 2021, 12:45:02 UTC
back to top