[GHC] #13287: The runtime parses arguments past -- under windows but passes them on as arguments on linux

GHC ghc-devs at haskell.org
Fri Feb 17 16:52:03 UTC 2017


#13287: The runtime parses arguments past -- under windows but passes them on as
arguments on linux
-------------------------------------+-------------------------------------
        Reporter:  AndreasK          |                Owner:  AndreasK
            Type:  bug               |               Status:  new
        Priority:  high              |            Milestone:  8.2.1
       Component:  Runtime System    |              Version:  8.0.2
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  Other             |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by AndreasK):

 The issue was slightly more complicated than expected.

 * The runtime parses arguments correctly and ignores RTS flags past `--`

 * On linux `getArgs` fetches the arguments from the runtime and returns
 these as expected.

 * On Windows `getArgs` ignores the arguments provided by the RTS and
 instead uses `GetCommandLineW` to get the arguments, parsing these and
 throwing out any RTS flags without parsing them.

 The issue is that the code throwing out RTS flags didn't consider the case
 of `--` resulting in  the above behavior.

 I see two ways to fix this:
 * Update the parsing code in base (easy).
 * Use getCommandLineW and consorts instead of argv in the RTS on Windows.
 (A more proper fix).

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13287#comment:4>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list