the problem is that makepp, which needs to exec external commands, uses the Unix syscall fork(), while windows mainly uses threads for parallelism. Perl bridges this gap by offering a fork() function, which it internally emulates as threads. Things not being as independent as they would be under Unix, this didn't work at some time. That's why it explicitly gets ignored there.
You might try what happens (with perl 5.10.0 in case they improved something) if you short circuit that in Rule.pm (looks like lines 1134 & 1188)
best regards
Daniel
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I had suggested to ActiveState that they pick up the way Cygwin does it. Cygwin has done wonders to make it indistinguishable from a real Unix fork/exec. But ActiveState answered that they will stick to their unusable emulation because of licensing worries.
Maybe if more people pressure them they will work out something. After all this problem affects any parallelizing job framework written in Perl.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
I would like to make use of a multi-core (8 cpu) machine for building. However it seems that makepp doesn't support parallel builds under Windows.
Is this expected to be supported?
Thanks.
Henrik
Hi Henrik,
the problem is that makepp, which needs to exec external commands, uses the Unix syscall fork(), while windows mainly uses threads for parallelism. Perl bridges this gap by offering a fork() function, which it internally emulates as threads. Things not being as independent as they would be under Unix, this didn't work at some time. That's why it explicitly gets ignored there.
You might try what happens (with perl 5.10.0 in case they improved something) if you short circuit that in Rule.pm (looks like lines 1134 & 1188)
best regards
Daniel
I had suggested to ActiveState that they pick up the way Cygwin does it. Cygwin has done wonders to make it indistinguishable from a real Unix fork/exec. But ActiveState answered that they will stick to their unusable emulation because of licensing worries.
Maybe if more people pressure them they will work out something. After all this problem affects any parallelizing job framework written in Perl.