Open grahamas opened 2 months ago
The comparisons 1-18 (those defined in stridedpointers.jl) can pretty easily be moved to LayoutPointers.jl, but the remainder (defined in base_defs.jl) don't have a natural home. The functions belong to Base, so obviously that's a no-go. The types belong to Static.jl and SIMDTypes.jl, but those don't really feel like a appropriate places to be defining new methods since they're explicitly about just providing types (though these method definitions do seem pretty universal; e.g. fma(Zero, One, Zero) = Zero).
I'm thinking the solution should be to override the VB-owned analogues instead, e.g. define vfma(Zero, One, Zero) = Zero. I haven't read enough to see why that wasn't done originally, though, so I'll hold off on that change for now.
The functions belong to Base, so obviously that's a no-go. The types belong to Static.jl and SIMDTypes.jl, but those don't really feel like a appropriate places to be defining new methods since they're explicitly about just providing types (though these method definitions do seem pretty universal; e.g. fma(Zero, One, Zero) = Zero).
Yeah, they could go to Static and SIMDTypes.
You're more than welcome to work on this, but because these aren't a correctness issue, it is also reasonable to turn the piracy tests off IMO.
You don't want those that don't own types defining methods, but the JuliaSIMD owns them, and it is organized at the org level, not the package level. Changing the organization at the package level is fine --- I'm just saying it isn't a priority and isn't expected to cause any real problems.
Piracy test fails. I'm going to try moving relevant methods to LayoutPointers.jl.