New Issue: Memory.Initialization: Deprecate moveInitializeArrayElements

20339, "benharsh", "Memory.Initialization: Deprecate moveInitializeArrayElements", "2022-07-29T23:57:08Z"

The current functions named the moveArrayElements are:

// move within a single array
proc moveInitializeArrayElements(ref a: [?d], dstStartIndex: a.idxType,
                                 srcStartIndex: a.idxType,
                                 numElements: int)

// move between two arrays
proc moveInitializeArrayElements(ref dstA: [] ?t,
                                 dstStartIndex: dstA.idxType,
                                 srcA: [] t,
                                 srcStartIndex: srcA.idxType,
                                 numElements: int)

These functions halt, and rather than accepting ranges or domains they accept starting indices and a number of elements. I do not believe we would wish to support this kind of procedure for a 2.0 library.

I propose deprecating these functions. A replacement is proposed in Memory.Initialize: proposal for 'moveArrayElements' · Issue #20338 · chapel-lang/chapel · GitHub. I expect this replacement to at the very least be an "unstable" member of the Memory.Initialization module.