5a9f886 | Keno Fischer | 21 September 2023, 12:03:29 UTC | Add libgen header for non-glibc platforms | 21 September 2023, 12:03:29 UTC |
32c7367 | Keno Fischer | 21 September 2023, 11:31:39 UTC | cli: Add infrastructure for new CLI drivers `juliax` and `juliac` Following the discussion in #50974, it became clear that there is significant objection to changes to the behavior of the julia CLI driver. Some commenters found changes to the behavior acceptable if they were unlikely to impact existing code (e.g. in the case of #50974 using `__main__` instead of `main`), while other were worried about the reputational risks of even changing behavior in the corner case. In subsequent discussion it became relatively clear that the only way forward that did not raise significant objection was to introduce a new CLI driver for the new behavior. This may seem a bit drastic just for the change in #50974, but I actually think there's a number of other quality-of-life improvements that this would enable us to do over time, for example: - Autoloading/caching of all packages in the manifest - auto-selection of julia versions (integrate juliaup?) In addition, it doesn't seem so bad to have some CLI design flexibility to make sure that the `juliac` driver is aligned with what we need. This PR is the minimal infrastructure to add the new drivers. In particular, it does the following: 1. Adds two new cli drivers, `juliax` and `juliac`. At the moment, `juliac` is a placeholder and just errors, while `juliax` behaves the same as `julia` (except to error on the deprecated `--math-mode=fast`, just as an example of a behavior difference). 2. Documents that the behavior of `julia` (but not `juliax` or `juliac`) is pat of the julia public API. 3. Switches the cli mode based on the argv[0] of the binary. I.e. all three binaries are identical, except for their name, the same way that, e.g. `clang` and `clang++` are the same binary just with different names. On Unix systems, these are symlinks. On windows, separate copies of the same (small) binary. There is a fallback cli option `--cli-mode` that can be used in case the argv[0] detection is not available (e.g. for some fringe embedded use cases). 4. There is currently no separate `-debug` version of the new drivres. My intention is to make this dependent on the ordinary debug flags, rather than having a separate driver. Once this is merged, I intend to resubmit #50974 (chaning `juliax` only), and then finish and hook up `juliac` shortly thereafter. | 21 September 2023, 11:49:50 UTC |
85c96b9 | Jeff Bezanson | 21 September 2023, 09:07:11 UTC | define `show` instead of `repr` in BinaryPlatforms (#51398) Co-authored-by: Keno Fischer <keno@juliacomputing.com> | 21 September 2023, 09:07:11 UTC |
5fc5556 | Kristoffer Carlsson | 21 September 2023, 02:42:33 UTC | move Pkg out of the sysimage (take 2) (#51189) Co-authored-by: Jonas Schulze <jonas.schulze@st.ovgu.de> Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com> Co-authored-by: Tim Besard <tim.besard@gmail.com> | 21 September 2023, 02:42:33 UTC |
6023370 | mikmoore | 20 September 2023, 18:20:04 UTC | Clarify `searchsortedfirst`/`searchsortedlast` docstrings (#50941) | 20 September 2023, 18:20:04 UTC |
15f34aa | Stefan Karpinski | 20 September 2023, 15:54:56 UTC | [NFC] rng_split: some elaboration and clarification (#50680) I was rereading the comments I wrote about our approach to task splitting RNGs and had some clarifications and elaboration to add. --------- Co-authored-by: Viral B. Shah <ViralBShah@users.noreply.github.com> Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com> | 20 September 2023, 15:54:56 UTC |
8f95c6b | Adnan Alhomssi | 20 September 2023, 15:54:18 UTC | Export num_stack_mappings to track the number of in-flight stack mappings and tasks in application (#51301) Julia already tracks the number of mapped stacks for Julia tasks in a local atomic. Exporting this atomic will allow applications to estimate the memory consumption by the stacks and also the number of in-flight tasks. --------- Co-authored-by: Nathan Daly <nathan.daly@relational.ai> | 20 September 2023, 15:54:18 UTC |
8d05a22 | Jeff Bezanson | 20 September 2023, 15:53:39 UTC | remove extra zero byte store in `jl_readuntil` (#51401) Since 3b1bbe30e53c487929c47d2a1facbc6173848e6c we no longer do this for arrays, only strings. Fixes a crash when using `readline`. | 20 September 2023, 15:53:39 UTC |
071d3ca | Ian Butterworth | 20 September 2023, 14:04:05 UTC | Docs: Make all env var mentions link to their entry (#51363) | 20 September 2023, 14:04:05 UTC |
c22adc0 | Kristoffer Carlsson | 20 September 2023, 12:08:52 UTC | call Pkg precompile hook in latest world (#51397) Fixes https://github.com/JuliaLang/julia/issues/51280. | 20 September 2023, 12:08:52 UTC |
151ef23 | Shuhei Kadowaki | 20 September 2023, 11:15:30 UTC | EAUtils: make sure to always run analysis on entry frame (#51402) Otherwise we may hit error when analyzing the same function multiple times. | 20 September 2023, 11:15:30 UTC |
4923e95 | Shuhei Kadowaki | 20 September 2023, 03:59:18 UTC | EAUtils: clarify error message when optimization didn't happen for top-frame (#51396) | 20 September 2023, 03:59:18 UTC |
3290bd7 | Shuhei Kadowaki | 20 September 2023, 03:58:54 UTC | inference: handle `Vararg` in `abstract_call_unionall` for `argtypes` computed by `abstract_apply` (#51393) This commit adds special handling for `Vararg` types that may appear at the end of `argtypes`, as computed by `abstract_apply`. Even though PR #42583 has ensured that `Vararg` and `TypeVar` should never appear within the abstract state, they can still be part of `argtypes`. As a result, this kind of special handling is still necessary. It remains an open question whether we can refactor `abstract_apply` to prevent `Vararg`s from appearing in `argtypes` in the first place. | 20 September 2023, 03:58:54 UTC |
7d8ba92 | Chris Elrod | 20 September 2023, 02:50:55 UTC | Inline `_log` to avoid passing symbol argument. (#51232) This reduces callsite code from ```julia julia> foo(x) = log(x) foo (generic function with 1 method) julia> @code_native syntax=:intel debuginfo=:none foo(2.3) .text .file "foo" .globl julia_foo_2627 # -- Begin function julia_foo_2627 .p2align 4, 0x90 .type julia_foo_2627,@function julia_foo_2627: # @julia_foo_2627 ; Function Signature: foo(Float64) #DEBUG_VALUE: foo:x <- $xmm0 push rbp mov rbp, rsp movabs rdi, offset ".Ljl_sym#log#2632.jit" movabs rax, offset j__log_2631 call rax pop rbp ret ``` to ```julia julia> @code_native syntax=:intel debuginfo=:none foo(2.3) .text .file "foo" .globl julia_foo_10446 # -- Begin function julia_foo_10446 .p2align 4, 0x90 .type julia_foo_10446,@function julia_foo_10446: # @julia_foo_10446 ; Function Signature: foo(Float64) #DEBUG_VALUE: foo:x <- $xmm0 push rbp mov rbp, rsp movabs rax, offset j_log_10450 call rax pop rbp ret ``` Note that we no longer have ```asm movabs rdi, offset ".Ljl_sym#log#2632.jit"` ``` saving an instruction at every call site. | 20 September 2023, 02:50:55 UTC |
c2e53f1 | Kristoffer Carlsson | 20 September 2023, 02:50:07 UTC | update docs for `package_callbacks` (#51241) Fixes https://github.com/JuliaLang/julia/issues/51166 cc @oxinabox --------- Co-authored-by: Frames White <oxinabox@ucc.asn.au> | 20 September 2023, 02:50:07 UTC |
1282a65 | Max Horn | 20 September 2023, 02:49:50 UTC | Change 'nonnegative' to 'non-negative' (#51380) This is for consistency. I picked the one which was more often used. | 20 September 2023, 02:49:50 UTC |
53a00f3 | Daniel Karrasch | 19 September 2023, 16:16:23 UTC | Correct `logdet` docstring (#51387) | 19 September 2023, 16:16:23 UTC |
2a0c8c8 | Shuhei Kadowaki | 19 September 2023, 15:46:37 UTC | EA: remove no longer used `is_ipo_profitable` (#51391) | 19 September 2023, 15:46:37 UTC |
7f37e70 | Shuhei Kadowaki | 19 September 2023, 14:32:02 UTC | docs: fix up generated function examples in metaprogramming.md (#51386) The last example was untested and has been non-functional actually. | 19 September 2023, 14:32:02 UTC |
22a0276 | Valentin Churavy | 19 September 2023, 14:15:03 UTC | Make Ctrl-D not hang in the fallback repl (#51384) | 19 September 2023, 14:15:03 UTC |
06432bc | Lars Göttgens | 19 September 2023, 11:26:41 UTC | Make `cache_file_entry` more type stable (#51382) According to JET.jl, the type inference was not able to tell the type of `pkg.uuid` in the `pkg.uuid !== nothing` branch. Moving this to a local variable first should resolve that problem. | 19 September 2023, 11:26:41 UTC |
27c75a4 | Daniel Karrasch | 19 September 2023, 09:57:45 UTC | Add alloc-free in-place `Tridiagonal` solves and `lu!` (#50535) | 19 September 2023, 09:57:45 UTC |
1dcd644 | Hossein Pourbozorg | 19 September 2023, 03:29:36 UTC | Fix typo: " is is " (#51379) Closes #51373 | 19 September 2023, 03:29:36 UTC |
e7290dc | Valentin Churavy | 19 September 2023, 02:06:57 UTC | Add environment variable to force the use of the fallback repl (#51370) While working on moving REPL.jl out of base I noticed that the fallback repl hangs. In order to debug that and to test this code we should allow `JULIA_FALLBACK_REPL=1 julia` to load the fallback repl even if REPL.jl is available. | 19 September 2023, 02:06:57 UTC |
14119e0 | Rafael Fourquet | 18 September 2023, 18:00:43 UTC | factor out common code for `Xoshiro` and `TaskLocalRNG` (#51347) This makes more use of `setstate!`, and adds `getstate(rng)` which returns the 5-tuple `(s0, s1, s2, s3, s4)`. This is essentially "NFC", but it enables the useless `copy!(TaskLocalRNG(), TaskLocalRNG())`. | 18 September 2023, 18:00:43 UTC |
b189bed | Valentin Churavy | 18 September 2023, 15:29:40 UTC | Move thread name after ptls field to avoid changing offsets (#51353) Makes it a bit easier to recompile with Tracy, the sysimg stays valid since we don't change the offset of the ptls field. | 18 September 2023, 15:29:40 UTC |
893fecc | Gabriel Baraldi | 18 September 2023, 14:42:29 UTC | Fix debug level check and add types to allocations in the IR (#51338) | 18 September 2023, 14:42:29 UTC |
a811406 | Shuhei Kadowaki | 18 September 2023, 14:11:44 UTC | EA: minor updates on EA (#51365) - update outdated test code - add more comments on TODO items - use `MethodInstance` for better frame-identity check - minor cleanups on the inlining code | 18 September 2023, 14:11:44 UTC |
3e9e3be | freemin7 | 18 September 2023, 13:19:04 UTC | Update Condition() docs to highlight return value and error (#50688) | 18 September 2023, 13:19:04 UTC |
5a1c31c | Katharine Hyatt | 18 September 2023, 13:05:48 UTC | Test that replace throws Method error for Pair arguments (#50901) | 18 September 2023, 13:05:48 UTC |
4a311d6 | Kristoffer Carlsson | 18 September 2023, 12:54:23 UTC | A few libgit2 improvements/fixes (#51259) * 1.7.0 support. * A few more operations on remote. * Getting commit parents. | 18 September 2023, 12:54:23 UTC |
8e21b21 | Zentrik | 18 September 2023, 12:50:13 UTC | Remove boxing in pinv (#51351) As discussed in https://discourse.julialang.org/t/pinv-not-type-stable/103885/14, the `tol` variable is captured which leads to it being boxed, as suggested can be fixed by having two separate variables. | 18 September 2023, 12:50:13 UTC |
106e867 | Dilum Aluthge | 18 September 2023, 02:15:27 UTC | testdefs: make sure that if a test set changes the active project, they change it back when they're done (#51029) We already check the following for mutation by a test set: 1. DEPOT_PATH 2. LOAD_PATH 3. ENV So this PR just adds the active project to the list of things we check. Changing the active project during a test set can definitely have negative effects on subsequent test sets that are run on the same worker, so we want to make sure if a test set changes the active project, that they change it back when they're done. | 18 September 2023, 02:15:27 UTC |
e708c5e | Christian Guinard | 17 September 2023, 21:15:13 UTC | Add cross-references between codeview functions/macros (#51349) | 17 September 2023, 21:15:13 UTC |
28d0e1e | Rafael Fourquet | 17 September 2023, 15:43:49 UTC | TaskLocalRNG: test that `copy` handles the splitmix state (#51355) This adds a test for #51332. | 17 September 2023, 15:43:49 UTC |
ee371a1 | Jerry Ling | 17 September 2023, 15:20:51 UTC | mention `getindex()` shouldn't return a "view" (#47099) fix #47078 --------- Co-authored-by: Milan Bouchet-Valat <nalimilan@club.fr> Co-authored-by: Tim Holy <tim.holy@gmail.com> | 17 September 2023, 15:20:51 UTC |
c932fb2 | Ian Butterworth | 17 September 2023, 14:08:37 UTC | Precompile pidlocks: add to NEWS and docs (#50385) | 17 September 2023, 14:08:37 UTC |
a83186f | Ian Butterworth | 17 September 2023, 13:55:54 UTC | Tweaks to repl tab complete hints - pt. 2 (#51339) | 17 September 2023, 13:55:54 UTC |
26ceebf | Lilith Orion Hafner | 17 September 2023, 12:25:50 UTC | Don't give public but unexported symbols as repl completions in an unqualified context (#51345) | 17 September 2023, 12:25:50 UTC |
ebe1a37 | Milan Bouchet-Valat | 16 September 2023, 12:52:17 UTC | Upgradeable Statistics stdlib (#46501) | 16 September 2023, 12:52:17 UTC |
27c24f6 | Valentin Churavy | 16 September 2023, 12:51:14 UTC | Scoped values (#50958) ScopedVariables are containers whose observed value depends the current dynamic scope. This implementation is inspired by https://openjdk.org/jeps/446 A scope is introduced with the `scoped` function that takes a lambda to execute within the new scope. The value of a `ScopedValue` is constant within that scope and can only be set upon introduction of a new scope. Scopes are propagated across tasks boundaries. Storage is implemented using a persistent dictionary. | 16 September 2023, 12:51:14 UTC |
6825abc | Shuhei Kadowaki | 16 September 2023, 08:29:07 UTC | EA: perform analysis once for post-optimization IR, and remove `IPO EA` (#51318) Following the discussions and changes in #50805, we now consider post-inlining IR as IPO-valid. Revisiting EA, I've realized that running EA twice—once for computing IPO-valid escape cache and once for local optimization analysis—is redundant. This commit streamlines the EA process to perform the analysis just once on post-optimization IR, and caches that result. This change also removes all interprocedural EA code, which had significant overlap with inlining code. --------- Co-authored-by: Julian Samaroo <jpsamaroo@jpsamaroo.me> | 16 September 2023, 08:29:07 UTC |
9ccf346 | Lilith Orion Hafner | 16 September 2023, 02:57:37 UTC | Improve help grammar for field hints (#51178) | 16 September 2023, 02:57:37 UTC |
b2dfa1d | Lilith Orion Hafner | 16 September 2023, 02:57:10 UTC | Deprecate `permute!!` and `invpermute!!` (#51337) | 16 September 2023, 02:57:10 UTC |
a61d1b4 | Jameson Nash | 15 September 2023, 22:32:16 UTC | inference: apply tmerge limit elementwise to the Union (#50927) This allows forming larger unions, as long as each element in the Union is both relatively distinct and relatively simple. For example: tmerge(Base.BitSigned, Nothing) == Union{Nothing, Int128, Int16, Int32, Int64, Int8} tmerge(Tuple{Base.BitSigned, Int}, Nothing) == Union{Nothing, Tuple{Any, Int64}} tmerge(AbstractVector{Int}, Vector) == AbstractVector Disables a test from dc8d885, which does not seem possible to handle currently. This makes somewhat drastic changes to make this algorithm more commutative and simpler, since we dropped the final widening to `Any`. Co-authored-by: pchintalapudi <34727397+pchintalapudi@users.noreply.github.com> Co-authored-by: Oscar Smith <oscardssmith@gmail.com> | 15 September 2023, 22:32:16 UTC |
41b41ab | Nathan Zimmerberg | 15 September 2023, 22:28:26 UTC | [Random] Add s4 field to Xoshiro type (#51332) This PR adds an optional field to the existing `Xoshiro` struct to be able to faithfully copy the task-local RNG state. Fixes #51255 Redo of #51271 Background context: #49110 added an additional state to the task-local RNG. However, before this PR `copy(default_rng())` did not include this extra state, causing subtle errors in `Test` where `copy(default_rng())` is assumed to contain the full task-local RNG state. | 15 September 2023, 22:28:26 UTC |
ee34a68 | Valentin Churavy | 15 September 2023, 18:40:01 UTC | Make the persistent dict API less strict. (#51336) | 15 September 2023, 18:40:01 UTC |
3099af9 | Lilith Orion Hafner | 15 September 2023, 18:06:47 UTC | Fix typo in basedocs.jl (#51334) Thanks @DilumAluthge for finding this | 15 September 2023, 18:06:47 UTC |
e85f0a5 | Ian Butterworth | 15 September 2023, 18:02:41 UTC | complete false & true more generally as vals (#51326) | 15 September 2023, 18:02:41 UTC |
42d98a2 | Morten Piibeleht | 15 September 2023, 14:00:49 UTC | doc: correct unicode-input table generation (#51328) A couple small fixes and cosmetic improvements to the Unicode table in the docs: * Most importantly, makes sure that the resulting object from the at-eval block is `Markdown.MD`, which which will be necessary for Documenter 1.0 (#47105). It also fixes the `Markdown.Table` structure -- each of the cells should be an array, not just a string, so it adds one more layer of nesting. * Cosmetically, center-aligns the characters, and wraps the latex commands in `<code>` | 15 September 2023, 14:00:49 UTC |
b5feb45 | adienes | 15 September 2023, 12:42:10 UTC | [docs] add performance tip concerning overly-fused broadcast loops (#49228) cautionary / explanatory documentation following the wake of https://discourse.julialang.org/t/unexpected-broadcasting-behavior-involving-eachrow/96781/88 | 15 September 2023, 12:42:10 UTC |
d9a9be8 | Ian Butterworth | 14 September 2023, 23:43:27 UTC | Tweaks to repl tab complete hints (#51321) | 14 September 2023, 23:43:27 UTC |
d51ad06 | Gabriel Baraldi | 14 September 2023, 20:13:21 UTC | Avoid infinite loop when doing SIGTRAP in arm64-apple (#51284) The guard instruction for unreachables and other crashes in aarch64 is `brk`, in macos there isn't a distinction between a brk for a breakpoint and one for a crash, as an attempt we check the value of `pc` when the signal is triggered, if it is `brk #0x1` we say that it is a crash and go into the sigdie_handler. We should probably do the same in aarch64 linux, though I haven't dug too deep into what values it uses for traps, and if what compiler used matters, on apple I assumed we use clang/LLVM It might be possible to test this by calling some inline assembly. This means that something like https://github.com/JuliaLang/julia/issues/51267 actually crashes with ```c [16908] signal (5): Trace/BPT trap: 5 in expression starting at /Users/gabrielbaraldi/julia/test.jl:2 _collect at ./array.jl:768 collect at ./array.jl:757 top-level scope at /Users/gabrielbaraldi/julia/test.jl:5 _jl_invoke at /Users/gabrielbaraldi/julia/src/gf.c:2892 jl_toplevel_eval_flex at /Users/gabrielbaraldi/julia/src/toplevel.c:925 jl_toplevel_eval_flex at /Users/gabrielbaraldi/julia/src/toplevel.c:877 ijl_toplevel_eval at /Users/gabrielbaraldi/julia/src/toplevel.c:943 [inlined] ijl_toplevel_eval_in at /Users/gabrielbaraldi/julia/src/toplevel.c:985 eval at ./boot.jl:383 [inlined] include_string at ./loading.jl:2070 _jl_invoke at /Users/gabrielbaraldi/julia/src/gf.c:2873 ijl_apply_generic at /Users/gabrielbaraldi/julia/src/gf.c:3074 _include at ./loading.jl:2130 include at ./Base.jl:494 jfptr_include_46486 at /Users/gabrielbaraldi/julia/usr/lib/julia/sys.dylib (unknown line) _jl_invoke at /Users/gabrielbaraldi/julia/src/gf.c:2873 ijl_apply_generic at /Users/gabrielbaraldi/julia/src/gf.c:3074 exec_options at ./client.jl:317 _start at ./client.jl:552 jfptr__start_83179 at /Users/gabrielbaraldi/julia/usr/lib/julia/sys.dylib (unknown line) _jl_invoke at /Users/gabrielbaraldi/julia/src/gf.c:2873 ijl_apply_generic at /Users/gabrielbaraldi/julia/src/gf.c:3074 jl_apply at /Users/gabrielbaraldi/julia/src/./julia.h:1970 [inlined] true_main at /Users/gabrielbaraldi/julia/src/jlapi.c:582 jl_repl_entrypoint at /Users/gabrielbaraldi/julia/src/jlapi.c:731 Allocations: 570978 (Pool: 570031; Big: 947); GC: 1 fish: Job 1, './julia test.jl' terminated by signal SIGTRAP (Trace or breakpoint trap) ``` instead of hanging silently --------- Co-authored-by: Jameson Nash <vtjnash@gmail.com> | 14 September 2023, 20:13:21 UTC |
bdd3ffd | Lilith Orion Hafner | 14 September 2023, 19:53:16 UTC | Add public keyword (#50105) Co-authored-by: Claire Foster <aka.c42f@gmail.com> | 14 September 2023, 19:53:16 UTC |
bab20f4 | Jameson Nash | 14 September 2023, 14:36:30 UTC | reduce test time for rounding and floatfuncs (#51305) These test were taking on the order of 5 minutes and 10-100s of GB, but they really did not need to. | 14 September 2023, 14:36:30 UTC |
1142759 | Jameson Nash | 14 September 2023, 14:36:19 UTC | jltypes: ensure revising structs is safe (#51303) | 14 September 2023, 14:36:19 UTC |
5090bc0 | Jameson Nash | 14 September 2023, 14:35:50 UTC | fix force-throw ctrl-C on Windows (#51307) This was getting current-task on the wrong thread, which resulted in the value being NULL and crashing. Fixes #50325 | 14 September 2023, 14:35:50 UTC |
3b1bbe3 | Jameson Nash | 14 September 2023, 14:22:28 UTC | remove wasted allocation space for JL_ARRAY_IMPL_NUL (#51275) Handle this more correctly in Cstring conversion instead. Although apparently this feature and test has not worked in Julia since String became a first class object (and not wrapping Array). Refs: cee4cb78da8f5cfa34808e3310e2366769bc3245 | 14 September 2023, 14:22:28 UTC |
7d51502 | Yichao Yu | 12 September 2023, 14:31:56 UTC | More missing constants from earlier libgit2 versions | 14 September 2023, 14:10:02 UTC |
a4b5ad3 | Yichao Yu | 12 September 2023, 01:44:46 UTC | Update default libgit2 version to 1.7.1 | 14 September 2023, 14:10:02 UTC |
58970a9 | Yichao Yu | 10 September 2023, 18:28:20 UTC | Add support for getting commit parent Required for walking the commit graph. | 14 September 2023, 14:09:58 UTC |
ce0c49f | Yichao Yu | 10 September 2023, 18:27:09 UTC | Add support for a few more remote operations * Detached remote * Read remote reference advertisement list * Read remote default branch | 14 September 2023, 14:09:53 UTC |
2c4c068 | Yichao Yu | 10 September 2023, 18:07:57 UTC | libgit2 1.7.0 support | 14 September 2023, 13:59:14 UTC |
87e31a5 | Shuhei Kadowaki | 14 September 2023, 00:24:55 UTC | EA: some noncritical updates on EA (#51292) | 14 September 2023, 00:24:55 UTC |
34e6035 | Jameson Nash | 13 September 2023, 21:36:52 UTC | fix method definition error for bad vararg (#51300) We had the ordering of tests incorrect, so Vararg was not correctly checked for validity during method definition. Fixes #51228 | 13 September 2023, 21:36:52 UTC |
e9d9314 | Jameson Nash | 13 September 2023, 21:36:11 UTC | make "dec" and ryu functions faster and simpler (#51273) We had some common code in `Ryu.append_c_digits` that can be combined with Base logic for the same thing. But it turns out all of this duplicated code in Ryu seems to just make it run slightly slower in most cases. The old version had many more branches to check, even though often numbers are small, so only the last check is meaningful. But the assumption that it would be faster even if all of them were used also seems to not hold up in practice. Particularly for a function like `append_nine_digits` which unrolls completely, but the complicated version has slightly more data dependencies because of they way it is written. Similarly, we replace `unsafe_copy` with `@inbounds[]`, since this is better for the optimizer, which doesn't need to treat this operation as an unknown reference escape. Lastly, we use the append_nine_digits trick from Ryu to make printing of arbitrary big numbers much faster. ``` julia> @btime string(typemax(Int128)) 402.345 ns (2 allocations: 120 bytes) # before 151.139 ns (2 allocations: 120 bytes) # after ``` | 13 September 2023, 21:36:11 UTC |
377f9df | Kristoffer Carlsson | 13 September 2023, 20:20:46 UTC | use LibGit2_jll for LibGit2 library (#51294) Fixes https://github.com/JuliaLang/julia/issues/51293 | 13 September 2023, 20:20:46 UTC |
8660cdd | DilumAluthgeBot | 13 September 2023, 19:55:02 UTC | 🤖 [master] Bump the Pkg stdlib from f570abd39 to 0b9334a94 (#51296) | 13 September 2023, 19:55:02 UTC |
8b3ffd8 | Hendrik Ranocha | 13 September 2023, 19:46:14 UTC | cross-reference pathof and pkgdir in docstrings (#51298) I added cross-references in the docstrings of the related functions `pathof` and `pkgdir`. In my case, I remembered `pathof` but wanted to use `pkgdir`, which I couldn't find easily from the REPL help mode. | 13 September 2023, 19:46:14 UTC |
ce5fa71 | Ian Butterworth | 13 September 2023, 17:16:21 UTC | Add repl tab complete hints while typing (#51229) | 13 September 2023, 17:16:21 UTC |
de75210 | KristofferC | 13 September 2023, 12:53:45 UTC | avoid hardcoded list of packages in sysimage (cherry picked from commit 1da1725d25ee46ce8b7d0b9f1b5b6d2805a86dbe) | 13 September 2023, 12:54:07 UTC |
572fa50 | Shuhei Kadowaki | 13 September 2023, 10:35:20 UTC | remove compiler/ssair/driver.jl (#51289) I don't think that the extra layer of indirection is needed. | 13 September 2023, 10:35:20 UTC |
aa6b34e | Shuhei Kadowaki | 13 September 2023, 10:34:48 UTC | refactor post-opt analysis and get rid of closures (#51290) | 13 September 2023, 10:34:48 UTC |
0fdcd55 | Shuhei Kadowaki | 13 September 2023, 10:33:50 UTC | irinterp: fix `is_terminator_or_phi` check (#51291) Also adds some cosmetic changes. @nanosoldier `runbenchmarks("inference", vs=":master")` | 13 September 2023, 10:33:50 UTC |
62b4bf3 | KristofferC | 13 September 2023, 10:23:08 UTC | use LibGit2_jll for LibGit2 library | 13 September 2023, 10:31:00 UTC |
141e07e | Shuhei Kadowaki | 13 September 2023, 03:28:12 UTC | elaborate `incremental` argument of `Base.generating_output` (#51281) Follows up #51216. | 13 September 2023, 03:28:12 UTC |
4af6be8 | Ian Butterworth | 12 September 2023, 22:19:26 UTC | shorten stale_age for cachefile lock (#51175) | 12 September 2023, 22:19:26 UTC |
431e0bd | Diogo Netto | 12 September 2023, 18:57:23 UTC | don't print corrupted chunk id on crash (#51283) This value will be corrupted if we reach this branch, so it seems pointless to print it. | 12 September 2023, 18:57:23 UTC |
832e46d | Jameson Nash | 12 September 2023, 16:23:19 UTC | Ryu: make sure adding zeros does not overwrite trailing dot (#51254) Fix #43129 | 12 September 2023, 16:23:19 UTC |
5d82d80 | Shuhei Kadowaki | 12 September 2023, 02:14:30 UTC | add tfuncs for `[and|or]_int` intrinsics (#51266) So that they can be constant folded when either of argument is known to be `Core([false|true])`. It may help inference accuracy. | 12 September 2023, 02:14:30 UTC |
ad27e67 | Yichao Yu | 11 September 2023, 21:15:25 UTC | Fix Markdown test from #49454 (#51268) Actually testing the output instead of printing to stdout. | 11 September 2023, 21:15:25 UTC |
b9203ce | Valentin Churavy | 11 September 2023, 19:31:18 UTC | Fix Profiler signal listener test (#51272) The `close(t)` seems to be a typo. | 11 September 2023, 19:31:18 UTC |
1097481 | Tim Besard | 11 September 2023, 14:39:29 UTC | GMP: Gracefully handle more overflows. (#51243) Fixes https://github.com/JuliaLang/julia/issues/8286, which regressed due to a GMP upgrade in https://github.com/JuliaLang/julia/pull/45375. | 11 September 2023, 14:39:29 UTC |
ea49abe | Shuhei Kadowaki | 11 September 2023, 09:56:41 UTC | SROA: remove dead lifting cache mechanism (#51014) It hadn't been fixed for years. Let's get rid of the unnecessary allocation cost. | 11 September 2023, 09:56:41 UTC |
7b9fdf8 | Valentin Churavy | 10 September 2023, 01:51:57 UTC | Make _global_logstate a typed global (#51257) | 10 September 2023, 01:51:57 UTC |
bbbcc4f | Gabriel Baraldi | 09 September 2023, 20:43:01 UTC | Add lock around uv_unref during init (#51236) This is not a legal operation outside the lock because it's not atomic Co-authored-by: Valentin Churavy <v.churavy@gmail.com> | 09 September 2023, 20:43:01 UTC |
8d4d641 | Iztok Fister Jr | 09 September 2023, 13:49:52 UTC | Update man page with internet resources and licensing (#51155) Pull request proposes a minor modification to the man page. In this PR, two additional sections for the man page are added: - Internet resources and - licensing. | 09 September 2023, 13:49:52 UTC |
3950167 | Gabriel Baraldi | 09 September 2023, 10:21:54 UTC | Check if malloc has succeeded before updating GC counters (#51247) | 09 September 2023, 10:21:54 UTC |
4c3aaa2 | Shuhei Kadowaki | 09 September 2023, 07:53:44 UTC | reflection: define `Base.generating_output` utility function (#51216) And replaces `ccall(:jl_generating_out, ...)` with the new function. --------- Co-authored-by: Jameson Nash <vtjnash@gmail.com> | 09 September 2023, 07:53:44 UTC |
4363895 | Keno Fischer | 09 September 2023, 06:28:00 UTC | Unify flags_for_effects handling (#51238) There was two places where we were turning Effects into flags, one in the optimizer, one in inference. Unify these two both use the same function, but we need to refactor a bit to make sure all the effects get passed to the correct place. --------- Co-authored-by: Shuhei Kadowaki <aviatesk@gmail.com> | 09 September 2023, 06:28:00 UTC |
4c024e6 | Shuhei Kadowaki | 09 September 2023, 01:47:02 UTC | optimizer: code quality and performance improvements to post-opt analysis (#51211) This PR is composed of a set of fixes and improvements to `ipo_dataflow_analysis!`. I will rebase this once we merge #51185 and #51188, so still WIP, but let's see benchmark. @nanosoldier `runbenchmarks("inference", vs=":master")` --------- Co-authored-by: Keno Fischer <keno@juliahub.com> | 09 September 2023, 01:47:02 UTC |
80603a4 | Shuhei Kadowaki | 09 September 2023, 01:44:56 UTC | mark return type of failed concrete eval of intrinsics as `Bottom` (#51251) Because of the consistency assumed by `is_pure_intrinsic_infer`, we can aggressively mark the return type as `Bottom` in a case when the concrete evaluation of an intrinsic fails. | 09 September 2023, 01:44:56 UTC |
3fc4f6b | DilumAluthgeBot | 09 September 2023, 00:54:17 UTC | 🤖 [master] Bump the Downloads stdlib from f97c72f to 8a614d5 (#51246) Stdlib: Downloads URL: https://github.com/JuliaLang/Downloads.jl.git Stdlib branch: master Julia branch: master Old commit: f97c72f New commit: 8a614d5 Julia version: 1.11.0-DEV Downloads version: 1.6.0(It's okay that it doesn't match) Bump invoked by: @DilumAluthge Powered by: [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl) Diff: https://github.com/JuliaLang/Downloads.jl/compare/f97c72fbd726e208a04c53791b35cc34c747569f...8a614d592810b15d17885838dec61da244a12e09 ``` $ git log --oneline f97c72f..8a614d5 8a614d5 Skip flakey "concurrent requests" tests on windows (#228) 246504e add a small precompile workload (#226) 3ed0f08 Document how to bypass the 20-second timeout (#222) ``` Co-authored-by: Dilum Aluthge <dilum@aluthge.com> | 09 September 2023, 00:54:17 UTC |
8e77b63 | Jameson Nash | 08 September 2023, 14:59:21 UTC | refine effects of some reflection queries (#51235) | 08 September 2023, 14:59:21 UTC |
a7697fd | DilumAluthgeBot | 08 September 2023, 13:29:55 UTC | 🤖 [master] Bump the NetworkOptions stdlib from 976e51a to aab83e5 (#51237) Stdlib: NetworkOptions URL: https://github.com/JuliaLang/NetworkOptions.jl.git Stdlib branch: master Julia branch: master Old commit: 976e51a New commit: aab83e5 Julia version: 1.11.0-DEV NetworkOptions version: 1.2.0(Does not match) Bump invoked by: @DilumAluthge Powered by: [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl) Diff: https://github.com/JuliaLang/NetworkOptions.jl/compare/976e51a48abb4e09356f1979c3cde8fbc0852e2e...aab83e5dd900c874826d430e25158dff43559d78 ``` $ git log --oneline 976e51a..aab83e5 aab83e5 Reset BUNDLED_KNOWN_HOSTS_FILE in case we serialized a value due to precompilation (#31) ``` Co-authored-by: Dilum Aluthge <dilum@aluthge.com> | 08 September 2023, 13:29:55 UTC |
5e85876 | Gunnar Farnebäck | 08 September 2023, 10:18:45 UTC | Warn about mutating keys in Dict docstring. (#51171) Be clear in the `Dict` docstring that it's not in general safe to mutate keys. Cf. https://discourse.julialang.org/t/unable-to-access-value-in-dict-via-known-keys/103434. | 08 September 2023, 10:18:45 UTC |
de297fa | Shuhei Kadowaki | 08 September 2023, 06:11:21 UTC | remove special case for the no-op first statement in `fully_eliminated` (#51227) It looks like the special case is no longer needed. If this gets broken by future changes, I would like fix it or mark the test cases as `broken`. | 08 September 2023, 06:11:21 UTC |
39a5316 | Shuhei Kadowaki | 08 September 2023, 01:01:15 UTC | optimize: fix `effect_free` refinement in post-opt dataflow analysis (#51185) Currently we never refine this information though. @nanosoldier `runbenchmarks("inference", vs=":master")` | 08 September 2023, 01:01:15 UTC |
b3741c0 | Gabriel Baraldi | 07 September 2023, 21:55:47 UTC | Check again if the tty is open inside the IO lock (#51222) This can cause segfaults when exiting julia. Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com> | 07 September 2023, 21:55:47 UTC |
e446bba | Gabriel Baraldi | 07 September 2023, 21:47:50 UTC | Remove references to the LegacyPassManager (#51197) We still keep references in a couple places because the objectfile emission still uses it. | 07 September 2023, 21:47:50 UTC |