New Issue: I/O module: deprecate I/O operator <~>

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)

Proposal:

  • Deprecate the <~> I/O operator
  • Leave it available in the parser as an operator available for custom use