convert array ops to library calls#7032
Conversation
|
Thanks for your pull request, @MartinNowak! Bugzilla references
|
| /* | ||
| example output from druntime | ||
| ---- | ||
| ../../druntime/import/core/internal/arrayop.d(160): Error: static assert "Binary op '+=' not supported for element type string." |
There was a problem hiding this comment.
Using backticks instead of ' will enable color syntax highlighting!
There was a problem hiding this comment.
Surprising that it also works for static asserts, will change.
|
Very nice work. Will approve as soon as the changes are incorporated. |
|
@MartinNowak needs a rebase |
|
Done @WalterBright |
|
I really like the approach taken here, but I wonder if this could be useful for third-party linear algebra libraries like mir/ndslice. I.e. use the standard function template overloading mechanism - libraries would provide |
Extensibility was not really a requirement for the story. |
|
Need dlang/druntime#1899 to fix runnable/arrayop.d. |
|
Yikes, someone bluntly added mixed type vector operations (int -> float, even worse int -> double) conversions (#4218). |
|
Done dlang/druntime#1903. |
- capture expression tree as reverse polish notation - pass scalar subtrees as single argument - fixes Issue 10523 - don't call array op functions for short vector ops
- now left-to-right evaluated like everything else
|
Rebased to trigger a retest now that the druntime pulls are merged. |
Requires
dlang/druntime#1891,dlang/druntime#1899, dlang/druntime#1903Supplemental
dlang/dlang.org#1846