Skip to content

Nim compiler hangs for certain C/C++ compiler errors #8648

Closed
@genotrance

Description

@genotrance

Attached is a test.zip file with a simple script and some dependency files:

{.compile: "HanjaDic.cxx".}
{.passC: "-DWIN32_LEAN_AND_MEAN -I.".}

This issue was found while wrapping Scintilla on Windows. I was unable to create a simpler example so all the code does is compiles the HanjaDic.cxx file which fails due to -DWIN32_LEAN_AND_MEAN being set. Without the -D, it works fine. If you directly run the Nim generated g++ command, it works fine and shows the g++ compiler errors on the console.

If you run it within Nim, it hangs forever. It seems the execProcesses() call has some race condition such that the child process is waiting forever. If you kill the child process in task manager, Nim immediately shows the errors on the console. Using CTRL-C on Nim simply kills the process tree and nothing is displayed.

This works just fine in 0.17.2. After that, there were several changes made to execProcesses() which are suspect in this issue.

cc @cheatfate who worked on those changes.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions