-
-
Notifications
You must be signed in to change notification settings - Fork 609
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
fix Issue 17720 - Wrong code using vector extensions with different types #7065
Conversation
|
Thanks for your pull request, @ibuclaw! Bugzilla references
Testing this PR locallyIf you don't have a local development environment setup, you can use Digger to test this PR: dub run digger -- build "master + dmd#7065" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me.
|
Hmm, I did not think this one entirely through. Fixed it up with more extensive test, however it looks like DMD's Not sure if I should bite my lip and allow this. Maybe @WalterBright might want to chime in as its his intrinsic. |
|
It's failing the autotester because of I'm not sure I totally understand your comment, but you can convert an array of ints to an array of void and then to an array of float, and you'll get ints painted to floats. This is allowed behavior. |
|
When fixing a bugzilla issue, please put the PR URL in the bugzilla issue, so somebody else doesn't waste time trying to fix it because he's ignorant there is an extant fix already. I already did it for this one. |
My original intent here is to make vectors be treated less like an arithmetic type and more like a static/dynamic array. However given the current I was intending to push towards |
|
You can see the error I'm talking about in the autotester now. |
|
@TurkeyMan - maybe you could give a short sentence on whether allowing implicit conversion from void vector to any other vector type seems reasonable. |
|
How would you argue in favour? |
2fd2e59 to
e229be0
Compare
|
Added overrides in dlang/druntime#1900 - however using one of them exposes an ICE, others seem fine. |
|
Blocked by druntime and dmd bug for the moment (this patch is already in gdc, so I have a vested interest to see that someone fixes it). |
|
All checks pass, I'll leave it up to the RM @thewilsonator to decide if any action is required for forcing casts when using __simd(). |
|
Added changelog entry. |
|
Github UI doesn't seem to be updating to reveal the new commit... |
ed1ac16 to
429788b
Compare
|
Why dont you choose to start a deprecation ? |
GDC has been running with this for as long as the bug report has been open. Actually I'd like to make this even more restricted. Implicit casting between shared and non-shared is still allowed, but shouldn't be. However that will really begin to break code, so will need a deprecation. This just makes an error code that is broken anyway. |
|
So the problem is just that the PR has been forgotten but it's good to merge, right ? |
Pretty much. The only blocking part was the dmd intrinsic |
No description provided.