19501, "mppf", "I/O module: deprecate I/O operator <~>", "2022-03-18T15:32:28Z"
- The <~> operator exists today for I/O
- Like ‘readwrite’, it is designed to support one set of code for both reading and writing
- It also supports chained I/O e.g.
mychannel <~> myint <~> " " <~> myrecord;
- Has not stood the test of time in Chapel due to ‘read’ and ‘write’ being varargs
- In practice <~> is almost exclusively used in readThis / writeThis / readWriteThis
- Due to historical differences in how errors were handled between <~> and channel.write
- Instead of the above chained example one can write
mychannel.write(myint, " ", myrecord);
- Chapel programmers seem to use this form instead (including myself)
- In practice <~> is almost exclusively used in readThis / writeThis / readWriteThis
Proposal:
- Deprecate the <~> I/O operator
- Leave it available in the parser as an operator available for custom use