-
-
Notifications
You must be signed in to change notification settings - Fork 1.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
regression (0.19.6 => 0.20): is
broken with generic types
#13066
Comments
after doing git bisect the culprit is this PR /cc @LemonBoy #8723
note:git bisect is awesome; but it really works best if we keep using note:the whole git bisect process could be further automated (as in D's dustmite https://github.com/CyberShadow/DustMite/wiki) if #11457 were implemented; right now each bisect step still may require manual intervention because there is no deterministic way to build old versions of nim try it if you don't believe me:
|
is
broken with generic types
So, like it currently is? From https://github.com/nim-lang/csources:
|
but that frozen csources repo may not be able to build future nim versions because of bootstrapping needs (say, if nim wants to rely on newly introduced features); see also #12917 which is related. That gives me another idea though:
to build nim at a given nim repo commit tag: simply try all the nim_csources in descending order until the 1st successful build. note
|
Seems quite some work just to support a workflow ("git bisect") that is inherently flawed to begin with. |
actually I found a simpler way that simplifies a lot the above procedure:
and then we wrap all this logic in a nim function that also calls git bisect. Quite simple.
not sure I follow; git bisect is widely used and I've used it many times (including here) to find the 1st commit introducing a bug |
It's flawed because it has false positives. |
not sure what you mean by that, I've been using it very reliably a number of times, it's a standard tool and it works. |
Example
Current Output
Expected Output
works
Additional Information
worked until 0.19.6
broken since 0.20 including in recent devel ba4fbb6
maybe root cause of regression: can't get head
Foo
ofFoo[T]
#9855maybe root cause of
genericHead
broken as mentioned in typetraits: fix #6454; genericParams; tuple len; tuple type get #13064 and in [superseded] new macro for generic reflection:extractGeneric(Foo2[float, string], 0) is float
#8554 /cc @zahThe text was updated successfully, but these errors were encountered: