[svn:parrot] r45084 - trunk/runtime/parrot/library
fperrad at svn.parrot.org
fperrad at svn.parrot.org
Sun Mar 21 11:08:05 UTC 2010
Author: fperrad
Date: Sun Mar 21 11:08:01 2010
New Revision: 45084
URL: https://trac.parrot.org/parrot/changeset/45084
Log:
[distutils] refactor for parallel build (step 1)
Modified:
trunk/runtime/parrot/library/distutils.pir
Modified: trunk/runtime/parrot/library/distutils.pir
==============================================================================
--- trunk/runtime/parrot/library/distutils.pir Sun Mar 21 10:14:48 2010 (r45083)
+++ trunk/runtime/parrot/library/distutils.pir Sun Mar 21 11:08:01 2010 (r45084)
@@ -540,6 +540,8 @@
.sub 'build_pbc_pir'
.param pmc hash
+ .local pmc jobs
+ jobs = new 'ResizableStringArray'
$P0 = iter hash
L1:
unless $P0 goto L2
@@ -566,7 +568,18 @@
cmd .= pbc
cmd .= " "
cmd .= src
- system(cmd, 1 :named('verbose'))
+ push jobs, cmd
+ goto L1
+ L2:
+ .tailcall run_jobs(jobs)
+.end
+
+.sub 'run_jobs'
+ .param pmc jobs
+ L1:
+ unless jobs goto L2
+ $S0 = shift jobs
+ system($S0, 1 :named('verbose'))
goto L1
L2:
.end
@@ -596,6 +609,8 @@
.sub 'build_pir_pge'
.param pmc hash
.param string flags
+ .local pmc jobs
+ jobs = new 'ResizableStringArray'
$P0 = iter hash
L1:
unless $P0 goto L2
@@ -627,9 +642,10 @@
cmd .= flags
cmd .= " "
cmd .= src
- system(cmd, 1 :named('verbose'))
+ push jobs, cmd
goto L1
L2:
+ .tailcall run_jobs(jobs)
.end
=item pir_tge
@@ -653,6 +669,8 @@
.sub 'build_pir_tge'
.param pmc hash
+ .local pmc jobs
+ jobs = new 'ResizableStringArray'
$P0 = iter hash
L1:
unless $P0 goto L2
@@ -672,9 +690,10 @@
cmd .= pir
cmd .= " "
cmd .= tge
- system(cmd, 1 :named('verbose'))
+ push jobs, cmd
goto L1
L2:
+ .tailcall run_jobs(jobs)
.end
=item pir_nqp
@@ -702,6 +721,8 @@
.sub 'build_pir_nqp'
.param pmc hash
.param string flags
+ .local pmc jobs
+ jobs = new 'ResizableStringArray'
$P0 = iter hash
L1:
unless $P0 goto L2
@@ -723,9 +744,10 @@
cmd .= flags
cmd .= " "
cmd .= nqp
- system(cmd, 1 :named('verbose'))
+ push jobs, cmd
goto L1
L2:
+ .tailcall run_jobs(jobs)
.end
=item pir_nqp-rx / pir_nqprx
@@ -754,6 +776,8 @@
.sub 'build_pir_nqp_rx'
.param pmc hash
+ .local pmc jobs
+ jobs = new 'ResizableStringArray'
$P0 = iter hash
L1:
unless $P0 goto L2
@@ -770,9 +794,10 @@
cmd .= pir
cmd .= " "
cmd .= nqp
- system(cmd, 1 :named('verbose'))
+ push jobs, cmd
goto L1
L2:
+ .tailcall run_jobs(jobs)
.end
=item pir_pir (concat)
@@ -842,6 +867,8 @@
.sub 'build_pbc_pbc'
.param pmc hash
+ .local pmc jobs
+ jobs = new 'ResizableStringArray'
$P0 = iter hash
L1:
unless $P0 goto L2
@@ -860,9 +887,10 @@
cmd .= " "
$S0 = join " ", srcs
cmd .= $S0
- system(cmd, 1 :named('verbose'))
+ push jobs, cmd
goto L1
L2:
+ .tailcall run_jobs(jobs)
.end
=item exe_pbc
@@ -886,6 +914,8 @@
.sub 'build_exe_pbc'
.param pmc hash
+ .local pmc jobs
+ jobs = new 'ResizableStringArray'
.local string exe
exe = get_exe()
$P0 = iter hash
@@ -904,9 +934,10 @@
cmd = get_executable('pbc_to_exe')
cmd .= " "
cmd .= pbc
- system(cmd, 1 :named('verbose'))
+ push jobs, cmd
goto L1
L2:
+ .tailcall run_jobs(jobs)
.end
=item installable_pbc
@@ -930,6 +961,8 @@
.sub 'build_installable_pbc'
.param pmc hash
+ .local pmc jobs
+ jobs = new 'ResizableStringArray'
.local string exe
exe = get_exe()
.local int has_strip
@@ -952,12 +985,14 @@
cmd .= " "
cmd .= pbc
cmd .= " --install"
- system(cmd, 1 :named('verbose'))
- unless has_strip goto L1
- cmd = "strip " . $S1
- system(cmd, 1 :named('verbose'))
+ unless has_strip goto L3
+ cmd .= " && strip "
+ cmd .= $S1
+ L3:
+ push jobs, cmd
goto L1
L2:
+ .tailcall run_jobs(jobs)
.end
.sub '_has_strip' :anon
More information about the parrot-commits
mailing list