New Issue: What would it take to rewrite default rectangular arrays to use 'c_ptr' rather than '_ddata'

17202, "bradcray", "What would it take to rewrite default rectangular arrays to use 'c_ptr' rather than '_ddata'", "2021-02-19T19:48:08Z"

The _ddata class was introduced early in the project before we had good support for C-level pointers within the language/libraries as a roundabout way to get a pointer to a buffer of memory. This issue asks what it would take to replace that _ddata field with a c_ptr in default rectangular arrays, since it's always a pointer to local memory. An obvious challenge is that we're relying on Chapel's innate support for wide class references to be able to access an array through its _ddata from any locale. But it seems as though, with effort, we could move that local vs. remote logic into the array itself to avoid the need for a special type and perhaps expose the local vs. remote cases a bit more explicitly (where, in practice, I think we've gone to some length to do the reverse and assert that _ddata's are local in cases where we happen to know they will be).