Custom Query (6604 matches)


Show under each result:

Results (31 - 33 of 6604)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
Ticket Resolution Summary Owner Reporter
#7654 wontfix Cannot specify argv[0] with createProcess MtnViewMark MtnViewMark

There are conditions where it is important to specify the value of argv[0] as distinct from the FilePath? of the file to execute.

When createProcess is called with CmdSpec? (inside the CreateProcess? argument) of RawCommand?, the code in System.Process.Internals.runGenProcess_ builds the argv list by concatenating the FilePath? of the command to run on to the supplied args, then passing that array to the c code runInteractiveProcess. runInteractiveProcess in turn uses argv[0] as the initial argument to either execvp() or execvpe(). Thus, argv[0], and the command to execute must be the same.

The fix is simple, but long.... runInteractiveProcess should take an adiditional parameter that is the command to exec, distinct from the args array (which continues to hold the now distinct argv[0]). runGenProcess_ should keep cmd and args distinct, and build cstrs from args, not cmd:args. commandToProcess needs to then take on the work of prepending the cmd to the args array, in the case of RawCommand? or ShellCommand?. NOW, we can introduce a new constructore RawCommandWithArg0 FilePath? String [String] where argv[0] is specified, and commandToProcess for that can easily build the args from that parameter.

I should probably prepare a patch for this.... But I wanted to get the ticket in as the issue was fresh in my mind.

This is a feature request, but realize that without a change, an important part of POSIX support is missing.

#476 invalid HUnit treats failures as errors RichardG stefanheimann
HUnit treats a failure in a testcase as an error. I
attached a patch that fixes the problem. I tested the
patch with ghc and hugs.

#4236 fixed arrow bug SamAnklesaria igloo

Initially reported here:

This program:

{-# LANGUAGE Arrows #-}
module Main where

import Control.Arrow

foo :: (b -> String) -> ((((b, Int), Float), Double) -> String) -> (b -> String)
foo f g b = f b ++ " " ++ g (((b, 8), 1.0), 6.0)

bar :: (t -> String) -> ((t, Double, Float, Int) -> String) -> t -> String
bar f g  = proc x -> do
  (f -< x) `foo` \n m k -> g -< (x,n,m,k)

main = do
  putStrLn $ foo show show 17
  putStrLn $ bar show show 17
  putStrLn $ foo show show 42
  putStrLn $ bar show show 42

produces the wrong output:

17 (((17,8),1.0),6.0)
17 (17,4.0e-323,1.0,4618441417868443648)
42 (((42,8),1.0),6.0)
42 (42,4.0e-323,1.0,4618441417868443648)

Note that, e.g.,

*Main GHC.Exts GHC.Prim> D# (unsafeCoerce# 4618441417868443648#)

-dcore-lint failes with multiple errors.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
Note: See TracQuery for help on using queries.