johnkerl / miller

Miller is like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON
https://miller.readthedocs.io
Other
8.91k stars 214 forks source link

More RS/ASCII updates: clearer update method #1621

Open johnkerl opened 1 month ago

johnkerl commented 1 month ago

Implements https://github.com/johnkerl/miller/discussions/1618#discussioncomment-10360095

balki commented 1 week ago

I think for this case, it is better to break backwards compatibility and highlight clearly in ReleaseNotes. It is very unlikely for someone to use ascii_null to mean SOH. I think users would have realized the aliases don't work and replaced with explicit forms like \0 or \x00.

Renaming makes them verbose (extra _char) and inconsistent naming as some aliases don't have _char while some have.

Also the old name does not cause miller to fail but take them literally.

miller on  ascii:kerl/ascii-more via 🐹 v1.23.1 
❯ echo "foo,bar\n1,2\n3,4" |  go run cmd/mlr/main.go --c2d --ofs ascii_null cat | od -c
0000000   f   o   o   =   1   a   s   c   i   i   _   n   u   l   l   b
0000020   a   r   =   2  \n   f   o   o   =   3   a   s   c   i   i   _
0000040   n   u   l   l   b   a   r   =   4  \n
0000052
johnkerl commented 1 week ago

@balki I like that! @GlassGruber what do you think?

GlassGruber commented 1 week ago

I think it makes sense, especially this

It is very unlikely for someone to use ascii_null to mean SOH. I think users would have realized the aliases don't work and replaced with explicit forms like \0 or \x00.

it's just what I did! I'm usually for taking it slow about breaking compatibility, but yea no much sense in keeping things as in current state. Also removing that extra _char is a nice +1!