1
0
forked from GitHub/gf-core

Parallel compilation: "gf -make -j" and "gf -make -j=n" now work as expected

* "gf -make -j=n" uses n parallel threads.
  * "gf -make -j" adapts to the number of processors in the system.

This mimics how "cabal build -j" and "ghc --make -j" works.

Support for this is implemented in the new module GF.System.Concurrency and
it depends on the function Control.Concurrent.setNumCapabilities, which is
only available in GHC>=7.6 (base>=4.6). GF can still be compiled with
GHC<7.6, but then you have to use +RTS -N -RTS to take advantage of
multicore processors.

To detect the number of processors in the system, the code depends on a
foreign import of a C function in the GHC run-time system.
This commit is contained in:
hallgren
2015-09-11 14:18:01 +00:00
parent 21078c8bfe
commit 264fd05444
3 changed files with 46 additions and 4 deletions

View File

@@ -254,11 +254,11 @@ Library
GF.Speech.SRGS_XML
GF.Speech.VoiceXML
GF.System.Catch
GF.System.Concurrency
GF.System.Console
GF.System.Directory
GF.System.Process
GF.System.Signal
-- GF.System.UseSignal
GF.Text.Clitics
GF.Text.Coding
GF.Text.Lexing