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

Comparison of branch: master+RAI #47

Closed
wants to merge 126 commits into from
Closed

Comparison of branch: master+RAI #47

wants to merge 126 commits into from

Conversation

quinnj
Copy link

@quinnj quinnj commented Sep 11, 2023

@nickrobinson251 nickrobinson251 marked this pull request as draft September 14, 2023 09:19
@DelveCI DelveCI force-pushed the master+RAI branch 2 times, most recently from d8fef68 to 9da07ba Compare September 15, 2023 08:54
@nickrobinson251 nickrobinson251 changed the title Comparison of master+RAI and JuliaLang/julia:master Comparison of branch: master+RAI Sep 15, 2023
@DelveCI DelveCI force-pushed the master+RAI branch 8 times, most recently from 5c37e9b to 836624c Compare September 22, 2023 10:30
@DelveCI DelveCI force-pushed the master+RAI branch 4 times, most recently from 96cab7c to 91246ee Compare September 26, 2023 00:15
@DelveCI DelveCI force-pushed the master+RAI branch 8 times, most recently from 01ccdab to 1ded188 Compare October 4, 2023 00:15
@DelveCI DelveCI force-pushed the master+RAI branch 3 times, most recently from ca8c981 to 34427ab Compare October 7, 2023 00:15
DilumAluthge and others added 3 commits April 8, 2024 08:17
…ng#53953)

The previous local cache lookup system wasn't working well for caches
with extended lattice elements that are transformed from the caller
context to the callee context by `matching_cache_argtypes`. To address
this, the current commit moves the call to `matching_cache_argtypes`
right before `cache_lookup`, instead of within the `InferenceResult`
constructor.

Note that this adjustment leads to `given_argtypes` being allocated even
when there's a cache hit, potentially affecting performance negatively.
I'm looking to further optimize `matching_cache_argtypes` in an upcoming
commit.
tecosaur and others added 6 commits April 9, 2024 22:21
Overall, a large pile of polish with some fixes too.

Git log of commits involved:
bfdb4c3 Modify tests to also pass when run as stdlib
c084718 Fix return type of AnnotatedString write
180ab6c Try fixing the non-stdlib tests via refactor
528f245 Docs: minor index copyedits, and americanizations
9c015e2 Docs: create an examples page
a9772d4 Markup annot keys cannot contain null character
243d959 Allow interpolation of underline properties
fd2adcc Docs: tweak face description for clarity
4b06b79 Docs: clarify that AbstractString is wrapped
7f07b1b Docs: second paragraph reads better as not a note
a3d15cb Docs: forgot to mention font attribute
9c10614 Show colour and styling in docs
59fd944 Add docs previews to PR CI
9709612 Mark styled and withfaces functions as public API
a4c7678 Make withfaces behave more consistently
50d4198 Add speculative consideration of future face keys
04b5031 Add fuzzing to the tests set
7dc3c26 Allow color strings as in Face constructor
c419317 Don't annotate interpolated empty strings
dfef96d Adjust prioritisation of composed styling in parse
9a23e9e Test the display of parsing errors
1d7f42a Test parsing of each and every inline face attr
84ba211 No need to escape a string when parsing
e3c0453 Add missing is-macro check to face value interp
db006ed Mistyped font attribute as "face" in the parser
230fa8e Test errors emitted with various malformed stystrs
31f4c1d Overly aggressive color names check in styled strs
bec9216 Expand on faces tests
093385e Improve showing of RGB SimpleColors without MIME
d60d545 Test the show methods of SimpleColor and Face
cb05225 Test the AnnotatedIOBuffer printstyled method
c36911c Test the (legacy) loading of colors from envvars
14b4c6e Reduce test code verbosity by importing more names
3db948f Add a battery of HTML encoding tests
316bdd5 Remove extranious spaces from HTML underline style
62a7d25 Adjust named HTML colours to be not-garish
81e031e Add a battery of ANSI encoding tests
a14c3b1 Check the Smulx termcap instead of Su
b9d4aea Use the redmean colour distance in 8-bit approx
f9976ad More careful comma handling with inline face specs
24e10e4 Accept a style symbol as the sole underline value
2ba234a Use the hardcoded bold ANSI code
ab4f681 Refactro termcolor8bit to be less magic
a8b8aaf Fix off-by-one errors in termcolor8bit
21e127a Introduce fuzzer for styled markup
a3b40b7 Mention the loading of faces.toml in the docs
16c0e4f Fix functional parsing of inline face weight
7da631f Consolidate use of "ws" and "whitespace" in EBNF
b76c1ce Introduce ismacro convenience func to parser
b1cb60c Fix handling of space around inline face attrs
e22d058 Clarification in styled markup grammar docs
701d29f Introduce isnextchar convenience func to parser
6efb352 Fix edge-case parsing of empty face construct
10f6839 Implement new functional styled markup interpreter
e2d2d5f Refactor stylemacro into a submodule
11c5bd9 Introduce specialised write for AnnotatedIOBuffer
…54003)

