[MinGW-Notify] [mingw] #39246: Please update MSYS awk; current awk-3.1.7 implementation is too old to remain viable

Back to archive index
MinGW Notification List mingw****@lists*****
Thu Apr 1 05:32:45 JST 2021


#39246: Please update MSYS awk; current awk-3.1.7 implementation is too old to remain viable

  Open Date: 2019-05-17 00:44
Last Update: 2021-03-31 22:32

URL for this Ticket:
    https://osdn.net//projects/mingw/ticket/39246
RSS feed for this Ticket:
    https://osdn.net/ticket/ticket_rss.php?group_id=3917&tid=39246

---------------------------------------------------------------------

Last Changes/Comment on this Ticket:
2021-03-31 22:32 Updated by: sizious

Comment:

I agree with this ticket, awk-3.1.7-1 is very outdated and there is some source codes that can't compile anymore when these are managed by Autotools.
Indeed, Michael M. Builov ported gawk 5.1.0 to MinGW. Unfortunately, using a non-MSYS build of GNU Awk will cause issues when used in a MSYS Shell. The root cause is that the msysCORE layer (i.e. "msys-1.0.dll") which translates MSYS paths (e.g. "/home/whatever/myfile.txt") to Windows paths (e.g. "C:\MinGW\msys\1.0\home\whatever\myfile.txt"). When you pass some awk expressions to a non-MSYS build of GNU Awk, the expression itself will be "converted" to a Windows path, which doesn't make any sense, and the result is totally unusable.
That's why I compiled a MSYS version of GNU Awk, using the MSYS toolchain.
You may find it here: https://github.com/sizious/msys-gawk
Plus, another interesting project I made is msysCORE Extended: https://github.com/sizious/msys-core-extended
In that msysCORE version, It's now possible to disable the POSIX path conversion by setting the MSYS_NO_PATHCONV environment variable. This behaviour was extracted from Git for Windows.


---------------------------------------------------------------------
Ticket Status:

      Reporter: keith
         Owner: cstrauss
          Type: Feature Request
        Status: Open [Owner assigned]
      Priority: 5 - Medium
     MileStone: (None)
     Component: MSYS
      Severity: 5 - Medium
    Resolution: None
---------------------------------------------------------------------

Ticket details:

While developing this Mercurial Queues emulation for Git, which will be required to support git integration for this proposed MinGW package builder tool, I've run into a problem with the MSYS implementation of awk.  On my LMDE system, I have awk-4.0.1, and I've written an emulator for "git qselect --series", (which I've yet to publish to the git-mq chamber).  This used gawk's "asorti()" function, with a custom sort-comparator function, to present the output in lexically sorted order; it works fine in awk-4.0.1, but fails on MSYS, which offers only awk-3.1.7; (the "asorti()" function appears to be supported, but the custom comparator function reference parameter is rejected).
I've since reworked my "git qselect --series" emulation, using my own "qsort()" function implementation, instead of gawk's "asorti()" function.  This makes the entire emulation significantly more portable, but it may still make sense to upgrade the MSYS implementation of awk, such that it will support more modern gawk features.

-- 
Ticket information of MinGW - Minimalist GNU for Windows project
MinGW - Minimalist GNU for Windows Project is hosted on OSDN

Project URL: https://osdn.net/projects/mingw/
OSDN: https://osdn.net

URL for this Ticket:
    https://osdn.net/projects/mingw/ticket/39246
RSS feed for this Ticket:
    https://osdn.net/ticket/ticket_rss.php?group_id=3917&tid=39246



More information about the MinGW-Notify mailing list
Back to archive index