Communicating with other programs (Win32)

Sigbjorn Finne sof@galois.com
Wed, 5 Dec 2001 00:39:43 -0800


Hi,

have a look at http://www.galois.com/~sof/subby.zip , it contains
a basic module, RunProc, which lets you kick off a Win32 sub-process
and communicate with it via Handles. The .zip file also contains
an example demonstrating how to use it.

Let me know if this addresses your problem.

--sigbjorn

----- Original Message -----
From: "Jan de Wit" <jwit@students.cs.uu.nl>
To: <glasgow-haskell-users@haskell.org>
Sent: Wednesday, November 28, 2001 06:38
Subject: Communicating with other programs (Win32)


> Hi all,
>
> In my free time, I'm writing a Go program in Haskell. Main platform is
> GHC and GHCi under Win32. It is coming along nicely: it has a GUI and the
> moves
> it comes up with are starting to make some sense. For testing (and maybe
> later
> training :) purposes I want it to be able to play against GnuGo (the
> strongest
> Open Source Go program) on its own.
>
> Currently, to get GnuGo to think up a move, I use something like (SGF is
> the
> standard way of outputting Go games):
>
> | do writeFile "in.sgf" (showAsSGF game)
> |    let cmd = "echo quit > gnugo --quiet --infile in.sgf --color " ++
> |              (show computerColor) ++
> |              " --mode ascii > out.txt"
> |    system cmd
> |    result <- readFile "out.txt"
> |    return (parseResultMove result)
>
> I think this both ugly and inefficient: for every move a new instance of
> GnuGo gets started and an SGF file is output! Instead, I want
> to start GnuGo only once per game and communicate with it like a human
> player
> would, by typing commands at it; or by using the Go Text Protocol which is
> specifically designed for computer-computer play.
>
> Does anybody here know a way - under Win32 - to start a process in the
> background and communicate with it via its stdin/stdout? I've poked around
> a bit in the Win32 library source, looking for an FFI interface to
> CreateProcess (the API function which does what I want) but found nothing.
> The Posix library looks like it should be up to the job, but
> unfortunately that isn't supported under Win32... (I'm not using Cygwin)
>
> Any help would be appreciated!
>
> Cheers,
> Jan de Wit
>
>
> _______________________________________________
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users@haskell.org
> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users