-
-
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
Add precompile signatures to Markdown to reduce latency. #55715
Conversation
Yes, in case people are using Markdown without compiled modules. |
It's generally less brittle and cross-platform safe to add a precompile workload, as long as its self contained. Seems possible for this? |
I'll fix that trivial thing. Last time I checked Markdown didn't work, as is on 1.12-DEV so I kind of expect CI errors... But those will be unrelated, so should I make a PR to some (1.11) branch? |
Just change it to a workload and it can be backported. |
You mean like |
Don't try to run this until I (change and) undraft it. It seems to have opened a can of worms, see here: JuliaLang/Pkg.jl#4017 |
I changed and undrafted, but I'm not sure if this is the right place for the workload. Also before rc3 may have been broken, because of my older change, not sure about this one. Unchanged RC2 is at least known ok, maybe the bug I had has always been there in RC3. The speed regression is from 1.10, but actually also from rc1, even rc2 if I recall. |
I think this already works, but can be improved. The workload helps to start Markdown, but is seemingly not realistic enough, since this is improved but not as much as I would like, likely because I see Markdown there:
Pkg also has a 1543x regression:
and likely some of these will help (I don't know how I would get the same effect with a "workload"):
Another 46x regression:
|
Pkg is not in the sysimage in 1.11. Can we please stay focused on one thing here. |
This is ready to review/merge, feel free to change the text, add more representative Markdown markup (and drop mentioning Pkg, see Kristoffer's (not outdated) review. This passed CI with md"" so most likely will with whatever text in there, before my most recent additional (trivial?) commit(s). |
Ok that part is here: #55721 (comment) though it's also seemingly useful for Markdown as an add-on for the PR, so please merge here first, if not combining merging as one. |
I can no longer amend by adding one commit, despite restoring the branch I previously deleted. Not sure if that was the problem or if it can't be done after merging. I can also just open another PR for the trivial fix of changing to printing also (do devnull.. ?!), since that was also a regression I overlooked (see the closed issue, that probably should be reopened). |
Fixes #55706 that is seemingly a 4472x regression, not just 16x (was my first guess, based on CondaPkg, also fixes or greatly mitigates JuliaPy/CondaPkg.jl#145), and large part of 3x regression for PythonCall. --------- Co-authored-by: Kristoffer Carlsson <[email protected]> (cherry picked from commit 1463c99)
Fixes #55706 that is seemingly a 4472x regression, not just 16x (was my first guess, based on CondaPkg, also fixes or greatly mitigates JuliaPy/CondaPkg.jl#145), and large part of 3x regression for PythonCall. --------- Co-authored-by: Kristoffer Carlsson <[email protected]>
Backported PRs: - [x] #55480 <!-- Fix push! for OffsetVectors, add tests for push! and append! on AbstractVector --> - [x] #55443 <!-- Add test for upper/lower/titlecase and fix call --> - [x] #55524 <!-- Set `.jl` sources as read-only during installation --> - [x] #55500 <!-- make jl_thread_suspend_and_get_state safe --> - [x] #55506 <!-- Fix indexing in _mapreducedim for OffsetArrays --> - [x] #55564 <!-- Empty out loaded_precompiles dict instead of asserting it's empty. --> - [x] #55567 <!-- Initialize threadpools correctly during sysimg build --> - [x] #55596 <!-- Fast bounds-check for CartesianIndex ranges --> - [x] #55605 <!-- Reroute Symmetric/Hermitian + Diagonal through triangular --> - [x] #55640 <!-- win: move stack_overflow_warning to the backtrace fiber --> - [x] #55715 <!-- Add precompile signatures to Markdown to reduce latency. --> - [x] #55593 <!-- Fix invalidations for FileIO --> - [x] #55555 <!-- Revert "Don't expose guard pages to malloc_stack API consumers" --> - [x] #55720 <!-- Fix `pkgdir` for extensions --> - [x] #55729 <!-- Avoid confounding compilation side effects of `@time_imports` --> - [x] #55718 <!-- Fix `@time_imports` extension recognition --> - [x] #55522 <!-- Fix tr for Symmetric/Hermitian block matrices --> Contains multiple commits, manual intervention needed: - [ ] #55509 <!-- Fix cong implementation to be properly random and not just cycling. --> Non-merged PRs with backport label: - [ ] #55641 <!-- fall back to slower stat filesize if optimized filesize fails --> - [ ] #55534 <!-- Set stdlib sources as read-only during installation --> - [ ] #55499 <!-- propagate the terminal's `displaysize` to the `IOContext` used by the REPL --> - [ ] #55458 <!-- Allow for generically extracting unannotated string --> - [ ] #55457 <!-- Make AnnotateChar equality consider annotations --> - [ ] #55453 <!-- Privatise the annotations API, for StyledStrings --> - [ ] #55355 <!-- relocation: account for trailing path separator in depot paths --> - [ ] #55220 <!-- `isfile_casesensitive` fixes on Windows --> - [ ] #55169 <!-- `propertynames` for SVD respects private argument --> - [ ] #54457 <!-- Make `String(::Memory)` copy --> - [ ] #53957 <!-- tweak how filtering is done for what packages should be precompiled --> - [ ] #51479 <!-- prevent code loading from lookin in the versioned environment when building Julia --> - [ ] #50813 <!-- More doctests for Sockets and capitalization fix --> - [ ] #50157 <!-- improve docs for `@inbounds` and `Base.@propagate_inbounds` --> - [ ] #41244 <!-- Fix shell `cd` error when working dir has been deleted -->
|
Fixes #55706 that is seemingly a 4472x regression, not just 16x (was my first guess, based on CondaPkg, also fixes or greatly mitigates JuliaPy/CondaPkg.jl#145), and large part of 3x regression for PythonCall.