On Mon, 26 Sep 2011 16:38:10 -0400, Mehrdad <[email protected]> wrote:
On 9/26/2011 12:19 PM, Steven Schveighoffer wrote:
On Mon, 26 Sep 2011 15:05:44 -0400, Walter Bright
<[email protected]> wrote:
On 9/26/2011 8:06 AM, Mehrdad wrote:
Actually, I just found out that the program itself crashes the same
way, too.
What program?
I think he means both dmd and the program it generates crash in the
same way.
-Steve
Right; what Steve said. The program is empty.
It seems to be failing in the _close() method, but ONLY when I run it
from my text editor, SciTE. It runs fine from the command prompt.
I don't believe it's a problem with the text editor (since it's just a
pipe, and since it works fine with other languages) but I'll keep
looking. Does anyone happen to know if there's a stray _close() method
in snn.lib that closes a handle that might be already closed?
AHA!
Yes, there is a bug in snn.lib regarding pipes. And I fixed it, waiting
for Walter to incorporate it :) I needed it for the new std.process.
What it comes down to is, DMC's FILE * implementation does not expect some
of the quirks of pipe HANDLEs. For instance, if you open a FILE * around
a pipe handle, it still tries to do a seek on that handle, and crashes.
Also, when the write end of a pipe is closed, reading from the read end
results in EPIPE from ReadFile, but this is translated to EBADF by the
runtime. Therefore, FILE * sets an error instead of EOF.
Is the email address you have for this message correct? If so, I can send
you a new version of snn.lib to try linking your code against (if you are
willing to go through these steps), to see if it fixes your problem.
Using the command line dmd to build should be sufficient (I think).
-Steve