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.