[Omake] SVN Commit: OMake Build System [0.9.8.x] (Rev. 11110)
Jason J. Hickey
jyh at cs.caltech.edu
Mon Jun 25 11:08:22 PDT 2007
Addressed bug #679. Consider the problem code,
Shell. +=
foo(argv) =
cd src
pwd
x(5)
foo 10
The issue is that an alias "cd src" is called within another alias
"foo 10". Aliases get new channels, just like processes, so "cd src"
is called with stdin=4,stdout=5,stderr=6.
Omake_shell_job has an explicit test that forces an alias to be a
pipeline unless stdout=Unix.stdout&&stderr=Unix.stderr. So "cd src"
is run in a pipeline, and it has no effect.
The fix is to take out the test, which isn't needed in this particular
case. For rules, it *is* needed, because rules send their output through
a pipe to the output processor (the +/- lines, etc.), which is internal
to omake. If an alias generates a lot of output, it *must* be
run in a subprocess/thread, or omake will deadlock.
----
Changes:
+12 -1 omake-branches/0.9.8.x/src/shell/omake_shell_job.ml
Added omake-branches/0.9.8.x/test/shell/Test2/
Added omake-branches/0.9.8.x/test/shell/Test2/OMakefile
Added omake-branches/0.9.8.x/test/shell/Test2/OMakeroot
A hyperlinked version of this commit is available at
http://svn.metaprl.org/commitlogs/omake/2007-06.html#07/06/25.11:08:22
More information about the OMake-CVS
mailing list