I don't believe this is reachable from the base compiler pipeline, since
we don't run irinterp on toplevel things, but I am seeing this in
downstream packages.
Just a tiny correction to the return types noted in the docstrings, and
include a phrase in `sincosd` that's present in the other two.
This improves performance of `ncodeunits(::Char)` by simply counting the
number of non-zero bytes (except for `\0`, which is encoded as all zero
bytes). For a performance comparison, see [this gist](
https://gist.github.com/Seelengrab/ebb02d4b8d754700c2869de8daf88cad);
there's an up to 10x improvement here for collections of `Char`, with a
minor improvement for single `Char` (with much smaller spread). The
version in this PR is called `nbytesencoded` in the benchmarks.

Correctness has been verified with Supposition.jl, using the existing
implementation as an oracle:

```julia
julia> using Supposition

julia> const chars = Data.Characters()

julia> @check max_examples=1_000_000 function bytesenc(i=Data.Integers{UInt32}())
           c = reinterpret(Char, i)
           ncodeunits(c) == nbytesdiv(c)
       end;
Test Summary: | Pass  Total  Time
bytesenc      |    1      1  1.0s

julia> ncodeunits('\0') == nbytesencoded('\0')
true
```

Let's see if CI agrees!

Notably, neither the existing nor the new implementation check whether
the given `Char` is valid or not, since the only thing that matters is
how many bytes are written out.

---------

Co-authored-by: Sukera <Seelengrab@users.noreply.github.com>
DilumAluthgeBot and others added 4 commits April 10, 2024 15:11
…#54018)

Stdlib: Pkg
URL: https://github.com/JuliaLang/Pkg.jl.git
Stdlib branch: master
Julia branch: master
Old commit: 162634c56
New commit: 8f772ffa7
Julia version: 1.12.0-DEV
Pkg version: 1.12.0
Bump invoked by: @KristofferC
Powered by:
[BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl)

Diff:
JuliaLang/Pkg.jl@162634c...8f772ff

```
$ git log --oneline 162634c56..8f772ffa7
8f772ffa7 prune manifest after the set of some deps have been "demoted" to weakdeps (JuliaLang#3864)
88c38b2cd make `add` and `dev` on a package remove it from the set of weak dependencies (JuliaLang#3865)
9210a1da5 fix how entry point to package is computed with `path` provided in project file (JuliaLang#3850)
77620a945 extensions: fixup entire manifest (JuliaLang#3720)
8cc835c7d Report failures to download artifacts as failures (JuliaLang#3860)
2f318cf66 remove unused PkgPrecompileError type (JuliaLang#3858)
```

Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
There is a use case where you have a weak dependency (for one of your
extensions) that is misbehaving and you quickly want to try debug that
issue. A workflow that feels reasonable for this could be:

```
pkg> dev WeakDependency

# do some fixes in this dependency

julia> using Package, WeakDependency
# this loads the extension of Package triggered by loading WeakDependency

# check that things work ok now
```

This doesn't work right now for two reasons:

1. Doing the `dev WeakDependency` will add the dependency to `[deps]`
but not remove it from `[weakdeps]` which means you all of a sudden are
in the scenario described in
https://pkgdocs.julialang.org/v1/creating-packages/#Transition-from-normal-dependency-to-extension
which is not what is desired.
2. The extension will not actually load because you can right now only
trigger extensions from weak deps getting loaded, not from deps getting
loaded.

Point 1. is fixed by JuliaLang/Pkg.jl#3865
Point 2. is fixed by this PR.
As mentioned in
JuliaLang#52102 (comment),
having this information be moved from Pkg to Base creates a quite
uncomfortable split between information about the package manager
between the Pkg docs and Base.

Pkg PR: JuliaLang/Pkg.jl#3818
Keno and others added 10 commits April 10, 2024 23:54
I'm not entirely sure what the original intent of this statement was,
but the effect ends up being that some codeloc entries end up negative
in the compressed representation, but the code always assumes unsigned
integers, so things roundtripped badly, leading to badly corrupted stack
traces. I guess this might have been a rebase mistake,
since the same line exists (correctly) a few lines prior. Fixes JuliaLang#54031.
For ir transform passes that need to be aware of current_scope.
Currently no users in Base, but available for external absint.

---------

Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com>
…g#54034)

This extends the value-inability predicate to allow mutable structs that
do not have any mutable fields. The motivating example for this is
ScopedValue, which is mutable only for identity. By allowing it in this
predicate, more of the ScopedValue support code becomes concrete-eval
eligible, rather than attempting to constprop for every single
ScopedValue, saving compilation time.

---------

Co-authored-by: Shuhei Kadowaki <aviatesk@gmail.com>
…aLang#54036)

There are various situations where we may want to constprop with
something other than the most precise concrete arguments in order to
make the resulting cache more useful to other call sites. One particular
example of this might be a method where non-concrete inference already
discovered that one argument is unused:

```
function foo(a, b::DispatchOnly)
    expensive_to_compile(a)
end
```

Right now, we will generally perform constprop for every different value
of `b`, even though we already have the information that `b` is unused.

Another example is external absints that may want to treat certain types
fully symbolically. They may want to substitute concrete values for an
abstract domain.

This adds the facility to do both of these things by
1. Adding an appropriate interp hook in the constprop path
2. Adding a WidendedSimpleArgtypes wrapper that's like SimpleArgtypes
but works around an issue where we would override cache information
using values from concrete eval, which is not legal if the argtypes were
widened.
JuliaLang#54024)

These should be unnecessary, as the fallback methods do the same.
labeler workflow fixes (#64)

* Try fix labeler

* Update labeler workflow triggers

* fixup! Update labeler workflow triggers
Presence is controlled by a build-time option. Start a separate
thread which simply sleeps. When heartbeats are enabled, this
thread wakes up at specified intervals to verify that user code
is heartbeating as requested and if not, prints task backtraces.

Also fixes the call to `maxthreadid` in `generate_precompile.jl`.
When enabling heartbeats, the user must specify:
- heartbeat_s: jl_heartbeat() must be called at least once every heartbeat_s; if it
  isn't, a one-line heartbeat loss report is printed
- show_tasks_after_n: after these many heartbeat_s have passed without jl_heartbeat()
  being called, print task backtraces and stop all reporting
- reset_after_n: after these many heartbeat_s have passed with jl_heartbeat()
  being called, print a heartbeats recovered message and reset reporting
Copy link

This PR is stale because it has been open 30 days with no activity. Comment or remove stale label, or this PR will be closed in 5 days.

@github-actions github-actions bot added the stale This pull request is inactive label May 13, 2024
@github-actions github-actions bot closed this May 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stale This pull request is inactive
Projects
None yet
Development

Successfully merging this pull request may close these issues.