On 1/6/2012 4:12 PM, Manu wrote:
Come on IRC? This requires involved conversation.
I'm on skype.
I'm sure you realise how much more work this is...
Actually, not that much. Surprising, no? <g> I already think I did the hard stuff already by supporting SIMD for float/double.
Why would you commit to this right off the bat? Why not produce the simple primitive type, and allow me the opportunity to try it with the libraries before polluting the language its self with a massive volume of stuff... I'm genuinely concerned that once you add this to the language, it's done, and it'll be stuck there like lots of other debatable features... we can tweak the library implementation as we gain experience with usage of the feature.
If it doesn't work, we can back it out. I'm willing to add it as an experimental feature because I don't see it breaking any existing code.
MS also agree that the primitive __m128 is the right approach. I'm not basing my opinion on their judgement at all, I independently conclude it is the right approach, but it's encouraging that they agree... and perhaps they're a more respectable authority than me and my opinion :)
Can you show me a typical example of how it looks in action in source code?
What I proposed in the OP is the simplest, most non-destructive initial implementation in the language. I think there is the lest opportunity for making a mistake/wrong decision in my initial proposal, and it can be extended with what you're suggesting in time after we have the opportunity to prove that it's correct. We can test and prove the rest with libraries before committing to implement it in the language...
I don't think the typeless approach will wind up being any easier, and it'll certainly suck when it comes to optimization, error messages, symbolic debugger support, etc.